:root{--bg-canvas:#f2f5f7;--bg-surface:#fff;--bg-subtle:#eceff3;--bg-hover:#f5f7f9;--bg-sidebar:#17202c;--bg-sidebar-hover:#212c3b;--bg-sidebar-active:#283648;--text-primary:#18222f;--text-secondary:#515e70;--text-muted:#79879a;--text-on-dark:#f2f5f7;--text-on-dark-muted:#a0acba;--brand-primary:#1457a3;--brand-primary-hover:#0e488b;--brand-primary-soft:#e9f2fc;--accent-forge:#e16914;--accent-forge-hover:#c25a0f;--accent-forge-soft:#feefe2;--status-free-fg:#156f48;--status-free-bg:#e3f8ee;--status-reserved-fg:#a1570c;--status-reserved-bg:#feeed7;--status-danger-fg:#b81e1e;--status-danger-bg:#fde8e8;--status-neutral-fg:#404f64;--status-neutral-bg:#e6eaef;--border-hairline:#1f273317;--border-strong:#1f273329;--shadow-xs:0 1px 2px #151d280a;--shadow-sm:0 2px 6px #151d280f, 0 1px 2px #151d280a;--shadow-modal:0 20px 44px -10px #1118223d, 0 4px 12px #11182214;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--transition-fast:.15s cubic-bezier(.2, 0, 0, 1)}*,:before,:after{box-sizing:border-box}html,body{background-color:var(--bg-canvas);min-height:100vh;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px;line-height:1.5}button,input,select,textarea{font-family:inherit;font-size:inherit}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tabular{font-variant-numeric:tabular-nums}.login-shell{background-color:var(--bg-canvas);grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid}.login-brand-panel{color:var(--text-on-dark);background:linear-gradient(165deg,#192533 0%,#101823 100%);flex-direction:column;justify-content:space-between;padding:3.5rem;display:flex}.brand-mark{align-items:center;gap:.85rem;display:inline-flex}.brand-icon-box{color:#f68731;background-color:#e1691429;border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.brand-title{letter-spacing:-.02em;color:#fff;font-size:1.15rem;font-weight:700}.brand-subtitle{color:var(--text-on-dark-muted);font-size:.78rem}.login-hero-copy{max-width:460px;margin:2rem 0}.login-hero-copy h1{letter-spacing:-.03em;color:#fff;margin:0 0 1rem;font-size:2.15rem;font-weight:700;line-height:1.18}.login-hero-copy p{color:var(--text-on-dark-muted);margin:0;font-size:.98rem;line-height:1.65}.login-spec-strip{color:var(--text-on-dark-muted);border-top:1px solid #dee6ed1a;flex-wrap:wrap;gap:1.5rem;padding-top:1.75rem;font-size:.82rem;display:flex}.login-spec-item strong{color:#fff;margin-bottom:.15rem;font-weight:600;display:block}.login-form-panel{justify-content:center;align-items:center;padding:2.5rem;display:flex}.login-card{background:var(--bg-surface);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-sm);padding:2.25rem}.login-card h2{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.35rem}.login-card .login-desc{color:var(--text-secondary);margin:0 0 1.6rem;font-size:.88rem}.quick-accounts-box{border-top:1px solid var(--border-hairline);margin-top:1.6rem;padding-top:1.25rem}.quick-accounts-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.65rem;font-size:.76rem;font-weight:600}.quick-account-list{gap:.45rem;display:grid}.quick-account-btn{background:var(--bg-subtle);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;color:var(--text-primary);transition:background-color var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;justify-content:space-between;align-items:center;padding:.55rem .75rem;display:flex}.quick-account-btn:hover{background:var(--bg-surface);border-color:var(--border-strong)}.quick-account-btn span:first-child{font-size:.82rem;font-weight:600}.quick-account-btn span:last-child{font-family:var(--font-mono);color:var(--text-secondary);font-size:.76rem}.app-shell{grid-template-columns:256px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background-color:var(--bg-sidebar);color:var(--text-on-dark);flex-direction:column;height:100vh;padding:1.25rem .9rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-header{border-bottom:1px solid #dee6ed17;margin-bottom:1rem;padding:.25rem .55rem 1.15rem}.sidebar-section-label{text-transform:uppercase;letter-spacing:.07em;color:#a0acbab3;margin:.5rem 0 .4rem;padding:0 .65rem;font-size:.7rem;font-weight:600}.sidebar-nav{flex-direction:column;gap:.2rem;display:flex}.nav-item-btn{border-radius:var(--radius-sm);width:100%;color:var(--text-on-dark-muted);cursor:pointer;text-align:left;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;gap:.7rem;padding:.62rem .75rem;font-size:.88rem;font-weight:500;display:flex}.nav-item-btn:hover{background-color:var(--bg-sidebar-hover);color:#fff}.nav-item-btn.active{background-color:var(--bg-sidebar-active);color:#fff;font-weight:600}.nav-item-left{align-items:center;gap:.65rem;min-width:0;display:flex}.nav-count-pill{font-family:var(--font-mono);color:var(--text-on-dark);background-color:#e4ebf11f;border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.future-modules-box{border-top:1px solid #dee6ed14;margin-top:1.25rem;padding-top:.85rem}.future-toggle-btn{color:#a0acbac7;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:.4rem .65rem;font-size:.74rem;font-weight:600;display:flex}.future-toggle-btn:hover{color:#fff}.future-module-list{gap:.32rem;margin:.35rem 0 0;padding:0 .65rem;list-style:none;display:grid}.future-module-list li{color:#a0acba8c;justify-content:space-between;align-items:center;gap:.4rem;font-size:.76rem;display:flex}.sidebar-footer{border-top:1px solid #dee6ed17;margin-top:auto;padding-top:1rem}.user-profile-box{border-radius:var(--radius-md);background-color:#253141a6;margin-bottom:.55rem;padding:.65rem .7rem}.user-profile-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.user-profile-meta{color:var(--text-on-dark-muted);justify-content:space-between;align-items:center;gap:.4rem;margin-top:.25rem;font-size:.74rem;display:flex}.role-chip-dark{color:#fbae6a;background:#eb6e1438;border-radius:4px;padding:.12rem .48rem;font-size:.69rem;font-weight:600;display:inline-block}.sidebar-footer-actions{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.sidebar-mini-btn{border-radius:var(--radius-sm);color:var(--text-on-dark-muted);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #dee6ed1f;justify-content:center;align-items:center;gap:.35rem;padding:.46rem .5rem;font-size:.76rem;font-weight:500;display:inline-flex}.sidebar-mini-btn:hover{background:var(--bg-sidebar-hover);color:#fff}.workspace-main{min-width:0;max-width:1520px;padding:1.65rem 2rem 2.5rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.25rem;margin-bottom:1.35rem;display:flex}.page-header h1{letter-spacing:-.025em;color:var(--text-primary);margin:0;font-size:1.45rem;font-weight:700}.page-header p{color:var(--text-secondary);margin:.25rem 0 0;font-size:.87rem}.header-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.summary-strip{flex-wrap:wrap;gap:.75rem;margin-bottom:1.1rem;display:flex}.summary-pill{background:var(--bg-surface);border:1px solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);align-items:baseline;gap:.6rem;padding:.68rem 1rem;display:flex}.summary-pill-label{color:var(--text-secondary);font-size:.78rem;font-weight:500}.summary-pill-value{font-family:var(--font-mono);color:var(--text-primary);font-size:1.02rem;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast), border-color var(--transition-fast), transform 80ms ease;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.54rem .92rem;font-size:.84rem;font-weight:600;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.52;cursor:not-allowed}.btn-primary{background-color:var(--brand-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--brand-primary-hover)}.btn-forge{background-color:var(--accent-forge);color:#fff}.btn-forge:hover:not(:disabled){background-color:var(--accent-forge-hover)}.btn-secondary{background-color:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-subtle)}.btn-danger-soft{background-color:var(--status-danger-bg);color:var(--status-danger-fg)}.btn-danger-soft:hover:not(:disabled){background-color:#fad1d1}.btn-sm{gap:.32rem;padding:.34rem .64rem;font-size:.77rem}.surface-panel{background:var(--bg-surface);border:1px solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.toolbar-bar{border-bottom:1px solid var(--border-hairline);background-color:var(--bg-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;padding:.85rem 1rem;display:flex}.segmented-tabs{background:var(--bg-subtle);border-radius:var(--radius-sm);flex-wrap:wrap;gap:.15rem;padding:.22rem;display:inline-flex}.seg-tab{color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;border-radius:5px;padding:.38rem .76rem;font-size:.8rem;font-weight:600}.seg-tab:hover{color:var(--text-primary)}.seg-tab.active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-xs)}.filter-controls{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.search-input-wrap{align-items:center;display:flex;position:relative}.search-input-wrap svg{color:var(--text-muted);pointer-events:none;position:absolute;left:.68rem}.input-control,.select-control,.textarea-control{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.5rem .72rem;font-size:.85rem}.search-input-wrap .input-control{min-width:240px;padding-left:2.05rem}.input-control:focus,.select-control:focus,.textarea-control:focus{border-color:var(--brand-primary);outline:none;box-shadow:0 0 0 3px #1457a324}.table-scroll{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{text-transform:uppercase;letter-spacing:.045em;color:var(--text-secondary);border-bottom:1px solid var(--border-hairline);white-space:nowrap;background-color:#f9fafb;padding:.68rem .9rem;font-size:.73rem;font-weight:700}.data-table td{border-bottom:1px solid var(--border-hairline);vertical-align:middle;padding:.72rem .9rem;font-size:.85rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background-color:var(--bg-hover)}.expand-cell{text-align:center;width:36px;padding-left:.7rem!important;padding-right:.25rem!important}.expand-toggle-btn{border:1px solid var(--border-strong);background-color:var(--bg-surface);width:24px;height:24px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-xs);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border-radius:5px;place-items:center;padding:0;display:inline-grid}.expand-toggle-btn:hover{border-color:var(--brand-primary);color:var(--brand-primary);background-color:var(--brand-primary-soft)}.expand-toggle-btn.is-open{background-color:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.group-parent-row{cursor:pointer}.group-parent-row.is-open{box-shadow:inset 3px 0 0 var(--brand-primary);background-color:#f5f8fc}.group-parent-row.is-open:hover{background-color:#f1f5fa}.group-child-row{background-color:#fbfcfd;box-shadow:inset 3px 0 #1457a352}.group-child-row:hover{background-color:#f4f7fa!important}.child-tree-branch{color:var(--text-muted);font-family:var(--font-mono);-webkit-user-select:none;user-select:none;font-size:.88rem;line-height:1;display:inline-block}.num-col{text-align:right}.row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.item-primary-name{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:.45rem;font-weight:600;display:flex}.item-sub-meta{color:var(--text-muted);margin-top:.12rem;font-size:.76rem}.badge{white-space:nowrap;border-radius:5px;align-items:center;gap:.28rem;padding:.16rem .52rem;font-size:.73rem;font-weight:600;display:inline-flex}.badge-free{background-color:var(--status-free-bg);color:var(--status-free-fg)}.badge-reserved{background-color:var(--status-reserved-bg);color:var(--status-reserved-fg)}.badge-danger{background-color:var(--status-danger-bg);color:var(--status-danger-fg)}.badge-neutral{background-color:var(--status-neutral-bg);color:var(--status-neutral-fg)}.badge-brand{background-color:var(--brand-primary-soft);color:var(--brand-primary)}.badge-remnant{background-color:var(--accent-forge-soft);color:var(--accent-forge)}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background-color:#1118227a;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--bg-surface);border-radius:var(--radius-lg);width:100%;max-width:540px;max-height:92vh;box-shadow:var(--shadow-modal);border:1px solid var(--border-hairline);overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-hairline);justify-content:space-between;align-items:center;padding:1.1rem 1.35rem;display:flex}.modal-header h2{margin:0;font-size:1.05rem;font-weight:700}.icon-close-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;place-items:center;padding:.3rem;display:grid}.icon-close-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.modal-body{gap:.95rem;padding:1.25rem 1.35rem;display:grid}.form-grid-2{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:.75rem;display:grid}.field-group{gap:.34rem;display:grid}.field-label{color:var(--text-secondary);font-size:.79rem;font-weight:600}.field-hint{color:var(--text-muted);font-size:.74rem}.calc-preview-bar{background:var(--bg-subtle);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:.65rem .85rem;font-size:.82rem;display:flex}.modal-footer{border-top:1px solid var(--border-hairline);background:#fafbfc;justify-content:flex-end;align-items:center;gap:.55rem;padding:.95rem 1.35rem;display:flex}.alert-banner{border-radius:var(--radius-sm);padding:.68rem .85rem;font-size:.83rem;font-weight:500}.alert-error{background:var(--status-danger-bg);color:var(--status-danger-fg)}.empty-state{text-align:center;color:var(--text-muted);padding:2.75rem 1.5rem}.empty-state strong{color:var(--text-secondary);margin-bottom:.25rem;display:block}.toast-container{z-index:200;gap:.5rem;display:grid;position:fixed;bottom:1.35rem;right:1.35rem}.toast-item{color:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-modal);background:#1a2532;align-items:center;gap:.55rem;padding:.72rem 1rem;font-size:.84rem;font-weight:500;display:flex}.toast-item.toast-error{background:#a31f1f}@media (width<=960px){.login-shell{grid-template-columns:1fr}.login-brand-panel{padding:2rem 1.75rem}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.workspace-main{padding:1.25rem 1rem 2rem}.form-grid-2,.form-grid-3{grid-template-columns:1fr}}
