:root{--bg:#f8fafc;--panel:#fff;--panel-2:#f1f5f9;--border:#e5e7eb;--border-strong:#d1d5db;--text:#111827;--body:#374151;--muted:#4b5563;--accent:#16a34a;--accent-strong:#15803d;--accent-hover:#14532d;--accent-light:#dcfce7;--ok:#15803d;--info:#0369a1;--warn:#b45309;--danger:#b91c1c;--purple:#6d28d9;--shadow-card:0 2px 12px rgba(0,0,0,.04);--radius:12px;--font:"IBM Plex Sans","Noto Sans Thai",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--header-h:72px;--sidebar-w:260px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;-webkit-font-smoothing:antialiased}a{color:var(--accent-strong);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.mono{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;height:var(--header-h);gap:8px;padding-right:20px;background:var(--accent-strong);border-bottom:1px solid var(--accent-hover)}.app-header,.brand{flex:none;display:flex;align-items:center}.brand{width:var(--sidebar-w);gap:12px;padding-left:20px;color:#fff}.brand-mark{width:36px;height:36px;flex:none;border-radius:10px;background:rgba(0,0,0,.14);border:1px solid hsla(0,0%,100%,.35);display:flex;align-items:center;justify-content:center}.brand-name{font-size:15px;font-weight:700;line-height:1.3}.brand-sub{font-size:11.5px;line-height:1.3;color:hsla(0,0%,100%,.85)}.hdr-burger{display:none;width:38px;height:38px;flex:none;margin-left:14px;align-items:center;justify-content:center;border-radius:10px;border:1px solid hsla(0,0%,100%,.3);background:rgba(0,0,0,.14);color:#fff;font-size:18px;cursor:pointer}.hdr-actions{margin-left:auto;gap:8px}.hdr-actions,.hdr-btn{display:flex;align-items:center}.hdr-btn{position:relative;height:38px;min-width:38px;flex:none;justify-content:center;gap:7px;padding:0 10px;border-radius:10px;border:1px solid hsla(0,0%,100%,.3);background:rgba(0,0,0,.14);color:#fff;font-family:inherit;font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer}.hdr-btn:hover{background:rgba(0,0,0,.24)}.hdr-dot{position:absolute;top:6px;right:7px;width:7px;height:7px;border-radius:50%;background:#f59e0b;border:1.5px solid var(--accent-strong)}.op-pill{display:flex;align-items:center;gap:8px;height:38px;padding:0 10px 0 5px;border-radius:999px;border:1px solid hsla(0,0%,100%,.5);background:#fff;font-family:inherit;cursor:pointer}.op-pill.unset{background:#fffbeb;border:2px dashed #f59e0b}.op-avatar{width:26px;height:26px;flex:none;border-radius:50%;background:var(--accent-strong);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.op-pill.unset .op-avatar{background:#b45309}.op-text{line-height:1.2;text-align:left}.op-text .k{font-size:9px;color:var(--muted)}.op-text .k,.op-text .v{display:block;white-space:nowrap}.op-text .v{font-size:11.5px;font-weight:700;color:var(--text)}.op-text .cd{font-family:var(--mono)}.op-text .cd.alt{display:none;font-family:inherit}.op-caret{color:var(--muted);font-size:10px}.op-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:280px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 40px -18px rgba(15,23,42,.45);padding:12px}.op-menu h4{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--muted)}.op-menu input{width:100%;min-width:0;margin-bottom:8px}.op-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.op-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:9px;background:transparent;font-family:inherit;font-size:13.5px;color:var(--text);text-align:left;cursor:pointer}.op-item:hover{background:var(--panel-2)}.op-item.on{background:var(--accent-light);color:var(--accent-strong);font-weight:600}.op-item .code{margin-left:auto;font-family:var(--mono)}.op-item .code,.op-menu .foot{font-size:11.5px;color:var(--muted)}.op-menu .foot{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);line-height:1.6}.op-warning{display:flex;align-items:center;gap:10px;padding:9px 32px;background:#fffbeb;border-bottom:1px solid #fcd34d;color:#b45309;font-size:13px;font-weight:600}.op-warning button{margin-left:auto;height:30px;padding:0 12px;font-size:12.5px}.layout{display:flex;flex:1 1;min-height:0;align-items:flex-start}.sidebar{position:-webkit-sticky;position:sticky;top:var(--header-h);width:var(--sidebar-w);flex:none;height:calc(100vh - var(--header-h));overflow-y:auto;background:var(--panel);border-right:1px solid var(--border);padding:12px 12px 24px}.nav-group{margin-bottom:1px}.nav-group-title{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--body);font:inherit;font-size:14px;text-align:left;cursor:pointer}.nav-group-title:hover{background:var(--panel-2)}.nav-group-title.open{background:var(--bg);color:var(--text);font-weight:600}.nav-group-title.has-active{color:var(--accent-strong);font-weight:600}.nav-group-icon{width:18px;height:18px;flex:none;display:flex;align-items:center;justify-content:center;color:currentColor}.nav-group-label{flex:1 1}.nav-caret{flex:none;color:var(--muted);font-size:10px}.nav-links{padding:2px 0 6px}.nav a,.nav-link{display:block;padding:8px 12px 8px 42px;margin:1px 0;border-radius:10px;color:var(--body);font-size:13.5px}.nav a:hover,.nav-link:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.nav a.active,.nav-link.active{background:var(--accent-light);color:var(--accent-strong);font-weight:600}.nav-link.top{display:flex;align-items:center;gap:12px;padding:10px 12px;font-size:14px}.drawer-backdrop{display:none}.content{flex:1 1;min-width:0;display:flex;flex-direction:column}.page-bar{position:-webkit-sticky;position:sticky;top:var(--header-h);z-index:20;min-height:48px;display:flex;align-items:center;gap:8px;padding:0 32px;background:var(--panel);border-bottom:1px solid var(--border);font-size:13px;color:var(--muted)}.page-bar .sep{color:var(--border-strong)}.page-bar .leaf{color:var(--text);font-weight:600;font-size:16px}.page-bar .bar-status{padding:3px 10px;border-radius:999px;background:#fffbeb;border:1px solid #fcd34d;color:var(--warn);font-size:12px;font-weight:600;white-space:nowrap}.page-bar .bar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.page-bar .bar-actions button{height:32px;padding:0 12px;font-size:13px}.main{flex:1 1;min-width:0;padding:24px 32px 48px}.page-title{margin:0 0 20px;font-size:22px;font-weight:700;letter-spacing:-.01em}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-card);overflow-x:auto}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.req{color:var(--danger);font-weight:700}label{display:block;font-size:12.5px;font-weight:600;color:var(--body);margin-bottom:5px}input,select,textarea{background:var(--panel);border:1px solid var(--border-strong);color:var(--text);border-radius:9px;padding:9px 12px;font-family:inherit;font-size:14px;min-width:160px}input:not([type=checkbox]):not([type=radio]),select{height:40px;padding-top:0;padding-bottom:0}input[type=checkbox],input[type=radio]{min-width:0;width:17px;height:17px;padding:0;border:none;border-radius:0;accent-color:var(--accent-strong);cursor:pointer;vertical-align:middle}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(22,163,74,.25)}input::placeholder{color:#9ca3af}button{background:var(--accent-strong);color:#fff;border:none;border-radius:9px;padding:0 16px;height:40px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}button:hover{background:var(--accent-hover)}button:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(22,163,74,.4)}button.secondary{background:var(--panel);color:var(--text);border:1px solid var(--border-strong)}button.secondary:hover{background:var(--panel-2)}button.outline{background:var(--panel);color:var(--accent-strong);border:1px solid var(--accent)}button.outline:hover{background:var(--accent-light)}button.danger{background:var(--panel);color:var(--danger);border:1px solid #fca5a5}button.danger:hover{background:#fef2f2}button.ghost{background:transparent;color:var(--accent-strong);padding:0 12px}button.ghost:hover{background:var(--accent-light)}button:disabled{color:var(--muted);cursor:not-allowed}button:disabled,button:disabled:hover{background:var(--border)}.btn-link{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 16px;background:var(--panel);border:1px solid var(--border-strong);border-radius:9px;font-size:14px;font-weight:600;cursor:pointer}.btn-link,.btn-link:hover{color:var(--text);text-decoration:none}.btn-link:hover{background:var(--panel-2)}.btn-link.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn-link.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}table{width:100%;border-collapse:collapse;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--panel-2)}th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--panel-2);color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}tr:hover td{background:var(--bg)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 3px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap;background:var(--panel-2);color:var(--body);border:1px solid var(--border)}.badge.active{background:var(--accent-light);color:var(--ok);border-color:#bbf7d0}.badge.inactive{background:#f3f4f6;color:var(--muted);border-color:var(--border-strong)}.badge.info{background:#f0f9ff;color:var(--info);border-color:#7dd3fc}.badge.danger{background:#fef2f2;color:var(--danger);border-color:#fca5a5}.error{color:var(--danger);margin-top:8px}.error,.hint{font-size:13px}.hint{color:var(--muted)}.callout{display:flex;gap:10px;padding:11px 14px;border-radius:10px;background:#f0fdf4;border:1px solid #bbf7d0;color:#14532d;font-size:13px;line-height:1.65;margin-bottom:16px}.callout.warn{background:#fffbeb;border-color:#fcd34d;color:#b45309}.callout.danger{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.callout.neutral{background:var(--panel-2);border-color:var(--border-strong);color:var(--body)}.callout.narrow-only{display:none}@media (max-width:700px){.callout.narrow-only{display:flex}}.list-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.list-head h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em}.list-head .count{font-size:13px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.list-head .actions{margin-left:auto;gap:8px}.list-head .actions,.toolbar{display:flex;align-items:center;flex-wrap:wrap}.toolbar{gap:10px;margin-bottom:14px}.toolbar .search{flex:1 1;min-width:220px;max-width:420px}.toolbar .search input{width:100%;min-width:0}.filter-chips{display:flex;gap:7px;flex-wrap:wrap}.create-card{border-color:#bbf7d0;background:#f7fdf9}.create-card>h3{margin:0 0 14px;font-size:15px;font-weight:700}.table-wrap{overflow:auto;max-height:70vh;border-radius:10px;border:1px solid var(--border)}.table-wrap table{margin:0}.table-wrap td:first-child,.table-wrap th:first-child{padding-left:14px}.scan-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);background:var(--text)}.scan-bar input{flex:1 1;min-width:0;height:46px;font-family:var(--mono);font-size:18px;font-weight:600;letter-spacing:2px;text-transform:uppercase}.scan-bar .ready{display:flex;align-items:center;gap:6px;color:#86efac;font-size:12px;font-weight:600;white-space:nowrap}.density-compact td,.density-compact th{padding-top:6px;padding-bottom:6px}.density-comfy td{padding-top:14px;padding-bottom:14px}.pager{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 16px;border-top:1px solid var(--border);background:var(--bg);font-size:12.5px;color:var(--muted)}.pager b{color:var(--text);font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pager .per{display:flex;align-items:center;gap:7px;color:var(--body)}.pager .per select{height:32px;min-width:0;padding:0 8px;font-family:var(--mono);font-weight:600}.pager .caveat{font-size:11.5px;color:var(--warn)}.pager .pages{margin-left:auto;display:flex;align-items:center;gap:5px}.pager .pages button{min-width:34px;height:34px;padding:0 9px;border:1px solid var(--border-strong);border-radius:9px;background:var(--panel);color:var(--body);font-family:var(--mono);font-size:13px;font-weight:600}.pager .pages button:hover:not(:disabled){background:var(--panel-2)}.pager .pages button.on{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;font-weight:700}.pager .pages button:disabled{background:var(--panel);border-color:var(--border);color:#9ca3af}.pager .pages .gap{width:20px;text-align:center;color:#9ca3af}tr.group-row td{background:var(--panel-2);font-weight:700;font-size:13px;color:var(--text);border-bottom:1px solid var(--border)}tr.group-row td .meta{font-weight:400;color:var(--muted);margin-left:8px}tr.group-row:hover td,tr:hover td.no-hover{background:var(--panel-2)}.unmeasured{color:var(--warn);font-size:12px;font-weight:600;white-space:nowrap}.cell-id .code{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--text)}.cell-id .name{font-size:13.5px;color:var(--body)}.cell-stack{line-height:1.5}.cell-stack .sub{font-size:12px;color:var(--muted)}tr.is-inactive td{opacity:.55}.steps{display:flex;align-items:center;gap:0;padding:16px 20px;margin-bottom:22px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.step{gap:10px;font-size:13.5px;font-weight:600;white-space:nowrap}.step,.step .n{display:flex;align-items:center;flex:none;color:var(--muted)}.step .n{width:28px;height:28px;border-radius:50%;background:var(--panel);border:2px solid var(--border-strong);font-size:14px;font-weight:700;justify-content:center}.steps .rail{flex:1 1;min-width:12px;height:2px;margin:0 12px;background:var(--border-strong)}.steps .rail.done{background:var(--accent-strong)}.step.done,.step.now{color:var(--accent-strong)}.step.now{font-weight:700}.step.done .n,.step.now .n{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}@media (max-width:640px){.steps{padding:14px 12px}.steps .rail{margin:0 8px}.step:not(.now) .lb{display:none}.step:not(.now){gap:0}}.file-card{gap:14px;padding:14px 16px;border:1px solid #bbf7d0;border-radius:11px;background:#f0fdf4}.file-card,.file-card .mark{display:flex;align-items:center}.file-card .mark{width:40px;height:40px;flex:none;border-radius:9px;background:var(--accent-strong);color:#fff;font-size:18px;font-weight:700;justify-content:center}.file-card .what{flex:1 1;min-width:0}.file-card .name{font-size:14px;font-weight:600;color:var(--text);overflow-wrap:anywhere}.file-card .meta{font-size:12.5px;color:var(--muted)}.file-card.bad{border-color:#fca5a5;background:#fef2f2}.file-card.bad .mark{background:var(--danger)}.file-card.bad .meta{color:var(--danger)}button.link{border:none;background:none;padding:0;height:auto;font-family:inherit;font-size:13px;font-weight:600;color:var(--accent-strong);cursor:pointer}button.link:hover{color:var(--accent-hover);text-decoration:underline}td.cell-tick,th.cell-tick{width:1%;white-space:nowrap;padding-right:4px;text-align:center}.map-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;margin-bottom:8px}.map-toolbar .tools{display:flex;gap:6px;flex-wrap:wrap}.map-toolbar .sep{flex:1 1;min-width:8px}.map-shell{display:flex;gap:12px;align-items:stretch}.map-canvas-wrap{flex:1 1;min-width:0;display:flex;flex-direction:column}.map-canvas{position:relative;flex:1 1;min-height:380px;height:calc(100vh - 460px);overflow:hidden;border:1px solid var(--border);border-top:none;border-bottom:none;background:var(--panel-2)}.map-grid{position:relative;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46'%3E%3Crect x='2.5' y='2.5' width='41' height='41' rx='5' fill='none' stroke='%23CBD5E1' stroke-width='1' stroke-dasharray='3 3'/%3E%3C/svg%3E")}.map-caption{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 12px;font-size:12.5px;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:10px 10px 0 0}.map-caption b{color:var(--text)}.map-caption .spacer{flex:1 1}.map-legend{padding:8px 12px;background:var(--panel);border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px;font-size:11.5px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.map-legend .t{font-weight:700;color:var(--muted)}.map-legend .items{display:flex;gap:10px;flex-wrap:wrap;color:var(--body)}.map-legend .items span{display:inline-flex;align-items:center;gap:4px}.map-legend i{width:12px;height:12px;border-radius:3px;border-style:solid;border:1px solid var(--border-strong)}.map-rail{width:300px;flex:none;display:flex;flex-direction:column;gap:10px;overflow:auto;max-height:calc(100vh - 380px)}.rail-card{border-radius:10px;padding:12px;font-size:12.5px}.rail-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.rail-head b{flex:1 1}.bin-chips{display:flex;flex-wrap:wrap;gap:6px}.bin-chip{font-size:11.5px;padding:3px 9px;border-radius:999px;border:1px solid var(--border-strong);background:var(--panel-2);color:var(--muted);white-space:nowrap}.bin-chip.has{background:var(--accent-light);border-color:#bbf7d0;color:var(--ok);font-weight:600}.rail-debt+.rail-debt{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}@media (max-width:1100px){.map-shell{flex-direction:column}.map-rail{width:auto;max-height:none}.map-canvas{height:60vh}}.paint-preview{position:absolute;z-index:6;pointer-events:none;min-width:210px;padding:9px 12px;border-radius:10px;background:rgba(17,24,39,.93);color:#fff;box-shadow:0 12px 28px -10px rgba(15,23,42,.6);font-size:12px;line-height:1.6}.paint-preview .lead{font-size:13px}.paint-preview .lead b{font-size:19px;font-weight:800}.paint-preview .sub{color:#cbd5e1}.paint-preview .warn{margin-top:4px;color:#fcd34d;font-weight:600}.draw-state{border:1px solid #bbf7d0;background:#f0fdf4;border-radius:10px;padding:10px 12px;margin-bottom:8px}.draw-state .head{font-size:12.5px;font-weight:700;color:var(--accent-strong);margin-bottom:8px}.draw-state .fields{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.draw-state .fields label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:var(--muted);margin:0}.draw-state .fields input{width:90px}.draw-state .fields .grow{flex:1 1;min-width:8px}.draw-state .cur{font-size:16px;font-weight:800;color:var(--text)}.draw-state .cur .bays{font-size:12px;font-weight:600;color:var(--muted)}.draw-state .next{margin-top:8px;font-size:12px;line-height:1.65;color:var(--body)}.tile-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:16px}.box-cols{display:grid;grid-template-columns:1fr 1.25fr;grid-gap:16px;gap:16px;align-items:start;margin-bottom:20px}@media (max-width:1100px){.box-cols{grid-template-columns:1fr}}@media (max-width:700px){.tile-row{grid-template-columns:repeat(2,1fr)}}.inside-list{border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:10px 0;background:var(--panel)}.inside-list .head{background:var(--panel-2);padding:7px 12px;font-size:11.5px;font-weight:600;color:var(--muted)}.inside-list .line{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;font-size:13px;border-top:1px solid var(--border)}.inside-list .line .qty{font-weight:700}.modal{padding:0;border:none;background:none;max-width:none;max-height:none;width:100%;height:100%;display:none;place-items:center;overflow:auto}.modal[open]{display:grid}.modal::-webkit-backdrop{background:rgba(15,23,42,.45)}.modal::backdrop{background:rgba(15,23,42,.45)}.modal-panel{width:min(560px,calc(100vw - 32px));margin:24px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 60px -20px rgba(15,23,42,.45)}.modal-panel.wide{width:min(880px,calc(100vw - 32px))}.modal-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:16px;font-weight:700;flex:1 1}.modal-head button.link{font-size:16px;color:var(--muted)}.modal-body{padding:20px}.modal-body .field+.field{margin-top:14px}.modal-body label{display:block;font-size:12.5px;font-weight:600;color:var(--body);margin-bottom:5px}.modal-body input{width:100%}.modal-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--border);background:var(--panel-2);border-radius:0 0 var(--radius) var(--radius)}.modal-foot .spacer{flex:1 1}tr.will-update td{background:#f0f9ff}tr.will-error td{background:#fef2f2}tr.will-skip td{opacity:.6}.row-sub{display:block;font-size:12px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}.dupe-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;font-size:13.5px;color:var(--body)}.field-en{font-size:12px;color:var(--muted)}.detail-hero{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.detail-hero .thumb{width:96px;height:96px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11.5px;text-align:center;overflow:hidden}.detail-hero .thumb img{width:100%;height:100%;object-fit:cover}.detail-hero .body{flex:1 1;min-width:260px}.detail-hero h2{margin:0 0 8px;font-size:20px;font-weight:700}.detail-hero .badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.detail-hero .meta{display:flex;gap:6px 22px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.detail-hero .meta b{color:var(--text);font-weight:600}.group-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);margin-bottom:16px;overflow:hidden}.group-card.editing{border-color:var(--accent);box-shadow:0 0 0 3px rgba(22,163,74,.12)}.group-card.locked{background:var(--bg)}.group-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 18px;border-bottom:1px solid var(--border)}.group-head h3{margin:0;font-size:14.5px;font-weight:700}.group-head .state{font-size:12px;color:var(--muted)}.group-head .right{margin-left:auto;display:flex;gap:8px}.group-head .right button{height:32px;padding:0 12px;font-size:13px}.group-body{padding:18px}.read-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:16px 24px;gap:16px 24px}.read-grid .k{font-size:12px;color:var(--muted);margin-bottom:3px}.read-grid .v{font-size:14px;color:var(--text);font-weight:600}.change-list{margin-top:12px;font-size:12.5px;color:var(--warn)}.change-list .mono{font-weight:600}.tracking-row{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.tracking-row>div:first-child{flex:none;min-width:180px}.tracking-row .k{font-size:12px;color:var(--muted);margin-bottom:3px}.tracking-row .v{font-size:14px;font-weight:600}.tracking-row .why{flex:1 1;min-width:260px;background:var(--bg);border:1px dashed var(--border-strong);border-radius:10px;padding:11px 13px;font-size:12px;line-height:1.7;color:var(--body)}.read-grid .k-note{grid-column:span 2;align-self:center;font-size:12px;line-height:1.7;color:var(--muted)}.page-bar .stepper{display:flex;align-items:center;gap:2px}.page-bar .stepper .lbl{font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:52px;text-align:center}.page-bar .bar-actions .stepper button{height:28px;width:28px;padding:0;font-size:16px;line-height:1}.page-bar .bar-actions .btn-link{height:32px;padding:0 12px;font-size:13px}.checklist{list-style:none;margin:0;padding:0}.checklist li{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px;font-size:12.5px;line-height:1.6;color:var(--body)}.checklist li:before{content:"✓";width:18px;height:18px;flex:none;margin-top:1px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center}.checklist li.todo:before{content:"!";background:#f59e0b}.checklist li.busy:before{content:"…";background:var(--info)}.link-list{display:flex;flex-direction:column;gap:8px}.link-list a{display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid var(--border-strong);border-radius:10px;background:var(--panel);color:var(--text);font-size:13px;font-weight:600}.link-list a:hover{border-color:var(--accent);background:var(--accent-light);color:var(--accent-strong);text-decoration:none}.link-list a .go{margin-left:auto;color:var(--muted)}.rail-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:16px 18px;margin-bottom:14px}.rail-card h4{margin:0 0 10px;font-size:13px;font-weight:700;display:flex;align-items:baseline;gap:8px}.rail-card h4 .n{font-weight:400;color:var(--muted);font-size:12px}.rail-card .big{font-size:30px;font-weight:800;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rail-card .row-kv{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:13px;border-bottom:1px solid var(--panel-2)}.rail-card .row-kv:last-child{border-bottom:0}.rail-card .row-kv .q{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.rail-card .note{margin-top:10px;font-size:11.5px;line-height:1.7;color:var(--muted)}.form-page{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:24px;gap:24px;align-items:start}@media (max-width:1100px){.form-page{grid-template-columns:1fr}}.form-rail .card{padding:18px;margin-bottom:14px}.form-rail h4{margin:0 0 8px;font-size:13.5px;font-weight:700}.form-rail li,.form-rail p{margin:0 0 6px;font-size:12.5px;line-height:1.7;color:var(--body)}.form-rail ul{margin:0;padding-left:18px}.form-rail ul.checks{list-style:none;padding:0 0 12px;border-bottom:1px dashed var(--border-strong)}.form-rail ul.checks li{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:var(--muted)}.form-rail ul.checks li:before{content:"✓";width:18px;height:18px;flex:none;border-radius:50%;background:var(--border);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center}.form-rail ul.checks li.ok{color:var(--body)}.form-rail ul.checks li.ok:before{background:var(--accent)}.card-head{margin:-24px -24px 20px;padding:16px 24px;border-bottom:1px solid var(--border);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.card-head h3{margin:0;font-size:16px;font-weight:700}.card-head .sub{font-size:12.5px;color:var(--muted)}.field-group{margin-bottom:22px}.field-group.ruled{border-top:1px dashed var(--border-strong);padding-top:20px}.field-group>.gt{font-size:13px;font-weight:700;color:var(--text);margin-bottom:10px}.field-seg>label{margin-bottom:6px}.suggest-box{flex:1 1;min-width:260px;padding:12px 14px;border-radius:10px;background:#f0fdf4;border:1px solid #bbf7d0;color:#14532d;font-size:12.5px;line-height:1.7}.suggest-box .head{font-weight:700}.suggest-box .nums{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.with-unit{position:relative}.with-unit input{width:100%;padding-right:44px}.with-unit .unit{position:absolute;right:12px;bottom:11px;font-size:12px;color:var(--muted);pointer-events:none}.field-group>.gt .sub{font-weight:400;color:var(--muted);margin-left:8px}.dims-row{display:flex;align-items:flex-end;gap:8px}.dims-row>div{flex:1 1;min-width:0}.dims-row input{width:100%;min-width:0}.dims-row .x{padding-bottom:10px;color:var(--muted)}.uom-rows{display:grid;grid-gap:8px;gap:8px;margin-top:14px}.uom-row{display:grid;grid-template-columns:minmax(0,1fr) 92px minmax(0,1.1fr) auto;align-items:center;grid-gap:10px;gap:10px}.uom-row.head{font-size:12px;color:var(--muted);font-weight:600}.uom-row input{width:100%;min-width:0}.uom-row .eq{font-size:13px;color:var(--body)}@media (max-width:560px){.uom-row{grid-template-columns:minmax(0,1fr) 82px auto}.uom-row .eq{grid-column:1/-1}.uom-row.head span:nth-child(3){display:none}}.uom-chips{display:flex;flex-wrap:wrap;gap:8px}.uom-chips .chip{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);font-size:13px}.uom-chips .chip b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.uom-chips .chip.base{border-style:dashed;color:var(--muted)}.gen-bar{margin:14px 0;padding:12px 14px;border-radius:10px;background:#f0fdf4;border:1px solid #bbf7d0;color:#14532d;font-size:13px;line-height:1.65}.segmented{display:inline-flex;border:1px solid var(--border-strong);border-radius:9px;overflow:hidden;background:var(--panel)}.segmented button{height:38px;padding:0 14px;border:0;border-radius:0;background:transparent;color:var(--body);font-size:13.5px;font-weight:600}.segmented button:hover{background:var(--panel-2)}.segmented button+button{border-left:1px solid var(--border)}.segmented button.on{background:var(--accent-light);color:var(--accent-strong)}.segmented.sm button{height:26px;padding:0 10px;font-size:11.5px}.segmented.is-disabled{background:var(--panel-2);border-color:var(--border)}.segmented.is-disabled button{color:var(--muted);cursor:not-allowed}.segmented.is-disabled button.on{background:var(--border);color:var(--muted)}.segmented.is-disabled button:hover{background:transparent}.segmented.fill{display:flex;width:100%}.segmented.fill button{flex:1 1;height:40px}.label-row{display:flex;align-items:center;gap:10px;margin-bottom:5px}.label-row label{margin-bottom:0}.label-row .segmented{margin-left:auto}.save-bar{position:-webkit-sticky;position:sticky;bottom:12px;z-index:15;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:14px 18px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 -6px 20px -12px rgba(15,23,42,.45),0 2px 12px rgba(0,0,0,.04)}.save-bar .what{font-size:12.5px;color:var(--muted)}.save-bar .spacer{flex:1 1}@media (max-width:900px){.save-bar{padding:12px 14px}}.grid-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:16px;gap:16px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;box-shadow:var(--shadow-card)}.stat .n{font-size:28px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .l{color:var(--muted);font-size:13px}.stat .sub{margin-top:8px;font-size:12px;color:var(--muted);line-height:1.7}.dash-section,.stat .sub b{color:var(--text)}.dash-section{display:flex;align-items:center;gap:10px;margin:28px 0 12px;font-size:15px;font-weight:700}.dash-section:after{content:"";flex:1 1;height:1px;background:var(--border)}.dash-section .ico{font-size:18px}.bar{position:relative;height:8px;background:var(--panel-2);overflow:hidden}.bar,.bar>span{border-radius:999px}.bar>span{position:absolute;inset:0 auto 0 0;background:var(--accent)}.health{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.health-score{font-size:52px;font-weight:800;line-height:1}.health-grade{font-size:15px;color:var(--muted)}.health-comps{flex:1 1;min-width:280px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px 20px;gap:10px 20px}.health-comp .top{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}.health-comp .top .v{font-weight:700}.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:12px;gap:12px;align-items:end}.grid-form input:not([type=checkbox]):not([type=radio]),.grid-form select,.grid-form textarea{width:100%;min-width:0}.grid-form.cols-name{grid-template-columns:minmax(0,2.4fr) minmax(0,1.4fr) minmax(0,.8fr)}.grid-form.cols-receive{grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr)}@media (max-width:700px){.grid-form.cols-receive{grid-template-columns:1fr}}.grid-form.align-top{align-items:start}.grid-form.align-top>div>label{min-height:19px}.grid-form.align-top>.cell-act{display:flex;align-items:flex-start;padding-top:24px}@media (max-width:700px){.grid-form.align-top>.cell-act{padding-top:0}}.grid-form.cols-id{grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,2.2fr)}.grid-form.cols-attr{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,2.4fr)}.grid-form.cols-attr,.grid-form.cols-id,.grid-form.cols-name{align-items:end}@media (max-width:900px){.grid-form.cols-attr,.grid-form.cols-id,.grid-form.cols-name{grid-template-columns:1fr}}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.chip{font-family:var(--mono);font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--border-strong);background:var(--panel);color:var(--body)}button.chip{height:auto;font-weight:500;cursor:pointer}button.chip:hover{background:var(--panel-2);border-color:var(--accent)}.chip.active{background:var(--accent-light);border-color:#86efac;color:var(--accent-strong);font-weight:600}button.chip:disabled{background:var(--panel-2);opacity:.7;cursor:default}.zone-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;border:1px solid var(--border-strong);background:var(--panel-2);color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}.zone-tag.money{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}.zone-tag.floor{background:#f0f9ff;border-color:#7dd3fc;color:#0369a1}.po-receive .bar{height:6px;border-radius:999px;background:var(--panel-2);overflow:hidden;margin-bottom:4px}.po-receive .seg{display:block;height:100%}.po-receive .seg.full{background:var(--accent-strong)}.po-receive .seg.part{background:#f59e0b}.po-receive .nums{font-size:12.5px;color:var(--body);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.po-receive .owed{font-size:12px;font-weight:700;color:#b45309}.po-receive .settled{font-size:12px;color:var(--ok)}.po-receive .closed-off{font-size:11.5px;color:var(--danger)}.map-progress .nums{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);margin-bottom:4px}.map-progress.sm .nums{font-size:12px}.map-progress .nums b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.map-progress .nums .ok{color:var(--ok)}.map-progress .nums .wait{color:var(--info)}.map-progress .pct{color:var(--body);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.map-progress .gone-tag{border:1px solid #fca5a5;background:#fef2f2;color:var(--danger);border-radius:6px;padding:0 5px}.map-progress .bar3{display:flex;height:8px;border-radius:999px;background:var(--panel-2);overflow:hidden}.map-progress.sm .bar3{height:6px}.map-progress .seg{height:100%}.map-progress .seg.mapped{background:var(--accent-strong)}.map-progress .seg.waiting{background:#38bdf8}.map-progress .seg.gone{background:var(--danger)}.lifecycle{display:flex;gap:16px;align-items:stretch;flex-wrap:wrap;padding:14px 18px;margin-bottom:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-card)}.lc-steps{flex:1 1 380px}.lc-step,.lc-steps{display:flex;align-items:center;min-width:0}.lc-step{gap:9px}.lc-step .lc-dot{width:30px;height:30px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;background:var(--panel);border:2px solid var(--border-strong);color:var(--muted)}.lc-step .lc-txt .lb{font-size:13.5px;font-weight:600;color:var(--muted);white-space:nowrap}.lc-step .lc-txt .nt{font-size:11.5px;color:var(--muted);white-space:nowrap}.lc-step.done .lc-dot{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.lc-step.done .lc-txt .lb{color:var(--accent-strong)}.lc-step.now{background:var(--accent-light);border:2px solid var(--accent-strong);border-radius:999px;padding:4px 14px 4px 5px}.lc-step.now .lc-dot{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.lc-step.now .lc-txt .lb{color:var(--accent-hover);font-weight:700}.lc-step.now .lc-txt .nt{color:var(--accent-strong)}.lc-step.next{opacity:.55}.lc-rail{flex:1 1;min-width:16px;height:2px;margin:0 10px;background:var(--border-strong)}.lc-rail.done{background:var(--accent-strong)}.lc-side{display:flex;flex-direction:column;gap:8px;align-items:flex-end;justify-content:center;flex:0 1 auto}.lc-todo{background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;padding:8px 14px;min-width:190px}.lc-todo .k{font-size:11.5px;font-weight:700;color:#b45309;text-transform:uppercase;letter-spacing:.03em}.lc-todo .v{font-size:15px;font-weight:700;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lc-branch{font-size:12px;color:var(--muted);text-align:right;max-width:260px}.card-head .sub.formula{font-family:var(--mono);font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--border-strong);background:var(--panel-2)}.po-lines td.owed-cell{text-align:right;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted)}.po-lines td.owed-cell.on{background:#fffbeb;color:#b45309}.danger-card{margin-top:14px;padding:14px 16px;border:1px solid #fca5a5;border-left:4px solid var(--danger);border-radius:10px;background:#fef2f2}.danger-card .dc-head{font-size:14px;font-weight:700;color:#991b1b}.danger-card .dc-what{margin:6px 0 12px;font-size:13px;line-height:1.65;color:#b91c1c}.danger-card .dc-fields{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.danger-card .dc-fields label{display:block;font-size:12.5px;font-weight:600;margin-bottom:5px;color:var(--body)}.danger-card .dc-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}button.serial-btn{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;font:inherit;font-size:12.5px;color:var(--body);background:var(--panel);border:1px solid var(--border-strong);border-radius:999px;cursor:pointer}button.serial-btn:hover{border-color:var(--accent);background:var(--accent-light);color:var(--accent-hover)}button.serial-btn .ico{font-size:13px}button.serial-btn b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button.serial-btn .go{color:var(--muted);font-size:11.5px}button.serial-btn:hover .go{color:var(--accent-strong)}.sheet-body .ss-range{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--body);padding:7px 12px;border:1px solid var(--border-strong);border-radius:10px;background:var(--panel-2)}.sheet-body .ss-range .k{color:var(--muted);font-size:12px}.sheet-body .ss-range .arrow{color:var(--muted)}.sheet-body .ss-range .n{margin-left:auto;color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sheet-body .chips{margin-top:8px}.chip.ok{color:var(--ok);border-color:#bbf7d0;background:#f0fdf4}.chip.more{font-family:var(--font);color:var(--muted);background:var(--panel-2)}button.secondary.sm{margin-top:8px;height:30px;padding:0 12px;font-size:12.5px}.sheet{padding:0;border:none;background:none;max-width:none;max-height:none;width:100%;height:100%;display:none;place-items:center;overflow:auto}.sheet[open]{display:grid}.sheet::-webkit-backdrop{background:rgba(15,23,42,.45)}.sheet::backdrop{background:rgba(15,23,42,.45)}.sheet-panel{width:min(620px,calc(100vw - 32px));margin:24px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 60px -20px rgba(15,23,42,.45)}.sheet-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.sheet-head h3{margin:0;font-size:15px;font-weight:700;flex:1 1}.sheet-head .n{font-weight:500;font-size:12.5px;color:var(--muted)}.sheet-body{padding:16px 18px 20px;max-height:min(60vh,520px);overflow:auto}.sheet-body input{width:100%}.rcv-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:14px;gap:14px;margin-bottom:20px}.rcv-kpis .stat.kpi-main{border-color:#86efac;background:#f0fdf4}.rcv-kpis .stat.kpi-main .n{color:var(--accent-hover);font-size:32px}.rcv-kpis button.stat{height:auto;text-align:left;cursor:pointer;font:inherit;color:inherit}.rcv-kpis button.stat:disabled{cursor:default;opacity:1}.rcv-kpis button.stat.kpi-alert:not(:disabled){border-color:#fca5a5;background:#fef2f2}.rcv-kpis button.stat.kpi-alert:not(:disabled) .n{color:var(--danger)}.rcv-kpis button.stat.kpi-alert.on{outline:2px solid var(--danger);outline-offset:1px}.work-group{margin-bottom:18px}.work-group .wg-head{display:flex;align-items:baseline;gap:10px;width:100%;height:auto;padding:10px 14px;margin-bottom:10px;text-align:left;background:var(--panel-2);border:1px solid var(--border-strong);border-radius:10px;color:var(--text);font:inherit;cursor:pointer}.work-group .wg-head:hover{border-color:var(--accent)}.work-group .wg-head .caret{color:var(--muted)}.work-group .wg-head .t{font-size:14px;font-weight:700}.work-group .wg-head .n{font-size:12.5px;font-weight:700;padding:1px 9px;border-radius:999px;background:var(--panel);border:1px solid var(--border-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.work-group .wg-head .s{font-size:12.5px;color:var(--muted);margin-left:auto}.work-group.todo .wg-head{background:#fffbeb;border-color:#fcd34d}.work-group.mapping .wg-head{background:#f0f9ff;border-color:#7dd3fc}.work-group .wg-empty{padding:0 4px 4px}@media (max-width:700px){.work-group .wg-head{flex-wrap:wrap}.work-group .wg-head .s{margin-left:0;flex-basis:100%}}.doc-header{padding:10px 18px 12px;margin-bottom:16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.doc-header .dh-crumbs{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-bottom:4px}.doc-header .dh-crumbs a{color:var(--muted)}.doc-header .dh-crumbs a:hover{color:var(--accent-strong)}.doc-header .dh-crumbs .leaf{color:var(--text);font-weight:600}.doc-header .dh-main{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.doc-header .dh-id{display:flex;align-items:center;gap:10px;min-width:0}.doc-header .dh-id h2{margin:0;font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:-.01em;line-height:1.15;color:var(--text)}.doc-header .dh-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}.doc-header .dh-actions button{height:34px;padding:0 14px;font-size:13px}.doc-header .dh-actions button.outline{color:var(--danger);border-color:#fca5a5}.doc-header .dh-actions button.outline:hover:not(:disabled){background:#fef2f2}.doc-header .dh-actions button.scan-on{background:var(--accent-hover);box-shadow:0 0 0 3px var(--accent-light)}.doc-header .dh-meta{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);font-size:12.5px;color:var(--body)}.doc-header .dh-meta i{font-style:normal;color:var(--muted);margin-right:3px}.doc-header .dh-meta .warn-text{color:var(--danger)}@media (max-width:700px){.doc-header{padding:10px 14px 12px}.doc-header .dh-id h2{font-size:21px}.doc-header .dh-actions{margin-left:0;width:100%}.doc-header .dh-actions button{flex:1 1}}.doc-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:14px 20px;gap:14px 20px}.doc-facts .k{font-size:12px;color:var(--muted)}.doc-facts .v{font-size:14.5px;font-weight:600;color:var(--text);margin-top:2px}.doc-facts .v.ok{color:var(--ok)}.doc-facts .v.info{color:var(--info)}.doc-facts .bad .k,.doc-facts .bad .v{color:var(--danger)}.rcv-line{padding:14px 0;border-bottom:1px dashed var(--border-strong)}.rcv-line:last-child{border-bottom:none;padding-bottom:0}.sys-chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:12px;padding:3px 9px;border-radius:6px;border:1px solid var(--text);background:var(--panel);color:var(--text)}.date-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px;margin-top:16px}.date-cards .dcard{border:1px solid var(--border-strong);border-radius:10px;padding:12px 14px;background:var(--panel-2)}.date-cards .dcard.exp{border:2px solid var(--accent-strong);background:#f0fdf4}.date-cards .dc-top{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.date-cards .dc-top label{font-size:13px;font-weight:700;margin:0}.date-cards .tag{margin-left:auto;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--accent-strong);color:#fff;white-space:nowrap}.date-cards .tag.muted{background:var(--panel);border:1px solid var(--border-strong);color:var(--muted);font-weight:600}.date-cards .dcard input{width:100%}.date-cards .why{margin:8px 0 0;font-size:12px;line-height:1.6;color:var(--muted)}.date-cards .dcard.exp .why{color:#166534}.date-cards .why.req-note{color:var(--danger);font-weight:600}.need-note{display:flex;flex-direction:column;gap:2px;margin-top:4px;font-size:12px;color:var(--muted)}.need-note b{color:var(--text)}.need-note .over{color:#b45309;font-weight:600}.cost-note{margin:10px 0 0;font-size:12.5px;color:var(--body)}.vs-order{margin-bottom:16px;padding:14px 16px;border:1px solid var(--border-strong);border-radius:10px;background:var(--panel-2)}.vs-order .vo-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:13.5px;font-weight:700;margin-bottom:10px}.vs-order .vo-head .sum{margin-left:auto;font-weight:600;color:var(--body)}.vs-order table{background:var(--panel)}.vs-order td,.vs-order th{font-size:12.5px}.vs-order .vo-note{margin:10px 0 0;font-size:12px;color:var(--muted);line-height:1.6}.confirm-panel{border-radius:10px;padding:16px 18px;border:1px solid var(--border-strong)}.confirm-panel.good{border:1px solid #bbf7d0;border-left:4px solid var(--accent-strong);background:#f0fdf4}.confirm-panel.bad{border:1px solid #fca5a5;border-left:4px solid var(--danger);background:#fef2f2}.confirm-panel .cp-head{font-size:14.5px;font-weight:700;margin-bottom:8px}.confirm-panel.good .cp-head{color:#14532d}.confirm-panel.bad .cp-head{color:#991b1b}.confirm-panel .cp-what{font-size:13.5px;line-height:1.7;color:#b91c1c;margin:0 0 14px}.confirm-panel .cp-note{font-size:12.5px;color:#166534;margin:10px 0 0}.confirm-panel .cp-note.warn{color:#b45309}.confirm-panel .cost-table{background:var(--panel);border-radius:8px}.confirm-panel .cost-table td,.confirm-panel .cost-table th{font-size:12.5px}.confirm-panel .cp-fix{background:var(--panel);border:1px solid var(--border-strong);border-radius:8px;padding:12px 14px}.confirm-panel .cp-fix .ttl{font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px}.confirm-panel .cp-fix input{width:100%}.po-hits{display:flex;flex-direction:column;gap:6px;margin-top:10px}button.po-hit{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;height:auto;padding:9px 12px;text-align:left;font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border-strong);border-radius:8px;cursor:pointer}button.po-hit:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light)}button.po-hit .go{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--accent-strong)}.confirm-panel .cp-through{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px dashed #fca5a5}.confirm-panel .ack{display:flex;align-items:center;gap:8px;font-size:13px;color:#991b1b;cursor:pointer}.confirm-panel .ack input{width:18px;height:18px}.sub-panel{margin-top:10px;padding:14px 16px;background:var(--panel-2);border:1px solid var(--border-strong);border-radius:10px}.sub-panel .sp-head,button.sub-panel-backdrop{display:none}.exit-card{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 18px;margin-bottom:16px;border:1px solid #7dd3fc;border-left:4px solid var(--info);border-radius:10px;background:#f0f9ff}.exit-card .ec-body{flex:1 1;min-width:240px}.exit-card .ec-title{font-size:15px;font-weight:700;color:#0c4a6e}.exit-card p{margin:4px 0 0;font-size:13px;line-height:1.65;color:#0369a1}.handoff{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin-bottom:16px;border:1px solid #bbf7d0;border-left:4px solid var(--accent-strong);border-radius:10px;background:#f0fdf4}.handoff .hb-mark{width:24px;height:24px;flex:none;border-radius:50%;background:var(--accent-strong);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.handoff .hb-body{flex:1 1;min-width:0}.handoff .hb-title{font-size:14.5px;font-weight:700;color:#14532d}.handoff .hb-detail{font-size:13px;color:#166534;line-height:1.65;margin-top:2px}.handoff .hb-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.handoff .hb-x{color:var(--muted);font-size:14px}.narrow-sku,td.cell-narrow{display:none}.money-formula{font-size:11.5px;color:var(--muted);font-weight:400}@media (max-width:700px){.table-cards td.cell-narrow{display:block;padding:2px 0 0}.table-cards td.cell-narrow:before{display:none}.narrow-sku{display:inline;color:var(--muted)}.lifecycle{padding:12px 14px}.lc-step .lc-txt .nt{display:none}.lc-step:not(.now) .lc-txt .lb{font-size:12px}.lc-rail{min-width:8px;margin:0 6px}.lc-side{align-items:stretch;width:100%}.lc-todo{min-width:0}.lc-branch{text-align:left;max-width:none}.confirm-panel .cp-fix input,.date-cards .dcard input,.sub-panel input,.sub-panel select{min-height:50px;font-size:16px}.confirm-panel .cp-through button,.exit-card .btn-link{width:100%;justify-content:center}button.sub-panel-backdrop{display:block;position:fixed;inset:0;z-index:55;width:auto;height:auto;padding:0;border:0;border-radius:0;background:rgba(15,23,42,.45)}.sub-panel{position:fixed;left:0;right:0;bottom:0;top:12vh;z-index:60;margin:0;overflow:auto;border-radius:16px 16px 0 0;border-bottom:none;box-shadow:0 -18px 40px -18px rgba(15,23,42,.55)}.sub-panel .sp-head{display:flex;align-items:center;gap:10px;position:-webkit-sticky;position:sticky;top:-14px;margin:-14px -16px 12px;padding:14px 16px;background:var(--panel-2);border-bottom:1px solid var(--border-strong);font-size:14px}.sub-panel .sp-head button{margin-left:auto}.sheet-panel{width:100%;max-width:none;margin:0;align-self:end;border-radius:16px 16px 0 0;border-bottom:none}.sheet[open]{align-items:end}.sheet-body{max-height:70vh}}@media (max-width:900px){.brand{width:auto;padding-left:14px}.brand-sub{display:none}.hdr-burger{display:flex;order:-1;margin-left:10px}.hdr-btn.theme,.hdr-btn.wh{display:none}.sidebar{position:fixed;top:var(--header-h);left:0;z-index:45;height:calc(100vh - var(--header-h));transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 18px 40px -18px rgba(15,23,42,.5)}.sidebar.open{transform:translateX(0)}.drawer-backdrop.open{display:block;position:fixed;inset:var(--header-h) 0 0 0;z-index:44;background:rgba(15,23,42,.4)}.page-bar{padding:0 16px}.main{padding:16px 16px 40px}.card{padding:16px}.card-head{margin:-16px -16px 16px;padding:14px 16px}.page-bar{flex-wrap:wrap;padding:8px 16px}.page-bar .bar-actions{margin-left:auto}.op-warning{padding:9px 16px}.btn-link,button,input:not([type=checkbox]):not([type=radio]),select{min-height:44px}.toolbar{position:-webkit-sticky;position:sticky;top:calc(var(--header-h) + 48px);z-index:18;margin:0 -16px 14px;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border)}.toolbar .search{max-width:none;flex-basis:100%}.op-text .k,.op-text .nm{display:none}.op-text .cd.alt{display:inline}.op-pill{padding:0 8px 0 4px;gap:6px}.op-caret{display:none}.op-menu{width:min(280px,calc(100vw - 24px))}.cascade>div{flex:1 1 100%}.cascade input,.cascade select{width:100%}.cascade .pair{flex:1 1;min-width:0}.gen-bar{position:-webkit-sticky;position:sticky;bottom:12px;z-index:16;margin:12px -4px 0;padding:12px 14px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 -6px 20px -12px rgba(15,23,42,.45)}.gen-bar button{width:100%}.danger-zone{margin-top:18px}.table-cards .table-wrap{max-height:none;overflow:visible;border:0;border-radius:0}.table-cards table,.table-cards tbody,.table-cards td,.table-cards tr{display:block;width:auto}.table-cards thead{display:none}.table-cards tr{margin-bottom:11px;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-card)}.table-cards td,.table-cards tr:hover td{background:transparent;border:0;padding:3px 0;display:flex;align-items:baseline;gap:10px}.table-cards td:before{content:attr(data-label);flex:none;width:36%;color:var(--muted);font-size:12px}.table-cards td.cell-id,.table-cards td.cell-wide{display:block;padding-bottom:8px}.table-cards td.cell-id:before,.table-cards td.cell-wide:before{display:none}.table-cards td.cell-id .name{font-size:15px;font-weight:600;color:var(--text)}.table-cards td.cell-hide{display:none}.table-cards tr.group-row{padding:8px 12px;background:var(--panel-2);box-shadow:none}.fab{position:fixed;left:16px;right:16px;bottom:16px;z-index:35;display:flex;height:50px;width:auto;justify-content:center;font-size:15px;background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;box-shadow:0 8px 20px -6px rgba(22,163,74,.6)}.fab:hover{background:var(--accent-hover);color:#fff}.main{padding-bottom:84px}}@media (min-width:901px){.fab{display:none}}@media print{.app-header,.drawer-backdrop,.no-print,.op-warning,.page-bar,.sidebar{display:none!important}.main{padding:0;overflow:visible}.app-shell,.content,.layout{display:block}.print-label{page-break-after:always}.print-label:last-of-type{page-break-after:auto}body.print-only-container .print-label.pl-content,body.print-only-content .print-label.pl-container{display:none!important}body{background:#fff}}@page{margin:8mm}