:root{--clay-50:#eaf3f9;--clay-100:#cfe4f1;--clay-200:#a6cce5;--clay-300:#79b0d6;--clay-400:#4e97c8;--clay-500:#297fb8;--clay-600:#226a9c;--clay-700:#1a5079;--clay-800:#123a58;--paper:#fafaf7;--surface:#fff;--surface-2:#f5f3ee;--line:#eae6de;--line-2:#dcd7cc;--ink-900:#1a1915;--ink-800:#2a2823;--ink-700:#3d3a33;--ink-600:#5c584f;--ink-500:#807b70;--ink-400:#a19b8e;--ink-300:#c2bdb0;--good-50:#e7f1ea;--good-500:#2f8f5e;--good-700:#1f6a43;--warn-50:#fbf0dc;--warn-500:#ba8418;--warn-700:#875f0e;--bad-50:#f6e1dc;--bad-500:#bd4234;--bad-700:#8b2c21;--info-50:#e2ecf3;--info-500:#3d74a0;--info-700:#285878;--side-w:252px;--side-w-mini:64px;--top-h:60px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:18px;--sh-1:0 1px 2px rgba(28,24,20,.04),0 1px 1px rgba(28,24,20,.03);--sh-2:0 4px 12px -2px rgba(28,24,20,.06),0 2px 4px -1px rgba(28,24,20,.04);--sh-3:0 16px 40px -12px rgba(28,24,20,.18),0 4px 12px -2px rgba(28,24,20,.08);--ease:cubic-bezier(.2,.7,.2,1)}*{box-sizing:border-box}#root,body,html{margin:0;height:100%;background:var(--paper);color:var(--ink-800);font-family:Geist,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11"}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--clay-600);text-decoration:none}a:hover{color:var(--clay-700)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:2px solid var(--paper)}::-webkit-scrollbar-thumb:hover{background:var(--ink-300)}.mono{font-family:Geist Mono,ui-monospace,SFMono-Regular,monospace;font-feature-settings:"zero","ss01"}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app{display:grid;grid-template-columns:var(--side-w) 1fr;grid-template-rows:var(--top-h) 1fr;grid-template-areas:"side  top" "side  main";height:100vh;overflow:hidden;transition:grid-template-columns .34s var(--ease)}.app.mini{grid-template-columns:var(--side-w-mini) 1fr}.side{grid-area:side}.top{grid-area:top}.main{grid-area:main;overflow-y:auto;overflow-x:hidden;padding:28px 36px 64px;min-width:0}.page{max-width:100%}.sidebar{background:var(--surface);-webkit-border-end:1px solid var(--line);border-inline-end:1px solid var(--line);display:flex;flex-direction:column;height:100vh;overflow:hidden;transition:border-color .24s var(--ease),box-shadow .24s var(--ease)}.sidebar-brand{display:flex;align-items:center;justify-content:center;gap:10px;height:var(--top-h);padding:0 18px;border-bottom:1px solid var(--line);flex-shrink:0}.sidebar-brand .logo-mark{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--clay-500),var(--clay-700));display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px;letter-spacing:-.02em;box-shadow:inset 0 -3px 0 rgba(0,0,0,.15),0 1px 2px rgba(41,127,184,.3);flex-shrink:0}.sidebar-brand .brand-name{font-weight:600;font-size:14.5px;letter-spacing:-.01em;color:var(--ink-900);white-space:nowrap}.sidebar-brand .brand-name span{color:var(--clay-500)}.mini .sidebar-brand .brand-name{display:none}.sidebar-nav{flex:1 1;overflow-y:auto;padding:12px 10px 24px}.nav-section-label{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400);padding:12px 12px 6px;white-space:nowrap;overflow:hidden;transition:opacity .2s var(--ease),transform .24s var(--ease),height .28s var(--ease),padding .28s var(--ease)}.mini .nav-section-label{height:8px;padding-block:4px 0;opacity:0;transform:translateY(-4px)}.nav-item{display:flex;align-items:center;gap:11px;min-height:36px;padding:8px 12px;border-radius:var(--r-md);font-size:13.5px;font-weight:500;color:var(--ink-700);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;transition:background .16s var(--ease),color .16s var(--ease),padding .3s var(--ease),gap .3s var(--ease)}.nav-item:hover{background:var(--surface-2);color:var(--ink-900)}.nav-item.active{background:var(--clay-50);color:var(--clay-700)}.nav-item.active:before{content:"";position:absolute;inset-inline-start:-10px;top:8px;bottom:8px;width:3px;border-start-end-radius:3px;border-end-end-radius:3px;background:var(--clay-500)}.nav-item .ic{width:18px;height:18px;display:inline-grid;place-items:center;flex:0 0 18px;opacity:.85;line-height:0}.nav-item .chev svg,.nav-item .ic svg{display:block}.nav-item .label{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:18px;opacity:1;transform:translateX(0);transition:opacity .18s var(--ease) .05s,transform .24s var(--ease) .03s,max-width .3s var(--ease)}.nav-item .chev{width:14px;height:14px;display:inline-grid;place-items:center;flex:0 0 14px;line-height:0;opacity:.4;transition:opacity .18s var(--ease),transform .24s var(--ease)}.nav-item.open .chev{transform:rotate(90deg)}.mini .nav-item{justify-content:center;gap:0;padding-inline:0}.mini .nav-item .chev,.mini .nav-item .label{max-width:0;opacity:0;pointer-events:none;transform:translateX(-6px)}[dir=rtl] .mini .nav-item .chev,[dir=rtl] .mini .nav-item .label{transform:translateX(6px)}.nav-children{overflow:hidden;opacity:0;transform:translateY(-4px);transition:max-height .34s var(--ease),opacity .22s var(--ease),transform .28s var(--ease)}.nav-item.open+.nav-children{opacity:1;transform:translateY(0)}.nav-child{display:flex;align-items:center;min-height:32px;padding-block:6px;-webkit-padding-start:41px;padding-inline-start:41px;-webkit-padding-end:12px;padding-inline-end:12px;border-radius:var(--r-sm);color:var(--ink-600);font-size:13px;cursor:pointer;position:relative;line-height:18px;opacity:0;transform:translateY(-3px);transition:background .16s var(--ease),color .16s var(--ease),opacity .22s var(--ease),transform .26s var(--ease)}.nav-item.open+.nav-children .nav-child{opacity:1;transform:translateY(0)}.nav-child:before{content:"";position:absolute;inset-inline-start:24px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--ink-300);transform:translateY(-50%)}.nav-child:hover{background:var(--surface-2);color:var(--ink-900)}.nav-child.active{color:var(--clay-700);font-weight:500}.nav-child.active:before{background:var(--clay-500)}.mini .nav-children{max-height:0!important;opacity:0;transform:translateY(-6px)}.sidebar-foot{padding:12px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-shrink:0}.foot-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#4e97c8,#1a5079);color:#fff;display:grid;place-items:center;font-weight:600;font-size:12.5px;flex-shrink:0}.foot-info{flex:1 1;min-width:0}.foot-info .n{font-size:13px;font-weight:600;color:var(--ink-900)}.foot-info .e,.foot-info .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.foot-info .e{font-size:11.5px;color:var(--ink-500)}.mini .foot-info,.mini .sidebar-foot button{display:none}.topbar{background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:16px;height:var(--top-h)}.icon-btn{width:36px;height:36px;border-radius:var(--r-md);display:grid;place-items:center;background:transparent;border:1px solid transparent;cursor:pointer;color:var(--ink-700);transition:background .12s,border-color .12s;position:relative}.icon-btn:hover{background:var(--surface-2)}.icon-btn.toggle{color:var(--ink-800)}.topbar-search{flex:1 1;max-width:480px;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-md);padding:0 12px;height:36px;transition:border-color .15s,background .15s}.topbar-search:focus-within{background:#fff;border-color:var(--clay-300);box-shadow:0 0 0 3px rgba(41,127,184,.12)}.topbar-search input{flex:1 1;border:none;background:transparent;outline:none;font-size:13.5px}.topbar-search input::placeholder{color:var(--ink-400)}.topbar-search kbd{font-family:Geist Mono,monospace;font-size:11px;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--ink-500)}.dot-badge{position:absolute;top:7px;inset-inline-end:7px;width:8px;height:8px;border-radius:50%;background:var(--clay-500);border:2px solid var(--surface)}@media (max-width:640px){.popover{position:fixed!important;top:calc(var(--top-h) + 6px)!important;left:8px!important;right:8px!important;width:auto!important;max-width:none!important}}.topbar-user{display:flex;align-items:center;gap:10px;padding-block:4px;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:4px;padding-inline-end:4px;border-radius:40px;cursor:pointer;border:1px solid var(--line);background:#fff;transition:border-color .15s}.topbar-user:hover{border-color:var(--line-2)}.topbar-user .nm{font-size:13px;font-weight:600;color:var(--ink-900)}.topbar-user .rl{font-size:11px;color:var(--ink-500)}.topbar-user .av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#4e97c8,#123a58);color:#fff;display:grid;place-items:center;font-size:11.5px;font-weight:600}.page-head{margin-bottom:24px}.crumbs{font-size:12px;color:var(--ink-500);display:flex;align-items:center;gap:6px;margin-bottom:8px}.crumbs span{color:var(--ink-700);font-weight:500}.page-head h1{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em;color:var(--ink-900);line-height:1.2}.page-head .sub{margin-top:4px;font-size:14px;color:var(--ink-500)}.page-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:7px;padding:0 14px;height:36px;border-radius:var(--r-md);font-size:13.5px;font-weight:500;cursor:pointer;border:1px solid transparent;background:transparent;white-space:nowrap;transition:background .12s,border-color .12s,transform .04s,box-shadow .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.lg{height:42px;font-size:14.5px;padding:0 18px}.btn.sm{height:30px;font-size:12.5px;padding:0 10px}.btn-primary{background:var(--clay-500);color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.05),inset 0 1px 0 hsla(0,0%,100%,.15)}.btn-primary:hover{background:var(--clay-600)}.btn-primary:focus-visible{box-shadow:0 0 0 3px rgba(41,127,184,.25);outline:none}.btn-secondary{background:var(--surface);border-color:var(--line-2);color:var(--ink-800)}.btn-secondary:hover{background:var(--surface-2);border-color:var(--ink-300)}.btn-ghost{color:var(--ink-700)}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:var(--bad-500);color:#fff}.btn-danger:hover{background:var(--bad-700)}.btn-link{background:transparent;color:var(--clay-600);padding:0;height:auto}.btn-link:hover{color:var(--clay-700);text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.card-pad{padding:20px}.card-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head h3{margin:0;font-size:14.5px;font-weight:600;letter-spacing:-.005em;color:var(--ink-900)}.card-head .sub{font-size:12px;color:var(--ink-500);margin-top:2px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;position:relative;overflow:hidden;transition:transform .15s var(--ease),box-shadow .2s;display:flex;flex-direction:column;min-width:0}.kpi:hover{transform:translateY(-1px);box-shadow:var(--sh-2)}.kpi .kpi-label{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--ink-500);display:flex;align-items:center;gap:8px;min-width:0}.kpi .kpi-label .ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--clay-50);color:var(--clay-600);flex-shrink:0}.kpi .kpi-label .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi .kpi-val{margin-top:10px;font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--ink-900);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.kpi .kpi-val small{font-size:14px;font-weight:500;color:var(--ink-500);-webkit-margin-start:2px;margin-inline-start:2px}.kpi-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:10px;min-width:0}.kpi .kpi-delta{font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;min-width:0}.kpi .kpi-delta .vs{color:var(--ink-500);font-weight:400}.delta-up{color:var(--good-700)}.delta-down{color:var(--bad-700)}.kpi-spark{flex-shrink:0;opacity:.9;pointer-events:none;max-width:50%;height:32px;display:block}.kpi-spark svg{display:block;width:100%;height:100%}@container (max-width: 240px){.kpi-spark{display:none}}.field{flex-direction:column}.field,.field-label{display:flex;gap:6px}.field-label{font-size:12.5px;font-weight:500;color:var(--ink-700);align-items:center}.field-label .req{color:var(--clay-500)}.field-hint{font-size:11.5px;color:var(--ink-500)}.field-err{font-size:11.5px;color:var(--bad-700);display:flex;gap:4px;align-items:center}.input,.select,.textarea{width:100%;height:38px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:0 12px;font-size:13.5px;color:var(--ink-900);outline:none;transition:border-color .12s,box-shadow .12s}.input:focus,.select:focus,.textarea:focus{border-color:var(--clay-400);box-shadow:0 0 0 3px rgba(41,127,184,.15)}.input:disabled,.select:disabled{background:var(--surface-2);color:var(--ink-500)}.input::placeholder{color:var(--ink-400)}.textarea{height:auto;padding:10px 12px;resize:vertical;min-height:84px}.input.err,.select.err{border-color:var(--bad-500);box-shadow:0 0 0 3px rgba(189,66,52,.12)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23807B70' stroke-width='1.6' stroke-linecap='round'><path d='M3 5l3 3 3-3'/></svg>");background-repeat:no-repeat;background-position:right 10px center;-webkit-padding-end:30px;padding-inline-end:30px}.input-wrap{position:relative}.input-wrap .input-ic{position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-50%);color:var(--ink-400);pointer-events:none}.input-wrap .input{-webkit-padding-start:36px;padding-inline-start:36px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:500;letter-spacing:-.005em;background:var(--surface-2);color:var(--ink-700);border:1px solid var(--line)}.badge .dot{width:6px;height:6px;border-radius:50%;background:var(--ink-500)}.badge-good{background:var(--good-50);color:var(--good-700);border-color:#bddcc8}.badge-good .dot{background:var(--good-500)}.badge-warn{background:var(--warn-50);color:var(--warn-700);border-color:#ecd5a5}.badge-warn .dot{background:var(--warn-500)}.badge-bad{background:var(--bad-50);color:var(--bad-700);border-color:#e8c0b8}.badge-bad .dot{background:var(--bad-500)}.badge-info{background:var(--info-50);color:var(--info-700);border-color:#bad1e0}.badge-info .dot{background:var(--info-500)}.badge-brand{background:var(--clay-50);color:var(--clay-700);border-color:#bbd7ea}.badge-brand .dot{background:var(--clay-500)}.tbl-wrap{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow-x:auto;overflow-y:hidden}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl thead th{text-align:start;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);background:var(--surface-2);padding:11px 16px;white-space:nowrap}.tbl tbody td,.tbl thead th{border-bottom:1px solid var(--line)}.tbl tbody td{padding:13px 16px;color:var(--ink-800);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover{background:#fbfaf6}.tbl .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tbl .right{text-align:end}.tbl .actions{display:flex;gap:4px;justify-content:flex-end;opacity:0;transition:opacity .15s}.tbl tr:hover .actions{opacity:1}.tbl .ic-btn{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--ink-600);border:0;background:transparent;cursor:pointer}.tbl .ic-btn:hover{background:var(--surface-2);color:var(--ink-900)}.tbl-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--line);background:var(--surface-2);font-size:12.5px;color:var(--ink-600)}.pager{display:flex;gap:4px}.pager button{width:30px;height:30px;border-radius:var(--r-sm);background:#fff;border:1px solid var(--line);cursor:pointer;font-size:12.5px;color:var(--ink-700)}.pager button:hover{background:var(--surface-2)}.pager button.active{background:var(--clay-500);color:#fff;border-color:var(--clay-500)}.toast-stack{position:fixed;top:80px;inset-inline-end:24px;display:flex;flex-direction:column;gap:10px;z-index:1000;pointer-events:none}.toast{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;display:flex;gap:11px;min-width:300px;max-width:380px;box-shadow:var(--sh-3);pointer-events:auto;animation:toast-in .35s var(--ease);position:relative;overflow:hidden}.toast:before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;background:var(--ink-500)}.toast.good:before{background:var(--good-500)}.toast.bad:before{background:var(--bad-500)}.toast.warn:before{background:var(--warn-500)}.toast.info:before{background:var(--info-500)}.toast .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.toast.good .ic{background:var(--good-50);color:var(--good-700)}.toast.bad .ic{background:var(--bad-50);color:var(--bad-700)}.toast.warn .ic{background:var(--warn-50);color:var(--warn-700)}.toast.info .ic{background:var(--info-50);color:var(--info-700)}.toast .body{flex:1 1}.toast .ttl{font-size:13.5px;font-weight:600;color:var(--ink-900)}.toast .msg{font-size:12.5px;color:var(--ink-600);margin-top:2px}.toast .x{background:transparent;border:0;cursor:pointer;color:var(--ink-400);width:22px;height:22px;display:grid;place-items:center;border-radius:5px}.toast .x:hover{background:var(--surface-2);color:var(--ink-800)}@keyframes toast-in{0%{opacity:0;transform:translateX(20px) scale(.97)}to{opacity:1;transform:translateX(0) scale(1)}}.toast.leaving{animation:toast-out .25s var(--ease) forwards}@keyframes toast-out{to{opacity:0;transform:translateX(20px) scale(.97)}}.alert{display:flex;gap:12px;padding:12px 14px;border-radius:var(--r-md);border:1px solid;font-size:13px;align-items:flex-start}.alert .ic{flex-shrink:0;margin-top:1px}.alert .ttl{font-weight:600}.alert .msg{margin-top:2px;color:inherit;opacity:.85}.alert-info{background:var(--info-50);border-color:#bad1e0;color:var(--info-700)}.alert-good{background:var(--good-50);border-color:#bddcc8;color:var(--good-700)}.alert-warn{background:var(--warn-50);border-color:#ecd5a5;color:var(--warn-700)}.alert-bad{background:var(--bad-50);border-color:#e8c0b8;color:var(--bad-700)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}.tab{padding:9px 14px;font-size:13.5px;font-weight:500;color:var(--ink-600);cursor:pointer;position:relative;background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s}.tab:hover{color:var(--ink-900)}.tab.active{color:var(--clay-700);border-bottom-color:var(--clay-500)}.tab .count{display:inline-block;background:var(--surface-2);color:var(--ink-600);padding:1px 7px;border-radius:999px;font-size:11px;-webkit-margin-start:6px;margin-inline-start:6px;font-weight:500}.tab.active .count{background:var(--clay-100);color:var(--clay-700)}.stepper{display:flex;gap:0;margin-bottom:28px;background:var(--surface);padding:16px 20px;border-radius:var(--r-lg);border:1px solid var(--line);overflow-x:auto}.step{flex:1 0 auto;min-width:150px;display:flex;align-items:center;gap:10px;cursor:pointer;position:relative;-webkit-padding-end:12px;padding-inline-end:12px}.step:not(:last-child):after{content:"";flex:1 1;height:2px;background:var(--line);border-radius:2px;margin:0 12px}.step.done:not(:last-child):after{background:var(--clay-500)}.step-bubble{width:30px;height:30px;border-radius:50%;background:var(--surface-2);border:2px solid var(--line);color:var(--ink-500);display:grid;place-items:center;font-size:12.5px;font-weight:600;flex-shrink:0;transition:background .2s,border-color .2s,color .2s}.step.active .step-bubble{background:#fff;border-color:var(--clay-500);color:var(--clay-700);box-shadow:0 0 0 4px var(--clay-50)}.step.done .step-bubble{background:var(--clay-500);border-color:var(--clay-500);color:#fff}.step-info{min-width:0}.step-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-500);font-weight:600}.step-title{font-size:13.5px;font-weight:600;color:var(--ink-900);white-space:nowrap}.step.active .step-title{color:var(--clay-700)}.checkbox{display:inline-flex;align-items:center;gap:9px;cursor:pointer;font-size:13.5px;color:var(--ink-800);-webkit-user-select:none;-moz-user-select:none;user-select:none}.checkbox input{display:none}.checkbox .box{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--line-2);background:#fff;display:grid;place-items:center;transition:background .12s,border-color .12s;flex-shrink:0}.checkbox input:checked+.box{background:var(--clay-500);border-color:var(--clay-500)}.checkbox .box svg{opacity:0;transition:opacity .12s}.checkbox input:checked+.box svg{opacity:1}.checkbox:hover .box{border-color:var(--clay-400)}.kanban{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}.column{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px;min-height:400px}.col-head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 12px}.col-head .col-head-right{display:flex;align-items:center;gap:6px}.col-chev{display:none;align-items:center;justify-content:center;width:24px;height:24px;color:var(--ink-500);transition:transform .2s var(--ease)}.column.is-collapsed .col-chev{transform:rotate(-90deg)}.col-title{font-size:12.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-700);display:flex;align-items:center;gap:8px}.col-title .dot{width:7px;height:7px;border-radius:50%}.col-count{background:#fff;border:1px solid var(--line);color:var(--ink-600);font-size:11.5px;font-weight:600;padding:0 7px;border-radius:999px}.ship-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:12px;margin-bottom:8px;cursor:-webkit-grab;cursor:grab;transition:box-shadow .15s,transform .12s}.ship-card:hover{box-shadow:var(--sh-2);transform:translateY(-1px)}.ic-btn{display:grid;place-items:center;border:0;background:transparent;cursor:pointer;color:var(--ink-500);border-radius:var(--r-sm);transition:background .12s,color .12s;padding:0}.ic-btn:hover{background:var(--surface-2);color:var(--ink-900)}.sc-menu{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;border:0;background:transparent;cursor:pointer;color:var(--ink-400);transition:background .12s,color .12s;flex-shrink:0}.sc-menu:hover{background:var(--surface-2);color:var(--ink-800)}.sc-menu:active{transform:translateY(1px)}.ship-card .sc-id{font-family:Geist Mono,monospace;font-size:11px;color:var(--ink-500)}.ship-card .sc-title{font-size:13.5px;font-weight:600;color:var(--ink-900);margin:4px 0 8px;letter-spacing:-.005em}.ship-card .sc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.ship-card .avs{display:flex}.ship-card .av{width:22px;height:22px;border-radius:50%;border:2px solid #fff;background:linear-gradient(135deg,var(--clay-300),var(--clay-600));color:#fff;font-size:10px;font-weight:600;display:grid;place-items:center;-webkit-margin-start:-6px;margin-inline-start:-6px}.ship-card .av:first-child{-webkit-margin-start:0;margin-inline-start:0}.ship-card .progress{height:4px;background:var(--surface-2);border-radius:4px;overflow:hidden;margin-top:8px}.ship-card .progress>div{height:100%;background:var(--clay-500);border-radius:4px}.activity{display:flex;flex-direction:column}.activity-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.activity-item:last-child{border-bottom:0}.activity-dot{width:32px;height:32px;border-radius:50%;background:var(--clay-50);color:var(--clay-600);display:grid;place-items:center;flex-shrink:0}.activity-body{flex:1 1;min-width:0}.activity-msg{font-size:13px;color:var(--ink-800)}.activity-msg b{color:var(--ink-900);font-weight:600}.activity-time{font-size:11.5px;color:var(--ink-500);margin-top:2px}.modal-bd{position:fixed;inset:0;background:rgba(20,18,14,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:900;animation:fadein .2s var(--ease)}.modal{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-3);width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow:auto;animation:modal-in .25s var(--ease)}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.row{display:flex;gap:12px;align-items:center}.row.tight{gap:6px}.row.spread{justify-content:space-between}.col{display:flex;flex-direction:column;gap:12px}.grid-2{grid-template-columns:1fr 1fr;grid-gap:16px}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-template-columns:1fr 1fr 1fr;grid-gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;grid-gap:16px;gap:16px;align-items:start}.dashboard-grid>*,.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}.drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(20,18,14,.45);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:920;animation:fadein .2s var(--ease)}@media (max-width:1280px){.main{padding:24px 28px 56px}}@media (max-width:1100px){.dashboard-grid{grid-template-columns:1fr}.grid-4,.kanban{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.app,.app.mini{grid-template-columns:0 1fr}.side{position:fixed;top:0;inset-inline-start:0;bottom:0;width:280px;z-index:950;transform:translateX(-100%);transition:transform .25s var(--ease);will-change:transform}.app.drawer-open .side{transform:translateX(0);box-shadow:var(--sh-3)}.app.drawer-open .drawer-backdrop{display:block}.sidebar{width:280px}.mini .foot-info,.mini .sidebar-brand .brand-name{display:block}.mini .sidebar-brand .brand-name{display:flex}.mini .nav-item .chev,.mini .nav-item .label{max-width:none;opacity:1;pointer-events:auto;transform:none}.mini .nav-item{justify-content:flex-start;gap:11px;padding:8px 12px}.mini .nav-children{opacity:1;transform:none}.mini .nav-section-label{height:auto;opacity:1;transform:none;padding:12px 12px 6px}.mini .sidebar-foot button{display:inline-flex}.main{padding:18px 16px 56px}.page-head h1{font-size:22px}.page-head-row{flex-direction:column;align-items:stretch}.page-head-row>.row{flex-wrap:wrap;gap:8px}.topbar{padding:0 12px;gap:8px}.topbar-search{max-width:none}.topbar .topbar-user .nm,.topbar .topbar-user .rl,.topbar .topbar-user>span:nth-child(2),.topbar-search kbd{display:none}.topbar-user{padding:4px}.topbar .hide-sm{display:none!important}.stepper{overflow-x:auto;padding:12px;gap:10px}.step{flex:0 0 auto;min-width:150px;-webkit-padding-end:0;padding-inline-end:0}.step:not(:last-child):after{display:none}.kanban{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr!important}.kanban{grid-template-columns:1fr;gap:10px}.topbar-search{display:none}.page-head h1{font-size:20px}.main{padding:16px 12px 56px}.kpi{padding:14px 16px}.kpi .kpi-val{font-size:24px}.card-pad{padding:16px}.card-head{padding:14px 16px}.tbl tbody td,.tbl thead th{padding:10px 12px}.column{min-height:0}.col-head{cursor:pointer;padding-bottom:6px}.col-chev{display:inline-flex}.column.is-collapsed .col-head{padding-bottom:4px}.column.is-collapsed .col-body{display:none}.tbl .actions{opacity:1}}@media (max-width:420px){.kpi-spark{display:none}.page-head h1{font-size:18px}}.hidden{display:none!important}.mobile-toggle{display:none}@media (max-width:640px){.mobile-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-bottom:16px}.mobile-toggle .chev{transition:transform .2s var(--ease);display:inline-flex}.mobile-toggle.open .chev{transform:rotate(180deg)}.collapse-mobile.is-collapsed{display:none}}.empty{padding:60px 20px;text-align:center;color:var(--ink-500)}.empty .ic{width:56px;height:56px;margin:0 auto 12px;border-radius:14px;background:var(--surface-2);display:grid;place-items:center;color:var(--ink-400)}.empty .ttl{font-size:14.5px;font-weight:600;color:var(--ink-800)}.empty .msg{font-size:13px;margin-top:4px}.divider{height:1px;background:var(--line);margin:16px 0}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-600)}.legend-item{display:flex;align-items:center;gap:6px}.legend-item .sw{width:10px;height:10px;border-radius:3px}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(41,127,184,.35)}to{box-shadow:0 0 0 8px rgba(41,127,184,0)}}.pulse{animation:pulse-ring 1.6s ease-out infinite}.page{animation:page-in .35s var(--ease)}@keyframes page-in{0%{transform:translateY(6px)}to{transform:translateY(0)}}html[lang=ar],html[lang=ar] button,html[lang=ar] input,html[lang=ar] select,html[lang=ar] textarea{font-family:IBM Plex Sans Arabic,Geist,ui-sans-serif,system-ui,-apple-system,sans-serif}html[lang=ar] .mono{font-family:Geist Mono,IBM Plex Sans Arabic,ui-monospace,SFMono-Regular,monospace}[dir=rtl] .select{background-position:left 10px center;-webkit-padding-start:30px;padding-inline-start:30px;-webkit-padding-end:12px;padding-inline-end:12px}[dir=rtl] .nav-item>.chev{transform:scaleX(-1)}[dir=rtl] .column.is-collapsed .col-chev,[dir=rtl] .nav-item.open>.chev{transform:rotate(90deg)}[dir=rtl] .toast{animation-name:toast-in-rtl}[dir=rtl] .toast.leaving{animation-name:toast-out-rtl}@keyframes toast-in-rtl{0%{opacity:0;transform:translateX(-20px) scale(.97)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes toast-out-rtl{to{opacity:0;transform:translateX(-20px) scale(.97)}}@media (max-width:900px){[dir=rtl] .side{transform:translateX(100%)}[dir=rtl] .app.drawer-open .side{transform:translateX(0)}}