*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;background:#f3f6fb;color:#111827}.top{background:linear-gradient(120deg,#356dd8,#111827);color:white;padding:28px 6%;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:900;color:#bdd3ff}.top h1{margin:10px 0 6px;font-size:36px}.top p{margin:0;color:#e5edff;max-width:760px}.top nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.btn,.primary,button{border:0;border-radius:12px;padding:11px 16px;font-weight:900;text-decoration:none;cursor:pointer}.btn{background:#263247;color:white;border:1px solid rgba(255,255,255,.25)}.primary,.primaryBtn{background:#2563eb!important;color:#fff!important;box-shadow:0 8px 18px rgba(37,99,235,.25)}.btn.muted{background:#374151}.dashWrap{width:min(1720px,94%);margin:18px auto 40px}.kpiGrid{display:grid;grid-template-columns:repeat(8,1fr);gap:12px;margin-bottom:14px}.kpi{background:white;border:1px solid #dfe6f0;border-radius:18px;padding:16px;box-shadow:0 10px 22px rgba(15,23,42,.07)}.kpi span{display:block;font-size:12px;color:#475569;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.kpi strong{font-size:30px;display:block;margin:6px 0}.kpi small{color:#64748b;font-weight:700}.kpi.danger{border-left:5px solid #ef4444}.kpi.warn{border-left:5px solid #f59e0b}.kpi.success{border-left:5px solid #22c55e}.insightGrid{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;margin-bottom:14px}.panel{background:white;border:1px solid #dfe6f0;border-radius:18px;box-shadow:0 12px 30px rgba(15,23,42,.08);padding:18px}.mini h3{margin:0 0 10px}.barRow{position:relative;display:grid;grid-template-columns:1fr 45px;gap:10px;padding:8px 0;border-bottom:1px solid #eef2f7;overflow:hidden}.barRow span,.barRow b{position:relative;z-index:2;font-size:13px}.barRow i{position:absolute;left:0;bottom:0;height:4px;background:#bfdbfe;border-radius:99px}.workspace{display:grid;grid-template-columns:290px 1fr;gap:16px}.filters{align-self:start;position:sticky;top:12px}.filters h2{margin-top:0}.filters label{margin-bottom:12px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:900;color:#172554}input,select,textarea{width:100%;border:1px solid #d6deeb;border-radius:12px;padding:11px;font:inherit;background:white}textarea{min-height:44px;resize:vertical}input[readonly]{background:#eef2ff;color:#1e3a8a}.check{flex-direction:row;align-items:center;color:#334155}.check input{width:auto}.viewToggle{display:grid;grid-template-columns:1fr 1fr;background:#eef2f7;border-radius:14px;padding:5px;margin:10px 0}.viewToggle button{background:transparent;color:#334155}.viewToggle button.active{background:white;color:#1d4ed8;box-shadow:0 4px 12px rgba(15,23,42,.08)}.clear{width:100%;background:#e8eefc;color:#1740a3}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.toolbar h2{margin:0}.mutedText{margin:5px 0 0;color:#64748b}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.jobCard{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:16px;box-shadow:0 8px 18px rgba(15,23,42,.05);display:flex;flex-direction:column;gap:10px}.jobCard.overdue{border-left:5px solid #ef4444}.jobCard.dueSoon{border-left:5px solid #f59e0b}.jobCard.complete{opacity:.72}.cardTop{display:flex;justify-content:space-between;align-items:center;gap:10px}.cardTop strong{font-size:15px;color:#1e3a8a}.pill{background:#eef2ff;color:#1d4ed8;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900}.jobCard h3{margin:0;font-size:17px}.jobCard p{margin:0;color:#475569;line-height:1.35}.jobCard dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.jobCard dl div{background:#f8fafc;border-radius:12px;padding:8px}.jobCard dt{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:900}.jobCard dd{margin:3px 0 0;font-size:13px;font-weight:800}.cardActions,.actions{display:flex;gap:7px;flex-wrap:wrap}.cardActions form,.actions form{display:inline}.cardActions a,.cardActions button,.actions a,.actions button{font-size:12px;padding:8px 10px;border-radius:9px;background:#e8eefc;color:#1740a3;text-decoration:none}.dangerBtn{background:#fee2e2!important;color:#991b1b!important}.tableWrap{overflow:auto;max-height:75vh}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top;font-size:13px}th{background:#f8fafc;position:sticky;top:0;z-index:1}tr.overdue td{background:#fff1f2}tr.dueSoon td{background:#fffbeb}tr.complete td{color:#64748b}.hidden{display:none!important}.modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:50;padding:24px;overflow:auto}.modal.show{display:block}.modalBox{background:#fff;border-radius:22px;padding:20px;width:min(1120px,96%);margin:20px auto;box-shadow:0 30px 80px rgba(0,0,0,.35)}.modalHead{display:flex;justify-content:space-between;align-items:center}.modalHead h2{margin:0 0 15px}.x{text-decoration:none;color:#111827;font-size:34px;line-height:1}.modalActions{display:flex;gap:10px;margin-top:14px}.loginBody{min-height:100vh;display:grid;place-items:center;background:linear-gradient(120deg,#356dd8,#111827)}.loginBox{width:min(420px,92%);background:white;border-radius:20px;padding:28px;box-shadow:0 20px 50px rgba(0,0,0,.25)}.loginBox h1{margin-top:0}.alert{background:#fee2e2;color:#991b1b;padding:12px;border-radius:10px;margin:10px 0}.success{background:#dcfce7;color:#166534;padding:12px;border-radius:10px;margin:10px 0}.userForm{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;align-items:end}.adminGrid{grid-template-columns:repeat(4,1fr)}@media(max-width:1300px){.kpiGrid{grid-template-columns:repeat(4,1fr)}.workspace{grid-template-columns:1fr}.filters{position:static}.grid{grid-template-columns:1fr 1fr}}@media(max-width:800px){.top{display:block}.top h1{font-size:28px}.dashWrap{width:96%}.kpiGrid,.insightGrid,.grid,.adminGrid,.userForm{grid-template-columns:1fr}.toolbar{display:block}.cards{grid-template-columns:1fr}}@media print{.top nav,.filters,.insightGrid,.modal,.cardActions,.actions{display:none!important}.workspace{display:block}.panel,.kpi{box-shadow:none}.hidden{display:block!important}.cards{grid-template-columns:1fr 1fr}.top{color:#000;background:#fff}}
.toolbarActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.bulkForm{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bulkForm select{min-width:220px}.lightBtn{background:#eef2ff!important;color:#1d4ed8!important;border:1px solid #c7d2fe!important}.selectJob{display:flex;flex-direction:row;align-items:center;gap:7px;margin:0;color:#1e3a8a}.selectJob input,.jobSelect{width:auto;transform:scale(1.1)}.adminPage{display:grid;gap:16px}.addFieldBox{display:grid;grid-template-columns:1fr 2fr auto;gap:12px;align-items:end;margin:12px 0 18px}.customFieldList{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:12px 0}.customFieldItem{border:1px solid #dfe6f0;border-radius:16px;padding:14px;background:#f8fafc;display:grid;gap:10px}.customFieldItem button{width:max-content}@media(max-width:900px){.toolbarActions,.bulkForm,.addFieldBox{display:grid;grid-template-columns:1fr;width:100%;justify-content:stretch}.toolbarActions>*{width:100%}.bulkForm select,.bulkForm button{width:100%}}

/* v10: more responsive toolbar + pieces KPI breakdown */
.kpi.pieces{background:linear-gradient(180deg,#fff,#f0f7ff);border-color:#bfdbfe}.kpi.pieces strong{color:#075985}.insightGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.piecesBar i{background:linear-gradient(90deg,#2563eb,#06b6d4)!important}.scrollMini{max-height:320px;overflow:auto;padding-right:4px}.toolbar{align-items:center;gap:14px}.toolbarTitle{min-width:210px}.toolbarSort{display:flex;justify-content:flex-end}.toolbarSort select{min-width:260px}.bulkPanel{margin:0 0 14px 0;padding:12px;border:1px solid #dbeafe;background:#eff6ff;border-radius:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.bulkPanel .bulkForm{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.bulkPanel select{min-width:290px}.selectedCount{font-size:13px;font-weight:900;color:#1e3a8a;background:#fff;border:1px solid #bfdbfe;border-radius:999px;padding:9px 12px}.results{min-width:0}.tableWrap{border-radius:14px;border:1px solid #e5e7eb}.tableWrap table{min-width:1180px}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.jobCard{min-width:0}.jobCard h3,.jobCard p,.jobCard dd{overflow-wrap:anywhere}.top nav{flex-wrap:wrap}.filters{z-index:5}
@media(max-width:1300px){.insightGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{align-items:flex-start}.bulkPanel{position:relative}.toolbarSort{width:100%;justify-content:stretch}.toolbarSort select{width:100%}}
@media(max-width:900px){body{overflow-x:hidden}.top{padding:20px}.top nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.top nav .btn,.top nav button{width:100%;text-align:center}.dashWrap{width:100%;padding:12px}.kpiGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.insightGrid{grid-template-columns:1fr}.workspace{gap:12px}.filters.panel{border-radius:18px}.results.panel{padding:12px;border-radius:18px}.toolbar{display:grid;grid-template-columns:1fr;gap:10px}.toolbarTitle h2{font-size:22px}.bulkPanel{display:grid;grid-template-columns:1fr;gap:8px}.bulkPanel .bulkForm{display:grid;grid-template-columns:1fr;gap:8px;width:100%}.bulkPanel select,.bulkPanel button,.bulkPanel .btn,.selectedCount{width:100%;box-sizing:border-box;text-align:center}.viewToggle{position:sticky;bottom:8px;z-index:8;box-shadow:0 8px 30px rgba(15,23,42,.12)}.cards{grid-template-columns:1fr}.jobCard dl{grid-template-columns:1fr 1fr}.tableWrap{max-height:none;overflow:auto;-webkit-overflow-scrolling:touch}.tableWrap:before{content:'Swipe left/right to see all columns';display:block;position:sticky;left:0;background:#fff7ed;color:#9a3412;font-weight:800;padding:8px 10px;border-bottom:1px solid #fed7aa}.modal{padding:10px}.modalBox{width:100%;margin:8px auto;padding:14px;border-radius:18px}.modalActions{position:sticky;bottom:0;background:white;padding-top:10px}.grid{grid-template-columns:1fr!important}}
@media(max-width:520px){.top h1{font-size:24px}.eyebrow{font-size:10px}.kpiGrid{grid-template-columns:1fr}.kpi{padding:14px}.jobCard dl{grid-template-columns:1fr}.cardTop{align-items:flex-start;flex-direction:column}.cardActions,.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cardActions form,.actions form{display:block}.cardActions a,.cardActions button,.actions a,.actions button{width:100%;box-sizing:border-box;text-align:center}.top nav{grid-template-columns:1fr}.filters h2{font-size:18px}}

/* v11 KPI tab additions */
.plannerIntro{margin-bottom:18px}.piecesTypeGrid{grid-template-columns:repeat(4,minmax(220px,1fr))}.kpiTable{width:100%;border-collapse:collapse}.kpiTable th,.kpiTable td{padding:10px 12px;border-bottom:1px solid #e5eaf3;text-align:left}.kpiTable th{background:#f7f9fd;font-size:13px}.kpiTable td:last-child,.kpiTable th:last-child{text-align:right}.totalRow td{font-weight:800;background:#f8fbff}.weekBlock{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf1f7}.weekBlock span{font-weight:800;color:#1e4ed8}@media(max-width:1100px){.piecesTypeGrid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media(max-width:700px){.piecesTypeGrid{grid-template-columns:1fr}.kpiTable{font-size:13px}.kpiTable th,.kpiTable td{padding:8px}.top nav{gap:8px}.top nav .btn{width:100%;text-align:center}}

/* v12 calendar + password enhancements */
.activeTab{background:#0f172a!important;color:#fff!important}
.calendarToolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}.calendarToolbar h2{margin:0;text-align:center;flex:1}.viewTabs{display:flex;gap:8px;flex-wrap:wrap}.calendarGrid{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:10px}.calendarGrid.mode-week{grid-template-columns:repeat(7,minmax(150px,1fr))}.calendarGrid.mode-day{grid-template-columns:1fr}.calDay{min-height:180px;background:#f8fafc;border:1px solid #dbe5f3;border-radius:16px;padding:10px;transition:.15s}.calDay.dropHere{background:#eaf3ff;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15)}.calDate{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;color:#0f172a}.calDate span{font-size:12px;color:#64748b}.calJob{background:#fff;border:1px solid #dbe5f3;border-left:5px solid #2563eb;border-radius:12px;padding:8px;margin-bottom:8px;cursor:grab;box-shadow:0 2px 8px rgba(15,23,42,.06);font-size:13px}.calJob small{display:block;color:#64748b;margin-top:4px}.calJob.dragging{opacity:.4}.inlinePassword{display:flex;gap:6px;align-items:center}.inlinePassword input{max-width:145px;padding:8px;border:1px solid #cbd5e1;border-radius:8px}@media(max-width:900px){.calendarGrid,.calendarGrid.mode-week{grid-template-columns:1fr}.calendarToolbar{align-items:stretch}.calendarToolbar h2{text-align:left;order:-1;flex-basis:100%}.calDay{min-height:120px}.bulkPanel{position:static!important;display:grid!important;grid-template-columns:1fr!important}.bulkForm{display:grid!important;grid-template-columns:1fr!important}.top nav{display:flex;flex-wrap:wrap}.top .btn,.top button{width:auto}.workspace{display:block}.filters{margin-bottom:12px}.results{overflow:hidden}.tableWrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}
@media(max-width:600px){.top{padding:20px}.top h1{font-size:26px}.dashWrap{padding:12px}.panel{border-radius:14px}.calendarPanel{padding:12px}.calJob{font-size:12px}.btn,.primary,button,select,input,textarea{font-size:14px}.cards{grid-template-columns:1fr!important}.toolbar,.bulkPanel{gap:10px}}

/* v16 calendar: Monday-Sunday month grid + status colours */
.calDay.outsideMonth{background:#eef2f7;color:#64748b;opacity:.72}
.calDay.outsideMonth .calDate b{color:#64748b}
.calJob{border-left-color:#2563eb}
.calJob.late{background:#fff1f2!important;border-color:#fecdd3!important;border-left-color:#ef4444!important;color:#7f1d1d}
.calJob.dueSoon{background:#fffbeb!important;border-color:#fde68a!important;border-left-color:#f59e0b!important;color:#78350f}
.calJob.complete,.calJob.status-COMPLETE{background:#f0fdf4!important;border-color:#bbf7d0!important;border-left-color:#22c55e!important;color:#14532d;opacity:.9}
.calJob.status-AWAIT-ART{border-left-color:#f59e0b;background:#fffbeb}
.calJob.status-AWAIT-STOCK{border-left-color:#fb923c;background:#fff7ed}
.calJob.status-REVIEW-ART{border-left-color:#8b5cf6;background:#f5f3ff}
.calJob.status-PRINT-SCREENS{border-left-color:#06b6d4;background:#ecfeff}
.calJob.status-PRINTING{border-left-color:#2563eb;background:#eff6ff}
.calJob.status-READY-FOR-PPS{border-left-color:#14b8a6;background:#f0fdfa}
.calJob.status-GONE-TO-PPS{border-left-color:#64748b;background:#f8fafc}
.calJob.status-PACKING{border-left-color:#0ea5e9;background:#f0f9ff}
.calJob small{color:inherit;opacity:.78}


/* v17 admin-controlled status colours */
.statusColourGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0}
.statusColourItem{display:flex;align-items:center;gap:10px;border:1px solid #dbe5f1;border-radius:14px;padding:12px;background:#fff}
.statusColourItem input[type=color]{margin-left:auto;width:48px;height:36px;padding:2px;border:1px solid #ccd7e6;border-radius:8px;background:#fff}
.colourSwatch{width:18px;height:18px;border-radius:999px;box-shadow:0 0 0 3px rgba(15,23,42,.08)}
.kpi.statusKpi{border-left:5px solid var(--status-col);background:linear-gradient(180deg,var(--status-bg),#fff)}
.barRow{--bar-col:#2563eb}.barRow i{background:var(--bar-col)!important}
.calJob{border-left-color:var(--status-col,#2563eb)!important;background:var(--status-bg,#eff6ff)!important}
.calJob.late{border-left-color:#ef4444!important;background:#fef2f2!important;color:#7f1d1d}
.calJob.dueSoon{border-left-color:#f59e0b!important;background:#fffbeb!important;color:#78350f}
.calJob.complete{background:var(--status-bg,#f0fdf4)!important;border-left-color:var(--status-col,#22c55e)!important;color:#14532d}

.smallSelect{padding:8px 10px;border:1px solid #d7e1f1;border-radius:10px;background:#fff;font-weight:700}
.calJobHead{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.calEdit{font-size:11px;line-height:1;text-decoration:none;background:#eaf1ff;color:#0b4fd8;border-radius:8px;padding:5px 7px;font-weight:800;white-space:nowrap}
.calEdit:hover{background:#dbeafe}
@media(max-width:720px){.calJobHead{gap:4px}.calEdit{padding:4px 6px;font-size:10px}.loginBox input{font-size:16px}}

/* v19 advanced KPI dashboard */
.executiveGrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.statusTileGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:14px;}
.statusTile{background:linear-gradient(180deg,var(--status-bg),#fff);border:1px solid #d9e2ef;border-left:5px solid var(--status-col);border-radius:14px;padding:16px;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.statusTile span,.kpi span{text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#334155;font-size:13px;}
.statusTile strong{display:block;font-size:30px;margin:7px 0;color:#020617;}
.statusTile small{color:#475569;font-weight:600;}
.funnel{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;}
.funnel div{flex:1 1 90px;border:1px solid #dbe4f0;background:#f8fafc;border-radius:14px;padding:12px;text-align:center;}
.funnel b{font-size:26px;display:block;color:#0f172a;}
.funnel span{font-size:12px;font-weight:700;color:#475569;}
.funnel i{align-self:center;font-style:normal;color:#64748b;font-weight:900;}
.barRow{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 0;border-bottom:1px solid #e5eaf3;overflow:hidden;}
.barRow i{grid-column:1/3;height:4px;background:var(--bar-col,#2563eb);border-radius:999px;display:block;}
.dangerBar{--bar-col:#ef4444;}
.weekBlock{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5eaf3;padding:9px 0;font-weight:700;}
.weekBlock span{font-weight:900;color:#1d4ed8;}
.weekBlock.warn span{color:#d97706}.weekBlock.danger span{color:#dc2626}.weekBlock.success span{color:#16a34a}
.loadBar{height:14px;background:#e5e7eb;border-radius:999px;overflow:hidden;min-width:160px;}
.loadBar i{height:100%;display:block;background:#22c55e;border-radius:999px;}
.loadBar.warn i{background:#f59e0b}.loadBar.danger i{background:#ef4444}.loadBar.success i{background:#22c55e}
.totalRow td{font-weight:900;background:#f8fafc;}
@media(max-width:760px){.funnel{display:grid;grid-template-columns:1fr}.funnel i{display:none}.executiveGrid,.statusTileGrid{grid-template-columns:1fr}.top nav{display:flex;flex-wrap:wrap}.kpi strong{font-size:28px}}

/* v19 advanced KPI dashboard */
.advancedKpiGrid{grid-template-columns:repeat(8,minmax(150px,1fr))}
.statusOnlyGrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:6px}.unassignedKpi{border-left:5px solid #94a3b8;background:linear-gradient(180deg,#f8fafc,#fff)}
.advancedInsightGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.panelHint{margin:0 0 12px;color:#64748b;font-size:13px;font-weight:700}.noMax{max-height:none}.utilRow.good td{background:#f0fdf4}.utilRow.warn td{background:#fffbeb}.utilRow.danger td{background:#fef2f2}.utilBar{position:relative;height:22px;background:#e5e7eb;border-radius:999px;overflow:hidden;min-width:140px}.utilBar i{position:absolute;inset:0 auto 0 0;background:#2563eb;border-radius:999px;max-width:100%}.utilRow.warn .utilBar i{background:#f59e0b}.utilRow.danger .utilBar i{background:#ef4444}.utilBar b{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:#0f172a}.funnel{display:grid;gap:10px}.funnelStep{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1px solid #e2e8f0;border-radius:14px;padding:12px;background:#f8fafc}.funnelStep span{font-weight:900}.funnelStep strong{font-size:22px}.funnelStep small{color:#475569;font-weight:800}.dangerBar{--bar-col:#ef4444}.heatList{display:grid;gap:8px}.heatRow{position:relative;display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;overflow:hidden;background:#f8fafc;border:1px solid #e2e8f0}.heatRow i{position:absolute;left:0;bottom:0;height:4px;background:#22c55e;border-radius:99px}.heatRow.warm i{background:#f59e0b}.heatRow.hot i{background:#ef4444}.heatRow span,.heatRow b{position:relative;z-index:2}.capacitySetting{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:12px;align-items:end;margin:0 0 18px;padding:14px;border:1px solid #dbeafe;background:#eff6ff;border-radius:16px}.capacitySetting label{margin:0}.capacitySetting small{font-weight:800;color:#1e3a8a}
@media(max-width:1300px){.advancedKpiGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.advancedInsightGrid{grid-template-columns:1fr}.statusOnlyGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.advancedKpiGrid,.statusOnlyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.capacitySetting{grid-template-columns:1fr}.funnelStep{grid-template-columns:1fr auto}.funnelStep small{grid-column:1/-1}}
@media(max-width:560px){.advancedKpiGrid,.statusOnlyGrid{grid-template-columns:1fr}.utilBar{min-width:90px}}

/* v20 Production Board */
.boardIntro{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.boardSearch{max-width:420px;width:100%;padding:14px 16px;border:1px solid #d7e0ee;border-radius:14px;font-weight:700;background:#fff}
.kanbanBoard{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;align-items:start}
.kanbanColumn{background:linear-gradient(180deg,var(--status-bg),#fff);border:1px solid #dbe4f0;border-top:5px solid var(--status-col);border-radius:18px;min-height:260px;padding:12px;box-shadow:0 10px 28px rgba(15,23,42,.07)}
.kanbanColumn.dropHere{outline:3px dashed var(--status-col);outline-offset:4px;background:var(--status-bg)}
.kanbanHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #e5edf7}
.kanbanHead h3{margin:0;font-size:16px;text-transform:uppercase;letter-spacing:.04em;color:#13213b}.kbCount{font-size:13px;color:#58677d}.kbPieces{font-size:14px;color:#0f3f91;white-space:nowrap}.kanbanList{display:flex;flex-direction:column;gap:10px;min-height:160px}.kanbanCard{background:#fff;border:1px solid #dce5f2;border-left:5px solid var(--status-col);border-radius:14px;padding:12px;box-shadow:0 8px 18px rgba(15,23,42,.08);cursor:grab}.kanbanCard.dragging{opacity:.5}.kanbanCard.late{border-left-color:#ef4444;background:#fff1f2}.kanbanCard.dueSoon{border-left-color:#f59e0b;background:#fffbeb}.kanbanCard.complete{border-left-color:#22c55e;background:#f0fdf4}.kbCardTop{display:flex;align-items:center;justify-content:space-between;gap:8px}.kbPill{font-size:11px;font-weight:800;background:var(--status-bg);color:#334155;padding:5px 8px;border-radius:999px}.kanbanCard h4{margin:8px 0 4px;font-size:15px}.kanbanCard p{margin:0 0 8px;color:#334155;font-size:13px}.kbMeta{display:grid;grid-template-columns:1fr;gap:3px;font-size:12px;color:#475569}.kbActions{display:flex;gap:8px;margin-top:10px}.kbActions a{background:#eef4ff;color:#0f4ed6;text-decoration:none;font-weight:800;padding:7px 10px;border-radius:10px;font-size:12px}.boardNote{margin:16px 4px}
@media(max-width:700px){.kanbanBoard{grid-template-columns:1fr}.boardIntro{display:block}.boardSearch{margin-top:12px}.kanbanColumn{min-height:200px}.top nav{gap:8px}.top nav .btn{padding:10px 12px}}
/* v21 departments + workflow ownership */
.boardTools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.boardTools select{min-width:220px}.deptBadge{display:inline-flex;align-items:center;gap:6px;margin:8px 0 4px;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--dept-col,#64748b) 13%,white);border:1px solid color-mix(in srgb,var(--dept-col,#64748b) 35%,white);color:#0f172a;font-weight:800;font-size:12px}.deptBadge:before{content:"";width:8px;height:8px;border-radius:99px;background:var(--dept-col,#64748b)}.departmentKanban .kanbanColumn{min-width:310px}.deptColumn .kanbanHead h3{font-size:17px}.deptChecks{display:flex;gap:8px;flex-wrap:wrap;max-width:420px}.deptChecks label{display:inline-flex;align-items:center;gap:5px;background:#f8fafc;border:1px solid #dbe3ef;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}.deptChecks small{width:100%;color:#64748b}.fullSpan{grid-column:1/-1}.smallSelect{min-width:150px}.statusColourItem select{width:100%;margin-top:8px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:10px;background:white}.bulkForm select{min-width:220px}@media(max-width:760px){.boardTools{width:100%}.boardTools input,.boardTools form,.boardTools select{width:100%;min-width:0}.departmentKanban .kanbanColumn{min-width:86vw}.deptChecks{max-width:none}.bulkForm select{min-width:100%;width:100%}}

/* v22 board filters */
.boardFilters{margin:14px 0 18px;padding:14px}
.filterGrid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;align-items:end}
.filterGrid label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em}
.filterGrid input[type="date"],.filterGrid select{width:100%;border:1px solid #dbe3ef;border-radius:12px;padding:10px 11px;background:#fff;color:#0f172a;font-size:14px;min-height:42px}
.filterGrid .checkLabel{flex-direction:row;align-items:center;text-transform:none;letter-spacing:0;font-size:14px;color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;min-height:42px}
.filterGrid .checkLabel input{width:auto;margin-right:6px}.filterGrid .btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;text-align:center}.boardIntro strong{color:#0f172a}
@media(max-width:1100px){.filterGrid{grid-template-columns:repeat(3,minmax(130px,1fr))}}
@media(max-width:700px){.filterGrid{grid-template-columns:1fr}.boardTools{width:100%}.boardSearch{width:100%}.kanbanBoard{grid-auto-columns:minmax(280px,86vw)}}
.workflowPath{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.workflowPath span{padding:10px 14px;border-radius:999px;background:#f1f5f9;font-weight:800}.workflowPath span:not(:last-child)::after{content:'→';margin-left:12px;color:#64748b}.workflowGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.workflowCard{border-top:5px solid var(--dept-col)}.workflowCard h3{margin-top:0}.workflowCard ol{padding-left:0;list-style:none;display:grid;gap:8px}.workflowCard li{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#f8fafc;border-radius:12px}.colourDot{width:12px;height:12px;border-radius:50%;display:inline-block;flex:0 0 12px}
.jobDetailGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detailGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detailGrid div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px}.detailGrid dt{font-size:12px;color:#64748b}.detailGrid dd{margin:4px 0 0;font-weight:700}.commentForm textarea{width:100%;border:1px solid #cbd5e1;border-radius:14px;padding:12px}.activityList,.activityItem{display:grid;gap:10px}.activityItem{border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin-top:10px;background:#fff}.activityItem.unread{border-color:#2563eb;background:#eff6ff}.activityItem p{margin:6px 0}.activityItem small{color:#64748b}.uploadBox{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.fileRow{display:grid;grid-template-columns:1fr auto;gap:6px;border:1px solid #e2e8f0;border-radius:14px;padding:12px;margin-top:10px}.fileRow small{grid-column:1/-1;color:#64748b}.kbActions a{margin-right:8px}@media(max-width:900px){.jobDetailGrid{grid-template-columns:1fr}.detailGrid{grid-template-columns:1fr}.fileRow{grid-template-columns:1fr}}
.fieldLock{display:block;color:#b45309;font-size:12px;margin:4px 0;font-weight:700}.noticeBox{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:12px 14px;margin:0 0 14px}.activityItem p{white-space:normal;line-height:1.55}

/* v26 assignment, alerts and TV mode */
.adminMiniGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px;padding:14px;border:1px solid #e5e7eb;border-radius:16px;background:#f8fafc}
.alertList{display:grid;gap:12px}.alertRow{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #e5e7eb;border-left:8px solid #64748b;border-radius:18px;background:#fff;padding:14px 16px;box-shadow:0 10px 25px rgba(15,23,42,.06)}.alertRow h3{margin:4px 0;font-size:16px}.alertRow p{margin:0;color:#64748b}.alertRow.critical{border-left-color:#dc2626;background:#fff5f5}.alertRow.warning{border-left-color:#f59e0b;background:#fffbeb}.alertRow.info{border-left-color:#0ea5e9;background:#f0f9ff}.alertType{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#475569}.alertActions{white-space:nowrap}.kpiCard.critical{border-top:5px solid #dc2626}.kpiCard.warning{border-top:5px solid #f59e0b}.kpiCard.info{border-top:5px solid #0ea5e9}
.tvBody{background:#0f172a;color:#e5e7eb}.tvTop{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 32px;background:#020617;border-bottom:1px solid rgba(255,255,255,.12);position:sticky;top:0;z-index:5}.tvTop h1{font-size:38px;margin:0}.tvTop p{color:#94a3b8}.tvTop .btn{background:#1e293b;color:#fff;border-color:#334155}.tvGrid{display:grid;grid-template-columns:2fr 1fr;gap:18px;padding:18px}.tvPanel{background:#111827;border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:18px;box-shadow:0 20px 50px rgba(0,0,0,.3)}.tvPanel h2{font-size:28px;margin:0 0 16px}.tvJobs{display:grid;gap:12px}.tvJob{background:#1f2937;border-left:8px solid #2563eb;border-radius:18px;padding:14px}.tvJob.late{border-left-color:#dc2626;background:#331b1b}.tvJob.soon{border-left-color:#f59e0b;background:#302712}.tvJob>div{display:flex;justify-content:space-between;gap:10px}.tvJob strong{font-size:24px}.tvJob span{color:#cbd5e1}.tvJob p{font-size:18px;margin:8px 0;color:#f8fafc}.tvJob footer{display:flex;flex-wrap:wrap;gap:8px}.tvJob footer span,.tvJob footer b{background:rgba(255,255,255,.08);padding:6px 10px;border-radius:999px;font-size:13px}.tvAlerts .alertRow{background:#1f2937;color:#e5e7eb;border-color:#334155}.tvAlerts .alertRow p{color:#94a3b8}
@media(max-width:900px){.tvTop{flex-direction:column;align-items:flex-start}.tvGrid{grid-template-columns:1fr}.alertRow{align-items:flex-start;flex-direction:column}.adminMiniGrid{grid-template-columns:1fr}.tvTop h1{font-size:28px}}

/* v27 Daily Production Command Centre */
.ccKpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:18px 0}.ccGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ccGrid .panel{align-self:start}.ccJob{border:1px solid #e2e8f0;border-left:6px solid var(--status-col,#3b82f6);border-radius:16px;background:#fff;padding:13px;margin:10px 0;box-shadow:0 8px 20px rgba(15,23,42,.06)}.ccJob.late{background:#fff1f2;border-left-color:#dc2626}.ccJobTop{display:flex;justify-content:space-between;gap:12px;align-items:center}.ccJobTop strong{font-size:15px}.ccJobTop span{font-size:12px;font-weight:800;background:#f1f5f9;border-radius:999px;padding:5px 9px}.ccJob h3{margin:8px 0 4px}.ccJob p{margin:0 0 8px;color:#334155}.ccMeta{font-size:12px;color:#475569;margin:4px 0}.ccQuick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.ccQuick form{display:flex;gap:6px;align-items:end}.ccQuick label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:800;width:100%}.ccQuick select,.ccQuick input{display:block;width:100%;margin-top:4px;border:1px solid #cbd5e1;border-radius:10px;padding:8px;background:#fff;text-transform:none;letter-spacing:0;color:#0f172a;font-weight:600}.miniBtn{border:0;border-radius:10px;background:#0f4ed6;color:#fff;font-weight:800;padding:8px 10px}.ccActions{display:flex;gap:8px;margin-top:10px}.ccActions a{background:#eef4ff;color:#0f4ed6;text-decoration:none;font-weight:800;padding:7px 10px;border-radius:10px;font-size:12px}.deptLoad{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border:1px solid #e2e8f0;background:#f8fafc;border-radius:14px;padding:12px;margin:8px 0}.deptLoad span{color:#475569}.deptLoad b{color:#0f4ed6}.ccSummary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.ccSummary div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.ccSummary strong{display:block;font-size:28px}.ccSummary span{color:#64748b}@media(max-width:1000px){.ccGrid{grid-template-columns:1fr}.ccQuick{grid-template-columns:1fr}.deptLoad{grid-template-columns:1fr}}

/* v28 Command Centre redesign */
.opsBody{background:#eef3fa;color:#0f172a}.opsTop{background:linear-gradient(120deg,#3268d6,#101827);color:#fff;padding:22px 34px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.opsTop h1{margin:5px 0 5px;font-size:34px}.opsTop p{margin:0;color:#dbeafe}.opsTop nav{display:flex;gap:10px;flex-wrap:wrap}.opsWrap{padding:18px 26px 40px;max-width:1900px;margin:auto}.opsKpiRow{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:14px;margin-bottom:16px}.opsKpi{background:#fff;border:1px solid #dbe4f0;border-radius:18px;padding:18px 20px;box-shadow:0 10px 28px rgba(15,23,42,.07);border-left:7px solid #3b82f6}.opsKpi span{display:block;text-transform:uppercase;font-size:12px;font-weight:900;letter-spacing:.06em;color:#334155}.opsKpi strong{font-size:34px;display:inline-block;margin:5px 8px 0 0}.opsKpi small{color:#475569;font-weight:700}.opsKpi.tomorrow{border-left-color:#f59e0b}.opsKpi.overdue{border-left-color:#ef4444}.opsKpi.blocked{border-left-color:#06b6d4}.opsKpi.done{border-left-color:#22c55e;background:#ecfdf3}.opsFlowPanel,.opsPanel{background:#fff;border:1px solid #dbe4f0;border-radius:20px;padding:18px;box-shadow:0 12px 34px rgba(15,23,42,.07)}.opsFlowPanel{margin-bottom:16px}.opsPanelHead{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.opsPanelHead h2{margin:0;font-size:22px}.opsPanelHead span{color:#64748b;font-weight:800}.flowStrip{display:flex;gap:10px;overflow:auto;padding-bottom:4px}.flowItem{min-width:148px;border:1px solid #d8e3f2;border-left:6px solid var(--flow,#64748b);border-radius:16px;padding:12px 14px;background:linear-gradient(180deg, color-mix(in srgb, var(--flow,#64748b) 12%, white), #fff)}.flowItem b{display:block;font-size:12px;text-transform:uppercase;color:#334155}.flowItem strong{display:block;font-size:28px;margin-top:2px}.flowItem small{color:#475569;font-weight:800}.opsMainGrid{display:grid;grid-template-columns:1.15fr 1fr .85fr;gap:16px;margin-bottom:16px}.opsLowerGrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:16px}.opsLowerGrid.two{grid-template-columns:1fr 1fr}.criticalPanel{border-top:5px solid #ef4444}.opsJob{border:1px solid #dbe4f0;border-left:6px solid var(--status-col,#3b82f6);border-radius:16px;padding:12px;margin:10px 0;background:#fff;display:grid;grid-template-columns:1fr auto;gap:8px;box-shadow:0 8px 18px rgba(15,23,42,.04)}.opsJob.isLate{background:#fff1f2;border-color:#fecdd3;border-left-color:#ef4444}.opsJob.compact{padding:10px}.opsJobRef{display:flex;gap:8px;align-items:center}.opsJobRef strong{font-size:15px}.latePill{background:#fee2e2;color:#991b1b;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900}.opsJobTitle b{display:block;font-size:18px;margin-top:4px}.opsJobTitle span{display:block;color:#334155}.opsJobMeta{display:flex;gap:10px;flex-wrap:wrap;color:#475569;font-size:12px;font-weight:800;margin-top:6px}.opsJobSide{text-align:right;display:flex;flex-direction:column;gap:5px;align-items:flex-end}.statusPill,.priorityPill,.blockPill{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;background:color-mix(in srgb, var(--pill,#64748b) 14%, white);color:#0f172a}.priorityPill{background:#dbeafe;color:#1d4ed8}.blockPill{background:#fee2e2;color:#991b1b}.opsJobControls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;margin-top:6px}.opsJobControls form{display:flex;gap:6px}.opsJobControls select,.opsJobControls input{width:100%;padding:9px 10px;border-radius:10px;border:1px solid #cbd5e1}.delayForm .miniBtn{padding:7px 12px;border-radius:10px}.opsJobLinks{grid-column:1/-1;display:flex;gap:8px}.opsJobLinks a{background:#eff6ff;color:#1d4ed8;padding:7px 10px;border-radius:10px;text-decoration:none;font-weight:900;font-size:12px}.emptyState{padding:26px;border:1px dashed #cbd5e1;border-radius:14px;color:#64748b;text-align:center;font-weight:800}.loadList{display:flex;flex-direction:column;gap:12px}.loadRow{display:grid;grid-template-columns:120px 1fr 100px;gap:10px;align-items:center}.loadRow small{display:block;color:#64748b}.loadBar{height:12px;background:#e2e8f0;border-radius:999px;overflow:hidden}.loadBar i{display:block;height:100%;background:linear-gradient(90deg,#60a5fa,#2563eb);border-radius:999px}.loadRow strong{text-align:right;color:#1d4ed8}.opsDept{border-radius:12px;background:#f8fafc;padding:10px 12px}.opsSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.opsSummary div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:18px;text-align:center}.opsSummary strong{font-size:32px;display:block}.opsSummary span{color:#475569;font-weight:800}@media(max-width:1100px){.opsTop{flex-direction:column}.opsKpiRow{grid-template-columns:repeat(2,1fr)}.opsMainGrid,.opsLowerGrid,.opsLowerGrid.two{grid-template-columns:1fr}.opsJobControls{grid-template-columns:1fr}.loadRow{grid-template-columns:90px 1fr 80px}}@media(max-width:620px){.opsWrap{padding:12px}.opsTop{padding:18px}.opsTop h1{font-size:28px}.opsKpiRow{grid-template-columns:1fr}.opsJob{grid-template-columns:1fr}.opsJobSide{align-items:flex-start;text-align:left}.opsSummary{grid-template-columns:1fr 1fr}.flowItem{min-width:135px}}

/* v31 artwork/file management */
.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.pill{display:inline-flex;align-items:center;border-radius:999px;background:#eef2ff;color:#3730a3;font-weight:700;font-size:12px;padding:6px 10px}.fileUploadGrid{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:end}.fileUploadGrid label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#334155}.fileUploadGrid .wide{grid-column:1/-1}.fileUploadGrid select,.fileUploadGrid input[type=text],.fileUploadGrid input[type=file]{border:1px solid #cbd5e1;border-radius:12px;padding:10px;background:#fff}.fileCard{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:start;border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin:12px 0;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.06)}.fileIcon{width:48px;height:48px;border-radius:14px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:24px}.fileMeta strong{display:block;color:#0f172a;margin-bottom:6px}.fileTags{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.fileTags span{font-size:12px;font-weight:800;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:4px 8px}.fileActions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.miniBtn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;background:#fff;color:#0f172a;text-decoration:none;font-weight:800;font-size:13px}.miniBtn:hover{background:#f8fafc}.replaceBox{position:relative}.replaceBox summary{cursor:pointer;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;background:#fff;font-weight:800;font-size:13px;list-style:none}.replaceBox form{margin-top:8px;display:grid;gap:8px;min-width:240px}.smallBtn{padding:8px 10px;font-size:13px}.previewPanel{min-height:70vh}.filePreviewFrame{width:100%;height:75vh;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.filePreviewImage{max-width:100%;max-height:78vh;display:block;margin:auto;border-radius:16px;box-shadow:0 16px 40px rgba(15,23,42,.18)}
@media(max-width:760px){.fileUploadGrid{grid-template-columns:1fr}.fileCard{grid-template-columns:40px 1fr}.fileActions{grid-column:1/-1;justify-content:flex-start}.fileIcon{width:40px;height:40px}.previewPanel{min-height:50vh}.filePreviewFrame{height:60vh}}

/* v32 return-to-screen + stronger mobile responsiveness */
:root{--touch:44px}
.btn,.primary,button,input,select,textarea{max-width:100%}
input,select,textarea{box-sizing:border-box}
@media(max-width:980px){
  .top,.opsTop{position:relative;padding:16px;gap:12px}
  .top nav,.opsTop nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
  .top nav a,.top nav button,.opsTop nav a,.opsTop nav button{min-height:var(--touch);display:flex;align-items:center;justify-content:center;padding:10px 12px;white-space:normal;line-height:1.15}
  .dashWrap,.opsWrap{padding:10px;width:100%;box-sizing:border-box}
  .panel{padding:12px;border-radius:16px}
  .workspace{display:block!important}
  .filters.panel{margin-bottom:12px;position:relative!important;top:auto!important}
  .filters label{margin-bottom:10px}
  .filters input,.filters select{min-height:var(--touch);font-size:16px}
  .results.panel{overflow:hidden}
  .toolbar,.panelHeader{display:grid!important;grid-template-columns:1fr;align-items:stretch}
  .cards{grid-template-columns:1fr!important}
  .jobCard{padding:12px;border-radius:16px}
  .jobCard h3{font-size:18px;line-height:1.2}
  .jobCard dl{grid-template-columns:1fr 1fr;gap:8px}
  .cardActions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .cardActions a,.cardActions button{min-height:var(--touch);display:flex;align-items:center;justify-content:center;width:100%;box-sizing:border-box}
  .tableWrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}
  table{min-width:980px}
  th,td{padding:9px 10px!important}
  .modal{align-items:flex-start;overflow:auto;padding:8px}
  .modalBox{width:100%!important;max-width:none!important;margin:8px 0;border-radius:16px;padding:12px;box-sizing:border-box}
  .modalHead{position:sticky;top:0;background:#fff;z-index:5;padding-bottom:8px}
  .modalHead h2{font-size:22px}
  .modalBox .grid{grid-template-columns:1fr!important;gap:10px}
  .modalBox input,.modalBox select,.modalBox textarea{font-size:16px;min-height:var(--touch)}
  .modalActions{position:sticky;bottom:0;background:#fff;display:grid!important;grid-template-columns:1fr 1fr;gap:8px;padding:10px 0 0}
  .modalActions .btn,.modalActions button{width:100%;min-height:var(--touch)}
  .calendarToolbar{display:grid!important;grid-template-columns:1fr;gap:10px}
  .calendarToolbar>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .calendarGrid,.calendarGrid.mode-week,.calendarGrid.mode-month{grid-template-columns:1fr!important}
  .calDay{min-height:auto;padding:10px}
  .calJob{padding:10px;touch-action:none}
  .kanbanBoard,.deptBoard,.boardGrid{display:grid!important;grid-template-columns:1fr!important;gap:12px;overflow:visible!important}
  .kanbanCol,.deptCol{min-width:0!important;max-height:none!important}
  .fileCard{grid-template-columns:42px 1fr!important}
  .fileActions{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}
  .fileActions a,.fileActions summary{min-height:var(--touch);display:flex;align-items:center;justify-content:center}
  .replaceBox form{min-width:0;width:100%}
  .opsMainGrid,.opsLowerGrid,.opsLowerGrid.two,.ccGrid{grid-template-columns:1fr!important}
  .opsKpiRow,.ccKpis{grid-template-columns:1fr 1fr!important}
  .opsJob,.ccJob{grid-template-columns:1fr!important}
  .opsJobSide{align-items:flex-start;text-align:left}
  .opsJobControls,.ccQuick{grid-template-columns:1fr!important}
}
@media(max-width:560px){
  body{font-size:14px}
  .top h1,.opsTop h1{font-size:24px;line-height:1.15}
  .top p,.opsTop p{font-size:13px}
  .top nav,.opsTop nav{grid-template-columns:1fr!important}
  .kpiGrid,.executiveGrid,.piecesTypeGrid,.opsKpiRow,.ccKpis{grid-template-columns:1fr!important}
  .jobCard dl{grid-template-columns:1fr!important}
  .cardActions,.fileActions{grid-template-columns:1fr!important}
  .bulkPanel,.bulkForm{grid-template-columns:1fr!important}
  .viewToggle{display:grid!important;grid-template-columns:1fr 1fr;width:100%}
  .viewToggle button{min-height:var(--touch)}
  .opsSummary,.ccSummary{grid-template-columns:1fr!important}
  .flowStrip{display:grid!important;grid-template-columns:1fr;overflow:visible}
  .flowItem{min-width:0!important}
  .loadRow{grid-template-columns:1fr!important;gap:6px}
  .loadRow strong{text-align:left!important}
  .filePreviewFrame{height:58vh!important}
}


/* v33 Sales Quotes */
.quoteHeaderGrid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin-bottom:20px}.quoteLine{border:1px solid #e5e7eb;border-radius:18px;padding:16px;margin:14px 0;background:#fff}.quoteLineHead{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr;gap:12px;margin-bottom:14px}.matrixScroll{overflow:auto;-webkit-overflow-scrolling:touch}.sizeMatrix{width:100%;border-collapse:separate;border-spacing:0;min-width:760px}.sizeMatrix th,.sizeMatrix td{border-bottom:1px solid #e5e7eb;padding:8px;text-align:center}.sizeMatrix th:first-child,.sizeMatrix td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1}.sizeMatrix input{width:70px;min-width:60px;text-align:center}.sizeMatrix td:first-child input{width:140px;text-align:left}.rowTotal,.matrixTotal{font-weight:800}.chargesGrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}.quoteCards{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:16px}.quoteCard{border:1px solid #e5e7eb;border-radius:20px;padding:18px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.06)}.quoteCard dl,.quoteSummary .summaryGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quoteCard dt,.quoteSummary span{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.quoteCard dd{margin:0;font-weight:700}.quoteSummary .summaryGrid{grid-template-columns:repeat(6,1fr)}.quoteSummary strong{display:block;font-size:18px}.totalsTable{width:100%;max-width:520px}.totalsTable th{text-align:left;color:#64748b}.totalsTable td{text-align:right}.printLine{margin-bottom:22px}.quoteConvertForm{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:14px;align-items:end}.quoteEditor label small{color:#94a3b8}
@media(max-width:900px){.quoteHeaderGrid,.quoteLineHead,.chargesGrid,.quoteCards,.quoteSummary .summaryGrid,.quoteConvertForm{grid-template-columns:1fr}.quoteLine{padding:12px;border-radius:14px}.sizeMatrix{min-width:680px}.sizeMatrix th,.sizeMatrix td{padding:6px}.sizeMatrix input{width:56px}.sizeMatrix td:first-child input{width:110px}.quoteCard{padding:14px}.quoteSummary strong{font-size:15px}}
@media print{header.top nav,.cardActions,.quoteConvertForm,.btn{display:none!important}.panel{box-shadow:none!important;border:1px solid #ddd}.dashWrap{padding:0}.sizeMatrix{min-width:0;font-size:11px}.quoteDetail{display:block}.quoteDetail .panel{break-inside:avoid}}
/* v34 admin grouping + quote pricing engine */
.adminTabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.adminTabs a{padding:12px 16px;border-radius:14px;background:#fff;border:1px solid #e5e7eb;text-decoration:none;color:#0f172a;font-weight:700;box-shadow:0 8px 20px rgba(15,23,42,.05)}.adminTabs a.active{background:#0f172a;color:#fff;border-color:#0f172a}.uploadBox{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end}.pricingTable input,.pricingTable select{min-width:110px}.pricingTable td:last-child input{min-width:220px}.quoteLineHeadEnhanced{grid-template-columns:2fr 1fr 1.4fr}.garmentSelect{min-width:280px}.priceHint{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:10px 12px;margin:8px 0}.managerOnly{background:#fff7ed;border-radius:10px;padding:6px}.adminWrap .miniKpi{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:16px}.adminWrap .miniKpi span{display:block;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.adminWrap .miniKpi strong{font-size:22px}.quoteLine{border:1px solid #dbeafe;background:#fbfdff}.quoteLine select,.quoteLine input{font-size:14px}@media(max-width:800px){.adminTabs{position:sticky;top:0;z-index:20;background:#f8fafc;padding:8px 0;overflow-x:auto;flex-wrap:nowrap}.adminTabs a{white-space:nowrap}.uploadBox{grid-template-columns:1fr}.quoteLineHeadEnhanced,.quoteLineHead,.quoteHeaderGrid,.chargesGrid,.adminMiniGrid,.adminGrid{grid-template-columns:1fr!important}.garmentSelect{min-width:0;width:100%}.pricingTable{min-width:900px}.quoteLine{padding:12px}.quoteEditor h3{font-size:18px}}
/* v35 smart quote builder */
.quoteBuilderIntro{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:20px;flex-wrap:wrap}.quoteLiveTotals{min-width:220px;border:1px solid #cfe0ff;background:#f8fbff;border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.quoteLiveTotals strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#29446d}.quoteLiveTotals span{font-size:18px;font-weight:800;color:#064b7a}.smartQuoteLine{border:1px solid #cfe0ff;background:#fbfdff;border-radius:18px;padding:18px;margin:18px 0;box-shadow:0 10px 28px rgba(24,54,99,.08)}.quoteLineTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.quoteLineTitle strong{font-size:18px}.garmentPickerBox{display:grid;grid-template-columns:260px 1fr 1.7fr;gap:12px;margin-bottom:12px;background:#f3f7fc;border:1px solid #dbe6f4;border-radius:14px;padding:12px}.quoteLineHeadEnhanced{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}.matrixActions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.smartMatrix input{min-width:62px}.smartMatrix .colourInput{min-width:150px}.iconBtn{border:0;background:#fee2e2;color:#991b1b;border-radius:10px;font-weight:900;padding:8px 12px;cursor:pointer}.dangerBtn{background:#fee2e2!important;color:#991b1b!important}.quoteLogoList{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.quoteLogoGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.quoteLogoCard{border:1px solid #dbe6f4;border-radius:14px;padding:12px;background:#f9fbff}.quoteLogoCard img{max-width:100%;height:120px;object-fit:contain;background:white;border-radius:10px;border:1px solid #e5e7eb}.quoteLogoCard iframe{width:100%;height:220px;border:1px solid #e5e7eb;border-radius:10px;background:white}.quoteLogoActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.quoteTotals{position:sticky;bottom:0;z-index:5;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:1px solid #cfe0ff;border-radius:16px;padding:12px;margin-top:18px;box-shadow:0 -8px 26px rgba(24,54,99,.08)}
@media(max-width:900px){.garmentPickerBox,.quoteLineHeadEnhanced{grid-template-columns:1fr}.quoteBuilderIntro{align-items:stretch}.quoteLiveTotals{width:100%}.smartQuoteLine{padding:12px}.smartMatrix input{min-width:54px}.smartMatrix .colourInput{min-width:120px}}

/* v36 quote builder fixes */
.quoteBuilderIntro{align-items:flex-start;gap:18px}.quoteLiveTotals{position:sticky;top:12px;min-width:210px;display:grid;gap:4px;border:1px solid #bfdbfe;background:#f8fbff;border-radius:14px;padding:14px 18px}.quoteLiveTotals strong{text-transform:uppercase;font-size:12px;letter-spacing:.08em;color:#334155}.quoteLiveTotals span{font-weight:800;color:#075985}.quoteLiveTotals #liveGrandTotal{font-size:20px;color:#0f172a;border-top:1px solid #dbeafe;margin-top:4px;padding-top:6px}.quoteLineTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.quoteLineActions{display:flex;gap:8px;flex-wrap:wrap}.garmentPickerBox{display:grid;grid-template-columns:260px 1fr 1.4fr;gap:12px;align-items:end}.matrixActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.matrixActions .btn,.quoteLineActions .btn{min-height:40px}.smartMatrix td,.smartMatrix th{white-space:nowrap}.smartMatrix .qtyCell{max-width:72px;text-align:center}.smartMatrix .colourInput{min-width:130px}.extraChargeHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.chargesList{display:grid;gap:10px}.chargeRow{display:grid;grid-template-columns:1fr 160px 160px 44px;gap:10px;align-items:end;border:1px solid #dbe4f0;background:#f8fafc;border-radius:14px;padding:12px}.removeChargeBtn,.removeColourBtn{background:#fee2e2;color:#991b1b}.quoteLine{border-left:4px solid #2563eb}.priceHint{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:10px 12px;margin-top:12px}.btn.dangerBtn{background:#fee2e2;color:#991b1b;border-color:#fecaca}.btn.addPositionBtn{background:#eef6ff;color:#0f4aa2;border-color:#bfdbfe}
@media(max-width:900px){.quoteBuilderIntro{display:block}.quoteLiveTotals{position:static;margin-top:12px}.garmentPickerBox,.quoteLineHeadEnhanced,.chargeRow{grid-template-columns:1fr!important}.quoteLineTitle{align-items:flex-start}.quoteLineActions{width:100%}.quoteLineActions .btn,.matrixActions .btn{flex:1 1 160px}.smartMatrix .qtyCell{max-width:58px}.matrixScroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.quoteEditor{padding:16px!important}}

/* v38 quote colour picker */
.colourPickerOverlay{position:fixed;inset:0;background:rgba(8,18,38,.55);z-index:9999;display:none;align-items:center;justify-content:center;padding:18px}
.colourPickerBox{background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.28);width:min(760px,96vw);max-height:88vh;overflow:auto;padding:20px;border:1px solid #dbe5f5}
.colourPickerHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.colourPickerHead h3{margin:0}.colourPickerSub{margin:0 0 12px}.colourPickerSearch{width:100%;margin-bottom:14px;padding:13px 14px;border:1px solid #cbd8ea;border-radius:12px;font-weight:700}.colourPickerList{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;max-height:420px;overflow:auto;padding:4px}.colourChoice{display:flex;align-items:center;gap:8px;background:#f8fbff;border:1px solid #dbe5f5;border-radius:12px;padding:10px 12px;font-weight:700}.colourChoice input{width:auto}.modalActions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}@media(max-width:720px){.colourPickerBox{padding:14px}.colourPickerList{grid-template-columns:1fr;max-height:55vh}.modalActions .btn,.modalActions .primary{width:100%}}

/* v39 quote/pricing usability */
.quoteEditTop{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);padding:10px 0;border-bottom:1px solid #e2e8f0;margin-bottom:12px}
.saveQuoteTop{min-width:140px}
.quoteHeaderGrid{align-items:end}
.quoteLogoUpload{border:1px dashed #bfdbfe;background:#f8fbff;border-radius:16px;padding:14px;margin-bottom:18px}
.pricingMatrixCard{border:1px solid #dbe4f0;border-radius:18px;padding:18px;margin:18px 0;background:#fff}
.pricingMatrixHead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.pricingMatrixHead h3{margin:0}
.adminPricingMatrix{width:100%;border-collapse:collapse;min-width:780px}
.adminPricingMatrix th,.adminPricingMatrix td{border:1px solid #e2e8f0;padding:10px;text-align:center;vertical-align:middle}
.adminPricingMatrix th:first-child{width:140px;text-align:left;background:#f8fafc}
.adminPricingMatrix input{width:100%;max-width:110px;border:1px solid #cbd5e1;border-radius:8px;padding:8px}
.tierRange{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:#475569}
.tierRange input{max-width:70px}
.stickySave{position:sticky;bottom:12px;float:right;box-shadow:0 14px 28px rgba(37,99,235,.22)}
.error{background:#fee2e2;color:#991b1b;padding:12px 14px;border-radius:12px;margin:10px 0;border:1px solid #fecaca}
@media(max-width:760px){.quoteEditTop{top:0;display:block}.saveQuoteTop{width:100%;margin-top:8px}.pricingMatrixHead{display:block}.pricingMatrixHead .btn{margin-top:8px}.quoteHeaderGrid{grid-template-columns:1fr!important}.adminPricingMatrix{min-width:680px}.stickySave{float:none;width:100%;bottom:0}}
/* v40 quote refinements */
.quoteTopWithLogo{align-items:center;gap:22px}
.quoteCompanyLogo{max-width:150px;max-height:76px;background:#fff;border-radius:12px;padding:8px;object-fit:contain}
.quoteLogoAdminPreview{display:flex;align-items:center;gap:14px;margin:12px 0;padding:12px;border:1px solid #dbe5f3;border-radius:14px;background:#f8fbff}
.quoteLogoAdminPreview img{max-width:180px;max-height:90px;background:white;border-radius:10px;padding:8px;object-fit:contain}
.lineNoColours{max-width:140px}
@media print{.quoteCompanyLogo{max-width:130px;max-height:64px}.top nav{display:none!important}}
@media(max-width:760px){.quoteTopWithLogo{display:block}.quoteCompanyLogo{margin-bottom:12px}.quoteLineActions{display:grid;grid-template-columns:1fr;gap:8px}.pricingMatrixCard table input{min-width:72px}}

/* v41 compact quote PDF + logo management */
.logoManageItem{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px;border:1px solid #dbe4f0;border-radius:12px;background:#f8fafc;margin:6px 0}
.screenColourMatrix th,.screenColourMatrix td{text-align:center;min-width:110px}.screenColourMatrix .tierRange input{width:70px}.screenColourMatrix .setupPerColour,.screenColourMatrix .screenSell{width:90px}.quoteLogoList{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.quoteLogoCard img{max-height:170px;object-fit:contain}.quoteLogoCard iframe{width:100%;height:220px;border:1px solid #dbe4f0;border-radius:10px}
@media print{
  body{background:#fff!important;color:#000!important;font-size:11px}.top{background:#fff!important;color:#000!important;padding:10px 0;border-bottom:1px solid #ccc}.top nav,.btn,.primary,.quoteLogoActions,#convert,.noPrint{display:none!important}.dashWrap,.quoteDetail{padding:0!important;max-width:none!important}.panel{box-shadow:none!important;border:0!important;padding:8px 0!important;margin:0 0 8px!important;break-inside:avoid}.quoteSummary .summaryGrid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:4px!important}.summaryGrid div{border:1px solid #ddd;padding:4px!important}.summaryGrid span{font-size:9px}.summaryGrid strong{font-size:11px}.quoteCompanyLogo{max-height:45px!important}.quoteLogoGrid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important}.quoteLogoCard{border:1px solid #ddd!important;padding:4px!important;break-inside:avoid}.quoteLogoCard img{max-height:90px!important}.quoteLogoCard iframe{height:90px!important}.printLine{margin:0 0 7px!important;break-inside:avoid}.printLine h3{font-size:13px;margin:0 0 2px!important}.printLine p{margin:2px 0!important}.displayMatrix th,.displayMatrix td{padding:3px 5px!important;font-size:10px!important}.matrixScroll{overflow:visible!important}.totalsTable th,.totalsTable td{padding:4px 6px!important}.quoteTotalsPanel{max-width:420px;margin-left:auto!important}.quoteDetail h2{font-size:15px;margin:0 0 5px!important}.quoteDetail h3{font-size:12px;margin:0 0 4px!important}
}
/* v42 quote/admin polish */
.pricingMatrixHead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pricingMatrixActions{display:flex;gap:8px;flex-wrap:wrap}.pendingLogoItem,.savedLogoItem{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid #dbe6f4;border-radius:12px;padding:8px;background:#f8fbff}.printTotalsGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.printTotalsGrid div{border:1px solid #dbe6f4;border-radius:12px;padding:10px;background:#f8fbff}.printTotalsGrid span{display:block;font-size:11px;text-transform:uppercase;color:#64748b;font-weight:900}.printTotalsGrid strong{font-size:18px}.adminPricingMatrix th,.adminPricingMatrix td{text-align:center}.adminPricingMatrix input{min-width:70px}
@media(max-width:900px){.printTotalsGrid{grid-template-columns:1fr 1fr}.pricingMatrixHead{align-items:flex-start}.pricingMatrixActions .btn{width:100%}}
@media print{.quotePrintTotals{display:block!important}.printTotalsGrid{grid-template-columns:repeat(5,1fr)!important}.printTotalsGrid div{padding:4px!important}.printTotalsGrid strong{font-size:12px!important}.quoteTotalsPanel{display:block!important}}
.linkBtn{border:0;background:transparent;color:#0b56c5;font-weight:800;cursor:pointer;padding:0;font:inherit}.linkBtn:hover{text-decoration:underline}.quoteEmailForm{display:grid;gap:14px}.quoteEmailForm textarea{min-height:120px}.quoteActionsInline{display:flex;gap:10px;flex-wrap:wrap}
/* v47: Decoration-specific quote inputs */
.printColoursField,.stitchCountField,.decoSizeField{transition:opacity .15s ease}
.smartPricingMatrix th small{font-size:11px;color:#64748b;font-weight:600}
.smartPricingMatrix input{min-width:80px}

/* v49 Advanced Design Studio */
.designStudioWrap{max-width:1720px}.designStudioPanel{overflow:hidden}.designToolbar{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:12px;align-items:end;margin-bottom:16px}.designToolbar .fileBtn{display:flex;flex-direction:column}.designToolbar .fileBtn input{padding:10px;background:#fff}.designGrid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.canvasShell{background:linear-gradient(135deg,#eaf2ff,#f8fafc);border:1px solid #cfe0f5;border-radius:20px;padding:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}#designCanvas{width:100%;height:auto;display:block;background:#f8fafc;border-radius:16px;touch-action:none}.designSide{border:1px solid #dbe6f5;background:#fff;border-radius:18px;padding:16px;position:sticky;top:12px}.layerList{display:grid;gap:8px;max-height:180px;overflow:auto;margin-bottom:12px}.layerBtn{display:flex;align-items:center;gap:8px;border:1px solid #dbe6f5;background:#f8fbff;border-radius:12px;padding:9px 10px;text-align:left;font-weight:800;cursor:pointer}.layerBtn.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.layerActions{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:16px}.objectProps{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.objectProps .wide{grid-column:1/-1}.objectProps textarea{width:100%;border:1px solid #cbd8ea;border-radius:12px;padding:10px;font-weight:700}.mockupGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.mockupCard{border:1px solid #dbe6f5;border-radius:16px;background:#f8fbff;padding:12px;display:grid;gap:8px}.mockupCard img{width:100%;aspect-ratio:4/3;object-fit:contain;background:white;border:1px solid #e2e8f0;border-radius:12px}.mockupCard div{display:flex;gap:8px;flex-wrap:wrap}.success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;border-radius:14px;padding:12px 16px;margin-bottom:14px;font-weight:800}
@media(max-width:1100px){.designToolbar{grid-template-columns:1fr 1fr}.designGrid{grid-template-columns:1fr}.designSide{position:static}.objectProps{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.designToolbar{grid-template-columns:1fr}.objectProps{grid-template-columns:1fr}.canvasShell{padding:8px;border-radius:14px}.designSide{padding:12px}.mockupGrid{grid-template-columns:1fr}.top nav .btn{width:100%}}
.designTemplateBox{border:1px solid #dbe5f3;border-radius:16px;padding:18px;margin:18px 0;background:#f8fbff}.designTemplateBox textarea{font-family:ui-monospace,Consolas,monospace;font-size:12px}.canvasHint{font-size:12px;color:#64748b;margin-top:8px;text-align:center}.designToolbar{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;align-items:end}.designToolbar label{font-weight:700;color:#172554}.designToolbar input,.designToolbar select{width:100%;margin-top:4px}.canvasShell{overflow:auto}.canvasShell canvas{max-width:100%;height:auto;touch-action:none;border-radius:14px;background:#f8fafc}.objectProps{display:grid;grid-template-columns:1fr 1fr;gap:8px}.objectProps .wide{grid-column:1/-1}.layerBtn{display:block;width:100%;margin:4px 0;text-align:left;border:1px solid #dbe5f3;border-radius:10px;background:#fff;padding:10px}.layerBtn.active{border-color:#2563eb;background:#eff6ff}.layerActions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}@media(max-width:900px){.designToolbar{grid-template-columns:1fr 1fr}.designGrid{grid-template-columns:1fr}.designSide{order:2}.canvasShell{order:1}.objectProps{grid-template-columns:1fr}}@media(max-width:620px){.designToolbar{grid-template-columns:1fr}.designStudioWrap{padding:10px}.designStudioPanel{padding:12px}.top nav{display:flex;flex-wrap:wrap;gap:8px}.objectProps{grid-template-columns:1fr}.canvasShell canvas{width:100%;}}

/* v51 Design Studio admin GUI */
.designGuiBox{border:1px solid #cfe0f5;border-radius:16px;padding:20px;margin:18px 0;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.06)}
.designAdminHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e5edf7;padding-bottom:12px;margin-bottom:16px}
.templateViewsGrid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:14px;margin:12px 0 22px}.viewUploadCard{display:flex;flex-direction:column;gap:8px;background:#f8fafc;border:1px solid #dbe7f5;border-radius:14px;padding:12px}.viewUploadCard img{height:120px;object-fit:contain;background:white;border-radius:10px;border:1px solid #e5e7eb}.noImage{height:120px;display:grid;place-items:center;background:#eef2f7;border-radius:10px;color:#64748b}.designTableWrap{overflow:auto;border:1px solid #dbe7f5;border-radius:14px;margin:10px 0}.designVariantsTable,.designAreasTable{width:100%;border-collapse:collapse;background:white}.designVariantsTable th,.designVariantsTable td,.designAreasTable th,.designAreasTable td{border-bottom:1px solid #e5edf7;padding:10px;text-align:left;vertical-align:top}.designAreasTable input[type=number]{width:78px}.designAreasTable input,.designAreasTable select,.designVariantsTable input,.designVariantsTable select{min-height:36px}.methodChecks{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:6px}.methodChecks label{font-size:12px;font-weight:600;color:#334155}.iconBtn{border:none;background:#fee2e2;color:#991b1b;border-radius:10px;padding:8px 11px;font-weight:800;cursor:pointer}@media(max-width:900px){.templateViewsGrid{grid-template-columns:repeat(2,1fr)}.designAdminHeader{align-items:flex-start;flex-direction:column}.methodChecks{grid-template-columns:1fr}}@media(max-width:560px){.templateViewsGrid{grid-template-columns:1fr}.designTableWrap{margin-left:-6px;margin-right:-6px}}

/* v52 Design Studio admin visual area editor */
.areaVisualEditor{border:1px solid #dbe6f5;background:#f8fbff;border-radius:18px;padding:14px;margin:14px 0 18px;display:grid;gap:12px}
.areaEditorToolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.areaEditorToolbar label{min-width:220px}.areaCanvas{width:100%;max-width:900px;height:auto;background:white;border:1px solid #cbd8ea;border-radius:16px;touch-action:none;display:block;margin:auto}.designAreasTable input[type=number]{max-width:90px}.designAreasTable input[name="area_name[]"]{min-width:150px}.methodChecks{display:flex;gap:8px;flex-wrap:wrap}.methodChecks label{background:#eef4ff;border:1px solid #d8e7ff;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:800;white-space:nowrap}
.mockupCard form{display:inline}.mockupCard .dangerBtn{background:#fee2e2;color:#991b1b;border-color:#fecaca}
@media(max-width:800px){.areaEditorToolbar{display:grid}.areaEditorToolbar label{min-width:0}.areaCanvas{max-width:100%}.designTableWrap{overflow:auto}}
/* v60 design studio */
.pill.ok{background:#dcfce7;color:#166534;border:1px solid #86efac;padding:4px 9px;border-radius:999px;font-weight:700}.pill.bad{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;padding:4px 9px;border-radius:999px;font-weight:700}
/* v61 Design Studio/admin polish */
.rendererBadge{display:inline-flex;align-items:center;gap:6px;background:#e0f2fe;color:#075985;border:1px solid #bae6fd;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;margin-bottom:10px}
.designGuiBox{padding:16px!important}.designAdminHeader h3{font-size:18px;margin:0}.designAdminHeader p{margin:4px 0 0}.templateViewsGrid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))!important;gap:10px!important}.viewUploadCard{padding:9px!important}.viewUploadCard img,.noImage{height:76px!important}.viewUploadCard input[type=file]{font-size:12px;padding:8px}.designTableWrap{border-radius:10px!important}.designVariantsTable th,.designVariantsTable td,.designAreasTable th,.designAreasTable td{padding:7px!important}.methodChecks label{font-size:11px!important;padding:4px 7px!important}.iconBtn{padding:6px 9px!important;border-radius:8px!important}.areaCanvas{max-height:560px;object-fit:contain}.designToolbar{grid-template-columns:repeat(4,minmax(170px,1fr))!important}.canvasShell{background:#f8fafc!important}#designCanvas{background:#f8fafc!important}
@media(max-width:900px){.designToolbar{grid-template-columns:1fr 1fr!important}.templateViewsGrid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:560px){.designToolbar{grid-template-columns:1fr!important}.templateViewsGrid{grid-template-columns:1fr!important}}

/* v65 Design Studio Pro polish */
.rendererBadge{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#e0f2fe;color:#075985;font-weight:900;font-size:12px;border:1px solid #bae6fd;margin-bottom:10px}.rendererBadge.busy{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.rendererBadge.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}.rendererBadge.warn{background:#fee2e2;color:#991b1b;border-color:#fecaca}.artworkAnalysis{margin-top:14px;border:1px solid #dbe7f5;border-radius:14px;background:#f8fbff;padding:12px;display:grid;gap:7px;font-size:13px}.artworkAnalysis strong{font-size:15px}.artworkAnalysis .swatch{display:inline-block;width:16px;height:16px;border-radius:5px;border:1px solid #cbd5e1;margin:0 4px -3px 8px}.designGuiBox{background:#f8fbff!important;border-radius:18px!important;padding:18px!important}.designAdminHeader{background:white;border:1px solid #e3edf8;border-radius:16px;padding:14px 16px!important}.templateViewsGrid{gap:12px!important}.viewUploadCard{background:white!important;border-radius:16px!important;box-shadow:0 8px 18px rgba(15,23,42,.04)}.viewUploadCard img,.noImage{height:88px!important}.areaVisualEditor{background:white!important;border-radius:18px!important;padding:16px!important}.areaEditorToolbar{background:#f8fbff;border:1px solid #e5edf7;border-radius:14px;padding:10px}.areaCanvas{box-shadow:inset 0 1px 0 rgba(255,255,255,.7);cursor:grab}.areaCanvas:active{cursor:grabbing}.designAreasTable{font-size:13px}.designAreasTable thead th{background:#f8fafc;position:sticky;top:0;z-index:1}.designAreasTable input,.designAreasTable select{border-radius:10px!important}.designAreasTable input[type=number]{width:72px!important}.methodChecks{display:flex!important;gap:6px!important;flex-wrap:wrap!important}.methodChecks label{display:inline-flex!important;align-items:center;gap:5px;background:#eef6ff!important;border:1px solid #d7e9ff!important;border-radius:999px!important;padding:4px 8px!important;font-size:11px!important;line-height:1.1;box-shadow:none!important}.methodChecks input{width:14px!important;height:14px!important;accent-color:#0ea5e9}.designAreasTable td:has(.methodChecks){min-width:360px}.iconBtn{width:32px;height:32px;display:inline-grid;place-items:center}.designToolbar{align-items:end}.designToolbar .btn#addTextBtn{height:44px}.mockupCard img{background:#fff!important}.canvasHint{background:#f8fbff;border:1px solid #e5edf7;border-radius:12px;padding:8px 10px;margin-top:10px}@media(max-width:900px){.designAreasTable td:has(.methodChecks){min-width:260px}.areaEditorToolbar{display:grid!important}.designToolbar{grid-template-columns:1fr!important}.designGrid{grid-template-columns:1fr!important}.designSide{position:static!important}}

/* v64 Design Studio Pro interaction/admin cleanup */
.designGuiBox{background:#f7fbff!important;border:1px solid #d7e6f6!important;border-radius:22px!important;padding:18px!important;box-shadow:0 10px 28px rgba(15,23,42,.05)!important}
.designAdminHeader{display:grid!important;grid-template-columns:1fr auto!important;gap:12px!important;background:linear-gradient(135deg,#fff,#f8fbff)!important;border-radius:18px!important;padding:16px 18px!important;margin-bottom:16px!important}
.templateViewsGrid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))!important;gap:12px!important}
.viewUploadCard{border-radius:18px!important;border:1px solid #dbeafe!important;padding:10px!important;background:#fff!important}
.viewUploadCard img,.noImage{height:82px!important;border-radius:14px!important}
.areaVisualEditor{display:grid!important;grid-template-columns:minmax(280px,380px) minmax(0,1fr)!important;gap:16px!important;align-items:start!important;background:#fff!important;border:1px solid #dbeafe!important;border-radius:22px!important;padding:16px!important}
.areaEditorToolbar{grid-column:1/-1;display:flex!important;gap:10px!important;align-items:center!important;background:#eff6ff!important;border:1px solid #bfdbfe!important;border-radius:16px!important;padding:10px 12px!important}
.areaEditorToolbar label{min-width:200px!important;margin:0!important}.areaEditorToolbar .mutedText{font-size:12px!important;line-height:1.35!important}
.areaCanvas{max-height:640px!important;background:#fff!important;border:1px solid #cfe0f5!important;border-radius:20px!important;box-shadow:0 14px 32px rgba(15,23,42,.08)!important}
.designTableWrap{background:#fff!important;border-radius:18px!important;border:1px solid #dbeafe!important;box-shadow:0 8px 18px rgba(15,23,42,.04)!important}
.designAreasTable{font-size:12px!important}.designAreasTable thead th{background:#f1f7ff!important;color:#334155!important;text-transform:uppercase!important;letter-spacing:.04em!important;font-size:11px!important}.designAreasTable td{vertical-align:middle!important}
.designAreasTable input,.designAreasTable select{min-height:34px!important;border-radius:12px!important;border:1px solid #cfe0f5!important;background:#fff!important;font-size:12px!important;font-weight:700!important}.designAreasTable input[type=number]{width:66px!important}
.methodChecks{display:flex!important;gap:5px!important;flex-wrap:wrap!important;min-width:260px!important}
.methodChecks label{position:relative!important;display:inline-flex!important;align-items:center!important;gap:4px!important;padding:5px 8px!important;border-radius:999px!important;background:#f8fafc!important;border:1px solid #cbd5e1!important;color:#334155!important;font-size:10.5px!important;font-weight:900!important;line-height:1!important;box-shadow:none!important;cursor:pointer!important}
.methodChecks input{appearance:none!important;-webkit-appearance:none!important;width:12px!important;height:12px!important;border:1px solid #94a3b8!important;border-radius:4px!important;background:#fff!important;margin:0!important;display:inline-block!important}
.methodChecks input:checked{background:#2563eb!important;border-color:#2563eb!important;box-shadow:inset 0 0 0 2px #2563eb!important}.methodChecks input:checked::after{content:'✓';display:block;color:#fff;font-size:10px;line-height:10px;text-align:center;font-weight:900}
.iconBtn{width:30px!important;height:30px!important;border-radius:12px!important}.analysisWarnings{margin:4px 0 0 18px;color:#b45309;font-weight:700}.artworkAnalysis em{font-style:normal;color:#b45309;font-size:12px}
#designCanvas{cursor:default}.designSide{box-shadow:0 14px 32px rgba(15,23,42,.08)!important}.objectProps input,.objectProps textarea{font-weight:800!important}
@media(max-width:1100px){.areaVisualEditor{grid-template-columns:1fr!important}.designAdminHeader{grid-template-columns:1fr!important}.areaEditorToolbar{display:grid!important}.methodChecks{min-width:220px!important}}

/* v65 Design Studio admin polish */
.designGuiBox.v65Clean,.designGuiBox{background:#fff!important;border:1px solid #dbe7f5!important;border-radius:22px!important;box-shadow:0 14px 36px rgba(15,23,42,.07)!important;padding:18px!important}
.designAdminHeader{display:grid!important;grid-template-columns:1fr auto!important;gap:16px!important;align-items:center!important;background:linear-gradient(180deg,#ffffff,#f8fbff)!important;border:1px solid #e5edf7!important;border-radius:18px!important;padding:16px!important;margin-bottom:16px!important}
.designAdminHeader h3{font-size:20px!important;margin:0!important}.designAdminHeader p{font-size:13px!important;color:#64748b!important;margin:4px 0 0!important}
.templateViewsGrid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important;gap:12px!important}.viewUploadCard{border:1px solid #e3edf8!important;background:#fff!important;border-radius:16px!important;padding:10px!important;box-shadow:0 8px 18px rgba(15,23,42,.04)!important}.viewUploadCard img,.noImage{height:92px!important;object-fit:contain!important;background:#f8fafc!important}
.areaVisualEditor{display:grid!important;grid-template-columns:minmax(360px,470px) minmax(0,1fr)!important;background:#fff!important;border:1px solid #dbeafe!important;border-radius:22px!important;padding:16px!important;gap:16px!important}.areaEditorToolbar{grid-column:1/-1;background:#f1f7ff!important;border:1px solid #cfe0f5!important;border-radius:16px!important;padding:12px!important}.areaCanvas{width:100%!important;max-width:460px!important;max-height:620px!important;border-radius:18px!important;background:#fff!important;box-shadow:0 16px 34px rgba(15,23,42,.09)!important}
.designTableWrap{border:1px solid #e3edf8!important;border-radius:18px!important;background:#fff!important;box-shadow:0 10px 24px rgba(15,23,42,.04)!important}.designAreasTable th,.designAreasTable td{padding:9px!important;border-bottom:1px solid #edf2f7!important}.designAreasTable thead th{background:#f8fbff!important;color:#475569!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.06em!important}.designAreasTable input,.designAreasTable select{height:34px!important;border-radius:10px!important;font-size:12px!important}.designAreasTable input[type=number]{width:62px!important;text-align:center!important}.methodChecks{display:flex!important;gap:5px!important;flex-wrap:wrap!important;min-width:300px!important}.methodChecks label{display:inline-flex!important;align-items:center!important;gap:4px!important;background:#f8fafc!important;border:1px solid #cbd5e1!important;border-radius:999px!important;padding:5px 8px!important;font-size:10px!important;font-weight:900!important;color:#334155!important;cursor:pointer!important}.methodChecks input{appearance:none!important;-webkit-appearance:none!important;width:13px!important;height:13px!important;border:1px solid #94a3b8!important;border-radius:4px!important;background:white!important;margin:0!important}.methodChecks input:checked{background:#2563eb!important;border-color:#2563eb!important}.methodChecks input:checked:after{content:'✓';display:block;color:white;font-size:10px;line-height:11px;text-align:center}.iconBtn{width:30px!important;height:30px!important;border-radius:10px!important;padding:0!important}.rendererBadge{font-size:12px!important}
@media(max-width:1150px){.areaVisualEditor{grid-template-columns:1fr!important}.areaCanvas{max-width:100%!important}.methodChecks{min-width:220px!important}.designAdminHeader{grid-template-columns:1fr!important}}

/* v66 Design Studio admin UI cleanup - larger visual editor, compact controls */
.designGuiBox{background:#f6f9fc!important;border:1px solid #d8e6f6!important;border-radius:24px!important;padding:22px!important;box-shadow:0 18px 42px rgba(15,23,42,.07)!important}
.designAdminHeader{background:#fff!important;border:1px solid #e5eef8!important;border-radius:20px!important;padding:18px 20px!important;box-shadow:0 8px 22px rgba(15,23,42,.04)!important}
.templateViewsGrid{grid-template-columns:repeat(auto-fill,minmax(235px,1fr))!important;gap:14px!important}.viewUploadCard{border-radius:18px!important;padding:12px!important}.viewUploadCard img,.noImage{height:110px!important;background:#f8fafc!important}
.areaVisualEditor{display:block!important;background:#fff!important;border:1px solid #d8e6f6!important;border-radius:24px!important;padding:18px!important;margin:18px 0!important;box-shadow:0 14px 34px rgba(15,23,42,.06)!important}
.areaEditorToolbar{display:flex!important;align-items:end!important;gap:12px!important;flex-wrap:wrap!important;background:#eef6ff!important;border:1px solid #c9dcf5!important;border-radius:18px!important;padding:14px!important;margin-bottom:16px!important}
.areaEditorToolbar label{min-width:250px!important;font-size:13px!important;color:#1e3a8a!important}.areaEditorToolbar select{height:44px!important}.areaEditorToolbar .btn{height:44px!important;align-self:end!important}.areaEditorToolbar .mutedText{font-size:13px!important;color:#475569!important;line-height:1.4!important;max-width:760px!important}
.areaCanvas{display:block!important;width:100%!important;max-width:980px!important;max-height:760px!important;height:auto!important;margin:0 auto!important;border-radius:22px!important;background:#fff!important;border:1px solid #cfe0f5!important;box-shadow:0 18px 44px rgba(15,23,42,.09)!important;cursor:crosshair!important}
.designTableWrap{border-radius:22px!important;overflow:auto!important;background:#fff!important;border:1px solid #d8e6f6!important;box-shadow:0 14px 34px rgba(15,23,42,.05)!important;margin-top:18px!important}
.designAreasTable{min-width:1040px!important;border-collapse:separate!important;border-spacing:0!important;font-size:12px!important}.designAreasTable thead th{background:#f3f8ff!important;color:#334155!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.06em!important;padding:11px 10px!important;border-bottom:1px solid #dbe7f5!important}.designAreasTable tbody tr{background:#fff!important}.designAreasTable tbody tr:hover{background:#f8fbff!important}.designAreasTable td{padding:10px!important;border-bottom:1px solid #edf2f7!important;vertical-align:middle!important}.designAreasTable input,.designAreasTable select{height:38px!important;border:1px solid #cfe0f5!important;border-radius:12px!important;background:#fff!important;font-size:13px!important;font-weight:700!important;box-shadow:none!important}.designAreasTable input[type=number]{width:70px!important;text-align:center!important}.designAreasTable select[name="area_view[]"]{width:96px!important}.designAreasTable input[name="area_name[]"]{width:210px!important}
.methodChecks{display:flex!important;gap:6px!important;flex-wrap:wrap!important;min-width:260px!important;max-width:420px!important}.methodChecks label{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-width:42px!important;height:30px!important;padding:0 8px!important;border-radius:10px!important;border:1px solid #cbd5e1!important;background:#fff!important;color:#334155!important;font-size:11px!important;font-weight:900!important;line-height:1!important;box-shadow:none!important;cursor:pointer!important;white-space:nowrap!important}.methodChecks label:has(input:checked){background:#eaf2ff!important;border-color:#2563eb!important;color:#1d4ed8!important}.methodChecks input{appearance:none!important;-webkit-appearance:none!important;width:12px!important;height:12px!important;border-radius:4px!important;border:1px solid #94a3b8!important;background:white!important;margin:0!important;display:inline-grid!important;place-items:center!important}.methodChecks input:checked{background:#2563eb!important;border-color:#2563eb!important}.methodChecks input:checked:after{content:'✓'!important;color:#fff!important;font-size:9px!important;line-height:10px!important;text-align:center!important}
.iconBtn{width:34px!important;height:34px!important;border-radius:12px!important;background:#fee2e2!important;color:#991b1b!important;border:1px solid #fecaca!important;font-size:16px!important}
.adminTabs{display:flex!important;gap:8px!important;flex-wrap:wrap!important}.adminTabs a{border-radius:999px!important;padding:10px 14px!important;background:#f8fafc!important;border:1px solid #dbe7f5!important;font-weight:900!important}.adminTabs a.active{background:#1d4ed8!important;color:#fff!important;border-color:#1d4ed8!important}
@media(max-width:900px){.areaCanvas{max-width:100%!important}.designAreasTable{min-width:960px!important}.areaEditorToolbar{display:grid!important}.areaEditorToolbar label{min-width:0!important}.templateViewsGrid{grid-template-columns:1fr 1fr!important}}
@media(max-width:600px){.templateViewsGrid{grid-template-columns:1fr!important}.designGuiBox{padding:12px!important}.areaVisualEditor{padding:12px!important}.designTableWrap{margin-left:-8px!important;margin-right:-8px!important;border-radius:14px!important}}

/* v67 Design Studio Pro polish */
.artworkTools{margin-top:12px;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff;padding:12px;display:grid;gap:9px;font-size:13px}.artworkTools strong{font-size:15px}.artworkTools .toolRow{display:flex;gap:8px;flex-wrap:wrap}.btn.small{padding:8px 10px;font-size:12px;border-radius:10px}.confirmedColours{display:grid;grid-template-columns:1fr 86px;gap:8px;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:8px;font-weight:800}.confirmedColours input{height:34px;border-radius:8px;border:1px solid #cbd5e1;text-align:center;font-weight:900}
/* cleaner setup UI: compact chips and larger visual editor */
.adminTabs{position:sticky;top:0;z-index:20;background:#f1f5f9;padding:10px;border-radius:0 0 14px 14px}.designGuiBox{background:#fff!important;border:1px solid #d8e6f6!important;border-radius:22px!important;box-shadow:0 18px 42px rgba(15,23,42,.06)!important;padding:20px!important}.designGuiBox h3{font-size:17px!important;margin:22px 0 10px!important}.areaVisualEditor{background:#f8fbff!important;border:1px solid #dbeafe!important;border-radius:20px!important;padding:18px!important}.areaEditorToolbar{display:flex!important;align-items:center!important;gap:12px!important;background:#fff!important;border:1px solid #e5edf7!important;border-radius:16px!important;padding:12px!important;margin-bottom:14px!important}.areaEditorToolbar label{font-size:12px!important;color:#334155!important;font-weight:900!important}.areaEditorToolbar select{height:42px!important;border-radius:12px!important;border:1px solid #cfe0f5!important;font-weight:800!important}.areaCanvas{width:100%!important;max-width:1120px!important;height:auto!important;min-height:560px!important;background:white!important;border:1px solid #cfe0f5!important;border-radius:18px!important;box-shadow:0 12px 28px rgba(15,23,42,.05)!important}.designTableWrap{border:0!important;box-shadow:none!important;background:transparent!important;overflow:auto!important}.designAreasTable{border-collapse:separate!important;border-spacing:0 8px!important;min-width:1050px!important}.designAreasTable thead th{background:transparent!important;border:0!important;color:#64748b!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.06em!important}.designAreasTable tbody tr{background:#fff!important;box-shadow:0 6px 18px rgba(15,23,42,.045)!important;border-radius:16px!important}.designAreasTable td{border:0!important;padding:10px 8px!important;vertical-align:middle!important}.designAreasTable input,.designAreasTable select{height:38px!important;border:1px solid #cfe0f5!important;border-radius:12px!important;background:#fff!important;font-size:13px!important;font-weight:800!important}.designAreasTable input[type=number]{width:72px!important;text-align:center!important}.methodChecks{display:flex!important;gap:6px!important;flex-wrap:wrap!important;min-width:260px!important}.methodChecks label{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;min-width:44px!important;height:30px!important;background:#f8fafc!important;border:1px solid #cbd5e1!important;border-radius:999px!important;padding:0 8px!important;font-size:10px!important;font-weight:900!important;color:#334155!important;line-height:1!important;cursor:pointer!important}.methodChecks input{appearance:none!important;-webkit-appearance:none!important;width:14px!important;height:14px!important;border:1px solid #94a3b8!important;border-radius:4px!important;background:#fff!important;margin:0!important;position:relative!important}.methodChecks input:checked{background:#2563eb!important;border-color:#2563eb!important}.methodChecks input:checked:after{content:'✓';position:absolute;color:white;font-size:11px;line-height:13px;left:2px;top:-1px}.templateViewsGrid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))!important;gap:12px!important}.viewUploadCard{background:#fff!important;border:1px solid #e3edf8!important;border-radius:16px!important;padding:10px!important;box-shadow:0 8px 20px rgba(15,23,42,.045)!important}.viewUploadCard img,.noImage{height:96px!important;object-fit:contain!important;background:#fff!important;border-radius:12px!important}.designToolbar{position:sticky;top:0;z-index:9;background:#fff;border-bottom:1px solid #e2e8f0;padding:10px 0;align-items:end}.designSide{position:sticky!important;top:78px;align-self:start}.designSide .btn{padding:10px 12px}.canvasShell{min-height:620px}.canvasShell canvas{max-width:100%;height:auto!important}.layerBtn{width:100%;text-align:left}.artworkAnalysis .analysisWarnings{margin:6px 0 0 18px;color:#b45309;font-weight:800}.artworkAnalysis em{font-size:12px;color:#b45309}@media(max-width:1000px){.designGrid{grid-template-columns:1fr!important}.designSide{position:static!important}.designToolbar{grid-template-columns:1fr 1fr!important}.areaCanvas{min-height:420px!important}}@media(max-width:640px){.designToolbar{grid-template-columns:1fr!important}.areaEditorToolbar{display:grid!important}.designGuiBox{padding:12px!important}.areaCanvas{min-height:320px!important}}
