:root{--ink:#152b48;--muted:#66788f;--line:#dfe7f1;--blue:#2563eb;--navy:#133d77;--bg:#f2f6fc;--radius:16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.55}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:#235dc6;text-decoration:none}a:hover{text-decoration:underline}button,.button{border:1px solid transparent;border-radius:9px;background:var(--blue);color:#fff;padding:10px 18px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:650;cursor:pointer;text-align:center;min-height:42px;line-height:1.4;text-decoration:none;white-space:nowrap}button:hover,.button:hover{filter:brightness(.96);text-decoration:none}button:disabled{opacity:.55;cursor:wait}.secondary{background:#fff;color:#254e82;border-color:#cbd9eb}.quiet{background:transparent;color:var(--muted);padding:4px 8px;min-height:32px}.danger{background:#c93548}.danger-outline{border-color:#f0b8bf;color:#b52c3e}.text-danger{color:#bc2f43}.text-link{font-weight:600}.small{font-size:13px}button.small,.button.small{padding:6px 11px;min-height:34px}.muted{color:var(--muted)}.warning-text{color:#a05d00}.success-text{color:#087e62}.required{color:#bf3750}.hint{font-size:13px;color:var(--muted);font-weight:400;margin-left:8px}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.3;letter-spacing:-.5px;margin-bottom:8px}h2{font-size:19px;margin-bottom:16px;line-height:1.5}h3{font-size:16px;margin-bottom:10px}p{margin-bottom:12px}small{font-size:12px}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:#657faf;margin-bottom:6px;display:block}.topbar{height:72px;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 30px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);font-size:18px;font-weight:750}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(140deg,#173d74,#3c7df0);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}.user-menu{display:flex;gap:12px;align-items:center;font-size:13px}.user-menu .form{margin:0}.user-menu a{color:var(--muted)}.shell{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:calc(100vh - 72px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:22px 14px;position:sticky;top:72px;height:calc(100vh - 72px);display:flex;flex-direction:column;gap:6px}.sidebar>a{color:#607087;padding:11px 14px;border-radius:9px;font-weight:600}.sidebar>a.active{color:#1b56b2;background:#eaf1ff;box-shadow:inset 3px 0 #2563eb}.sidebar-foot{margin-top:auto;color:#9aa7b8;padding:20px;font-size:12px}.workspace{padding:30px;max-width:1640px;width:100%;min-width:0;margin:0 auto}.titlebar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.titlebar p{margin:0}.backlink{display:inline-block;font-size:13px;margin-bottom:18px}.panel{background:#fff;border:1px solid var(--line);box-shadow:0 3px 16px #244c8410;border-radius:var(--radius);padding:24px;margin-bottom:22px;min-width:0}.priority{border-color:#aacafa;background:linear-gradient(115deg,#f7faff,#fff 65%)}.between{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.between h2{margin-bottom:12px}.toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:18px}.toolbar .form{margin:0}.toolbar input:not([type=checkbox]),.toolbar select{width:100%}.toolbar>input{max-width:280px}.toolbar>label{margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:14px;margin:0 0 22px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:70px;height:70px;right:-18px;bottom:-22px;border:12px solid currentColor;border-radius:50%;opacity:.07}.stat span{color:var(--muted);font-size:13px;display:block}.stat strong{font-size:32px;font-weight:750;line-height:1.8}.stat-1{color:#2967d3;background:#f5f9ff}.stat-2{color:#8a52d7;background:#fbf8ff}.stat-3{color:#079787;background:#f3fcfa}.stat-0{color:#de9037;background:#fffbf3}.counter{border-radius:6px;background:#e1edff;color:#2461bc;padding:2px 8px;font-size:13px;margin-left:6px}label{display:block;color:#435672;font-size:13px;font-weight:600;margin-bottom:14px}input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;min-width:0;border:1px solid #cbd7e7;border-radius:8px;background:#fff;color:var(--ink);min-height:43px;padding:9px 11px;font-size:16px;font-weight:400;margin-top:6px;outline:none}input:focus,select:focus,textarea:focus{border-color:#4c86e5;box-shadow:0 0 0 3px #2c76ed18}input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue);vertical-align:middle;flex:none;margin:0 7px 0 0}input[type=file]{padding:12px;margin:14px 0}input[type=date]{min-width:0;width:100%;min-height:43px;-webkit-appearance:none;appearance:none}textarea{resize:vertical}.form{margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.filter-grid{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(110px,1fr)) auto auto;gap:10px;align-items:end;margin-bottom:20px}.filter-grid label{margin:0}.filter-grid a{padding-bottom:9px}.inline{display:flex;align-items:center;gap:5px;font-weight:400;margin:18px 0}.editable-row{display:grid;gap:12px;padding:14px;background:#f7f9fd;border:1px solid #e4ebf5;border-radius:10px;margin-bottom:12px;align-items:end}.editable-row label{margin:0}.demand-row{grid-template-columns:minmax(0,1fr) 120px 36px}.inbound-row{grid-template-columns:minmax(170px,1.5fr) 100px minmax(140px,2fr) 36px}.user-row{grid-template-columns:1fr 1fr 150px 36px}.remove-row{background:transparent;color:#8998ad;border:1px solid #dce4f0;padding:0;font-size:24px;width:34px;min-height:40px}.form-footer{position:sticky;bottom:0;z-index:10;background:#f2f6fcf5;padding:15px 0;display:flex;gap:12px}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.info-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.info-grid strong{font-weight:500;overflow-wrap:anywhere}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px}.table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{background:#f2f6fc;color:#627791;font-weight:600;padding:12px 14px;white-space:nowrap}td{padding:14px;border-top:1px solid var(--line);vertical-align:middle;overflow-wrap:anywhere}tbody tr:hover{background:#f9fbff}td small{display:block;color:var(--muted);margin-top:4px}td input,td select{margin-top:0!important}.user-table{min-width:650px}.user-table input:not([type=checkbox]){min-width:135px}.user-table select{min-width:100px}.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-name{display:block;color:var(--ink);font-size:15px;font-weight:700;border-left:3px solid var(--project);padding-left:10px;max-width:260px}.project-table td{padding:14px 12px}.project-table td:nth-child(2),.project-table td:nth-child(4){white-space:nowrap}.compact-counts{display:grid;grid-template-columns:auto auto;gap:4px 12px;font-size:12px}.compact-counts b{font-size:14px;color:var(--ink)}.badge{display:inline-block;background:#eef2f7;color:#5e728b;font-size:12px;padding:4px 8px;border-radius:6px;white-space:nowrap}.b-warehouse,.b-normal,.b-received{background:#e9f8f0;color:#137653}.b-sent,.b-transit{background:#eeeaff;color:#6d4bba}.b-site,.b-active{background:#e9f2ff;color:#1a5cba}.b-partial,.b-repair,.b-draft{background:#fff4d9;color:#936213}.b-sold,.b-cancelled,.b-retired{background:#f0f1f4;color:#7b8391}.shipment-list{display:grid;gap:12px}.shipment{border:1px solid var(--line);border-radius:11px;padding:17px 18px;display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff}.shipment p{margin:5px 0;font-size:13px}.shipment small{color:var(--muted)}.shipment-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.tabs{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;border-bottom:1px solid var(--line)}.tabs a{white-space:nowrap;padding:10px 14px;color:#6a7c92;border-bottom:3px solid transparent;font-weight:600}.tabs a.selected{color:#245fbe;border-bottom-color:#2a6cdb}.notice{padding:15px 18px;border:1px solid #ead49d;background:#fffbeb;color:#815b16;border-radius:10px;margin-bottom:18px;overflow-wrap:anywhere}.notice p:last-child{margin:6px 0 0}.notice.error{background:#fff0f2;border-color:#f4c4ca;color:#a43143}.notice.success{background:#eefbf4;border-color:#b7e8cc;color:#147952}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty strong{display:block;color:#405779;margin:8px 0}.empty p{font-size:13px;max-width:400px;margin:0 auto}.empty-icon{display:inline-flex;align-items:center;justify-content:center;background:#eef4ff;border-radius:14px;width:44px;height:44px;font-size:28px;color:#88a5d4}.pick-list{border:1px solid var(--line);border-radius:10px;margin:16px 0;overflow:hidden}.select-all{background:#f1f6ff;padding:12px;margin:0;border-bottom:1px solid var(--line)}.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));max-height:340px;overflow-y:auto}.pick{padding:12px;display:flex;align-items:center;gap:6px;margin:0;border-bottom:1px solid #edf1f7;font-weight:400}.pick:has(input:checked){background:#eef5ff}.pick small{display:block;color:var(--muted)}details{margin:16px 0;border-top:1px solid var(--line);padding-top:14px}details.panel{padding:22px;border:1px solid var(--line)}summary{cursor:pointer;font-weight:600;color:#486181;padding:3px 0}details[open]>summary{margin-bottom:18px}.pagination{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:16px;font-size:13px;color:var(--muted)}.confirm-panel{max-width:700px}.tracking{padding:16px 0;border-bottom:1px solid var(--line)}.tracking:last-child{border:0}.tracking pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f4f7fc;padding:16px;border-radius:8px;font-size:12px}.timeline>div{border-left:2px solid #d5e5fc;padding:0 0 18px 20px}.timeline p{font-size:13px;margin:3px 0}.timeline-card{padding:16px;border-bottom:1px solid var(--line)}.timeline-card time{color:var(--muted);margin-right:12px}.label-card{text-align:center;max-width:300px}.label-card svg{width:190px;height:190px}.label-card strong{display:block;font-size:20px}.label-card small{color:var(--muted)}.capacity-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:0 14px;margin:12px 0}.capacity-inputs label{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 10px;gap:8px}.capacity-inputs input{width:60px!important;margin:0!important;font-size:15px!important;padding:5px!important;min-height:34px!important}.capacity-result{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.gantt-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:10px 0 18px}.gantt-legend span{display:inline-flex;align-items:center;gap:7px}.legend-plan{width:24px;height:12px;border:1px dashed #5888ce;background:#edf3ff;display:inline-block}.legend-actual{width:24px;height:4px;background:#5688cd;display:inline-block}.gantt-scroll{overflow:auto;max-height:680px;border:1px solid var(--line);border-radius:12px;overscroll-behavior-x:contain}.schedule-grid{--day:66px;--label:180px;width:calc(var(--label) + var(--days) * var(--day));min-width:100%;font-size:12px}.schedule-head,.schedule-row{display:grid;grid-template-columns:var(--label) minmax(0,1fr)}.schedule-head{position:sticky;top:0;z-index:6;border-bottom:1px solid var(--line);background:#f2f6fd}.schedule-label{position:sticky;left:0;z-index:3;padding:16px 12px;background:#fff;border-right:1px solid var(--line);display:flex;align-items:flex-start;gap:8px;line-height:1.6;overflow-wrap:anywhere}.schedule-label>a{color:var(--ink);font-weight:600}.schedule-head .schedule-label{background:#f2f6fd;z-index:8}.schedule-days{display:grid;grid-template-columns:repeat(var(--days),var(--day));text-align:center}.schedule-days>div{padding:9px 0;border-right:1px solid #e4ebf5}.schedule-days strong{display:block;font-size:14px}.schedule-days small{font-size:10px;color:#90a1b7}.schedule-days .today{background:#2866d8;color:#fff}.schedule-days .today small{color:#d4e4ff}.schedule-row{border-bottom:1px solid var(--line)}.schedule-row:last-child{border:0}.schedule-track{position:relative;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--day) - 1px),#e8edf5 calc(var(--day) - 1px),#e8edf5 var(--day));min-width:0}.project-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none}.schedule-bar{position:absolute;height:26px;border:1px dashed var(--project);border-left:4px solid var(--project);color:var(--project);background:#f2f6ff;border-radius:5px;padding:3px 8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:18px}.schedule-actual{position:absolute;height:4px;border-radius:2px;opacity:.8}.schedule-event{position:absolute;display:flex;justify-content:center;gap:3px;width:62px;margin-left:2px;font-size:10px;line-height:20px;height:22px;border-radius:5px;background:var(--project);color:#fff!important;border:1px solid #ffffff80;white-space:nowrap}.schedule-event:hover{text-decoration:none;filter:brightness(.9)}.schedule-event b{font-size:11px}[hidden]{display:none!important}.paper-only,.print-only{display:none}.login,.install{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(ellipse at top left,#dceaff,transparent 55%),#f3f6fc}.login-card,.install-card{background:#fff;border:1px solid var(--line);box-shadow:0 20px 70px #1e477c16;border-radius:22px;padding:38px;width:100%;max-width:460px}.install-card{max-width:800px}.login-card>.brand-mark,.install-card>.brand-mark{margin-bottom:22px}.login-card button{width:100%;margin-bottom:20px}.login-card h1{font-size:26px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:80;background:#173350;color:#fff;border-radius:10px;padding:12px 22px;box-shadow:0 8px 30px #0002}.chips,.mini-stats{display:flex;gap:12px;flex-wrap:wrap}.chip{display:inline-block;padding:6px 10px;border:1px solid var(--line);border-radius:6px;margin:4px}.paper-check{display:inline-block;width:16px;height:16px;border:1px solid #333}#receive,#capacity{scroll-margin-top:90px}
@media(max-width:1150px){.shell{grid-template-columns:165px minmax(0,1fr)}.workspace{padding:22px}.sidebar{padding:16px 10px}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inbound-row{grid-template-columns:minmax(140px,1fr) 85px minmax(100px,1fr) 32px}.project-table th,.project-table td{padding:10px 8px;font-size:12px}.row-actions{gap:6px}}
@media(max-width:760px){.topbar{height:62px;padding:0 16px;gap:8px}.brand{font-size:15px;gap:8px}.brand-mark{width:32px;height:32px;font-size:20px}.user-menu{font-size:11px;gap:4px}.user-menu button{font-size:12px;padding:4px}.shell{display:block}.sidebar{position:sticky;top:62px;z-index:25;display:flex;flex-direction:row;height:auto;overflow-x:auto;padding:7px 10px;border-right:0;border-bottom:1px solid var(--line);gap:4px}.sidebar>a{white-space:nowrap;font-size:13px;padding:9px 12px}.sidebar>a.active{box-shadow:inset 0 -2px #2563eb}.sidebar-foot{display:none}.workspace{padding:20px 14px}.titlebar{margin-bottom:20px}h1{font-size:24px}h2{font-size:17px}.panel{padding:18px 15px;border-radius:13px;margin-bottom:18px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:14px 16px}.stat strong{font-size:28px}.form-grid,.info-grid,.two-col{grid-template-columns:1fr}.form-grid{gap:0}.info-grid{gap:14px}.toolbar{gap:8px}.toolbar>label{flex:1;min-width:118px}.toolbar>input{max-width:none}.filter-grid{gap:10px}.filter-grid>label:first-of-type{grid-column:1/-1}.demand-row{grid-template-columns:minmax(0,1fr) 76px 28px;gap:8px;padding:10px}.remove-row{width:28px}.inbound-row{grid-template-columns:minmax(0,1fr) 76px 28px;gap:8px;padding:10px}.inbound-row label:nth-child(3){grid-row:2;grid-column:1/3}.inbound-row .remove-row{grid-column:3;grid-row:1}.user-row{grid-template-columns:1fr 1fr;gap:8px}.user-row .remove-row{justify-self:end}.shipment{align-items:flex-start;flex-direction:column;gap:12px;padding:14px}.shipment-actions{width:100%;justify-content:space-between}.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr{display:block;width:100%}.responsive-table tr{padding:12px;border-top:1px solid var(--line)}.responsive-table tr:first-child{border:0}.responsive-table td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;border:0;padding:6px 0;white-space:normal!important}.responsive-table td:before{content:attr(data-label);color:#8190a6;font-weight:400;font-size:12px}.responsive-table td>small{grid-column:2;margin:0}.responsive-table .project-name{font-size:14px}.project-table td:nth-child(4){align-items:start}.project-table td:nth-child(4)>small:first-child{grid-row:1}.project-table td:nth-child(5)>small{grid-column:2}.compact-counts{grid-template-columns:repeat(2,1fr)}.schedule-grid{--label:120px;--day:66px}.schedule-label{padding:12px 8px;font-size:11px}.board-panel .between>.toolbar{margin-bottom:10px}.gantt-scroll{max-height:580px}.capacity-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}.capacity-inputs label{font-size:11px;padding:8px 7px}.capacity-inputs input{width:48px!important}.hint{display:block;margin-left:0;margin-top:4px}.form-footer{padding-bottom:max(14px,env(safe-area-inset-bottom));background:#f2f6fc}.login-card,.install-card{padding:25px}.pagination{font-size:12px}#receive,#capacity{scroll-margin-top:128px}}
@media print{@page{size:A4;margin:14mm}html,body{background:#fff!important;color:#000;font:11pt Arial,"Microsoft YaHei",sans-serif}.topbar,.sidebar,.screen-only,.noprint,.form,.toolbar,.backlink,#toast,.form-footer{display:none!important}.shell{display:block;min-height:0}.workspace{padding:0;max-width:none}.paper-only,.print-only{display:block!important}.panel{border:0;box-shadow:none;padding:0}.shipping-paper h1{text-align:center;font-size:21pt;margin-bottom:8mm}.shipping-paper h2{font-size:12pt;margin:6mm 0 3mm}.paper-heading{display:flex;justify-content:space-between;border-bottom:2px solid #333;padding-bottom:4mm}.paper-address{padding:5mm 0}.paper-address p{margin:2mm 0}.shipping-paper table{font-size:10pt;width:100%}.shipping-paper th,.shipping-paper td{border:1px solid #444;padding:2.5mm 3mm;background:#fff!important;color:#000}.shipping-paper thead{display:table-header-group}.shipping-paper tr{break-inside:avoid}.shipping-paper td:last-child{text-align:center}.signatures{display:flex;justify-content:space-between;margin-top:12mm;break-inside:avoid}a{color:#000}.label-card{margin:0 auto;border:1px solid #aaa;padding:8mm;break-inside:avoid}.label-card svg{width:45mm;height:45mm}}

.schedule-more{padding:0;min-height:22px;font-weight:500}

@media(max-width:980px) and (min-width:761px){.shell{display:block}.sidebar{position:sticky;top:72px;z-index:25;display:flex;flex-direction:row;height:auto;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px 14px}.sidebar>a{white-space:nowrap;padding:8px 12px;font-size:13px}.sidebar-foot{display:none}.workspace{padding:24px 20px}.project-table{min-width:680px}.schedule-grid{--label:150px}}
/* v1.2: category-first workflows, readable print layouts and isolated practice */
.stock-stat{position:relative}.stock-number{display:block;padding:0;border:0;background:none;color:inherit;text-align:left;min-height:0}.stock-number:hover{background:none;filter:none}.stock-number small{display:block;color:var(--muted);font-size:10px;font-weight:400}.stock-popover{position:fixed;z-index:100;width:350px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 55px #12294f33;color:var(--ink)}.stock-popover strong{font-size:16px}.stock-lines{display:grid;gap:0;margin:10px 0}.stock-lines>div{display:flex;justify-content:space-between;border-bottom:1px solid #eef2f7;padding:8px 0;font-size:13px}.stock-lines b{font-size:14px}.packing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:20px 0}.packing-stat{padding:15px;border:1px solid #dce9fa;border-radius:12px;background:#f5f9ff}.packing-stat>strong{display:block;margin-bottom:12px}.packing-stat>small{display:block;color:var(--muted);margin-top:10px}.category-picker{display:grid;gap:10px;margin:16px 0}.pick-category{border:1px solid var(--line);border-radius:12px;overflow:hidden}.pick-category-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:#f7faff}.pick-category-head small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.pick-category-head>label{width:105px;flex:none;font-size:12px;margin:0}.pick-category-head input{margin-top:3px!important}.pick-category>details{margin:0;padding:12px 16px;border-top:1px solid var(--line)}.pick-category>details[open]>summary{margin-bottom:12px}.pick-category .pick-grid{margin-top:12px}.code-block{padding:14px;background:#f1f5fb;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;font-size:12px}code{overflow-wrap:anywhere}.danger-zone{border-color:#ecc0c6}.print-preview .shipping-paper{max-width:900px;margin:0 auto 24px;padding:35px;background:#fff;border:1px solid var(--line);box-shadow:0 5px 20px #1a34540d}.shipping-paper h1{text-align:center}.paper-heading{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #333;padding-bottom:12px}.shipping-paper table th,.shipping-paper table td{border:1px solid #777}.shipping-paper .paper-note{width:20%}.shipping-paper .signatures{display:flex;justify-content:space-between;gap:20px;margin-top:35px}.shipping-paper .signatures p{margin:10px 0}.labels-sheet{display:flex;flex-wrap:wrap;gap:3mm;max-width:190mm;align-content:flex-start}.qr-label{box-sizing:border-box;width:40mm;height:34mm;border:.2mm solid #ccc;background:white;border-radius:1mm;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:1mm;color:#000;break-inside:avoid}.qr-label [data-qr]{width:22mm;height:22mm;flex:none}.qr-label svg{width:22mm;height:22mm;display:block}.qr-label strong{font:7pt Arial,monospace;line-height:1.1;white-space:nowrap}.qr-label small{font-size:6pt;line-height:1.3;white-space:nowrap;max-width:100%;overflow:hidden}.tutorial-open{overflow:hidden}.tutorial-overlay{position:fixed;inset:0;z-index:200;background:#172a4bcc;display:flex;align-items:center;justify-content:center;padding:20px;overscroll-behavior:contain}.tutorial-window{width:850px;max-width:100%;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:auto;background:#f4f7fd;border-radius:20px;box-shadow:0 24px 90px #0005}.tutorial-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:20px 26px;background:#fff;border-bottom:1px solid var(--line)}.tutorial-head h2{margin:3px 0}.tutorial-window footer{padding:18px 26px;color:var(--muted);border-top:1px solid var(--line);background:#fff}.tutorial-switch{display:flex;gap:10px;margin-bottom:16px}.tutorial-progress{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.tutorial-progress span{padding:7px 10px;background:#e5ecf8;border-radius:7px;font-size:12px;color:#637897}.tutorial-progress span.current{background:#2869df;color:white}.tutorial-progress span.done{background:#dff5ea;color:#198566}#tutorial-content{padding:24px 26px}.tutorial-stage{background:#fff;border:1px solid var(--line);padding:24px;border-radius:14px}.tutorial-stage h3{font-size:22px;margin:12px 0}.practice-stock{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.practice-stock>div{background:#eff6ff;padding:18px;border-radius:10px}.practice-stock strong{display:block;font-size:25px;color:#2265ce;margin-top:8px}.tutorial-complete{width:64px;height:64px;border-radius:50%;background:#e0f5e9;color:#178757;display:grid;place-items:center;font-size:38px;margin:15px 0}.tutorial-launch{white-space:nowrap;font-size:12px}.help-link{white-space:nowrap}.user-menu{flex-wrap:wrap}.user-menu .quiet{white-space:nowrap}.stock-popover .quiet{padding:0 8px}.paper-note{min-width:90px}
@media(max-width:760px){.topbar{height:auto;min-height:72px;align-items:center;padding:10px 12px}.brand{flex:none}.brand>span:last-child{font-size:12px;max-width:62px;line-height:1.4}.user-menu{justify-content:flex-end;gap:3px 8px;max-width:calc(100% - 110px)}.user-menu a{font-size:11px}.sidebar{top:72px}.packing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.packing-stat{padding:12px}.packing-stat strong{font-size:14px}.packing-stat small{font-size:11px}.pick-category-head{padding:12px;gap:10px}.pick-category-head>label{width:86px}.tutorial-overlay{padding:8px}.tutorial-window{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);border-radius:14px}.tutorial-head{padding:14px}.tutorial-head .eyebrow{font-size:9px}.tutorial-head button{font-size:12px;min-width:76px}#tutorial-content{padding:16px 12px}.tutorial-stage{padding:18px 14px}.tutorial-window footer{padding:12px 16px}.practice-stock{grid-template-columns:1fr}.print-preview{overflow-x:auto}.print-preview .shipping-paper{min-width:680px;padding:20px}.tutorial-progress{gap:5px}.tutorial-progress span{font-size:10px;padding:6px}.labels-sheet{justify-content:center}}
@media print{.notice,.tutorial-overlay,.stock-popover{display:none!important}.has-print-document .workspace>:not(.print-document){display:none!important}.has-print-document .print-document{display:block!important}.has-print-document .shipping-paper{display:block!important;margin:0;padding:0;max-width:none;min-width:0;box-shadow:none;border:0;break-after:page;page-break-after:always}.has-print-document .shipping-paper:last-child{break-after:auto;page-break-after:auto}.shipping-paper .paper-note{width:20%;min-width:26mm}.shipping-paper td:nth-child(5){text-align:center}.shipping-paper td:last-child{text-align:left}.shipping-paper .signatures{margin-top:10mm;break-inside:avoid}.shipping-paper .signatures p{margin:3mm 0}.has-print-document .labels-sheet{display:flex!important;gap:3mm;max-width:none;justify-content:flex-start}.qr-label{width:40mm;height:34mm;break-inside:avoid;page-break-inside:avoid}.qr-label svg{width:22mm!important;height:22mm!important}.print-preview{overflow:visible}}

/* Shared credit and non-interactive author watermark. */
.site-footer{position:relative;padding:20px 24px max(20px,env(safe-area-inset-bottom));text-align:center;color:#68798e;font-size:12px;line-height:1.8;background:#f2f6fc;border-top:1px solid #dfe7f1;overflow-wrap:anywhere}
.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-legal{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:0 10px}.site-credit{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:3px;color:#7b899a;font-size:11px}
.author-watermark{position:fixed;right:22px;bottom:106px;z-index:6;color:rgba(53,77,106,.15);font-size:17px;font-weight:600;letter-spacing:1px;transform:rotate(-14deg);pointer-events:none;user-select:none;-webkit-user-select:none;white-space:nowrap}
.login,.install{display:flex;flex-direction:column;justify-content:center;gap:28px;min-height:100vh;min-height:100dvh;padding:32px 20px 0}.login .site-footer,.install .site-footer{background:transparent;border:0;width:100%;margin-top:auto}.login-card,.install-card{margin:auto auto 0;flex:none}.login .author-watermark,.install .author-watermark{bottom:115px}
.update-diagnostics dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px 18px;margin-top:20px;font-size:13px}.update-diagnostics dt{color:var(--muted)}.update-diagnostics dd{margin:0;overflow-wrap:anywhere}
@media(max-width:600px){.site-footer{padding:18px 16px max(18px,env(safe-area-inset-bottom));font-size:11px}.author-watermark{font-size:13px;right:14px;bottom:122px}.update-diagnostics dl{grid-template-columns:1fr;gap:3px}.update-diagnostics dd{margin-bottom:10px}}
@media print{.site-footer,.author-watermark{display:none!important}}
