:root{--ink:#0e1726;--ink-2:#1e293b;--ink-3:#3a4658;--soft:#66748b;--faint:#97a3b4;--hair:#eef1f5;--line:#e6eaf0;--line-2:#d4dae3;--bg:#f4f6f9;--panel:#fff;--panel-2:#f8fafc;--panel-3:#eff3f7;--rail:#0c1424;--rail-2:#131d31;--rail-line:#1f2c44;--rail-text:#aeb9cc;--rail-dim:#6b7891;--teal:#0d9488;--teal-deep:#0f766e;--teal-soft:#ccfbf1;--teal-tint:#f0fdfa;--teal-glow:#0d948838;--amber:#d97706;--amber-soft:#fde68a;--amber-tint:#fffbeb;--ok:#16a34a;--ok-tint:#f0fdf4;--ok-soft:#bbf7d0;--warn:#b45309;--warn-tint:#fffbeb;--warn-soft:#fde68a;--bad:#dc2626;--bad-tint:#fef2f2;--bad-soft:#fecaca;--info:#2563eb;--info-tint:#eff6ff;--info-soft:#bfdbfe;--r-xs:6px;--r-sm:8px;--r-md:11px;--r-lg:16px;--r-pill:999px;--sh-sm:0 1px 1px #0f172a0a, 0 1px 2px #0f172a0a;--sh-md:0 1px 2px #0f172a0a, 0 6px 16px -6px #0f172a1a;--sh-lg:0 4px 10px -4px #0f172a1a, 0 16px 32px -8px #0f172a2e;--ring:0 0 0 3px var(--teal-glow);--t:.16s ease;--rail-w:244px;--topbar-h:60px;--sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}.mono{font-family:var(--mono);letter-spacing:-.02em}.faint{color:var(--faint)}.soft{color:var(--soft)}a{color:var(--teal-deep);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--teal-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);background-clip:content-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--faint);background-clip:content-box}.h1{letter-spacing:-.02em;font-size:26px;font-weight:600}.h2{letter-spacing:-.015em;font-size:19px;font-weight:600}.h3{letter-spacing:-.01em;font-size:15px;font-weight:600}.eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-size:11px;font-weight:600}.muted{color:var(--soft)}.small{font-size:12.5px}.tiny{font-size:11.5px}.shell{grid-template-columns:var(--rail-w) 1fr;grid-template-rows:1fr;grid-auto-rows:0;height:100dvh;display:grid;overflow:hidden}.rail{background:var(--rail);border-right:1px solid var(--rail-line);color:var(--rail-text);flex-direction:column;min-height:0;display:flex;overflow:hidden}.rail-brand{border-bottom:1px solid var(--rail-line);align-items:center;gap:11px;padding:18px 18px 16px;display:flex}.rail-glyph{background:linear-gradient(145deg, var(--teal) 0%, var(--teal-deep) 100%);color:#fff;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;font-size:16px;font-weight:700;display:grid;box-shadow:0 0 0 1px #ffffff14,0 6px 16px #0d948866}.brand-mark{flex:none;width:auto;height:32px;display:block}.brand-mark-lg{height:30px}.tristar-mark{width:auto;height:30px;display:block}.rail-brand-name{color:#fff;letter-spacing:-.01em;font-size:15px;font-weight:600;line-height:1.1}.rail-brand-sub{color:var(--rail-dim);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;font-size:10px}.rail-nav{flex:1;padding:12px 12px 20px;overflow-y:auto}.rail-group-label{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#808da6;padding:16px 10px 7px;font-size:10px;font-weight:600}.rail-item{border-radius:var(--r-sm);color:var(--rail-text);cursor:pointer;transition:background var(--t), color var(--t);-webkit-user-select:none;user-select:none;align-items:center;gap:11px;padding:8px 10px;font-size:13.5px;font-weight:500;display:flex;position:relative}.rail-item:hover{background:var(--rail-2);color:#fff;text-decoration:none}.rail-item.active{background:var(--rail-2);color:#fff}.rail-item.active:before{content:"";background:var(--teal);border-radius:0 3px 3px 0;width:3px;position:absolute;top:7px;bottom:7px;left:-12px}.rail-item .ico{color:currentColor;opacity:.85;flex:none;width:17px;height:17px}.rail-item-count{font-family:var(--mono);background:var(--rail-line);color:var(--rail-text);border-radius:99px;margin-left:auto;padding:1px 7px;font-size:11px}.rail-item.active .rail-item-count{background:var(--teal);color:#fff}.rail-foot{border-top:1px solid var(--rail-line);padding:12px}.user-chip{text-align:left;border-radius:var(--r-md);cursor:pointer;width:100%;transition:background var(--t), border-color var(--t);background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:8px 10px;display:flex}.user-chip:hover{background:var(--rail-2)}.user-chip.open{background:var(--rail-2);border-color:var(--rail-line)}.user-chip-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.user-chip-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;line-height:1.2;overflow:hidden}.user-chip-sub{color:var(--rail-dim);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.2;overflow:hidden}.user-chip-chev{color:var(--rail-dim);transition:transform var(--t);flex:none}.user-chip.open .user-chip-chev{transform:rotate(180deg)}.user-menu{z-index:70;background:var(--rail-2);border:1px solid var(--rail-line);border-radius:var(--r-md);transform-origin:0 100%;padding:6px;animation:.16s cubic-bezier(.2,.8,.2,1) both user-menu-in;position:absolute;bottom:calc(100% + 10px);left:0;right:0;box-shadow:0 18px 44px -10px #000000b3}@keyframes user-menu-in{0%{opacity:0;transform:translateY(6px)scale(.97)}}.user-menu-head{align-items:center;gap:10px;padding:8px 9px 10px;display:flex}.user-menu-name{color:#fff;font-size:13px;font-weight:500}.user-menu-email{color:var(--rail-dim);font-size:11px;font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-menu-sep{background:var(--rail-line);height:1px;margin:5px 0}.user-menu-item{border-radius:var(--r-sm);color:var(--rail-text);cursor:pointer;transition:background var(--t), color var(--t);align-items:center;gap:11px;padding:9px 10px;font-size:13px;display:flex}.user-menu-item:hover{background:var(--rail);color:#fff}.user-menu-item .ico{opacity:.85;width:16px;height:16px}.user-menu-item.danger{color:#f1a3a3}.user-menu-item.danger:hover{color:#fca5a5;background:#dc262624}.portal-list{flex-direction:column;gap:8px;max-height:48vh;margin-top:4px;padding-right:4px;display:flex;overflow-y:auto}.portal-row{border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel-2);cursor:pointer;transition:all var(--t);color:inherit;align-items:center;gap:12px;padding:11px 13px;text-decoration:none;display:flex}.portal-row:hover{border-color:var(--line-2);background:var(--panel);box-shadow:var(--sh-sm)}.portal-row .arrow{color:var(--faint);transition:transform var(--t), color var(--t);margin-left:auto}.portal-row:hover .arrow{color:var(--teal);transform:translate(3px)}.main{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.topbar{height:var(--topbar-h);background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:14px;padding:0 26px;display:flex}.topbar-title{letter-spacing:-.01em;font-size:15px;font-weight:600}.topbar-spacer{flex:1}.workspace{flex:1;padding:26px;overflow-y:auto}.container{max-width:1180px;margin:0 auto}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.page-head .h1{margin-top:3px}.btn{border-radius:var(--r-sm);letter-spacing:-.01em;cursor:pointer;height:36px;transition:all var(--t);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:0 15px;font-family:inherit;font-size:13.5px;font-weight:500;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn .ico{width:16px;height:16px}.btn-primary{background:linear-gradient(180deg, #11a496 0%, var(--teal) 100%);color:#fff;box-shadow:0 1px 2px #0d948859,inset 0 1px #ffffff1f}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg, var(--teal) 0%, var(--teal-deep) 100%)}.btn-default{background:var(--panel);color:var(--ink-2);border-color:var(--line);box-shadow:var(--sh-sm)}.btn-default:hover:not(:disabled){background:var(--panel-2);border-color:var(--line-2)}.btn-ghost{color:var(--ink-3);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--panel-3)}.btn-danger{background:var(--bad);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger-soft{background:var(--bad-tint);color:var(--bad);border-color:var(--bad-soft)}.btn-danger-soft:hover:not(:disabled){background:#fde0e0}.btn-sm{border-radius:var(--r-xs);height:30px;padding:0 11px;font-size:12.5px}.btn-lg{height:42px;padding:0 20px;font-size:14.5px}.btn-icon{width:34px;height:34px;padding:0}.btn-block{width:100%}.btn:focus-visible{box-shadow:var(--ring);outline:none}.field{flex-direction:column;gap:6px;margin-bottom:15px;display:flex}.label{color:var(--ink-3);font-size:12.5px;font-weight:500}.label .req{color:var(--bad)}.hint{color:var(--soft);font-size:12px}.field-err{color:var(--bad);font-size:12px}.input,.select,.textarea{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-sm);width:100%;height:38px;color:var(--ink);transition:border-color var(--t), box-shadow var(--t), background var(--t);padding:0 12px;font-family:inherit;font-size:14px}.input:hover:not(:focus),.select:hover:not(:focus),.textarea:hover:not(:focus){border-color:var(--line-2)}.textarea{resize:vertical;height:auto;min-height:84px;padding:9px 12px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:focus,.select:focus,.textarea:focus{background:var(--panel);border-color:var(--teal);box-shadow:var(--ring);outline:none}.input:disabled,.select:disabled{background:var(--panel-3);color:var(--soft);cursor:not-allowed}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2364748b' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}.input-mono{font-family:var(--mono)}.xselect{width:100%;position:relative}.xselect-trigger{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-sm);width:100%;height:38px;color:var(--ink);cursor:pointer;text-align:left;transition:border-color var(--t), box-shadow var(--t), background var(--t);align-items:center;gap:8px;padding:0 12px;font-family:inherit;font-size:14px;display:flex}.xselect-trigger:hover:not(:focus){border-color:var(--line-2)}.xselect-trigger:focus{background:var(--panel);border-color:var(--teal);box-shadow:var(--ring);outline:none}.xselect-trigger.placeholder{color:var(--faint)}.xselect.disabled .xselect-trigger{background:var(--panel-3);color:var(--soft);cursor:not-allowed}.xselect-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.xselect-chev{color:var(--faint);transition:transform var(--t);flex:none}.xselect.open .xselect-chev{transform:rotate(180deg)}.xselect-panel{z-index:300;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);max-height:288px;box-shadow:var(--sh-lg);padding:5px;animation:.14s cubic-bezier(.2,.7,.2,1) both xselect-in;position:fixed;overflow-y:auto}@keyframes xselect-in{0%{opacity:0;transform:translateY(-4px)scale(.985)}}.xselect-opt{border-radius:var(--r-sm);color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.xselect-opt-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.xselect-opt.active{background:var(--panel-3);color:var(--ink)}.xselect-opt.selected{color:var(--teal-deep);font-weight:500}.xselect-check{color:var(--teal);flex:none}.xselect-opt.disabled{color:var(--faint);cursor:not-allowed}.row{gap:12px;display:flex}.row>*{flex:1;min-width:0}.search{position:relative}.search .ico{color:var(--faint);pointer-events:none;width:16px;height:16px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search .input{padding-left:35px}.check{cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;align-items:center;gap:9px;font-size:13.5px;display:inline-flex}input[type=checkbox],input[type=radio]{appearance:none;box-sizing:border-box;border:1.5px solid var(--line);background:var(--panel);cursor:pointer;vertical-align:middle;border-radius:5px;flex:none;place-content:center;width:18px;height:18px;margin:0;transition:background .12s,border-color .12s,box-shadow .12s;display:inline-grid;position:relative}input[type=radio]{border-radius:50%}input[type=checkbox]:hover:not(:disabled),input[type=radio]:hover:not(:disabled){border-color:var(--teal)}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--teal);border-color:var(--teal)}input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;margin-top:-1.5px;transform:rotate(45deg)}input[type=radio]:checked:after{content:"";background:#fff;border-radius:50%;width:7px;height:7px}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{box-shadow:0 0 0 3px var(--teal-soft);outline:none}input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.5;cursor:not-allowed}input[type=number]{appearance:textfield}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.datefield{position:relative}.datefield-trigger{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--ink);justify-content:space-between;align-items:center;gap:8px;display:flex}.datefield-trigger.is-empty{color:var(--faint)}.datefield-trigger svg{color:var(--soft);flex:none}.datefield-trigger.open{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}.datefield-trigger:disabled{opacity:.6;cursor:not-allowed}.datefield-pop{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);width:272px;box-shadow:var(--sh-lg);padding:12px;animation:.14s panel-in;position:absolute;top:calc(100% + 6px);left:0}.datefield-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.df-month{font-size:13.5px;font-weight:600}.df-nav{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);cursor:pointer;width:28px;height:28px;color:var(--soft);justify-content:center;align-items:center;font-size:17px;line-height:1;display:flex}.df-nav:hover{border-color:var(--teal);color:var(--teal)}.datefield-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datefield-weekdays{margin-bottom:4px}.df-wd{text-align:center;color:var(--faint);padding:2px 0;font-size:10.5px;font-weight:600}.df-day{border-radius:var(--r-sm);cursor:pointer;height:32px;font:inherit;color:var(--ink);background:0 0;border:none;font-size:12.5px;transition:background .1s}.df-day:hover:not(:disabled){background:var(--teal-tint)}.df-day.muted{color:var(--faint)}.df-day.today{box-shadow:inset 0 0 0 1px var(--teal)}.df-day.sel{background:var(--teal);color:#fff;font-weight:600}.df-day.sel.today{box-shadow:none}.df-day:disabled{opacity:.3;cursor:default}.datefield-foot{border-top:1px solid var(--hair);justify-content:space-between;margin-top:8px;padding-top:8px;display:flex}.df-link{color:var(--teal-deep);font:inherit;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:12px}.df-link:hover{text-decoration:underline}.toggle{flex:none;width:38px;height:22px;position:relative}.toggle input{opacity:0;cursor:pointer;width:100%;height:100%}.toggle-track{background:var(--line-2);transition:background var(--t);pointer-events:none;border-radius:99px;position:absolute;inset:0}.toggle-track:after{content:"";width:18px;height:18px;box-shadow:var(--sh-sm);transition:transform var(--t);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle-track{background:var(--teal)}.toggle input:checked+.toggle-track:after{transform:translate(16px)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:20px}.card-pad-0{padding:0;overflow:hidden}.card-head{border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;display:flex}.card-title{font-size:14.5px;font-weight:600}.card-body{padding:18px}.card-hover{transition:border-color var(--t), box-shadow var(--t);cursor:pointer}.card-hover:hover{border-color:var(--line-2);box-shadow:var(--sh-md)}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}@media (width<=900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.stack{flex-direction:column;gap:12px;display:flex}.flex{align-items:center;gap:10px;display:flex}.between{justify-content:space-between;align-items:center;gap:12px;display:flex}.wrap{flex-wrap:wrap}.right{margin-left:auto}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:16px 18px;position:relative;overflow:hidden}.stat-label{color:var(--soft);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:7px;font-size:11.5px;font-weight:500;display:flex}.stat-label .ico{width:15px;height:15px;color:var(--faint)}.stat-value{font-family:var(--mono);letter-spacing:-.03em;color:var(--ink);margin-top:9px;font-size:31px;font-weight:500}.stat-sub{color:var(--soft);margin-top:2px;font-size:12px}.stat-accent:after{content:"";background:var(--teal);width:3px;position:absolute;top:0;bottom:0;left:0}.stat.flag .stat-value{color:var(--amber)}.badge{border-radius:var(--r-sm);white-space:nowrap;border:none;align-items:center;gap:5px;height:22px;padding:0 9px;font-size:11.5px;font-weight:500;line-height:1;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:5px;height:5px}.badge-neutral{background:var(--panel-3);color:var(--soft)}.badge-teal{background:var(--teal-tint);color:var(--teal-deep)}.badge-ok{background:var(--ok-tint);color:var(--ok)}.badge-warn{background:var(--warn-tint);color:var(--warn)}.badge-hazmat{background:var(--amber);color:#1c1304;letter-spacing:.02em;font-weight:600}.badge-amber{background:var(--amber-tint);color:var(--amber)}.badge-bad{background:var(--bad-tint);color:var(--bad)}.badge-info{background:var(--info-tint);color:var(--info)}.tag{border-radius:var(--r-sm);background:var(--panel-3);height:24px;color:var(--ink-3);align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.tag .x{cursor:pointer;color:var(--faint);display:inline-flex}.tag .x:hover{color:var(--bad)}.chip{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--panel);height:28px;color:var(--ink-3);cursor:pointer;transition:all var(--t);box-shadow:var(--sh-sm);align-items:center;gap:6px;padding:0 12px;font-size:12.5px;display:inline-flex}.chip:hover{border-color:var(--line-2);color:var(--ink)}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:none}.av{background:var(--teal-deep);color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:13px;font-weight:600;display:inline-grid;overflow:hidden}.av img{object-fit:cover;width:100%;height:100%}.av-sm{width:28px;height:28px;font-size:11px}.av-lg{border-radius:16px;width:64px;height:64px;font-size:22px}.av-xl{border-radius:20px;width:84px;height:84px;font-size:28px}.av-stack{display:flex}.av-stack .av{box-shadow:0 0 0 2px var(--panel);margin-left:-8px}.av-stack .av:first-child{margin-left:0}.person{align-items:center;gap:10px;min-width:0;display:flex}.person-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.person-sub{color:var(--soft);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);-webkit-overflow-scrolling:touch;box-shadow:var(--sh-sm);overflow:auto hidden}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table thead th{text-align:left;letter-spacing:.03em;text-transform:uppercase;color:var(--faint);background:var(--panel-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 16px;font-size:11px;font-weight:500}.table tbody td{border-bottom:1px solid var(--hair);vertical-align:middle;padding:14px 16px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--t)}.table tbody tr.clickable{cursor:pointer}.table tbody tr:hover{background:var(--panel-2)}.table .num{font-family:var(--mono);text-align:right;letter-spacing:-.02em}.td-right{text-align:right}.table-foot{border-top:1px solid var(--hair);color:var(--soft);background:var(--panel-2);justify-content:space-between;align-items:center;padding:11px 16px;font-size:12.5px;display:flex}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:20px;display:flex}.tab{color:var(--soft);cursor:pointer;transition:color var(--t);white-space:nowrap;appearance:none;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-family:inherit;font-size:13.5px;font-weight:500}.tab:hover{color:var(--ink-2)}.tab.active{color:var(--teal-deep);border-bottom-color:var(--teal)}.segmented{background:var(--panel-3);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px;display:inline-flex}.segmented button{color:var(--soft);border-radius:var(--r-xs);cursor:pointer;transition:all var(--t);background:0 0;border:none;padding:5px 12px;font-family:inherit;font-size:12.5px;font-weight:500}.segmented button.on{background:var(--panel);color:var(--ink);box-shadow:var(--sh-sm)}.menu{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-lg);z-index:60;min-width:200px;padding:6px;position:absolute}.menu-item{border-radius:var(--r-xs);color:var(--ink-2);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.menu-item:hover{background:var(--panel-3)}.menu-item.danger{color:var(--bad)}.menu-item.danger:hover{background:var(--bad-tint)}.menu-item .ico{width:16px;height:16px;color:var(--soft)}.menu-sep{background:var(--line);height:1px;margin:5px 0}.menu-label{color:var(--faint);font-size:11px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:6px 10px 3px}.backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#0f172a80;place-items:center;padding:24px;animation:.12s fade;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--sh-lg);flex-direction:column;width:100%;max-width:min(520px,100vw - 24px);max-height:90vh;animation:.16s cubic-bezier(.2,.7,.2,1) pop;display:flex}.backdrop.closing{animation:.14s forwards fade-out}.modal.closing{animation:.14s forwards modal-out}@keyframes fade-out{to{opacity:0}}@keyframes modal-out{to{opacity:0;transform:translateY(6px)scale(.97)}}.modal-lg{max-width:min(720px,100vw - 24px)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:17px 20px;display:flex}.modal-title{font-size:16px;font-weight:600}.modal-x{border-radius:var(--r-xs);cursor:pointer;width:30px;height:30px;color:var(--soft);background:0 0;border:none;place-items:center;display:grid}.modal-x:hover{background:var(--panel-3);color:var(--ink)}.modal-body{padding:20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:10px;padding:15px 20px;display:flex}.cd-unit{font:inherit;color:var(--primary,#0d9488);cursor:pointer;background:0 0;border:0;padding:0}.cd-unit:hover{text-decoration:underline}.cd-title{align-items:center;gap:8px;display:inline-flex}.cd-meta{align-items:center;gap:10px;margin-bottom:14px;display:flex}.cd-status{color:var(--ink,#1e293b);font-weight:600}.cd-grid{grid-template-columns:1fr 1fr;gap:4px 26px;display:grid}.cd-h{letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#64748b);margin:16px 0 6px;font-size:11px;font-weight:700}.cd-grid section .cd-h{margin-top:0}.cd-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:4px 0;font-size:13px;display:flex}.cd-row:last-child{border-bottom:0}.cd-k{color:var(--muted,#64748b)}.cd-v{color:var(--ink,#1e293b);text-align:right;font-weight:500}.cd-timeline{margin:4px 0 0;padding:0;list-style:none}.cd-timeline li{border-top:1px solid var(--line);grid-template-columns:158px 1fr auto;align-items:baseline;gap:10px;padding:7px 0;font-size:13px;display:grid}.cd-when{color:var(--muted,#64748b);white-space:nowrap;font-size:12px}.cd-who{white-space:nowrap;font-size:12px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.99)}}.alert{border-radius:var(--r-md);border:1px solid;gap:11px;padding:12px 14px;font-size:13px;display:flex}.alert .ico{flex:none;width:18px;height:18px;margin-top:1px}.alert-info{background:var(--info-tint);border-color:var(--info-soft);color:#1e40af}.alert-ok{background:var(--ok-tint);border-color:var(--ok-soft);color:#166534}.alert-warn{background:var(--warn-tint);border-color:var(--warn-soft);color:#92400e}.alert-bad{background:var(--bad-tint);border-color:var(--bad-soft);color:#991b1b}.progress{background:var(--panel-3);border-radius:99px;height:7px;overflow:hidden}.progress>span{background:var(--teal);border-radius:99px;height:100%;transition:width .3s;display:block}.progress.amber>span{background:var(--amber)}.empty{text-align:center;color:var(--soft);padding:48px 24px}.empty .ico{width:38px;height:38px;color:var(--faint);margin:0 auto 12px}.empty-title{color:var(--ink-2);margin-bottom:4px;font-weight:600}.spinner{border:2.5px solid var(--line-2);border-top-color:var(--teal);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}.center-page{place-items:center;height:100%;display:grid}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--panel-3) 25%, var(--panel-2) 50%, var(--panel-3) 75%);border-radius:var(--r-xs);background-size:200% 100%;animation:1.3s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.cal{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.cal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:13px 16px;display:flex}.cal-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-dow{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-align:center;border-bottom:1px solid var(--line);padding:8px 0;font-size:10px}.cal-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:92px;padding:5px 6px}.cal-cell:nth-child(7n){border-right:none}.cal-cell.out{background:var(--panel-2)}.cal-date{color:var(--soft);font-size:11.5px;font-family:var(--mono)}.cal-cell.today .cal-date{background:var(--teal);color:#fff;border-radius:50%;place-items:center;width:19px;height:19px;display:inline-grid}.cal-pill{color:#fff;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;margin-top:3px;padding:2px 6px;font-size:10.5px;overflow:hidden}.org-node{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:var(--sh-sm);align-items:center;gap:9px;min-width:180px;padding:9px 12px;display:inline-flex}.org-children{gap:16px;padding-left:22px;display:flex}.tree-row{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.org-dotted{font-family:var(--mono);letter-spacing:.02em;color:var(--faint);border:1px dashed var(--line-2);background:var(--panel-2);transition:all var(--t);border-radius:99px;align-items:center;gap:6px;padding:3px 9px;font-size:10.5px;text-decoration:none;display:inline-flex}.org-dotted:hover{color:var(--soft);border-color:var(--soft);text-decoration:none}.task{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:13px 4px;display:flex}.task:last-child{border-bottom:none}.task-check{border:1.8px solid var(--line-2);cursor:pointer;color:#0000;width:22px;height:22px;transition:all var(--t);border-radius:6px;flex:none;place-items:center;margin-top:1px;display:grid}.task-check:hover{border-color:var(--teal)}.task.done .task-check{background:var(--teal);border-color:var(--teal);color:#fff}.task.done .task-title{color:var(--soft);text-decoration:line-through}.task-title{font-size:14px;font-weight:500}.task-meta{color:var(--soft);flex-wrap:wrap;gap:10px;margin-top:2px;font-size:12px;display:flex}.dl{background:var(--hair);border:1px solid var(--line);border-radius:var(--r-md);grid-template-columns:150px minmax(0,1fr);gap:1px;display:grid;overflow:hidden}.dl dt{background:var(--panel-2);color:var(--soft);padding:10px 14px;font-size:12.5px;font-weight:500}.dl dd{background:var(--panel);overflow-wrap:anywhere;padding:10px 14px;font-size:13.5px}.login{background:#0a0f1a;place-items:center;min-height:100%;padding:28px;display:grid;position:relative;overflow:hidden}.login-canvas{position:absolute;inset:0;overflow:hidden}.login-glow{filter:blur(90px);border-radius:50%;position:absolute}.login-glow.teal{background:radial-gradient(circle,#0d94888c,#0000 68%);width:640px;height:640px;animation:16s ease-in-out infinite glow-float;top:-200px;right:-140px}.login-glow.amber{background:radial-gradient(circle,#d977064d,#0000 68%);width:560px;height:560px;animation:20s ease-in-out infinite reverse glow-float;bottom:-220px;left:-160px}@keyframes glow-float{50%{transform:translate(40px,30px)scale(1.08)}}.login-grid{background-image:linear-gradient(var(--rail-line) 1px, transparent 1px), linear-gradient(90deg, var(--rail-line) 1px, transparent 1px);opacity:.3;background-size:50px 50px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 35%,#000,#0000 80%);mask-image:radial-gradient(circle at 50% 35%,#000,#0000 80%)}.login-watermark{opacity:.07;pointer-events:none;width:44%;max-width:600px;position:absolute;bottom:-8%;right:-3%;transform:rotate(-4deg)}.login-brand{z-index:3;align-items:center;gap:11px;display:flex;position:absolute;top:30px;left:34px}.login-brand .rail-brand-sub{color:var(--rail-dim)}.login-foot{z-index:3;position:absolute;bottom:26px;left:34px}.login-meta{font-family:var(--mono);color:var(--rail-dim);letter-spacing:.06em;font-size:11.5px}.login-card{z-index:2;background:var(--panel);border-radius:20px;width:100%;max-width:416px;padding:38px 38px 30px;animation:.5s cubic-bezier(.2,.7,.2,1) both login-rise;position:relative;box-shadow:0 40px 90px -24px #000000b3,0 0 0 1px #ffffff0d}@keyframes login-rise{0%{opacity:0;transform:translateY(16px)}}.login-demo{border-top:1px solid var(--hair);margin-top:18px;padding-top:16px}.login-demo-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:11px;font-size:10px}.login-chips{flex-wrap:wrap;gap:7px;display:flex}.login-chip{font:inherit;color:var(--soft);border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;min-height:40px;padding:6px 12px;font-size:12px;font-weight:500;line-height:1.1;transition:color .15s,background .15s,border-color .15s,transform .15s;display:inline-flex}.login-chip:hover{border-color:color-mix(in srgb, var(--teal) 45%, var(--line));color:var(--teal-deep);background:var(--teal-tint);transform:translateY(-1px)}.login-chip.active{border-color:var(--teal);background:var(--teal-soft);color:var(--teal-deep);font-weight:600}@media (width<=560px){.login-brand,.login-foot{display:none}.login-card{padding:30px 24px}}.auth{grid-template-columns:1.05fr .95fr;min-height:100%;display:grid}.auth-side{background:var(--rail);color:#fff;flex-direction:column;padding:52px 48px;display:flex;position:relative;overflow:hidden}.auth-side:before{content:"";z-index:0;background:radial-gradient(900px 520px at 82% -10%,#0d948861,#0000 60%),radial-gradient(720px 520px at -10% 112%,#d9770633,#0000 55%);position:absolute;inset:0}.auth-grid{z-index:0;opacity:.5;background-image:linear-gradient(var(--rail-line) 1px, transparent 1px), linear-gradient(90deg, var(--rail-line) 1px, transparent 1px);background-size:44px 44px;animation:38s linear infinite auth-grid-drift;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 36% 58%,#000,#0000 66%);mask-image:radial-gradient(circle at 36% 58%,#000,#0000 66%)}@keyframes auth-grid-drift{to{background-position:44px 44px,44px 44px}}.auth-routes{z-index:0;pointer-events:none;opacity:.9;position:absolute;inset:0}.auth-routes .route{fill:none;stroke:#2dd4bf21;stroke-width:1.1px}.auth-routes .route-origin{fill:#2dd4bf52}.auth-routes .transit{fill:none;stroke:#7dedddf2;stroke-width:1.7px;stroke-linecap:round;stroke-dasharray:14 1200;stroke-dashoffset:1214px;filter:drop-shadow(0 0 5px #2dd4bfcc);animation:8.5s linear infinite auth-transit}@keyframes auth-transit{to{stroke-dashoffset:0}}.auth-node-core{fill:var(--amber);filter:drop-shadow(0 0 6px #d97706e6)}.auth-node-ring{fill:none;stroke:#f59e0b80;stroke-width:1.3px;r:5;animation:3.8s ease-out infinite auth-node}.auth-node-ring.r2{animation-delay:1.9s}@keyframes auth-node{0%{r:4;opacity:.65}80%{opacity:0}to{r:25;opacity:0}}@media (prefers-reduced-motion:reduce){.auth-routes .transit{stroke-dasharray:none;stroke-dashoffset:0;opacity:.4;animation:none}.auth-node-ring{opacity:0;animation:none}}.auth-aurora{z-index:0;pointer-events:none;position:absolute;inset:-25%}.auth-aurora:before,.auth-aurora:after{content:"";filter:blur(72px);will-change:transform;border-radius:50%;position:absolute}.auth-aurora:before{opacity:.5;background:radial-gradient(circle,#0d94889e,#0000 66%);width:46%;height:62%;animation:19s ease-in-out infinite auth-orb-a;top:-14%;left:52%}.auth-aurora:after{opacity:.42;background:radial-gradient(circle,#d9770680,#0000 66%);width:44%;height:56%;animation:24s ease-in-out infinite auth-orb-b;top:58%;left:-10%}@keyframes auth-orb-a{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(-8%,9%)scale(1.16)}}@keyframes auth-orb-b{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(10%,-7%)scale(1.12)}}.auth-content{z-index:1;flex-direction:column;flex:1;justify-content:space-between;display:flex;position:relative}.auth-hero{max-width:470px}.auth-tagline{letter-spacing:-.025em;font-size:33px;font-weight:600;line-height:1.18}.auth-tagline span{color:var(--teal-soft)}.auth-subtag{color:var(--rail-dim);max-width:420px;margin-top:14px;font-size:14.5px;line-height:1.5}.auth-subtag span{color:var(--teal-soft);font-weight:500}.auth-bottom{flex-direction:column;gap:24px;display:flex}.auth-board{background:linear-gradient(#ffffff13,#ffffff08);border:1px solid #ffffff1c;border-radius:14px;max-width:372px;padding:15px 17px;box-shadow:inset 0 1px #ffffff0f}.auth-board-head{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--rail-dim);align-items:center;gap:8px;margin-bottom:13px;font-size:10px;display:flex}.auth-board-dot{background:var(--teal);border-radius:50%;width:7px;height:7px;animation:2.4s ease-out infinite auth-pulse}.auth-board-live{color:var(--teal-soft);margin-left:auto}.auth-board-grid{grid-template-columns:1.35fr 1fr;gap:15px 20px;display:grid}.auth-board-stat{flex-direction:column;gap:2px;display:flex}.auth-board-stat .v{letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:34px}.auth-board-stat .v-sm{letter-spacing:.01em;white-space:nowrap;font-size:22px}.auth-board-stat .k{color:var(--rail-dim);font-size:11px}@keyframes auth-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--teal) 55%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.auth-side-foot{align-items:center;gap:14px;display:flex}.auth-meta{font-family:var(--mono);color:var(--rail-dim);letter-spacing:.05em;font-size:11.5px}.auth-main{background:var(--bg);place-items:center;padding:48px 28px;display:grid;position:relative;overflow:hidden}.auth-main:before{content:"";z-index:0;pointer-events:none;opacity:.55;background-image:linear-gradient(var(--hair) 1px, transparent 1px), linear-gradient(90deg, var(--hair) 1px, transparent 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 72% 28%,#000,#0000 72%);mask-image:radial-gradient(circle at 72% 28%,#000,#0000 72%)}.auth-main:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(closest-side, color-mix(in srgb, var(--teal) 15%, transparent), transparent 76%);filter:blur(42px);width:540px;height:580px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.auth-card{z-index:1;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:462px;box-shadow:var(--sh-lg);padding:26px 30px 20px;transition:box-shadow .3s;animation:.45s cubic-bezier(.2,.7,.2,1) both login-rise;position:relative}.auth-card:focus-within{box-shadow:0 30px 70px -34px #020c1b80, 0 0 32px -14px color-mix(in srgb, var(--teal) 30%, transparent)}.auth-form{width:100%}.auth-or{background:var(--line);justify-content:center;align-items:center;height:1px;margin:16px 0;display:flex;position:relative}.auth-or span{background:var(--panel);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:0 10px;font-size:11px;position:relative}.btn-auth{background:linear-gradient(135deg, var(--teal), var(--teal-deep));min-height:54px;box-shadow:0 10px 26px -10px color-mix(in srgb, var(--teal) 55%, transparent);border:none;margin-top:4px;transition:transform .18s,box-shadow .18s,filter .18s}.btn-auth:hover:not(:disabled){box-shadow:0 16px 34px -12px color-mix(in srgb, var(--teal) 60%, transparent);filter:brightness(1.04);transform:translateY(-2px)}.btn-auth:active:not(:disabled){transform:translateY(0)}.auth-status{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);align-items:center;gap:8px;margin-bottom:18px;font-size:10.5px;display:flex}.auth-caps{font-family:var(--mono);letter-spacing:.07em;color:var(--faint);margin-bottom:20px;font-size:10.5px}.auth-status-dot{background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent);border-radius:50%}.auth-status-meta{letter-spacing:.07em;color:var(--ink-3);margin-left:auto;font-weight:500}.auth-foot{z-index:1;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;bottom:35px;left:0;right:0}.auth-foot-label{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-size:10px}.auth-foot img{opacity:.92;width:auto;height:30px;display:block}.lvl-move{border:1px solid var(--line);background:var(--panel);width:19px;height:13px;color:var(--soft);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:8px;line-height:1;transition:border-color .12s,color .12s;display:flex}.lvl-move:hover:not(:disabled){border-color:var(--teal);color:var(--teal)}.lvl-move:disabled{opacity:.35;cursor:default}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sort:hover{color:var(--ink)}.sort-arrow{color:var(--teal);vertical-align:middle;margin-left:4px;font-size:9px}.col-pop{position:relative}.col-menu{z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);min-width:184px;box-shadow:var(--sh-lg);padding:6px;animation:.14s panel-in;position:absolute;top:calc(100% + 6px);right:0}.col-menu-head{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:6px 8px 5px;font-size:10.5px}.col-menu-item{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:9px;padding:6px 8px;font-size:13px;display:flex}.col-menu-item:hover{background:var(--panel-2)}.pager{align-items:center;gap:10px;display:flex}.yard-wrap{grid-template-columns:1fr 300px;align-items:start;gap:16px;display:grid}.yard-canvas{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);height:calc(100dvh - var(--topbar-h) - 240px);min-height:420px;position:relative;overflow:hidden}.yard-canvas.drawing{cursor:crosshair}.yard-canvas svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.yard-edge{fill:var(--faint);font-size:13px;font-family:var(--mono);pointer-events:none}.yz{cursor:move}.yz-name{fill:#fff;paint-order:stroke;stroke:#0f172ab3;stroke-width:3px;pointer-events:none;font-size:14px;font-weight:600}.yz-sub{fill:#e2e8f0;paint-order:stroke;stroke:#0f172ab3;stroke-width:3px;pointer-events:none;font-size:11px}.yard-area-label{fill:#fff;paint-order:stroke;stroke:#0f172aa6;stroke-width:3.5px;pointer-events:none;letter-spacing:.02em;font-size:15px;font-weight:700}.yz-handle{fill:#fff;stroke:#0f172a;stroke-width:1.5px;cursor:nwse-resize}.yard-empty{color:var(--soft);pointer-events:none;text-align:center;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.yard-builder-frame{background:var(--panel-3);border:0;flex:auto;width:100%;min-height:0;display:block}.yard-map{cursor:grab}.yard-map.drawing{cursor:crosshair}.yard-hint{color:#fff;pointer-events:none;background:#0f172a99;border-radius:99px;padding:3px 10px;font-size:11px;position:absolute;bottom:10px;left:12px}.yard-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);min-height:420px;padding:16px}@media (width<=900px){.yard-wrap{grid-template-columns:1fr}}.gantt-scroll{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);max-height:calc(100dvh - var(--topbar-h) - 230px);box-shadow:var(--sh-sm);overflow:auto}.gantt-inner{position:relative}.gantt-headrow{z-index:5;background:var(--panel-2);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.gantt-corner{z-index:6;background:var(--panel-2);border-right:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;width:132px;color:var(--faint);flex:none;align-items:center;padding:0 12px;font-size:10.5px;font-weight:600;display:flex;position:sticky;left:0}.gantt-days{display:flex}.gantt-day{color:var(--soft);border-right:1px solid var(--hair);box-sizing:border-box;flex:none;padding:8px 10px;font-size:11.5px}.gantt-day.today{color:var(--teal-deep);background:var(--teal-tint);font-weight:600}.gantt-row{border-bottom:1px solid var(--hair);display:flex}.gantt-rowlabel{z-index:4;background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex:none;justify-content:center;width:132px;padding:0 12px;display:flex;position:sticky;left:0}.gantt-track{position:relative}.gantt-gline{background:var(--hair);width:1px;position:absolute;top:0;bottom:0}.gantt-bar{background:var(--teal-soft);border:1px solid var(--teal);cursor:grab;box-sizing:border-box;border-radius:7px;align-items:stretch;display:flex;position:absolute;top:7px;bottom:7px;overflow:hidden}.gantt-bar.berthed{background:color-mix(in srgb, var(--ok) 22%, var(--panel));border-color:var(--ok)}.gantt-bar.conflict{border-color:var(--bad);box-shadow:0 0 0 2px color-mix(in srgb, var(--bad) 30%, transparent)}.gantt-bar-in{pointer-events:none;flex:1;padding:4px 8px;overflow:hidden}.gantt-bar-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.gantt-bar-sub{color:var(--soft);white-space:nowrap;font-size:10.5px}.gantt-handle{cursor:ew-resize;flex:none;width:7px}.gantt-handle:hover{background:color-mix(in srgb, var(--teal) 40%, transparent)}.gantt-bar.departed{background:var(--panel-2);border-color:var(--line-2);opacity:.72}.gantt-bar.departed .gantt-bar-name{color:var(--soft);font-weight:500}.gantt-now{background:var(--amber);opacity:.7;z-index:3;pointer-events:none;width:2px;box-shadow:0 0 6px color-mix(in srgb, var(--amber) 55%, transparent);position:absolute;top:0;bottom:0}.gantt-legend{align-items:center;gap:13px;display:flex}.gantt-legend i{color:var(--ink-3);align-items:center;gap:5px;font-size:11px;font-style:normal;display:inline-flex}.gantt-legend i:before{content:"";border:1px solid var(--line-2);border-radius:3px;width:11px;height:11px}.gantt-legend .lg-planned:before{background:var(--teal-soft);border-color:var(--teal)}.gantt-legend .lg-berthed:before{background:color-mix(in srgb, var(--ok) 22%, var(--panel));border-color:var(--ok)}.gantt-legend .lg-departed:before{background:var(--panel-2)}.gantt-legend .lg-now:before{background:var(--amber);border-color:var(--amber);border-radius:2px;width:4px}.av-xs{color:#fff;width:21px;height:21px;font-size:9px;font-weight:600}.avatar-stack{display:inline-flex}.avatar-stack .av{border:1.5px solid var(--panel);margin-left:-7px}.avatar-stack .av:first-child{margin-left:0}.person-link{color:inherit;cursor:pointer;text-decoration:none}.person-link:hover .person-name{text-decoration:underline}.auth-brand{align-items:center;gap:14px;display:flex}.auth-logo{flex:none;width:auto;height:185px;display:block}.auth-logo-mobile{display:none}.chat-panel{animation:.16s cubic-bezier(.2,.7,.2,1) panel-in}@keyframes panel-in{0%{opacity:0;transform:translateY(14px)scale(.98)}}@media (prefers-reduced-motion:reduce){.auth-aurora:before,.auth-aurora:after,.auth-grid,.auth-board-dot{animation:none}.auth-card{transition:box-shadow .35s}.auth-card:focus-within{transform:none}}@media (width<=880px){.auth{grid-template-columns:1fr}.auth-side{display:none}.auth-logo-mobile{width:auto;height:124px;margin:0 auto 16px;display:block}}@media (width<=560px){.auth-main{padding:24px 16px}.auth-card{padding:26px 20px}}@media (prefers-reduced-motion:no-preference){.auth-status-dot{animation:2.4s ease-in-out infinite status-pulse}}@keyframes status-pulse{0%,to{box-shadow:0 0 0 2px color-mix(in srgb, var(--ok) 26%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--ok) 6%, transparent)}}.vis{--vis-navy:#102341;--vis-navy-dark:#081226;--vis-blue:#0770e8;--vis-blue-tint:#0770e814;--vis-blue-ring:#0770e82e;--vis-ink:#0f1729;--vis-muted:#65758b;--vis-border:#ced5de;--vis-bg:#f3f5f7;--vis-radius:6px;background:var(--vis-bg);min-height:100%;color:var(--vis-ink);flex-direction:column;display:flex}.vis-top{background:var(--vis-navy);color:#fff;align-items:center;gap:12px;padding:16px 26px;display:flex;position:relative;overflow:hidden}.vis-top:after{content:none}.vis-top>*{position:relative}.vis .rail-brand-name{color:#fff;text-transform:uppercase;letter-spacing:.02em;font-weight:700}.vis .rail-brand-sub{color:#fff9}.vis-body{flex:1;place-items:start center;min-width:0;padding:34px 20px 60px;display:grid}.vis-card{width:100%;min-width:0;max-width:600px}.vis .card{border:1px solid var(--vis-border);border-radius:var(--vis-radius);box-shadow:none;background:#fff}.vis .eyebrow{color:var(--vis-muted)}.vis .btn{border-radius:var(--vis-radius);font-weight:600}.vis .btn-primary{background:var(--vis-navy);color:#fff;box-shadow:none}.vis .btn-primary:hover:not(:disabled){background:var(--vis-navy-dark)}.vis .btn-ghost{color:var(--vis-navy);border:1px solid var(--vis-border);background:#fff}.vis .btn-ghost:hover:not(:disabled){background:var(--vis-bg);border-color:var(--vis-navy)}.vis .btn:focus-visible{box-shadow:0 0 0 3px var(--vis-blue-ring)}.vis .input,.vis .select,.vis .textarea{border:1px solid var(--vis-border);border-radius:var(--vis-radius);color:var(--vis-ink);background:#fff}.vis .input:hover:not(:focus),.vis .select:hover:not(:focus),.vis .textarea:hover:not(:focus){border-color:var(--vis-navy)}.vis .input:focus,.vis .select:focus,.vis .textarea:focus{border-color:var(--vis-blue);box-shadow:0 0 0 3px var(--vis-blue-ring);background:#fff}.vis-steps{justify-content:center;align-items:center;gap:8px;margin-bottom:22px;display:flex}.vis-step{text-transform:uppercase;letter-spacing:.05em;color:var(--vis-muted);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.vis-step .num{width:24px;height:24px;color:var(--vis-muted);border:1px solid var(--vis-border);transition:all var(--t);background:#fff;border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.vis-step.on .num{background:var(--vis-blue);color:#fff;border-color:var(--vis-blue);box-shadow:0 0 0 4px var(--vis-blue-ring)}.vis-step.done .num{background:var(--vis-navy);color:#fff;border-color:var(--vis-navy)}.vis-step.on{color:var(--vis-ink)}.vis-sep{background:var(--vis-border);width:26px;height:1px}.vis-section{border-bottom:1px solid var(--vis-border);padding:14px 0}.vis-section:last-child{border-bottom:none}.vis-q{border:1px solid var(--vis-border);border-radius:var(--vis-radius);background:var(--vis-bg);margin-bottom:12px;padding:14px}.vis-opt{border:1px solid var(--vis-border);border-radius:var(--vis-radius);cursor:pointer;transition:all var(--t);background:#fff;align-items:center;gap:10px;margin-top:8px;padding:9px 11px;display:flex}.vis-opt:hover{border-color:var(--vis-blue)}.vis-opt.sel{border-color:var(--vis-blue);background:var(--vis-blue-tint)}.vis-opt input{accent-color:var(--vis-blue)}.vis-badge{text-align:center;border:1px solid var(--vis-border);border-radius:var(--vis-radius);box-shadow:none;background:#fff;padding:28px}.vis-badge-code{font-family:var(--mono);letter-spacing:.06em;color:var(--vis-navy);margin:8px 0;font-size:34px;font-weight:700}.vis .pass-check{background:var(--vis-blue);color:#fff;border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 14px;animation:.4s cubic-bezier(.2,.8,.2,1.2) both pop-check;display:grid}@keyframes pop-check{0%{opacity:0;transform:scale(.3)}}@media (width<=560px){.vis .row{flex-direction:column}.vis-steps{gap:4px}.vis-step{gap:4px;font-size:10.5px}.vis-sep{width:12px}}.toaster{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:22px;right:22px}.toast{background:var(--ink);color:#fff;border-radius:var(--r-md);box-shadow:var(--sh-lg);align-items:center;gap:10px;min-width:220px;padding:11px 16px 11px 14px;font-size:13.5px;font-weight:500;animation:.26s cubic-bezier(.2,.7,.2,1) both toast-in;display:flex}.toast:before{content:"";background:var(--teal);border-radius:50%;flex:none;width:8px;height:8px}.toast-ok:before{background:var(--ok)}.toast-bad:before{background:var(--bad)}.toast-info:before{background:var(--info)}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.97)}}.tabs-scroll{scrollbar-width:none;overflow-x:auto}.tabs-scroll::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:no-preference){.workspace>.container{animation:.3s cubic-bezier(.2,.7,.2,1) both page-in}.stagger>*{animation:.42s cubic-bezier(.2,.7,.2,1) both rise}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.14s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(6){animation-delay:.22s}.stagger>:nth-child(7){animation-delay:.26s}.stagger>:nth-child(8){animation-delay:.3s}.stagger>:nth-child(n+9){animation-delay:.34s}.stat{animation:.4s cubic-bezier(.2,.7,.2,1) both rise}.rail-item{animation:.4s both fade-in}}@keyframes page-in{0%{opacity:0;transform:translateY(9px)}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@keyframes fade-in{0%{opacity:0}}.btn:active:not(:disabled){transform:translateY(1px)scale(.985)}.stat{transition:transform var(--t), box-shadow var(--t)}.stat:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}.card-hover:hover{transform:translateY(-2px)}.rail-item,.tab,.chip,.menu-item,.table tbody tr{transition:all var(--t)}.rail-glyph{transition:transform var(--t), box-shadow var(--t)}.rail-brand:hover .rail-glyph{transform:rotate(45deg)scale(1.05)}.av{transition:transform var(--t)}.person:hover .av{transform:scale(1.06)}.progress>span{transition:width .5s cubic-bezier(.2,.7,.2,1)}.divider{background:var(--line);height:1px;margin:16px 0}.kbd{font-family:var(--mono);background:var(--panel-3);border:1px solid var(--line);color:var(--soft);border-radius:5px;padding:1px 6px;font-size:11px}.dotline{border-radius:50%;width:8px;height:8px;display:inline-block}.link-muted{color:var(--soft);cursor:pointer}.link-muted:hover{color:var(--teal-deep);text-decoration:underline}.scope-pill{font-family:var(--mono);background:var(--ink);color:#fff;border-radius:5px;padding:1px 7px;font-size:11px}.scope-pill.org{background:var(--teal-deep)}.scope-pill.resource{background:var(--amber);color:#fff}.scope-pill.self{background:var(--panel-3);color:var(--ink-3)}.eff-row{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:7px 0;display:flex}.eff-row:first-child{border-top:0}.eff-perm{flex:1;min-width:0}.eff-scopes{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.nowrap{white-space:nowrap}.mt-0{margin-top:0}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.gap-2{gap:8px}.gap-4{gap:16px}.print-only{display:none}@media print{.rail,.topbar,.toaster,.user-chip,.chat-fab,.no-print,.modal-head,.modal-foot{display:none!important}body *{visibility:hidden}.print-target,.print-target *{visibility:visible}.print-target{width:auto!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important;position:static!important}.print-only{display:block}html,body,.shell,.main,.workspace,.container,.table-wrap,.backdrop,.modal,.modal-body{height:auto!important;min-height:0!important;max-height:none!important;box-shadow:none!important;background:#fff!important;display:block!important;position:static!important;inset:auto!important;overflow:visible!important}.modal{border:none!important;width:auto!important;max-width:none!important}.table tbody tr,.doc-sheet{break-inside:avoid}@page{margin:16mm}}.doc-sheet{color:var(--ink)}.doc-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:12px;display:flex}.doc-brand{align-items:center;gap:10px;display:flex}.doc-brand img{height:34px}.doc-title{letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:700}.doc-meta{text-align:right;color:var(--soft);font-size:12px}.payslip-grid{grid-template-columns:1fr 1fr;gap:20px 28px;margin:18px 0;display:grid}.payslip-line{border-bottom:1px solid var(--hair);justify-content:space-between;padding:6px 0;display:flex}.payslip-total{border-top:2px solid var(--ink);justify-content:space-between;margin-top:8px;padding:12px 0;font-size:17px;font-weight:700;display:flex}.chat{height:calc(100dvh - var(--topbar-h) - 92px);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);grid-template-columns:320px 1fr;display:grid;overflow:hidden}.chat-list{border-right:1px solid var(--line);overflow-y:auto}.chat-search{z-index:1;background:var(--panel);border-bottom:1px solid var(--hair);padding:9px 10px;position:sticky;top:0}.chat-search .search{margin:0}.chat-sec-label{letter-spacing:.07em;text-transform:uppercase;color:var(--soft);padding:12px 13px 5px;font-size:10.5px;font-weight:600}.chat-conv-title.has-unread{color:var(--ink);font-weight:700}.chat-conv{cursor:pointer;border-bottom:1px solid var(--hair);align-items:center;gap:10px;padding:11px 13px;display:flex}.chat-conv:hover{background:var(--teal-tint)}.chat-conv.active{background:var(--teal-soft)}.chat-conv-main{flex:1;min-width:0}.chat-conv-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.chat-conv-title{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.chat-conv-last{color:var(--soft);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.chat-main{flex-direction:column;min-width:0;display:flex}.chat-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.chat-msgs{flex-direction:column;flex:1;gap:6px;padding:16px;display:flex;overflow-y:auto}.bubble{overflow-wrap:anywhere;border-radius:15px;max-width:68%;padding:8px 12px;font-size:14px;line-height:1.45}.bubble.mine{background:var(--teal);color:#fff;border-bottom-right-radius:5px;align-self:flex-end}.bubble.theirs{background:var(--soft-bg,#eef1f5);color:var(--ink);border-bottom-left-radius:5px;align-self:flex-start}.bubble-meta{color:var(--soft);margin:6px 0 1px 6px;font-size:10.5px}.chat-composer{border-top:1px solid var(--line);gap:8px;padding:12px;display:flex}.chat-empty{height:100%;color:var(--soft);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px;display:flex}.chat-back{display:none}@media (width<=640px){.chat{grid-template-columns:1fr}.chat-list{display:block}.chat-main,.chat.chat-sel .chat-list{display:none}.chat.chat-sel .chat-main{display:flex}.chat-back{min-width:40px;min-height:40px;display:inline-flex}}.chat-fab{background:var(--teal);color:#fff;width:56px;height:56px;box-shadow:var(--sh-lg);cursor:pointer;z-index:60;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .12s,filter .12s;display:flex;position:fixed;bottom:22px;right:22px}.chat-fab:hover{filter:brightness(1.06);transform:translateY(-1px)}.chat-fab-badge{font-size:10px;position:absolute;top:-3px;right:-3px}.chat-panel{background:var(--panel);border:1px solid var(--line);width:360px;height:min(520px,72vh);box-shadow:var(--sh-lg);z-index:60;border-radius:14px;flex-direction:column;display:flex;position:fixed;bottom:88px;right:22px;overflow:hidden}.chat-panel-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:11px 14px;display:flex}.chat-panel-body{flex:1;min-height:0;overflow-y:auto}@media (width<=640px){.chat-panel{border-radius:0;width:100%;height:100dvh;max-height:none;inset:0 auto auto 0}.chat-panel-head{padding-right:58px}.chat-fab-root.open .chat-fab{z-index:61;width:40px;height:40px;box-shadow:var(--sh-md);position:fixed;top:14px;bottom:auto;right:14px}}.store-card{text-align:left;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);width:100%;color:var(--ink);cursor:pointer;box-shadow:var(--sh-sm);padding:11px 13px;transition:border-color .12s,background .12s;display:block}.store-card:hover{border-color:var(--line-2);background:var(--panel-2)}.store-card.active{border-color:var(--teal);background:var(--teal-tint)}.cat-row{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);cursor:pointer;align-items:center;gap:8px;padding:6px 9px;display:flex}.cat-row.active{border-color:var(--teal);background:var(--teal-tint)}.text-bad{color:var(--bad)}tr.row-active,.table tbody tr.row-active{background:var(--teal-tint)}.yard-fill{background:var(--panel-3);border-radius:99px;height:8px;overflow:hidden}.yard-fill-bar{background:#16a34a;border-radius:99px;height:100%;transition:width .2s}.yard-fill-bar.warm{background:#d97706}.yard-fill-bar.hot{background:#dc2626}.xlink{color:var(--teal);cursor:pointer;border-radius:3px;text-decoration:none}.xlink:hover{text-decoration:underline}.xlink:focus-visible{box-shadow:var(--ring);outline:none;text-decoration:underline}.th-sort:focus-visible{color:var(--ink);box-shadow:var(--ring);outline:none}.cmdk-trigger{background:var(--panel-2);border:1px solid var(--line);min-width:200px;max-width:320px;height:34px;color:var(--ink-3);cursor:pointer;transition:all var(--t);border-radius:8px;align-items:center;gap:8px;margin-left:6px;padding:0 9px 0 11px;font-size:13px;display:flex}.cmdk-trigger:hover{background:var(--panel-3);border-color:var(--line-2);color:var(--ink-2)}.cmdk-trigger-text{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cmdk-trigger-kbd,.cmdk-esc,.cmdk-foot kbd{font-family:var(--mono);color:var(--ink-3);background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:10.5px;line-height:1.5}.cmdk-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:cmdk-fade var(--t) ease;background:#0c142457;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}@keyframes cmdk-fade{0%{opacity:0}to{opacity:1}}.cmdk-panel{background:var(--panel);border:1px solid var(--line-2);width:min(600px,100%);box-shadow:var(--sh-lg);border-radius:14px;flex-direction:column;max-height:72vh;display:flex;overflow:hidden}.cmdk-input-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmdk-input-ico{color:var(--ink-3);display:flex}.cmdk-input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:16px}.cmdk-input::placeholder{color:var(--ink-3)}.cmdk-results{padding:6px;overflow-y:auto}.cmdk-group-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:9px 10px 4px;font-size:10px}.cmdk-item{cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 11px;display:flex}.cmdk-item.active{background:var(--teal-tint)}.cmdk-item-label{white-space:nowrap;text-overflow:ellipsis;max-width:62%;font-size:14px;font-weight:500;overflow:hidden}.cmdk-item-tag{font-family:var(--mono);color:var(--teal-deep);background:var(--teal-soft);border-radius:4px;flex:none;padding:1px 6px;font-size:10px}.cmdk-item-sub{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;max-width:55%;margin-left:auto;font-size:12px;overflow:hidden}.cmdk-empty{text-align:center;color:var(--ink-3);padding:26px;font-size:13px}.cmdk-foot{border-top:1px solid var(--line);color:var(--ink-3);gap:16px;padding:8px 14px;font-size:11px;display:flex}.cmdk-foot span{align-items:center;gap:5px;display:inline-flex}.nav-toggle{width:36px;height:36px;color:var(--ink-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;display:none}.nav-toggle:hover{background:var(--panel-2);border-color:var(--line)}.rail-backdrop{display:none}@media (width<=900px){.shell{grid-template-columns:1fr}.rail{z-index:70;width:min(280px,84vw);transition:transform .22s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.rail.open{box-shadow:var(--sh-lg);transform:translate(0)}.rail-backdrop{z-index:65;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);animation:cmdk-fade var(--t) ease;background:#0c142457;display:block;position:fixed;inset:0}.nav-toggle{display:inline-flex}.topbar{gap:8px;padding:0 14px}.topbar-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.workspace{padding:16px 16px 96px}.cmdk-trigger{min-width:0;margin-left:auto}.cmdk-trigger-text,.cmdk-trigger-kbd{display:none}.rail-item{box-sizing:border-box;min-height:40px;padding:10px}}@media (width<=560px){.workspace{padding:13px 13px 96px}}.notif-btn{width:36px;height:36px;color:var(--ink-2);cursor:pointer;transition:all var(--t);background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.notif-btn:hover,.notif-btn.open{background:var(--panel-2);border-color:var(--line)}.notif-dot{color:#fff;background:var(--amber);border:2px solid var(--panel);border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;display:flex;position:absolute;top:1px;right:1px}.notif-menu{background:var(--panel);border:1px solid var(--line-2);width:320px;max-width:86vw;box-shadow:var(--sh-lg);z-index:80;animation:cmdk-fade var(--t) ease;border-radius:12px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px 14px;font-size:13px;font-weight:600;display:flex}.notif-empty{text-align:center;color:var(--ink-3);padding:22px 14px;font-size:13px}.notif-item{border-top:1px solid var(--line);color:var(--ink);align-items:center;gap:10px;padding:11px 14px;font-size:13px;text-decoration:none;display:flex}.notif-item:first-of-type{border-top:none}.notif-item:hover{background:var(--panel-2);text-decoration:none}.notif-item-bar{border-radius:2px;flex:none;align-self:stretch;width:3px}.notif-item-label{line-height:1.3}.input.invalid,.textarea.invalid{border-color:var(--bad)}.input.invalid:focus,.textarea.invalid:focus{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.field-error{color:var(--bad);margin-top:4px;font-size:12px;line-height:1.3}.skel{background:var(--panel-3);vertical-align:middle;border-radius:5px;width:68%;height:12px;display:inline-block}.skel-row td .skel{width:62%}.skel-row td:first-child .skel{width:80%}.skel-row td:last-child .skel{width:40%}@media (prefers-reduced-motion:no-preference){.skel{background:linear-gradient(90deg, var(--panel-3) 25%, var(--panel-2) 37%, var(--panel-3) 63%);background-size:400% 100%;animation:1.4s infinite skel-shimmer}@keyframes skel-shimmer{0%{background-position:100%}to{background-position:0}}}.col-check{text-align:center;width:34px;padding-left:12px}.col-check input[type=checkbox]{cursor:pointer;vertical-align:middle;width:15px;height:15px}.bulk-bar{background:var(--teal-tint);border:1px solid var(--teal-soft);border-radius:var(--r-sm);animation:cmdk-fade var(--t) ease;align-items:center;gap:12px;margin-bottom:12px;padding:8px 14px;display:flex}.bulk-count{color:var(--teal-deep);font-size:13px;font-weight:600}.bulk-actions{flex-wrap:wrap;gap:8px;display:flex}.bulk-clear{margin-left:auto}.crumbs{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:6px;font-size:11px;display:flex}.crumb{color:var(--teal-deep);text-decoration:none}.crumb:hover{text-decoration:underline}.crumb-sep{color:var(--ink-3);opacity:.7}.crumb-cur{color:var(--ink-3)}.ops-ctx{color:var(--soft);white-space:nowrap;align-items:center;gap:10px;font-size:12px;display:flex}.ops-ctx-item{align-items:center;gap:5px;display:inline-flex}.ops-ctx-item svg{color:var(--faint)}.ops-ctx-clock{color:var(--ink-2);font-weight:500}.ops-ctx-sep{background:var(--line);flex:none;width:1px;height:12px}.ops-ctx-status{color:var(--ok);align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.ops-ctx-status.off{color:var(--amber)}.ops-ctx-dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}@media (prefers-reduced-motion:no-preference){.ops-ctx-status:not(.off) .ops-ctx-dot{animation:2.2s infinite ctx-pulse}@keyframes ctx-pulse{0%,to{opacity:1}50%{opacity:.35}}}@media (width<=1120px){.ops-ctx-port{display:none}}@media (width<=900px){.ops-ctx{display:none}}.scope-tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:5px;align-items:center;padding:2px 6px;font-size:9.5px;font-weight:600;line-height:1.4;display:inline-flex}.scope-tag-dept{background:var(--teal-soft);color:var(--teal-deep)}.scope-tag-term{background:var(--panel-3);color:var(--ink-3)}.scope-tag-org{background:var(--amber-soft);color:#92400e}.scope-tag-self{background:var(--panel-3);color:var(--ink-3)}.container.wide{max-width:none}.table.compact{font-size:12.5px}.table.compact thead th{padding:9px 14px}.table.compact tbody td{padding:7px 14px}.board{color:#e6ecf7;background:#0c1424;flex-direction:column;gap:3vh;min-height:100dvh;padding:3vh 3vw;font-size:clamp(14px,1.4vw,22px);display:flex}.board .dim{color:#8291ab}.board .mono{font-family:var(--mono)}.board-head{align-items:baseline;gap:2vw;display:flex}.board-brand{letter-spacing:.06em;align-items:center;gap:12px;font-size:1.2em;font-weight:700;display:flex}.board-brand img{height:1.6em}.board-brand span{color:#8291ab;letter-spacing:.18em;font-size:.72em;font-weight:500}.board-clock{font-family:var(--mono);letter-spacing:.02em;margin-left:auto;font-size:2.2em;font-weight:600}.board-age{font-family:var(--mono);color:#4ade80;letter-spacing:.08em;font-size:.68em}.board-age.stale{color:var(--amber);font-weight:700}.board-wait{color:#8291ab;text-align:center;padding:20vh 0}.board-label{font-family:var(--mono);letter-spacing:.2em;color:#8291ab;margin-bottom:.5em;font-size:.62em}.board-berths{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2vw;display:grid}.board-berth{background:#101b30;border:1px solid #223252;border-radius:14px;padding:1.4em 1.5em}.board-berth.occupied{background:#0d2233;border-color:#14b8a6}.board-berth-code{font-family:var(--mono);color:#8291ab;letter-spacing:.16em;font-size:.75em}.board-berth-vessel{white-space:nowrap;text-overflow:ellipsis;margin:.25em 0 .15em;font-size:1.25em;font-weight:700;overflow:hidden}.board-berth-sub{font-family:var(--mono);letter-spacing:.12em;color:#8291ab;font-size:.62em}.board-berth.occupied .board-berth-sub{color:#2dd4bf}.board-working{background:#101b30;border:1px solid #223252;border-radius:14px;padding:1.4em 1.5em}.board-working-head{flex-wrap:wrap;align-items:baseline;gap:.8em;display:flex}.board-working-head b{font-size:1.25em}.board-working-nums{font-family:var(--mono);margin-left:auto;font-size:1.1em;font-weight:600}.board-progress{background:#1b2942;border-radius:7px;height:14px;margin-top:1em;overflow:hidden}.board-progress>span{background:linear-gradient(90deg,#0d9488,#2dd4bf);border-radius:7px;height:100%;transition:width .6s;display:block}.board-tiles{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2vw;display:grid}.board-tile{background:#101b30;border:1px solid #223252;border-radius:14px;padding:1.4em 1.5em}.board-tile .board-big{font-family:var(--mono);font-size:2.6em;font-weight:600;line-height:1.1}.board-tile.warn{border-color:var(--amber)}.board-tile.warn .board-big{color:var(--amber)}.pw-toggle{cursor:pointer;font-family:var(--mono);letter-spacing:.05em;color:var(--soft);background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;min-height:36px;padding:4px 10px;font-size:11px;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--teal-deep);background:var(--panel-3)}.auth-status.down .auth-status-dot{background:var(--amber);animation:none}.auth-status.down{color:var(--amber)}.gv-card.gv-green{border:3px solid var(--ok,#1a7f4b)}.gv-card.gv-amber{border:3px solid var(--warn,#b7791f)}.gv-card.gv-red{border:3px solid var(--bad,#b3261e)}
