:root{--green:#123b70;--line:#e3e9f2}body{background:#f4f7fb;color:#22334b}.sidebar,.login-story{background:#fff;color:#22334b;border-right:1px solid #e3e9f2}.brand{color:#123b70;gap:12px}.flyai-logo{width:62px;height:62px;object-fit:contain}.brand small,.login-story p,.login-story small{color:#62748d}.customer-name{padding:14px 0 20px;color:#4c6481;font-size:16px;border-bottom:1px solid #e3e9f2}.nav-label,.sidebar-foot{color:#64758b}.nav button{color:#53657d}.nav button.active,.nav button:hover{background:#eaf2ff;color:#123b70}.workbench-apps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.workbench-apps button{background:#f5f8fd;border:1px solid #e6edf6;color:#22334b;text-align:left;padding:20px;border-radius:12px;display:flex;flex-direction:column;gap:10px}.workbench-apps button:hover{border-color:#123b70;background:#edf4ff}.workbench-apps span{font-size:28px;color:#123b70}.workbench-apps b{font-size:18px}.workbench-apps small{color:#64758b;line-height:1.5}.scan-main{background:#123b70}.scan-main button{background:#fff;color:#123b70}.scan-main p{color:#deebff}.quick-grid{display:none}.sidebar-foot{line-height:1.8}.metric.featured{background:#123b70}.login-story h1{color:#163965}.login-story .brand small{display:block}
@media(max-width:1000px){.workbench-apps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.flyai-logo{width:44px;height:44px}.customer-name{padding:8px 0;font-size:16px}.workbench-apps button{padding:17px 12px;min-height:125px}.workbench-apps b{font-size:18px}.login-story small{display:block;margin-top:10px}.sidebar-foot{display:none}.nav button{font-size:16px}.worker .workbench-apps{grid-template-columns:1fr}.worker .workbench-apps button{min-height:100px}.worker .workbench-apps b{font-size:22px}}

/* Brief upward flight, then rest at the original mark position. */
.flyai-logo{transform-origin:58% 64%}.flyai-intro{animation:flyai-rise 2.4s ease-in-out 1}
@keyframes flyai-rise{0%,100%{transform:none}18%{transform:translate(1px,-2px) rotateY(-18deg) rotate(-2deg)}32%{transform:translate(3px,-5px) rotateY(10deg) rotate(-3deg)}48%{transform:translate(5px,-8px) rotateY(-18deg) rotate(-4deg)}65%,78%{transform:translate(7px,-11px) rotateY(0) rotate(-4deg)}}
@media(hover:hover) and (pointer:fine){.brand:hover .flyai-logo{animation:flyai-hover-rise 2.4s ease-in-out 1}}
@keyframes flyai-hover-rise{0%,100%{transform:none}18%{transform:translate(1px,-2px) rotateY(-18deg) rotate(-2deg)}32%{transform:translate(3px,-5px) rotateY(10deg) rotate(-3deg)}48%{transform:translate(5px,-8px) rotateY(-18deg) rotate(-4deg)}65%,78%{transform:translate(7px,-11px) rotateY(0) rotate(-4deg)}}
@media(prefers-reduced-motion:reduce){.flyai-logo,.brand:hover .flyai-logo{animation:none;transform:none}}
@media print{.flyai-logo,.brand:hover .flyai-logo{animation:none;transform:none}}
@media(min-width:701px){.sidebar{overflow-y:auto}.sidebar>.brand,.sidebar>.customer-name,.sidebar>.nav-label,.sidebar>.nav,.sidebar>.sidebar-foot{flex-shrink:0}.shell{grid-template-columns:270px minmax(0,1fr)}}
:root{--muted:#53657d}body{font-size:18px;line-height:1.6}small{font-size:16px}
.brand{padding-bottom:24px}.brand-type{width:112px;flex:0 0 112px}.brand .brand-type b{display:block;font-size:28px;letter-spacing:0;line-height:1.2;white-space:nowrap}
.brand .brand-type small{display:flex;justify-content:space-between;width:100%;margin:6px 0 0;font-family:Arial,sans-serif;font-size:16px;font-weight:800;letter-spacing:0;line-height:1.2;color:#123b70;white-space:nowrap}
.brand-type small span{display:inline-block}.brand-type small span:nth-child(6){width:5px}
button,input,select,textarea{font-size:18px;min-height:48px}button.small{font-size:16px;min-height:44px}.nav button{font-size:18px}.panel h2,dialog h2,.flowcard h3{font-size:22px}
.pagehead p,th,td small,.work-item p,.work-item .right,.empty,.status-line{color:#53657d}.metric.featured label,.metric.featured small{color:#e0ebf7}.notice{color:#405632}
.topbar{min-height:79px;height:auto;gap:12px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}.account{flex-wrap:wrap}.pagehead,.panel-head{flex-wrap:wrap}.row-edit{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid>*{min-width:0}.scan-manual input{min-width:0}.scan-manual button{flex-shrink:0}
@media(max-width:700px){.topbar,.worker .topbar{height:auto;min-height:72px}.brand{padding-top:12px;padding-bottom:0}.flyai-logo{width:54px;height:54px}.nav button,.worker .nav button{font-size:18px}.row-edit,.row-attrs{grid-template-columns:repeat(2,minmax(0,1fr))}.login-story h1{letter-spacing:1px}.metric{padding:14px}.account{font-size:16px}.customer-name{font-size:16px}}

/* Customer's 50 x 100 mm portrait label. */
.print-page .labels{display:flex;flex-wrap:wrap;gap:10mm}
.print-page .label-card{width:50mm;height:100mm;padding:1mm;border:0;border-radius:0;background:white;color:black;overflow:hidden;break-inside:avoid;font-family:"Microsoft YaHei",sans-serif;box-shadow:0 0 4px #999}
.label-card .card-top{height:17mm;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 2mm 2mm;font-size:16px}
.label-card .card-line{height:5.67mm;display:grid;grid-template-columns:14mm 1fr;align-items:center;border-bottom:.25mm solid black;font-size:15px;line-height:1.1}
.label-card .card-line b{text-align:center;font-weight:700}.label-card .card-line span{text-align:center;overflow-wrap:anywhere;font-size:15px}
.label-card .card-bottom{height:22mm;display:grid;grid-template-columns:24mm 24mm;align-items:start}
.label-card .card-bottom .card-line{height:5.5mm;grid-template-columns:11mm 1fr}
.print-page .label-card .card-bottom img{position:static;float:none;width:24mm;height:24mm;margin:0;object-fit:contain}
@media print{@page{size:50mm 100mm;margin:0}html,body{margin:0!important;padding:0!important;background:white!important}.print-page{margin:0!important;padding:0!important}.print-page .labels{display:block;margin:0;padding:0}.print-page .label-card{margin:0!important;box-shadow:none;break-after:page;page-break-after:always}.print-page .label-card:last-child{break-after:auto;page-break-after:auto}.print-tools{display:none!important}}

/* Keep the focused login field inside the keyboard-reduced viewport. */
.login.keyboard-active{position:fixed;inset:0 0 auto;display:block;height:var(--login-visible-height,100dvh);min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:auto;padding-bottom:24px}.login.keyboard-active .login-form{align-items:flex-start}.login.keyboard-active .login-story{padding:24px}.login.keyboard-active .login-story h1,.login.keyboard-active .login-story p,.login.keyboard-active .login-story>small{display:none}
.import-excel table{font-size:14px;border-collapse:collapse}
.import-excel th,.import-excel td{border:1px solid #cdd7e3;padding:6px;color:#172b46}
@media(min-width:901px){#modal.order-dialog{width:calc(100vw - 24px);max-width:calc(100vw - 24px)}.import-excel table{width:max-content;min-width:100%;table-layout:auto}.import-excel th,.import-excel td{white-space:nowrap;word-break:normal;overflow-wrap:normal}.import-excel .table-wrap{overflow:visible}}
@media(max-width:900px){.import-excel table{font-size:16px}.import-excel td{white-space:normal;overflow-wrap:anywhere}}
.report-table-tools{margin:12px 0;gap:10px;align-items:end;flex-wrap:wrap}.report-table-tools label{min-width:160px}.report-table-tools input{flex:1;min-width:160px}.report-table-tools+.table-wrap table{table-layout:fixed;min-width:0;width:100%}.report-table-tools+.table-wrap th,.report-table-tools+.table-wrap td{white-space:normal;overflow-wrap:anywhere}.report-table-tools+.table-wrap th{vertical-align:middle}

/* Progress filters and grouped order cards: keep controls readable without oversized rows. */
.content .daily-filters{gap:12px 16px;margin:16px 0;grid-template-columns:repeat(4,minmax(0,1fr))}
.daily-filters label{gap:5px}.daily-filters input,.daily-filters select{padding:8px 10px;min-height:48px}
.content .report-table-tools{gap:8px;margin:10px 0;align-items:center}
.report-table-tools label{min-width:0;flex:0 1 180px;gap:4px}.report-table-tools input{min-width:120px;flex:1 1 200px}
.report-table-tools button{padding:8px 12px}.report-table-tools [role=status]{font-size:16px;flex:0 1 auto;overflow-wrap:anywhere}
.content .spec-block{min-width:0;max-width:100%}.content .spec-row{display:block;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal}
.report-table-tools+.table-wrap td{vertical-align:top}.report-table-tools+.table-wrap td .actions{gap:6px;flex-wrap:wrap}
.order-summary-layout .table-wrap{overflow:visible}
.order-summary-layout table,.order-summary-layout tbody{display:block;width:100%}
.order-summary-layout thead{display:none}
.content .order-summary-layout tbody tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 16px;padding:16px;margin:12px 0;border:1px solid #dce5f0;border-radius:12px;background:#fff}
.content .order-summary-layout tbody tr[hidden]{display:none}
.content .order-summary-layout td{display:block;min-width:0;width:auto!important;padding:0;border:0;vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.content .order-summary-layout td:before{content:attr(data-label);display:block;margin-bottom:4px;color:#53657d;font-size:16px;font-weight:400}
.content .order-summary-layout td:nth-child(9){grid-column:4;grid-row:2}
.content .order-summary-layout td:nth-child(8){grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;padding-top:10px;border-top:1px solid #e3e9f2}
.content .order-summary-layout td:nth-child(8):before{grid-column:1/-1;font-weight:600}
.size-progress{display:grid;gap:2px;padding:8px 12px;border-radius:8px;background:#f2f6fc;font-size:16px;line-height:1.5}
.size-progress strong{color:#123b70}.size-progress span{display:flex;justify-content:space-between;gap:8px}.size-progress b{font-variant-numeric:tabular-nums}
.content .order-summary-layout td.empty{grid-column:1/-1}.content .order-summary-layout td.empty:before{display:none}
@media(min-width:901px) and (max-width:1200px){.content .daily-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.content .daily-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.content .order-summary-layout tbody tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.content .order-summary-layout td:nth-child(9){grid-column:2;grid-row:4}.content .order-summary-layout td:nth-child(8){grid-row:5}.content .report-table-tools label{flex:1 1 130px}}
@media(max-width:520px){.content .daily-filters{grid-template-columns:1fr;gap:10px}.content .report-table-tools input{flex-basis:100%}.content .report-table-tools [role=status]{flex-basis:100%}}

.cards-table-layout{min-width:0;max-width:100%}.cards-table-layout .table-wrap{width:100%;max-width:100%}
.cards-table-layout table{table-layout:fixed;width:100%;min-width:0}
.cards-table-layout th,.cards-table-layout td{white-space:normal;overflow-wrap:anywhere;vertical-align:top;padding:12px 8px}
.cards-table-layout .tag{display:inline-block;max-width:100%;white-space:normal;margin:0 4px 6px 0}
.cards-table-layout td:last-child button{max-width:100%;white-space:normal;margin-bottom:6px;padding:8px 10px}
@media(min-width:901px){.cards-table-layout th:nth-child(1){width:6%}.cards-table-layout th:nth-child(2){width:22%}.cards-table-layout th:nth-child(3){width:20%}.cards-table-layout th:nth-child(4){width:9%}.cards-table-layout th:nth-child(5){width:29%}.cards-table-layout th:nth-child(6){width:14%}}

.cutting-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}.cut-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;margin-top:16px}.cut-preview article{border:1px solid #dce4ed;border-radius:10px;padding:14px;min-width:0;overflow-wrap:anywhere}.cut-preview p{margin:8px 0}.cut-example{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}textarea[name="cut-text"]{width:100%;box-sizing:border-box;min-width:0;font-size:18px;line-height:1.6}

/* Compact order entry without reducing the established Chinese font sizes. */
.order-dialog #modal-form>.form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}
.order-dialog .draft-notice{padding:10px 14px;margin:10px 0 14px}
.order-dialog label{gap:6px;min-width:0}
.order-dialog fieldset{min-width:0;margin:14px 0;padding:12px}
.order-dialog .form-grid input,.order-dialog .form-grid select{min-height:48px;padding:10px 12px}
.order-input-actions{margin:14px 0;gap:12px;align-items:center}
.order-dialog .import-drop{padding:12px;flex:1;min-width:0}
.order-dialog .import-drop p{margin:6px 0}
.customer-order-text{box-sizing:border-box;width:100%;max-width:100%;font-size:16px;line-height:1.5}
@media(max-width:1100px){.order-dialog #modal-form>.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.order-dialog #modal-form>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.order-dialog #modal-form>.form-grid{grid-template-columns:1fr}.order-input-actions{display:flex;flex-direction:column;align-items:stretch}.order-dialog .import-drop{width:100%;box-sizing:border-box}}

.compact-orders table{width:100%;min-width:0;table-layout:fixed}
.content .compact-orders th,.content .compact-orders td{padding:10px 8px;vertical-align:top;overflow-wrap:anywhere;white-space:normal;font-size:16px;line-height:1.5}
.compact-orders th:nth-child(1){width:19%}.compact-orders th:nth-child(2){width:24%}.compact-orders th:nth-child(3){width:11%}.compact-orders th:nth-child(4){width:9%}.compact-orders th:nth-child(5){width:10%}.compact-orders th:nth-child(6){width:11%}.compact-orders th:nth-child(7){width:16%}
.content .compact-orders .spec-block{display:grid;gap:4px}.content .compact-orders .spec-row{border:0;background:none;border-radius:0;padding:0;margin:0;font-size:16px}
.compact-orders td small{margin-top:4px;line-height:1.5}.compact-orders .actions{gap:6px;align-items:start;flex-wrap:wrap}.compact-orders .actions button{padding:6px 8px;min-height:36px;font-size:16px;line-height:1.4;white-space:normal}.compact-orders .tag{padding:4px 6px;margin:0;font-size:16px;white-space:normal}

/* Desktop review density; preserve the mobile touch sizes. */
@media(min-width:901px){
 .content .panel{padding:16px;margin-bottom:16px}.content .panel h2{margin:0 0 12px}.content .notice{padding:10px 14px;margin:10px 0}.content .pagehead{margin-bottom:18px}
 .content th,.content td{font-size:16px;line-height:1.5;padding:10px 8px;vertical-align:top}.content td .actions{gap:6px;flex-wrap:wrap}.content td button{font-size:16px;padding:6px 10px;min-height:36px}
 .content .form-grid{gap:12px 16px;grid-template-columns:repeat(4,minmax(0,1fr))}.content .form-grid label{gap:5px}.content .form-grid input,.content .form-grid select{padding:8px 10px;min-height:44px}
 #customer-order-content>fieldset{padding:12px;margin:12px 0}#customer-order-content p{margin:8px 0}#customer-order-content td,#customer-order-content th{font-size:16px;padding:6px 8px;vertical-align:top}#customer-order-content .table-wrap{margin:8px 0}
 .customer-size-review table{width:100%;table-layout:fixed}.customer-size-review tbody{font-variant-numeric:tabular-nums}
 .order-dialog .notice{padding:10px 12px;margin:10px 0}.order-dialog .card-fields{gap:8px}.order-dialog .card-fields>div{padding:8px}
}
#customer-calculated td{overflow-wrap:anywhere}#customer-calculated table{width:100%;table-layout:fixed}#customer-calculated th:last-child{width:40%}

.master-review table,.data-review table{width:100%;min-width:0;table-layout:fixed}.master-review th,.master-review td,.data-review th,.data-review td{white-space:normal;overflow-wrap:anywhere;vertical-align:top;font-size:16px;padding:8px}
@media(min-width:901px){.master-review th:nth-child(4){width:34%}.master-review th:nth-child(1){width:14%}.master-review th:last-child{width:12%}.master-review .table-wrap{overflow:visible}.master-review .actions{gap:4px}.master-review td button{padding:6px;min-height:36px}}

/* Matching creation actions across workbench and order entry. */
.pagehead .creation-action{box-sizing:border-box;width:190px;max-width:100%;min-height:48px;padding:12px 16px;font-size:18px;line-height:1.4;font-weight:700;flex-shrink:0;background:#123b70;color:#fff;border:1px solid transparent}
.pagehead .creation-import{width:300px}
.pagehead .notice-action{background:#18734b}
.pagehead .creation-action:hover{background:#0d2d56}
.pagehead .notice-action:hover{background:#125a3a}
.pagehead .creation-action:focus-visible{outline:3px solid #6c91c4;outline-offset:3px}
@media(max-width:700px){.pagehead .creation-action{width:100%;min-height:48px}}

/* Contract quantities mirror the size columns of the customer's order sheet. */
.contract-matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:0;border:1px solid #ccd8e6;margin:12px 0}
.contract-size{min-width:0;border-right:1px solid #ccd8e6;background:#fff}
.contract-size label{display:flex;flex-direction:column;gap:4px;margin:0;padding:6px;color:#53657d;font-size:16px;border-bottom:1px solid #e3e9f2}
.contract-size label:first-child{background:#eaf2ff;color:#123b70;font-weight:700}
.contract-size input{width:100%;min-width:0;min-height:36px;padding:5px;text-align:center;font-size:16px;box-sizing:border-box}
.contract-totals{font-weight:700;color:#123b70}
.contract-spec-grid{display:grid;grid-template-columns:100px repeat(var(--size-count),minmax(0,1fr));border:1px solid #ccd8e6;margin:8px 0}
.contract-spec-column,.contract-spec-labels{min-width:0;display:grid;grid-auto-rows:34px;align-content:start;border-right:1px solid #e3e9f2}
.contract-spec-labels>*{display:flex;align-items:center;padding:0 6px;border-bottom:1px solid #e3e9f2;font-size:14px;background:#f4f7fb}
.contract-spec-column>b{padding:6px;text-align:center;font-size:14px;background:#eaf2ff;color:#123b70}
.contract-spec-column label{display:block;margin:0;padding:2px;border-bottom:1px solid #e3e9f2;min-width:0}
.contract-spec-column label>span{display:none}
.contract-spec-column input{box-sizing:border-box;width:100%;min-width:0;min-height:28px;height:28px;font-size:14px;line-height:1.3;padding:3px 5px;border-radius:3px}
@media(min-width:701px){
 #customer-order-content{font-size:16px}#customer-order-content>fieldset{padding:8px 10px;margin:8px 0}
 #customer-order-content .form-grid{gap:6px 12px}#customer-order-content .form-grid label{font-size:16px;gap:3px}#customer-order-content .form-grid input{min-height:36px;padding:5px 8px;font-size:16px}
 .contract-matrix{margin:8px 0}.contract-size label{font-size:14px;gap:2px;padding:3px 4px;line-height:1.3}.contract-size input{font-size:16px;min-height:30px;padding:3px}.contract-totals{margin:6px 0!important;font-size:16px}
}
@media(max-width:700px){
 .contract-matrix{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-size input{min-height:48px}
 .contract-spec-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0}.contract-spec-labels{display:none}.contract-spec-column{grid-auto-rows:auto;border:1px solid #ccd8e6}.contract-spec-column>b{font-size:16px}.contract-spec-column label>span{display:block;font-size:16px;padding:3px}.contract-spec-column input{height:48px;min-height:48px;font-size:16px}
}
