@font-face{font-family:Lao;src:url('../shared/assets/noto-sans-lao-lao.woff2');font-display:swap;unicode-range:U+0E80-0EFF}@font-face{font-family:Lao;src:url('../shared/assets/noto-sans-lao-latin.woff2');font-display:swap;unicode-range:U+0000-00FF}*{box-sizing:border-box}body{margin:0;background:#f1f4f9;color:#17263e;font:14px Lao,'Noto Sans Lao',system-ui,sans-serif;--bg:#f1f4f9;--panel:#fff;--text:#17263e;--muted:#65748c;--line:#e2e8f1;--blue:#1256c0;--soft:#edf3ff;--shadow:0 8px 30px #18345c06}body.dark{--bg:#101722;--panel:#182333;--text:#e7edf7;--muted:#a1b0c5;--line:#2b3a4e;--blue:#80b2ff;--soft:#223651;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{opacity:.45;cursor:wait}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:#101f36;color:#d8e4f8;padding:32px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:30px}.wordmark{font-size:28px;letter-spacing:4px;font-weight:900;color:white}.brand-sub{font-size:10px;letter-spacing:3px;color:#7da3dd;margin-top:4px}.nav{display:grid;gap:6px}.nav button{border:0;background:none;color:#a9bbd5;padding:13px 14px;text-align:left;border-radius:8px;display:flex;gap:14px;align-items:center}.nav button.active,.nav button:hover{color:white;background:#1b427c}.nav .num{font:11px system-ui;color:#79a5e6}.sidebar footer{margin-top:auto;color:#92a8c5;font-size:12px}.store-link{display:block;color:white;text-decoration:none;border:1px solid #47607f;padding:12px;margin-bottom:18px;border-radius:7px}.main{min-width:0}.topbar{padding:18px 34px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}.topbar .context{color:var(--muted);font-size:12px}.topbar strong{display:block;color:var(--text);font-size:16px}.tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tools select,.tools button{padding:7px 9px;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text)}.notice{padding:9px 34px;background:var(--soft);color:var(--blue);font-size:12px;border-bottom:1px solid var(--line)}main{padding:30px 34px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}h1{font-size:30px;line-height:1.3;letter-spacing:-.7px;margin:0 0 7px}h2{font-size:17px;margin:0 0 16px}h3{font-size:14px;margin:0 0 12px}p{line-height:1.7}.muted,.hint{color:var(--muted)}.hint{font-size:12px}.page-head p{margin:0}.eyebrow{font:10px system-ui;letter-spacing:2px;color:var(--blue);margin-bottom:9px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.metric,.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.metric{padding:21px}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;font:600 33px system-ui;margin:9px 0 0}.metric small{color:var(--muted)}.card{padding:22px;min-width:0;margin-bottom:20px}.grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px}.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.card-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.btn{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:9px 13px;border-radius:7px;font-size:12px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:hover{border-color:var(--blue);color:var(--blue)}.btn.primary{background:#1256c0;color:white;border-color:#1256c0}.btn.danger{color:#b84646}.btn.small{font-size:11px;padding:6px 9px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.table-wrap{overflow:auto;max-width:100%;border-radius:8px}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{color:var(--muted);font-weight:500;background:var(--bg);white-space:nowrap}td,th{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}td{line-height:1.6}td:first-child{font-weight:500}tbody tr:last-child td{border-bottom:0}.badge{display:inline-block;font-size:10px;background:var(--soft);color:var(--blue);border:1px solid var(--line);padding:3px 7px;border-radius:5px;white-space:nowrap}.badge.good{background:#eaf6ef;color:#23794a}.badge.warn{background:#fff5dc;color:#8f6524}.badge.bad{background:#ffecec;color:#ad4040}.summary{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}.summary:last-child{border:0}.summary span{color:var(--muted)}.summary strong{text-align:right;font-weight:600}.task{display:flex;gap:15px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.task:last-child{border:0}.task .index{background:var(--soft);padding:10px;border-radius:8px;font:12px system-ui;color:var(--blue)}.task .grow{flex:1}.task p{margin:3px 0;color:var(--muted);font-size:12px}.progress{display:flex;gap:3px;margin:20px 0;overflow:auto}.step{flex:1;min-width:70px;border-top:4px solid var(--line);padding-top:8px;font-size:10px;color:var(--muted)}.step.reached{border-color:#1861cd;color:var(--blue)}label{display:grid;gap:6px;color:var(--muted);font-size:12px}input,textarea,select{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);padding:10px;width:100%;min-width:0}input[type=number]{min-width:80px}.search{max-width:360px;margin-bottom:16px}.select-order{max-width:360px}.roster-input{padding:7px;width:100%;min-width:75px}.mono{font:11px ui-monospace,monospace}.empty{padding:30px;text-align:center;color:var(--muted)}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(520px,calc(100vw - 32px));padding:26px;max-height:90vh}dialog::backdrop{background:#08192d99;backdrop-filter:blur(3px)}dialog form{display:grid;gap:16px}dialog .actions{justify-content:flex-end;margin-bottom:0}#toast{position:fixed;bottom:22px;right:22px;background:#173c2b;color:white;border-radius:9px;padding:15px 20px;max-width:min(470px,90vw);box-shadow:0 8px 25px #0003;display:none;z-index:10}#toast.error{background:#842e35}.error-inline{color:#b84646;font-size:12px;line-height:1.7}.small-logo{width:44px;height:44px;object-fit:cover;border-radius:8px}.sku{display:flex;gap:12px;align-items:center}.event{font-size:11px;padding:10px 0;border-bottom:1px solid var(--line)}.event time{color:var(--muted);display:block;margin-top:3px}.checklist{display:grid;gap:9px}.check{padding:10px;border-left:3px solid var(--line);background:var(--bg);font-size:12px}.check.ok{border-color:#43a172}.role-note{font-size:10px;color:var(--muted);max-width:185px}.banner{padding:22px;border-radius:12px;background:linear-gradient(115deg,#0b3678,#175cca);color:white;margin-bottom:24px;display:flex;justify-content:space-between;gap:22px;align-items:center}.banner p{color:#d8e8ff;margin:8px 0 0}.banner .btn{border-color:#ffffff55;background:#ffffff14;color:white}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.mobile-brand{display:none}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{grid-template-columns:1fr}.shell{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding:25px 13px}main{padding:24px}.topbar,.notice{padding-left:24px;padding-right:24px}}@media(max-width:700px){.shell{display:block}.sidebar{height:auto;position:static;padding:16px;gap:15px}.brand{display:none}.sidebar footer{display:none}.nav{display:flex;overflow:auto;gap:5px}.nav button{white-space:nowrap;padding:10px}.nav .num{display:none}.mobile-brand{display:block;letter-spacing:2px}.topbar{padding:14px 16px}.role-note{display:none}.notice{padding:9px 16px}main{padding:22px 16px}.page-head{align-items:start;flex-direction:column;gap:12px}h1{font-size:25px}.card{padding:16px}.metric{padding:16px}.metric strong{font-size:27px}.metrics{gap:10px}.banner{align-items:start;flex-direction:column}.tools{gap:5px}.tools select{max-width:135px}.table-wrap td,.table-wrap th{padding:10px}.toolbar .select-order{max-width:100%;width:100%}.step{min-width:75px}.card-head{flex-wrap:wrap}}

/* Original Papon logo is displayed by cropping its supplied square image in CSS. */
.brand-mark{display:block;position:relative;overflow:hidden;width:180px;height:57px;border-radius:8px;margin-bottom:15px;background:#e5f7fa}.brand-mark img{position:absolute;left:-21%;top:50%;width:142%;height:auto;max-width:none;transform:translateY(-50%)}.wordmark{font-size:23px}.papon-icon{width:19px;height:19px;flex:0 0 auto;vertical-align:middle}.nav .papon-icon{width:20px;height:20px}.with-icon{display:flex;gap:10px;align-items:center}.with-icon .papon-icon{color:var(--blue)}.step{display:flex;flex-direction:column;gap:8px}.step .papon-icon{width:18px;height:18px}.store-link{display:flex;gap:9px;align-items:center}.tools button{display:inline-flex;align-items:center;gap:6px}.btn:disabled{cursor:not-allowed;opacity:.42}.btn .papon-icon{width:16px;height:16px}.btn:disabled:hover{color:var(--muted);border-color:var(--line)}.mobile-brand{display:none}.context .brand-mark{margin-bottom:6px}.sidebar{gap:22px}.brand-sub{letter-spacing:2px}.nav button{gap:12px}.nav button span{min-width:0}.topbar .context{min-width:0}@media(max-width:1100px){.brand-mark{width:165px;height:52px}}@media(max-width:700px){.mobile-brand.brand-mark{display:block;width:88px;height:29px;margin-bottom:6px}.brand{display:none}.nav .papon-icon{width:17px;height:17px}.nav button{gap:7px}.tools .papon-icon{width:16px;height:16px}.step{gap:7px}}

.roster-fields{border:0;padding:0;margin:0;min-width:0}.roster-fields:disabled{opacity:.72}

.release-prereqs{border:1px solid var(--line);border-radius:9px;padding:16px;margin:16px 0}.release-prereqs .check{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.release-prereqs .check>span:not(.badge){flex:1}.release-prereqs .papon-icon{width:16px;height:16px}
/* White transparent Papon mark; no rectangular image background. */
.brand-mark{background:transparent;border-radius:0;overflow:visible;width:175px;height:58px}.brand-mark img{position:static;width:100%;height:100%;object-fit:contain;transform:none;filter:brightness(0) invert(1)}.mobile-brand.brand-mark img{filter:brightness(0)}.dark .mobile-brand.brand-mark img{filter:brightness(0) invert(1)}
.work-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.work-toolbar input{max-width:280px}.work-toolbar>select{max-width:210px}.view-switch{display:flex;gap:5px}.text-link{color:var(--blue);background:none;border:0;padding:0;text-align:left;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.kanban{display:flex;gap:14px;overflow-x:auto;align-items:stretch;padding:3px 0 15px}.kanban-lane{flex:0 0 250px;min-height:210px;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:12px}.kanban-lane h3{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding-bottom:12px;border-bottom:1px solid var(--line)}.kanban-lane.drag-over{outline:2px solid var(--blue);background:var(--soft)}.work-card{background:var(--panel);border:1px solid var(--line);padding:15px;border-radius:8px;margin-bottom:10px;box-shadow:var(--shadow);cursor:grab}.work-card.dragging{opacity:.45}.work-card p{font-size:12px;margin:8px 0}.work-card small{font-size:10px;color:var(--muted)}.work-card .actions{gap:5px}.move-label{font-size:10px}.move-label select{padding:6px}.lane-empty{color:var(--muted);font-size:11px;text-align:center;padding:28px 0}.gantt-wrap{overflow:auto;margin-bottom:25px}.gantt-chart{min-width:720px}.gantt-head,.gantt-row{display:grid;grid-template-columns:180px minmax(500px,1fr);align-items:center;border-bottom:1px solid var(--line);min-height:56px;gap:15px}.gantt-head{font-size:11px;color:var(--muted)}.gantt-head span{float:right}.gantt-track{position:relative;height:42px;background:repeating-linear-gradient(90deg,transparent,transparent calc(10% - 1px),var(--line) calc(10% - 1px),var(--line) 10%);border-left:1px solid var(--line)}.gantt-bar{position:absolute;top:5px;height:32px;min-width:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #236dcc;border-radius:5px;background:#dbeafe;color:#154c97;font:11px system-ui;padding:6px;cursor:pointer;text-align:left}.customer-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-metrics .metric strong{font-size:23px}.customer-note{white-space:pre-wrap}.customer-detail h3{margin-top:24px}.table-wrap{max-height:560px}thead th{position:sticky;top:0;z-index:1}.topbar .tools{display:flex;flex-wrap:wrap;justify-content:flex-end}.topbar .tools select{width:auto;max-width:190px}
@media(max-width:700px){.work-toolbar{gap:9px}.view-switch{width:100%}.view-switch .btn{flex:1;padding:8px}.work-toolbar input,.work-toolbar>select{max-width:100%;width:100%}.kanban-lane{flex-basis:235px}.customer-metrics{grid-template-columns:1fr}.mobile-brand.brand-mark{width:95px;height:33px}.topbar{gap:10px;flex-wrap:wrap}.topbar .tools{justify-content:flex-start}.table-wrap{max-height:450px}}
@media(max-width:700px){.topbar{background:#102036;color:#fff}.topbar .context{color:#b4c5de}.topbar .context strong{color:#fff}.mobile-brand.brand-mark img{filter:brightness(0) invert(1)}}
.customer-list table{min-width:650px}.work-content> .table-wrap table{min-width:1100px}

/* Shared status semantics and filter controls */
.badge{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.badge .papon-icon{width:14px;height:14px;flex:none}
.badge.status-yellow{background:#fff3c4;color:#795200;border-color:#e7c158}.badge.status-cyan{background:#d9f5ff;color:#075e78;border-color:#84cddd}.badge.status-blue{background:#dbe9ff;color:#154aa7;border-color:#94b6ef}.badge.status-green{background:#dcf5e5;color:#14603b;border-color:#8dcca5}.badge.status-red{background:#ffe2e2;color:#982c34;border-color:#e9a0a6}.badge.status-neutral{background:#edf0f4;color:#485770;border-color:#cbd4e0}
.filter-strip{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:14px 0;border-top:1px solid var(--line,#dce4ef);margin-top:14px}.filter-strip>strong{display:flex;align-items:center;gap:5px;align-self:center}.filter-strip label{font-size:12px;display:grid;gap:5px}.filter-strip select{min-width:130px}.kanban-lane{border-top:4px solid #efc44c}.kanban-lane[data-drop-stage=released],.kanban-lane[data-drop-stage=complete],.kanban-lane[data-drop-stage=delivered]{border-top-color:#30a269}.kanban-lane[data-drop-stage=cutting],.kanban-lane[data-drop-stage=printing],.kanban-lane[data-drop-stage=sewing]{border-top-color:#2867d0}.kanban-lane[data-drop-stage=qc],.kanban-lane[data-drop-stage=shipping]{border-top-color:#36a8c8}.kanban-lane[data-drop-stage=exceptions]{border-top-color:#d46060}.kanban-lane h3{display:flex;align-items:center;justify-content:space-between;gap:5px}.status-legend{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.report-dialog{max-width:1000px;width:90vw}.report-dialog .table-wrap{max-height:55vh;overflow:auto}.report-summary{white-space:pre-wrap}.report-source{font-size:12px;color:var(--muted)}
@media print{body>*{display:none!important}body>dialog[open]{display:block!important;position:static;max-width:none;width:100%;border:0;color:#111;background:white}dialog .actions{display:none!important}dialog .table-wrap{max-height:none!important;overflow:visible!important}}

.reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.reference-grid article{border:1px solid var(--line,#dce4ef);padding:16px;border-radius:14px}.reference-grid img{width:100%;height:250px;object-fit:contain;background:#fff;border-radius:8px}.reference-grid h3{font-size:16px;margin:12px 0}.reference-grid a{font-size:12px}@media(max-width:800px){.reference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.reference-grid{grid-template-columns:1fr}}

@media(min-width:701px){.sidebar{overflow-y:auto;overscroll-behavior:contain}.sidebar .brand,.sidebar nav,.sidebar footer{flex-shrink:0}.nav button{padding-top:9px;padding-bottom:9px}}

.tools .role-note{display:grid;gap:3px;max-width:180px}.tools .role-note select{width:100%}@media(max-width:700px){.tools .role-note{display:grid;max-width:145px}}

.nav-section{font-size:9px;letter-spacing:1.4px;color:#7189a9;padding:15px 14px 3px}.module-tabs{display:flex;gap:8px;overflow:auto;margin:-4px 0 22px;border-bottom:1px solid var(--line);padding-bottom:12px}.module-tabs button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--panel);padding:10px 15px;white-space:nowrap}.module-tabs button.active{color:var(--blue);background:var(--soft);border-color:var(--blue)}.demo-examples p{max-width:700px}.sidebar .nav{gap:4px}.sidebar{gap:20px}.brand{margin-bottom:4px}@media(max-width:700px){.nav-section{display:none}.module-tabs{margin:0 0 18px}.module-tabs button{font-size:12px}}
