:root{--ink:#173244;--muted:#617480;--line:#dce5ea;--bg:#f4f7f9;--teal:#087c70;--in-soft:#edf8f3;--out:#9c4f21;--out-soft:#fff5ed}
*{box-sizing:border-box}
html{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;scroll-behavior:auto;-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-overflow-scrolling:touch}
body{margin:0;position:static;width:100%;height:auto;min-height:100vh;max-height:none;overflow:visible;overscroll-behavior-y:auto;touch-action:auto;background:var(--bg);color:var(--ink);font:16px/1.5 "Segoe UI",system-ui,-apple-system,sans-serif}
button,input,select{font:inherit;touch-action:auto}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}button:focus-visible{outline:3px solid #3c6fd0;outline-offset:3px}.hidden{display:none!important}
.brandbar{min-height:64px;display:flex;align-items:center;padding:14px max(20px,calc((100vw - 940px)/2));background:#153244;color:#fff}.brand-lockup{display:flex;align-items:center;gap:16px;font-size:15px}.brand-mark{font-size:19px;font-weight:750;letter-spacing:.04em;border-right:1px solid #5a7280;padding-right:16px}
.app-shell{display:block;width:100%;height:auto;max-height:none;overflow:visible;padding:28px 20px calc(40px + env(safe-area-inset-bottom))}.app-card{display:block;width:min(780px,100%);height:auto;max-height:none;overflow:visible;margin-inline:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 22px #19374908}.app-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:26px 28px 18px}h1,h2,p{overflow-wrap:anywhere}h1{font-size:30px;font-weight:650;line-height:1.25;letter-spacing:-.025em;margin:0}h2{font-size:24px;font-weight:650;line-height:1.3;letter-spacing:-.02em;margin:0}.eyebrow{margin:0 0 8px;font-size:12px;font-weight:650;letter-spacing:.09em;color:var(--muted)}.subtext{margin:10px 0 0;color:var(--muted)}.user-audit-line{margin:5px 0 0;color:var(--muted);font-size:12px}.stock-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px 14px;margin-top:7px}.sync-status{margin:0;color:var(--muted);font-size:13px}.sync-status.saved{color:var(--teal)}.sync-status.error{color:#a02d3d}.text-btn{min-height:32px;border:0;background:transparent;padding:2px 0;color:var(--teal);font-size:13px;text-decoration:underline;text-underline-offset:3px}.icon-btn{width:42px;min-height:42px;flex-shrink:0;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:24px}
.progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 28px;border-bottom:1px solid var(--line)}.progress-step{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);padding:13px 0;border-bottom:2px solid transparent;margin-bottom:-1px}.progress-step b{display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;background:#f1f4f6;border-radius:6px;font-size:12px}.progress-step.active b{background:var(--in-soft);color:var(--teal)}.progress-step[aria-current]{border-color:var(--teal);color:var(--ink)}.progress-step[aria-current] b{background:var(--teal);color:#fff}
#stockForm,.step-panel,.item-card,.items-container{height:auto;max-height:none;overflow:visible;touch-action:auto}.step-panel{display:none;padding:26px 28px 28px;scroll-margin-block:20px}.step-panel.active{display:block}.field-group{margin-bottom:22px}label{display:block;font-size:14px;font-weight:650;margin-bottom:8px}.field-group small{display:block;margin-top:6px;font-size:13px;color:var(--muted)}input,select{display:block;width:100%;min-width:0;min-height:52px;border:1px solid #c9d6df;border-radius:8px;background:#fff;color:var(--ink);padding:12px 13px;font-size:16px;outline:none;scroll-margin-block:24px}input:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #087c7014}input::placeholder{color:#8796a1;font-weight:400}input[data-uppercase]{font-weight:550}
.movement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.movement-btn{display:grid;grid-template-columns:36px 1fr;align-items:center;align-content:center;column-gap:14px;min-height:124px;padding:20px;text-align:left;border:1px solid;border-radius:11px;font-size:25px;font-weight:650}.movement-icon{grid-row:span 2;font-size:31px}.movement-btn small{margin:0;font-size:14px;font-weight:400;color:inherit}.movement-btn.in{background:var(--in-soft);color:var(--teal);border-color:#c2dfd3}.movement-btn.out{background:var(--out-soft);color:var(--out);border-color:#eedac8}.movement-btn:hover{filter:brightness(.985)}
.section-title-row,.label-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-title-row{margin-bottom:24px}.entry-context{margin:5px 0 0;color:var(--muted);font-size:14px}.badge{padding:7px 11px;border-radius:7px;font-size:13px;font-weight:700}.badge.in{background:var(--in-soft);color:var(--teal)}.badge.out{background:var(--out-soft);color:var(--out)}.choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.choice-btn{min-height:46px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--ink);font-size:14px;font-weight:600}.choice-btn.selected{background:var(--in-soft);border-color:var(--teal);color:var(--teal)}.other-wrap{margin-top:12px;padding:14px;border-radius:8px;background:var(--bg)}.label-row{margin-bottom:12px;flex-wrap:wrap}.label-row label{margin:0}.mini-btn{min-height:42px;padding:8px 12px;border:1px solid #c2dfd3;border-radius:8px;background:var(--in-soft);color:var(--teal);font-size:13px;font-weight:650}.items-container{display:grid;gap:14px}.item-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fafcfd}.item-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.item-number{font-size:12px;font-weight:650;letter-spacing:.06em;color:var(--muted)}.remove-item{min-height:36px;border:0;border-radius:6px;padding:6px 8px;background:transparent;color:#a33340;font-size:12px;font-weight:600}.item-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(90px,.65fr) minmax(120px,.8fr);gap:12px}.item-grid>div{min-width:0}.item-grid label{font-size:13px}.available-qty{color:var(--teal)!important}.available-qty.qty-warning{color:#a33340!important}.stock-hint{line-height:1.45}
.nav-actions,.success-actions{position:static;display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.primary-btn,.secondary-btn{min-height:52px;border-radius:8px;padding:12px 18px;font-size:14px;font-weight:650}.primary-btn{flex:1;border:1px solid var(--teal);background:var(--teal);color:#fff}.primary-btn:hover{background:#06665c}.secondary-btn{border:1px solid #c9d6df;background:#fff;color:var(--ink)}.secondary-btn:hover,.icon-btn:hover{background:var(--bg)}.review-card{border:1px solid var(--line);border-radius:10px;overflow:hidden}.review-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;padding:13px 16px;border-bottom:1px solid #edf1f4}.review-key{font-size:12px;color:var(--muted);font-weight:650}.review-value{font-weight:600;overflow-wrap:anywhere}.review-items{padding:10px 16px;background:#f8fafb}.review-item{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.review-item:last-child{border:0}.review-item span{min-width:0}.review-item strong{flex-shrink:0}.review-item small{display:block;font-size:13px;color:var(--muted);margin-top:4px}.error-panel{padding:14px;background:#fff3f4;border:1px solid #ebc3c9;border-radius:8px;color:#9c2b3b;font-size:14px}.success-panel{text-align:center;padding:34px 28px 40px}.success-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 18px;border-radius:50%;background:var(--in-soft);color:var(--teal);font-size:28px}.success-panel p{color:var(--muted)}.transaction-reference{font-size:13px;font-family:ui-monospace,monospace}.success-actions{justify-content:center}.success-actions .primary-btn{flex:0 1 260px}
.login-shell,.connection-shell{min-height:calc(100svh - 64px);display:flex;align-items:center}.login-card,.connection-card{width:min(420px,100%)}.login-content,#connectionScreen .sync-banner{display:block;margin:0;padding:28px;border:0;background:transparent}.login-content h1,#connectionTitle{font-size:27px}.login-form{margin-top:22px}.login-btn{width:100%}.connected-note{font-size:13px;color:var(--muted);margin:0 0 10px}.login-content .eyebrow{display:none}.login-error{font-size:14px;color:#a33340}.sync-banner-copy p{font-size:14px;color:var(--muted);margin:9px 0 0}.sync-banner-progress{margin-top:24px}#connectionPercent{font-size:24px;font-weight:650}.connection-progress{height:5px;border-radius:8px;background:#e7edf1;margin-top:9px;overflow:hidden}.connection-progress-bar{height:100%;border-radius:inherit;background:var(--teal);transition:width .35s ease}.sync-banner.offline .connection-progress-bar{background:#a33340}#connectionScreen .secondary-btn{width:100%;margin-top:20px}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%,12px);width:calc(100% - 32px);max-width:520px;padding:13px 16px;border-radius:10px;background:#153244;color:#fff;font-size:14px;line-height:1.45;opacity:0;pointer-events:none;z-index:99}.toast.show{opacity:1;transform:translate(-50%,0)}.noscript-message{padding:16px;margin:0;background:#fff3f4;color:#9c2b3b}
@media(max-width:620px){.app-shell{padding:18px 12px calc(32px + env(safe-area-inset-bottom))}.app-header{padding:22px 18px 16px}h1{font-size:27px}.progress{margin:0 18px;gap:8px}.progress-step{flex-direction:column;align-items:flex-start;gap:6px;font-size:12px}.step-panel{padding:22px 18px calc(26px + env(safe-area-inset-bottom))}.movement-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:143px;padding:16px}.movement-icon{font-size:28px}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-btn{min-height:50px}.item-grid{grid-template-columns:1fr;gap:14px}.item-card{padding:14px}.nav-actions{padding-top:14px;border-top:1px solid var(--line)}.nav-actions .primary-btn{min-width:0}.review-row{grid-template-columns:1fr;gap:4px}.review-item{flex-direction:column;gap:6px}.review-item strong{flex-shrink:1}.text-btn{min-height:40px}.login-content,#connectionScreen .sync-banner{padding:26px 22px}.success-panel{padding:28px 18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
