:root{--bg:#f6f7f4;--card:#fff;--text:#1f2a1f;--muted:#6b756b;--line:#e3e6df;--brand:#3b7d34;--brand-dark:#0d3b33;--brand-light:#8cc63f;--warn-bg:#fff8e1;--warn-line:#ffd54f;--error:#c62828;--error-bg:#ffebee;--warn-text:#a15c00;--ok:#2e7d32;--ok-bg:#e8f5e9;--info-bg:#e3f2fd;--info-line:#90caf9;--shadow-sm:0 1px 2px #0f280f0a;--shadow-md:0 4px 16px #0f280f12;--radius:12px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Noto Sans TC,system-ui,-apple-system,Segoe UI,Microsoft JhengHei,sans-serif;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:var(--brand)}h1,h2{margin:0}h1{letter-spacing:-.01em;font-size:1.5rem;font-weight:700}h2{margin-bottom:.75rem;font-size:1.05rem;font-weight:700}button{font:inherit;border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:8px;padding:.45rem .9rem}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:var(--shadow-sm);transition:background .15s,transform 80ms}button.primary:not(:disabled):hover{background:var(--brand-dark)}button.primary:not(:disabled):active{transform:translateY(1px)}button.danger{background:var(--error);border-color:var(--error);color:#fff;font-weight:600}button.danger:not(:disabled):hover{filter:brightness(.93)}button.big{padding:.7rem 1.5rem;font-size:1.05rem}button.link{color:var(--brand);background:0 0;border:none;padding:0;text-decoration:underline}input,select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;padding:.5rem .6rem}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace}td.mono{white-space:nowrap}.num{text-align:right;white-space:nowrap}.error-text{color:var(--error);margin:.25rem 0}.warn-text{color:#b45309;margin:.25rem 0;font-size:.85rem}.ok-text{color:var(--ok)}.boot,.loading{color:var(--muted);padding:2rem}.loading:after{content:"";background:linear-gradient(90deg, var(--line) 0%, var(--ok-bg) 50%, var(--line) 100%);background-size:200% 100%;border-radius:3px;max-width:320px;height:6px;margin-top:.75rem;animation:1.1s linear infinite shimmer;display:block}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.loading:after,.gauge-value,.bar-value{transition:none;animation:none}}.app{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.app.nav-closed{grid-template-columns:1fr}.sidebar{background:var(--card);border-right:1px solid var(--line);flex-direction:column;gap:1.5rem;height:100vh;padding:1rem .8rem 1.5rem;display:flex;position:sticky;top:0;overflow-y:auto}.nav-closed .sidebar{display:none}.content{flex-direction:column;min-width:0;display:flex}.nav-backdrop{display:none}.topbar{background:var(--card);border-bottom:1px solid var(--line);z-index:10;box-shadow:var(--shadow-sm);align-items:center;gap:.75rem;padding:.5rem 1.25rem;display:flex;position:sticky;top:0}.nav-toggle{color:var(--muted);background:0 0;border:none;padding:.35rem .5rem;font-size:1.2rem;line-height:1}.nav-toggle:hover{background:var(--bg);color:var(--brand-dark)}.brand{color:var(--brand-dark);align-items:center;gap:.5rem;font-weight:700;line-height:1.3;text-decoration:none;display:flex}.brand-logo{object-fit:contain;flex:none;width:40px;height:40px}.brand-compact{font-size:.95rem;display:none}.nav-closed .brand-compact{display:flex}.demo-badge{color:#e65100;background:#fff3e0;border:1px solid #ffcc80;border-radius:999px;padding:.05rem .55rem;font-size:.75rem;font-weight:600}.sidebar nav{flex-direction:column;gap:1.5rem;display:flex}.nav-group{flex-direction:column;gap:.15rem;display:flex}.nav-module{color:var(--brand);letter-spacing:.06em;margin-bottom:.3rem;padding:0 .7rem;font-size:.75rem;font-weight:700}.sidebar nav a{color:var(--text);border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .7rem;font-size:.95rem;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar nav a:hover{background:var(--bg)}.sidebar nav a.active{background:var(--ok-bg);color:var(--brand-dark);box-shadow:inset 3px 0 0 var(--brand);font-weight:700}.nav-badge{background:var(--bg);color:var(--muted);border-radius:999px;padding:.05rem .5rem;font-size:.72rem;font-weight:500}.nav-badge-warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:#e65100}.user{color:var(--muted);align-items:center;gap:.75rem;margin-left:auto;font-size:.82rem;display:flex}.user .muted{background:var(--bg);border-radius:999px;padding:.15rem .6rem}.main{flex-direction:column;gap:1rem;max-width:none;padding:1rem 1.25rem 1.5rem;display:flex}.page{flex-direction:column;gap:1rem;display:flex}.page[hidden]{display:none}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-header p{margin:.25rem 0 0;font-size:.9rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.1rem 1.35rem}.notice{border:1px solid;border-radius:12px;padding:.75rem 1rem}.notice p,.notice ul{margin:.35rem 0 0}.notice p,.notice li{font-size:.9rem}.notice ul{padding-left:1.25rem}.notice-info{background:var(--info-bg);border-color:var(--info-line)}.notice-warn{background:var(--warn-bg);border-color:var(--warn-line)}.notice-error{background:var(--error-bg);border-color:#ef9a9a}.notice-ok{background:var(--ok-bg);border-color:#a5d6a7}.chip{white-space:nowrap;vertical-align:middle;border-radius:999px;padding:.15rem .6rem;font-size:.85rem;font-weight:600;line-height:1.35;display:inline-block}.chip-line{flex-wrap:wrap;align-items:center;gap:.45rem;display:inline-flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.45rem .6rem}th{color:var(--muted);white-space:nowrap;font-weight:600}.day-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.day{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:.5rem;padding:.75rem .9rem;display:flex}.day-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.badge{white-space:nowrap;color:#455a64;background:#eceff1;border-radius:999px;padding:.05rem .55rem;font-size:.75rem}.day-confirmed{background:#fafbf9}.badge-confirmed{color:#283593;background:#e8eaf6}.day-decision{border:2px solid var(--brand);box-shadow:0 2px 10px #2e7d3226}.badge-decision{background:var(--brand);color:#fff}.day-unconfirmed{border:2px dashed #fb8c00}.badge-unconfirmed{color:#e65100;background:#fff3e0}.day-tentative{opacity:.72}.day-holiday{background:0 0;border-style:dashed}.slots{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.reason{color:var(--muted);margin:.2rem 0 0;font-size:.8rem}.flavor-select{border-radius:999px;width:100%;padding:.25rem .6rem;font-weight:600}.flavor-select option{color:var(--text);background:#fff}.day-foot{flex-direction:column;gap:.35rem;margin-top:auto;display:flex}.pin-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.3rem 0 0;font-size:.8rem;display:flex}.pin-form{border:1px dashed var(--line);background:#fff;border-radius:8px;flex-direction:column;gap:.35rem;margin-top:.4rem;padding:.5rem;display:flex}.pin-form select,.pin-form input{padding:.35rem .5rem;font-size:.85rem}.slot-label{color:var(--muted);margin-bottom:.15rem;font-size:.78rem;display:block}.history-list{flex-direction:column;gap:.75rem;display:flex}.history-day .day-head{margin-bottom:.5rem}.qty-input{text-align:right;width:6rem}.tag{color:#e65100;vertical-align:middle;background:#fff3e0;border-radius:999px;margin-left:.4rem;padding:.05rem .45rem;font-size:.72rem;display:inline-block}.checks{flex-direction:column;gap:.35rem;margin:.75rem 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.history-actions{align-items:center;gap:.75rem;margin-top:.75rem}.strong{font-weight:700}.fin-statement-wrap{border:1px solid var(--line);border-radius:8px;overflow:auto}.fin-statement thead th{z-index:3;background:var(--card);box-shadow:0 1px 0 var(--line);position:sticky;top:0}.fin-statement thead th:first-child{z-index:5}.fin-statement{font-variant-numeric:tabular-nums}.fin-statement th,.fin-statement td{white-space:nowrap}.fin-statement td:first-child,.fin-statement th:first-child{background:var(--card);white-space:normal;min-width:14rem;max-width:20rem;position:sticky;left:0}.fin-statement .fin-indent td:first-child{padding-left:1.4rem}.fin-statement .fin-total td{background:#fafbf8;font-weight:600}.fin-statement .fin-key td{color:var(--brand-dark);font-weight:700}.fin-statement .fin-pct td{color:var(--muted);font-size:.8rem}.fin-statement .fin-head td{background:var(--ok-bg);color:var(--brand-dark);font-weight:700}.fin-statement .fin-estimate{color:var(--warn-text);font-style:italic}.fin-warn{color:var(--warn-text);font-weight:600}.fin-statement .fin-estimate .info-tip-text{left:auto;right:0}.fin-statement .fin-year{border-left:2px solid var(--line);font-weight:600}.fin-statement button.link{font:inherit;color:inherit;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.fin-paste{width:100%;font:inherit;border:1px solid var(--line);border-radius:8px;padding:.5rem}.tabs{border-bottom:2px solid var(--line);flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;display:flex}.tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:8px 8px 0 0;margin-bottom:-2px;padding:.55rem .9rem;font-weight:600}.tab:hover{color:var(--brand-dark);background:var(--ok-bg)}.tab-active{color:var(--brand-dark);border-bottom-color:var(--brand)}.tab-badge{color:var(--warn-text);background:#fff3e0;border-radius:999px;margin-left:.35rem;padding:0 .45rem;font-size:.75rem;display:inline-block}.info-tip{margin-left:.3rem;display:inline-block;position:relative}.info-tip-icon{cursor:help;color:var(--muted);background:0 0;border:none;padding:0 .15rem;font-size:.85rem;line-height:1}.info-tip-text{z-index:20;background:var(--card);border:1px solid var(--line);width:18rem;box-shadow:var(--shadow-md);color:var(--text,#1f2a1f);white-space:normal;border-radius:8px;padding:.5rem .65rem;font-size:.8rem;font-weight:400;line-height:1.5;display:none;position:absolute;top:1.4rem;left:0}.info-tip-warn .info-tip-text{color:var(--warn-text);background:#fff8e8;border-color:#f0c36d}.info-tip:hover .info-tip-text,.info-tip-open .info-tip-text{display:block}.fin-statement td:first-child{z-index:1}:is(.fin-statement td:first-child:has(.info-tip:hover),.fin-statement td:first-child:has(.info-tip-open)){z-index:30}.fin-groups td{vertical-align:middle}.fin-groups td:first-child,.fin-groups td:nth-child(3){white-space:nowrap}.fin-groups td:nth-child(4){max-width:12rem}.fin-teach{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.fin-teach input:not([type=checkbox]){width:10rem}.fin-direction+.fin-direction{margin-top:1.25rem}.fin-direction h3{margin:.5rem 0;font-size:1rem}.fin-teach-row{flex-wrap:nowrap}.fin-teach-row input{width:7rem}.fin-teach-row select{max-width:11rem}.day-tabs{flex-wrap:wrap;margin-bottom:.75rem}.order-history{display:block}.order-history-list ol{margin:.25rem 0 0;padding-left:1.2rem}.export-days td{vertical-align:middle}.export-days .row-picked td{background:var(--ok-bg)}.expo-orders td{vertical-align:middle}.expo-orders td[data-label=狀態],.expo-orders td[data-label=收款]{white-space:nowrap}.expo-orders .expo-actions{flex-wrap:nowrap}.expo-orders td[data-label=內容]{min-width:13rem}@media (width<=1200px){.expo-orders .expo-actions{flex-wrap:wrap}.expo-orders th,.expo-orders td{padding-left:.35rem;padding-right:.35rem}}.expo-orders .expo-actions button{white-space:nowrap}.order-contents{flex-wrap:wrap;gap:.3rem .4rem;display:flex}.order-flavor{white-space:nowrap;align-items:center;gap:.15rem;display:inline-flex}.order-flavor .chip{padding:.1rem .5rem;font-size:.8rem}.row-alert td{background:#fdecea}.row-alert td:first-child{box-shadow:inset 3px 0 #b3261e}.cell-alert{color:#b3261e;white-space:nowrap;font-size:.8rem;font-weight:700}.tag-alert{color:#b3261e;background:#fdecea;font-weight:700}.tag-ok{background:var(--ok-bg);color:var(--brand-dark)}.trend th,.trend td{white-space:nowrap}.trend-cell{min-width:4.5rem}.trend-out{color:var(--error);font-weight:700}.trend-low{color:var(--warn-text);font-weight:600}.trend-prod{background:var(--ok-bg);box-shadow:inset 0 0 0 1px #c8e6c9}.tone-out{background:var(--error-bg);color:var(--error);font-weight:600}.tone-low{background:var(--warn-bg);color:var(--warn-text)}.tone-prod{background:var(--ok-bg);box-shadow:inset 0 0 0 1px #c8e6c9}.tone-out,.tone-low,.tone-prod{border-radius:4px;padding:0 .25rem}.trend tfoot td{border-top:2px solid var(--line);color:var(--muted);border-bottom:none;font-weight:600}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.card-head h2{margin-bottom:0}.trend-avail{color:var(--muted);font-size:.72rem;font-weight:400;display:block}.trend-avail.error-text{color:var(--error);margin:0;font-size:.76rem;font-weight:700}.toggle{cursor:pointer;align-items:center;gap:.35rem;font-size:.9rem;display:inline-flex}.note-cell{white-space:pre-wrap;color:#8d4e00;max-width:22rem}.decision{border-left:4px solid var(--brand)}.decision-done{border-left-color:var(--line)}.decision-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.decision-head h2{margin:.1rem 0 0;font-size:1.2rem}.button-link{border:1px solid var(--brand);color:var(--brand);white-space:nowrap;border-radius:8px;padding:.4rem .9rem;text-decoration:none}.button-link:hover{background:var(--ok-bg)}.decision-batches{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.decision-batches li{background:var(--bg);border-radius:10px;padding:.6rem .8rem}.home-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.kpi{flex-direction:column;justify-content:center;gap:.2rem;display:flex}.kpi strong{letter-spacing:-.02em;color:var(--brand-dark);font-size:1.7rem;font-weight:700;line-height:1.15}.kpi,.home-charts .card,.decision{box-shadow:var(--shadow-md)}.kpi-warn{background:var(--warn-bg);border-color:var(--warn-line)}.kpi-warn strong{color:#e65100}.kpi-gauge{align-items:center;padding:.6rem}.home-charts{grid-template-columns:3fr 2fr;gap:1rem;display:grid}@media (width<=900px){.home-charts{grid-template-columns:1fr}}.chart{margin:0}.chart svg{width:100%;height:auto;overflow:visible}.chart-off{fill:var(--bg)}.chart-line-stock{fill:none;stroke:var(--brand);stroke-width:2.5px;stroke-linejoin:round}.chart-line-shortage{fill:none;stroke:var(--error);stroke-width:2px;stroke-dasharray:5 4}.chart-dot{fill:var(--brand)}.chart-label{fill:var(--muted);font-size:11px}.legend{align-items:center;gap:.25rem;margin-right:.75rem;display:inline-flex}.legend:before{content:"";background:var(--brand);border-radius:2px;width:14px;height:3px}.legend-shortage:before{background:var(--error)}.gauge{text-align:center;margin:0}.gauge svg{width:130px;height:130px}.gauge-track{fill:none;stroke:var(--line);stroke-width:12px}.gauge-value{fill:none;stroke:var(--brand);stroke-width:12px;stroke-linecap:round;transition:stroke-dasharray .6s}.gauge-warn .gauge-value{stroke:#ef9a00}.gauge-error .gauge-value{stroke:var(--error)}.gauge-number{fill:var(--brand-dark);font-size:26px;font-weight:700}.gauge-caption{fill:var(--muted);font-size:12px}.bars{flex-direction:column;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.bars li{grid-template-columns:4.5rem 1fr 4.5rem;align-items:center;gap:.5rem;font-size:.9rem;display:grid}.bar-track{background:var(--bg);border-radius:999px;height:12px;overflow:hidden}.bar-value{border-radius:999px;height:100%;transition:width .5s;display:block}.bar-number{text-align:right;color:var(--muted)}.benchmark{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;display:grid}.benchmark h3{flex-direction:column;margin:0 0 .35rem;font-size:1rem;display:flex}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:.15rem;padding:.6rem .9rem;display:flex}.stat strong{color:var(--brand-dark);font-size:1.35rem}.stat-label{color:var(--muted);font-size:.85rem}.stat-click{font:inherit;text-align:left;cursor:pointer}.stat-click:disabled{cursor:default;opacity:1}.stat-click:not(:disabled):hover{border-color:var(--brand)}.stat-warn{background:var(--warn-bg);border-color:var(--warn-line)}.stat-warn strong{color:#e65100}.stat-error{background:var(--error-bg);border-color:#ef9a9a}.stat-error strong{color:var(--error)}.drag-x{cursor:grab}.drag-x.dragging-x{cursor:grabbing;-webkit-user-select:none;user-select:none}.sticky-first th:first-child,.sticky-first td:first-child{z-index:1;background:var(--card);border-right:1px solid var(--line);position:sticky;left:0}.trend-off{color:var(--muted)}.trend-off.trend-out{color:var(--error);font-weight:700}.toggles{flex-wrap:wrap;gap:1rem;display:flex}.backfill{border:1px dashed var(--line);border-radius:10px;margin:.75rem 0;padding:.7rem .85rem}.backfill p{margin:0 0 .5rem}.backfill-manual{flex-direction:column;gap:.25rem;margin-top:.6rem;display:flex}.backfill-manual input{width:fit-content}.usage-days{flex-wrap:wrap;gap:.3rem;margin:.6rem 0 .9rem;display:flex}.usage-day{border:1px solid var(--line);min-width:2.6rem;color:var(--muted);border-radius:8px;flex-direction:column;align-items:center;padding:.25rem .3rem;font-size:.68rem;display:flex}.usage-day b{color:var(--line);font-size:.95rem;font-weight:400}.usage-day.usage-on{background:var(--ok-bg);border-color:var(--ok)}.usage-day.usage-on b{color:var(--brand-dark);font-weight:700}.seg{border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.seg-btn{color:var(--muted);background:0 0;border:none;border-radius:0;padding:.25rem .85rem;font-size:.85rem}.seg-btn+.seg-btn{border-left:1px solid var(--line)}.seg-btn.seg-on{background:var(--brand);color:#fff;font-weight:600}.trend-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:1rem 1.5rem;margin-top:.75rem;display:grid}.trend-grid h3{margin:0;font-size:.9rem}.chart-mini svg{width:100%;height:auto}.trend-made{color:var(--brand);font-size:.72rem;font-weight:600;display:block}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;display:grid}.pick{border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex}.pick-qty{font-weight:700}.pick-total{background:var(--ok-bg)}.pick-warn{background:var(--warn-bg);border-color:var(--warn-line)}.advice-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:.75rem;display:grid}.advice-grid h3{margin:0 0 .5rem;font-size:1rem}.advice-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.advice-list li{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.45rem .7rem;display:flex}.history-range{flex-direction:column;gap:.6rem;display:flex}.month-pager{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.month-pager button{min-width:2.6rem}.month-pager button.link{min-width:0;margin-left:auto}.month-pager strong{text-align:center;min-width:7.5rem;font-size:1.05rem}.ship-days{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}.ship-days .pick{gap:1rem;padding:.6rem .9rem}.ship-days .pick>span{white-space:nowrap}.change-group+.change-group{border-top:1px solid var(--line);margin-top:.9rem;padding-top:.9rem}.change-group>p:first-child{margin:0 0 .4rem}.change-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.change-list>li>span{font-weight:600}.upcoming-day+.upcoming-day{border-top:1px solid var(--line);margin-top:.9rem;padding-top:.9rem}.upcoming-day>p{margin:0 0 .4rem}.packed-batch{border:1px solid var(--line);border-radius:10px;margin-top:.5rem;padding:.5rem .75rem}.packed-batch p{margin:0 0 .2rem}.chip-picker{flex-wrap:wrap;gap:.4rem;margin:.75rem 0;display:flex}.chip-pick{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#fff}.chip-pick.chip-on{border-width:1px}.search{gap:.5rem;display:flex}.search input{flex:1;min-width:0}.order-result dl,.summary{grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0 0 1rem;display:grid}.order-result dt,.summary dt{color:var(--muted)}.order-result dd,.summary dd{margin:0}.message{background:var(--bg);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.message p{margin:0}.dropzone{background:var(--card);cursor:pointer;text-align:center;border:2px dashed #a5d6a7;border-radius:14px;flex-direction:column;align-items:center;gap:.35rem;padding:2rem 1rem;display:flex}.dropzone.dragging{background:var(--ok-bg);border-color:var(--brand)}.dropzone input{display:none}.inline-form{flex-wrap:wrap;gap:.75rem 1.25rem;margin:.5rem 0;display:flex}.inline-form label{flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.file-status p{margin:.2rem 0}.actions{justify-content:flex-end;display:flex}.expo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.expo-item{border:2px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:center;gap:.5rem;padding:.6rem;display:flex}.expo-item-on{border-color:var(--brand);background:var(--ok-bg)}.expo-pick .chip{padding:.25rem .7rem;font-size:1rem}.expo-pick{background:0 0;border:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.3rem;display:flex}.expo-count{align-items:center;gap:.75rem;display:flex}.expo-count button{border-radius:50%;width:2.6rem;height:2.6rem;font-size:1.3rem;line-height:1}.expo-count strong{text-align:center;min-width:1.8rem;font-size:1.4rem}@media (width<=640px){.expo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.expo-item{padding:.5rem .3rem}.expo-count{gap:.4rem}.expo-count button{width:2.5rem;height:2.5rem}}.expo-total{z-index:5;box-shadow:var(--shadow-md);flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex;position:sticky;bottom:.5rem}.expo-total-numbers{flex-direction:column;margin-right:auto;display:flex}.expo-total-numbers strong{color:var(--brand-dark);font-size:2rem;line-height:1.1}.checkout-search input{letter-spacing:.08em;width:100%;padding:.55rem;font-size:1.25rem}.checkout-list{flex-direction:column;gap:.45rem;display:flex}.checkout-list .card{padding:.55rem .9rem}.checkout-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.checkout-main{flex-direction:column;display:flex}.checkout-no{color:var(--muted);font-size:.9rem}.checkout-amount{color:var(--brand-dark);font-size:1.45rem;line-height:1.2}.checkout-items{color:var(--text);margin:.15rem 0;font-size:.95rem;font-weight:600}.checkout-row .primary.big{padding:.5rem 1.4rem;font-size:1rem}.checkout-paid{background:var(--ok-bg);border-color:#a5d6a7}.pay-methods{flex-wrap:wrap;gap:.35rem;display:flex}.pay-methods button{padding:.5rem .8rem}.expo-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.dialog-overlay{z-index:80;background:#0f280f73;justify-content:center;align-items:center;padding:1rem;animation:.12s ease-out dialog-fade;display:flex;position:fixed;inset:0}.dialog{background:var(--card);border-radius:var(--radius);width:min(420px,100%);max-height:100%;padding:1.25rem 1.4rem 1.1rem;animation:.14s ease-out dialog-pop;overflow-y:auto;box-shadow:0 18px 48px #0f280f47}.dialog h2{margin:0;font-size:1.05rem;line-height:1.5}.dialog-body{color:var(--muted);margin-top:.5rem;font-size:.9rem;line-height:1.6}.dialog-body p{margin:0 0 .3rem}.dialog-body p:last-child{margin-bottom:0}.dialog-wide{width:min(560px,100%)}.pack-toggle-all{gap:1rem;margin:.6rem 0 .3rem;display:flex}.pack-list{border:1px solid var(--line);border-radius:8px;max-height:46vh;margin:0;padding:0;list-style:none;overflow-y:auto}.pack-list li+li{border-top:1px solid var(--line)}.pack-list label{cursor:pointer;color:var(--text);align-items:center;gap:.6rem;padding:.45rem .6rem;display:flex}.pack-list label:hover{background:var(--ok-bg)}.pack-list input{flex:none;width:1.1rem;height:1.1rem}.dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:1.1rem;display:flex}@keyframes dialog-fade{0%{opacity:0}}@keyframes dialog-pop{0%{opacity:0;transform:translateY(6px)scale(.98)}}@media (prefers-reduced-motion:reduce){.dialog-overlay,.dialog{animation:none}}.qr-overlay{z-index:60;background:#0f280f8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.qr-modal{background:var(--card);border:2px solid var(--brand);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:.6rem;width:min(420px,100%);max-height:100%;padding:1.25rem;display:flex;overflow-y:auto;box-shadow:0 18px 48px #0f280f4d}.qr-filled{border-color:var(--ok);background:var(--ok-bg)}.qr-modal img{width:min(280px,70vh);height:min(280px,70vh)}.qr-no{letter-spacing:.05em;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.qr-big{margin:0;font-size:1.5rem;font-weight:700}.qr-info{margin:0;padding:0;list-style:none}.qr-buttons{flex-direction:column;gap:.5rem;width:100%;margin-top:.3rem;display:flex}.fill-page{flex-direction:column;gap:.75rem;max-width:520px;margin:0 auto;padding:1rem 1rem 3rem;display:flex}.fill-page header{color:var(--brand-dark);align-items:center;gap:.6rem;display:flex}.fill-logo{object-fit:contain;width:44px;height:44px}.fill-page h1{margin-top:.5rem}.fill-form{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.fill-form label{color:var(--muted);flex-direction:column;gap:.25rem;min-width:0;font-size:.9rem;display:flex}.fill-form input,.fill-form select{width:100%;min-width:0;padding:.6rem;font-size:1.05rem}@media (width<=480px){.fill-form{grid-template-columns:1fr}.fill-ship label{flex:100%}}.fill-wide,.fill-ship{grid-column:1/-1}.editing-note{background:var(--warn-bg);border:1px solid var(--warn-line);color:#8d4e00;border-radius:10px;margin:0 0 .6rem;padding:.6rem .75rem;font-size:.9rem;line-height:1.6}.void-reason{flex-direction:column;gap:.25rem;margin-top:.75rem;font-size:.9rem;display:flex}.voided-list{margin:.6rem 0 0;padding:0;list-style:none}.voided-list li{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.6rem;padding:.4rem 0;text-decoration:line-through;display:flex}.store-list{border:1px solid var(--line);border-radius:10px;max-height:14rem;margin:.4rem 0 0;padding:0;list-style:none;overflow-y:auto}.store-list li+li{border-top:1px solid var(--line)}.store-list li.muted{padding:.6rem .75rem}.store-list button{text-align:left;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.6rem .75rem;display:flex}.store-list button:hover{background:var(--ok-bg)}.fill-picked{background:var(--ok-bg);border:1px solid var(--ok);border-radius:10px;align-items:center;gap:.75rem;margin:0;padding:.6rem .75rem;display:flex}.fill-warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:#8d4e00;border-radius:10px;margin:0;padding:.6rem .75rem;font-size:.95rem;line-height:1.6}.fill-ship{border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem .75rem;display:flex}.fill-ship legend{color:var(--muted);padding:0 .25rem;font-size:.85rem}.fill-ship label{border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:999px;flex-direction:row;align-items:center;gap:.35rem;padding:.35rem .8rem}.fill-ship input[type=radio]{flex:none;width:auto;margin:0}.fill-ship label.on{border-color:var(--brand);background:var(--ok-bg);font-weight:700}.fill-amount{text-align:center;border:2px solid var(--brand);flex-direction:column;gap:.2rem;display:flex}.fill-amount strong{color:var(--brand-dark);font-size:2.6rem;line-height:1.1}.fill-amount-inline{margin:0;font-size:1.1rem}.fill-amount-inline strong{color:var(--brand-dark);font-size:1.5rem}.fill-send{width:100%;padding:.9rem;font-size:1.15rem}.fill-compact input,.fill-compact select{padding:.45rem;font-size:.95rem}.login{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{flex-direction:column;gap:.75rem;width:min(360px,100%);display:flex}.login-card h1{text-align:center;color:var(--brand-dark)}.login-logo{align-self:center;width:160px}.login-card label{flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}@media (width<=900px){.app,.app.nav-closed{grid-template-columns:1fr}.app.nav-closed .sidebar,.sidebar{z-index:30;width:250px;box-shadow:var(--shadow-md);transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app:not(.nav-closed) .sidebar{transform:none}.brand-compact{display:flex}.app:not(.nav-closed) .nav-backdrop{z-index:25;background:#0f280f59;display:block;position:fixed;inset:0}}@media (width<=640px){.main{padding:.75rem}.user{gap:.5rem;margin-left:auto;font-size:.78rem}.user .muted{display:none}h1{font-size:1.25rem}.table-wrap>table{min-width:640px}.table-wrap>table.phone-cards{min-width:0;font-size:1rem;display:block}.phone-cards thead{display:none}.phone-cards tbody,.phone-cards tr,.phone-cards td{width:auto;display:block}.phone-cards tr{border:1px solid var(--line);border-radius:10px;margin-bottom:.6rem;padding:.5rem .8rem}.phone-cards td{text-align:right;border:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.2rem 0;display:flex}.phone-cards td:before{content:attr(data-label);text-align:left;color:var(--muted);flex:0 0 5rem;font-size:.85rem}.phone-cards td:empty{display:none}.phone-cards .note-cell{max-width:none}.phone-cards td.cell-actions{align-items:center;padding:.35rem 0}.phone-cards td.cell-actions .expo-actions,.phone-cards td.cell-actions .pay-methods{flex:1;justify-content:flex-end}.phone-cards td.cell-actions button{flex:1 1 0;max-width:7.5rem;min-height:2.6rem;padding:.4rem .6rem}}.cell-name{white-space:nowrap}.upload-today{border-left:4px solid var(--warn-line)}.upload-today.upload-done{border-left-color:var(--ok);background:var(--ok-bg)}.upload-today.upload-rest{border-left-color:var(--line)}.upload-today.upload-rest h2{color:var(--muted)}.upload-today h2{margin:.15rem 0 .3rem}.upload-today.upload-done h2{color:var(--ok)}.row-today{background:var(--ok-bg)}.file-cell{word-break:break-all;font-size:.85rem}.fill-modal{text-align:left;align-items:stretch;width:min(480px,100%)}.fill-modal .card-head{width:100%}.fill-modal h2{margin:0;font-size:1.05rem}.fin-print-only{display:none}.fin-pdf-button{float:right;margin-left:8px;font-size:.85rem}.fin-fullscreen{z-index:100;border-radius:0;margin:0;position:fixed;inset:0;overflow:hidden}.fin-fullscreen .fin-statement{font-size:.82rem}.fin-fullscreen .fin-statement th,.fin-fullscreen .fin-statement td{padding:5px 8px}body.fin-fullscreen-open{overflow:hidden}@media print{@page{size:A4 landscape;margin:10mm}body.printing-statement *{visibility:hidden}body.printing-statement .fin-print-area,body.printing-statement .fin-print-area *{visibility:visible}body.printing-statement .fin-print-area{width:100%;box-shadow:none;border:none;padding:0;position:absolute;top:0;left:0}body.printing-statement .fin-screen-only,body.printing-statement .info-tip{display:none!important}body.printing-statement .fin-print-only{display:block}body.printing-statement .fin-print-title{margin-bottom:4mm;font-size:12pt;font-weight:700}body.printing-statement .fin-statement-wrap{border:none;overflow:visible;max-height:none!important}body.printing-statement .fin-statement{width:100%;font-size:6.5pt}body.printing-statement .fin-statement th,body.printing-statement .fin-statement td{padding:.8mm .9mm;position:static!important}body.printing-statement .fin-statement th *,body.printing-statement .fin-statement td *{font-size:inherit!important}body.printing-statement .fin-statement th:first-child,body.printing-statement .fin-statement td:first-child{white-space:normal;min-width:30mm;max-width:34mm}body.printing-statement .fin-statement button.link{all:unset;font:inherit;color:inherit}body.printing-statement .fin-statement tr{break-inside:avoid}body.printing-statement .fin-print-notes{color:#333;margin-top:4mm;padding-left:5mm;font-size:7pt}body.printing-statement .fin-statement{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
