:root{--ink: #0A0E16;--ink-soft: #161D2C;--paper: #F8F9FB;--line: #E5E7EB;--teal: #0B7A3D;--teal-tint: #E2F4E9;--amber: #C67A1E;--amber-text: #6B3F12;--amber-tint: #FAEEDB;--rust: #B8321F;--rust-tint: #FADEDA;--slate: #565F72;--text: #12151C;--badge-good: #0B7A3D;--badge-warn: #8A5A1A;--badge-bad: #96291B;--badge-neutral: #4B5563;--radius-sm: 7px;--radius: 10px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(10,14,22,.05), 0 1px 2px rgba(10,14,22,.04);--shadow-md: 0 8px 24px rgba(10,14,22,.1), 0 2px 6px rgba(10,14,22,.05);--shadow-lg: 0 16px 40px rgba(10,14,22,.16), 0 4px 12px rgba(10,14,22,.06);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--text-xs: 11.5px;--text-sm: 12.5px;--text-base: 14px;--text-md: 15px;--text-lg: 19px;--text-xl: 22px;--text-2xl: 28px;--motion-fast: .12s ease;--motion-base: .18s cubic-bezier(.4, 0, .2, 1);--motion-slow: .26s cubic-bezier(.4, 0, .2, 1);--shell-breakpoint: 880px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--text);font-family:IBM Plex Sans,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}#root{min-height:100vh}button,input,select,textarea{font-family:inherit}button{border-radius:var(--radius-sm);transition:box-shadow var(--motion-fast),border-color var(--motion-fast),background-color var(--motion-fast),opacity var(--motion-fast),transform 80ms ease}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{border-radius:var(--radius-sm);transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#b7c0cc}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.status-badge:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--teal)}a{color:inherit}.skip-link{position:absolute;left:8px;top:-48px;background:var(--ink);color:#fff;padding:10px 16px;font-size:var(--text-sm);border-radius:var(--radius-sm);z-index:200;transition:top var(--motion-base)}.skip-link:focus{top:8px}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;line-height:1.4;white-space:nowrap;color:#fff}.status-badge .status-dot{display:none}.status-badge--good{background:var(--badge-good)}.status-badge--warn{background:var(--badge-warn)}.status-badge--bad{background:var(--badge-bad)}.status-badge--neutral{background:var(--badge-neutral)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 18px;font-size:var(--text-base);border:none;cursor:pointer;white-space:nowrap}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover:not(:disabled){background:var(--ink-soft)}.btn-primary.tone-teal{background:var(--teal)}.btn-primary.tone-teal:hover:not(:disabled){background:#09602f}.btn-primary.tone-rust{background:var(--rust)}.btn-primary.tone-rust:hover:not(:disabled){background:#8a3226}.btn-secondary{background:none;border:1px solid var(--ink);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:#101b2d0d}.btn-ghost{background:none;border:1px solid var(--line);color:var(--text)}.btn-ghost:hover:not(:disabled){border-color:var(--ink)}.btn-spinner{width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}.btn-secondary .btn-spinner,.btn-ghost .btn-spinner{border:2px solid rgba(16,27,45,.2);border-top-color:var(--ink)}@keyframes spin{to{transform:rotate(360deg)}}.table-row{transition:background-color var(--motion-fast)}.table-row--clickable{cursor:pointer}.table-row--clickable:hover{background:#f9fafb}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid transparent;background:none;color:var(--slate);cursor:pointer;flex-shrink:0}.icon-btn:hover{border-color:var(--line);color:var(--text);background:var(--paper)}.table-filter{display:flex;align-items:center;gap:8px;margin-bottom:14px;max-width:320px}.table-scroll{overflow-x:auto}.table-inner{min-width:540px}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 20px;color:var(--slate)}.empty-state svg{margin-bottom:12px;opacity:.6}.empty-state .empty-title{font-size:var(--text-base);color:var(--text);font-weight:500;margin-bottom:4px}.empty-state .empty-desc{font-size:var(--text-sm);max-width:320px;line-height:1.5}.skeleton{background:linear-gradient(90deg,#e8eaed 25%,#dde1e6 37%,#e8eaed 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#101b2d73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:60;animation:fadeIn var(--motion-base)}.modal-panel{width:100%;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:86vh;overflow-y:auto;animation:modalIn var(--motion-base)}.modal-overlay--closing{animation:fadeOut var(--motion-base) forwards}.modal-panel--closing{animation:modalOut var(--motion-base) forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.98)}}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#101b2d52;z-index:60;animation:fadeIn var(--motion-base)}.drawer-panel{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:92vw;background:#fff;box-shadow:var(--shadow-lg);overflow-y:auto;animation:drawerIn var(--motion-base) cubic-bezier(.4,0,.2,1)}.drawer-overlay--closing{animation:fadeOut var(--motion-base) forwards}.drawer-panel--closing{animation:drawerOut var(--motion-base) cubic-bezier(.4,0,.2,1) forwards}@keyframes drawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawerOut{0%{transform:translate(0)}to{transform:translate(100%)}}.toast-host{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:100;max-width:calc(100vw - 32px)}.toast{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:12px 18px;border-radius:var(--radius);font-size:var(--text-base);box-shadow:0 8px 24px #101b2d38;animation:toastIn var(--motion-base)}.toast--warn{background:#5a431f}.toast--bad{background:#5a251c}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.portal-shell{display:flex;min-height:100vh}.portal-sidebar{width:232px;flex-shrink:0;padding:24px 0;display:flex;flex-direction:column;transition:transform var(--motion-base)}.nav-group-label{padding:16px 22px 6px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#7a879c}.nav-group-label:first-child{padding-top:4px}.nav-item{display:flex;align-items:center;gap:11px;width:100%;padding:10px 22px;border:none;border-left:2px solid transparent;font-size:var(--text-base);cursor:pointer;text-align:left;border-radius:0;background:transparent;color:#aeb8c9}.nav-item:hover{color:#fff}.nav-item.active{background:#1b2a44;border-left-color:#7be0a3;color:#fff}.sidebar-backdrop,.hamburger-btn{display:none}.portal-header{height:56px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;justify-content:space-between;background:#fff;flex-shrink:0;gap:16px}.portal-search-trigger{display:flex;align-items:center;gap:8px;color:var(--slate);font-size:var(--text-base);background:none;border:1px solid transparent;padding:7px 10px;flex:1;max-width:320px;justify-content:flex-start}.portal-search-trigger:hover{border-color:var(--line)}.portal-search-trigger kbd{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:10.5px;border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--slate)}.portal-main{flex:1;display:flex;flex-direction:column;position:relative;min-width:0}.portal-content{padding:36px 44px;overflow-y:auto;flex:1}.page-enter{animation:pageIn .28s cubic-bezier(.4,0,.2,1)}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (max-width: 880px){.portal-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:95;transform:translate(-100%);visibility:hidden;box-shadow:12px 0 32px #101b2d2e;transition:transform var(--motion-base),visibility 0s linear var(--motion-base)}.portal-sidebar.open{transform:translate(0);visibility:visible;transition:transform var(--motion-base),visibility 0s}.sidebar-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#101b2d66;z-index:90;animation:fadeIn var(--motion-base)}.hamburger-btn{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);padding:7px 9px;cursor:pointer;flex-shrink:0}.portal-header{padding:0 12px;gap:10px}.portal-content{padding:22px 18px}.portal-search-trigger{max-width:none;flex:1;padding:7px;justify-content:center}.portal-search-trigger span,.portal-search-trigger kbd,.ask-ai-label{display:none}.header-actions{gap:10px!important}}.command-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#101b2d73;z-index:110;display:flex;justify-content:center;padding:12vh 16px 16px;animation:fadeIn var(--motion-fast)}.command-panel{width:100%;max-width:560px;height:fit-content;max-height:60vh;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;animation:modalIn var(--motion-base)}.command-input-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.command-input{flex:1;border:none;outline:none;font-size:var(--text-md);font-family:IBM Plex Sans,sans-serif;background:none}.command-list{overflow-y:auto;padding:8px}.command-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;background:none;border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--text);cursor:pointer;text-align:left}.command-item.active{background:var(--paper)}.grid-lead-4{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:var(--space-4)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.split-even{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-7)}.split-wide{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--space-7)}.split-narrow{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-7)}.quick-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.datamap-layout{display:flex;gap:var(--space-6)}.side-panel-fixed{width:260px;flex-shrink:0}@media (max-width: 880px){.grid-lead-4,.grid-4,.grid-3,.quick-actions-grid{grid-template-columns:repeat(2,1fr)}.split-wide,.split-narrow{grid-template-columns:1fr}.datamap-layout{flex-direction:column}.side-panel-fixed{width:100%}}@media (max-width: 560px){.grid-lead-4,.grid-4,.grid-3,.grid-2,.quick-actions-grid{grid-template-columns:1fr}}.wizard-card{padding:32px 32px 28px}@media (max-width: 560px){.wizard-card{padding:20px 18px}.wizard-step-label{display:none}}.form-document{background:#fff;color:#111;font-family:IBM Plex Sans,sans-serif;border:1px solid var(--line);border-radius:var(--radius-sm);padding:26px 28px}.form-document__head{margin-bottom:18px}.form-document__brand{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#6b7280}.form-document__title{font-family:"Source Serif 4",serif;font-size:21px;font-weight:700;margin:6px 0 2px;color:#10151d}.form-document__sub{font-size:12px;color:#6b7280;margin-top:2px}.form-document__section{border-top:1px solid #E5E7EB;padding:14px 0}.form-document__section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#3a4351;margin-bottom:10px}.form-document__field{display:flex;gap:16px;padding:4px 0}.form-document__label{width:230px;flex-shrink:0;font-size:12px;color:#6b7280;padding-top:2px}.form-document__value{flex:1;font-size:13px;min-height:20px;border-bottom:1px dotted #C9CDD3;white-space:pre-wrap}@media print{body *{visibility:hidden!important}.form-document,.form-document *{visibility:visible!important}.form-document{position:absolute;left:0;top:0;width:100%;border:none;border-radius:0}.no-print{display:none!important}}.auth-shell{display:flex;min-height:100vh;background:#fff;color:var(--text);font-family:IBM Plex Sans,sans-serif}.auth-brand{width:460px;flex-shrink:0;background:var(--ink);color:#fff;padding:48px 46px;display:flex;flex-direction:column;justify-content:space-between}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:56px 24px;overflow-y:auto}.auth-mobile-brand{display:none}.role-option{display:flex;align-items:center;gap:16px;padding:20px 22px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;background:#fff;transition:border-color var(--motion-fast),box-shadow var(--motion-fast),transform 80ms ease}.role-option:hover{border-color:var(--teal);box-shadow:var(--shadow-sm)}.role-option:active{transform:translateY(1px)}@media (max-width: 720px){.landing-section-links{display:none!important}}img{max-width:100%}@media (max-width: 880px){.auth-brand{display:none}.auth-mobile-brand{display:block;font-family:"Source Serif 4",serif;font-size:22px;font-weight:700;color:var(--ink);margin-bottom:32px}}
