:root{--font-body:var(--font-johnson-text);--font-heading:var(--font-johnson-display);--c-red:#eb1700;--c-white:#fff;--c-black:#000;--c-gray-01:#f1efed;--c-gray-02:#e8e6e3;--c-gray-03:#d5cfc9;--c-gray-04:#cbc4bc;--c-gray-05:#a39992;--c-gray-06:#81766f;--c-gray-07:#6e6259;--c-gray-08:#312c2a;--c-bg:var(--c-gray-01);--c-bg-alt:var(--c-gray-02);--c-surface:var(--c-white);--c-surface-2:var(--c-gray-02);--c-surface-3:var(--c-gray-03);--c-sidebar:var(--c-white);--c-border:var(--c-gray-02);--c-border-2:var(--c-gray-03);--c-border-accent:#eb170040;--c-primary:var(--c-red);--c-primary-alt:#b81000;--c-grad-brand:linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-alt) 100%);--c-success:#059669;--c-warning:#d97706;--c-danger:var(--c-red);--c-info:#2563eb;--c-text:var(--c-black);--c-text-2:var(--c-gray-07);--c-text-3:var(--c-gray-05);--shadow-sm:0 1px 3px #00000012, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 1px 4px #0000000d;--shadow-lg:0 8px 28px #0000001a, 0 2px 8px #0000000f;--color-primary:var(--c-primary);--color-success:var(--c-success);--color-warning:var(--c-warning);--color-danger:var(--c-danger);--color-info:var(--c-info);--color-bg:var(--c-bg);--color-card:var(--c-surface);--color-card-hover:var(--c-surface-2);--color-border:var(--c-border);--color-text:var(--c-text);--color-text-muted:var(--c-text-2)}:root[data-theme=dark]{--c-bg:#171514;--c-bg-alt:#1c1a19;--c-surface:#211e1d;--c-surface-2:#2c2826;--c-surface-3:#363130;--c-sidebar:#1c1a19;--c-border:#3a3532;--c-border-2:#4a4440;--c-border-accent:#f0504059;--c-primary:#f05040;--c-primary-alt:#f77060;--c-success:#10b981;--c-warning:#f59e0b;--c-danger:var(--c-primary);--c-info:#3b82f6;--c-text:#f5f3f1;--c-text-2:#c9c4c0;--c-text-3:#8f8984;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 12px #00000057, 0 1px 4px #00000038;--shadow-lg:0 8px 28px #0006, 0 2px 8px #00000042}:root[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff26}:root[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff47}*,:before,:after{box-sizing:border-box}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-body), system-ui, -apple-system, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;line-height:1.5}button,input,textarea,select{font:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading), system-ui, -apple-system, sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000047}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-spin{animation:1s linear infinite spin}.animate-fade{animation:.25s both fadeUp}:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #eb17008c}
.app-shell{background-color:var(--c-bg);min-height:100vh;color:var(--c-text);flex-direction:column;font-family:Inter,Segoe UI,system-ui,sans-serif;display:flex}.app-header{background:var(--c-surface);border-bottom:1px solid var(--c-border);z-index:200;height:56px;box-shadow:0 1px 0 var(--c-border), 0 2px 8px #0000000a;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 24px 0 20px;display:flex;position:sticky;top:0}.app-header-start{align-items:center;min-width:0;display:flex}.app-menu-button-wrap{flex-shrink:0;display:none}.app-brand{align-items:center;gap:11px;min-width:0;transition:opacity .12s;display:flex}.app-brand:hover{opacity:.85}.app-brand-icon{background:var(--c-primary);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 2px 8px #d7150047}.app-brand-text{min-width:0}.app-brand-name{color:var(--c-text);letter-spacing:-.01em;font-size:15px;font-weight:700;line-height:1.2}.app-brand-sub{color:var(--c-text-3);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.app-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.user-chip{background:var(--c-surface-3);border:1px solid var(--c-border);border-radius:999px;align-items:center;gap:8px;padding:5px 12px;transition:background .15s,border-color .15s;display:flex}.user-chip:hover{background:var(--c-bg-alt);border-color:var(--c-border-2)}.user-chip-icon{color:var(--c-text-3);flex-shrink:0}.user-chip-name{color:var(--c-text);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:12px;font-weight:500;overflow:hidden}.user-chip-role{color:#fff;background:var(--c-primary);letter-spacing:.02em;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:600}.app-body{flex:1;min-width:0;min-height:0;display:flex}.sidebar{background:var(--c-sidebar);border-right:1px solid var(--c-border);scrollbar-width:none;width:220px;min-width:220px;box-shadow:1px 0 0 var(--c-border);flex-direction:column;flex-shrink:0;padding:16px 10px 24px;display:flex;overflow-y:auto}.sidebar::-webkit-scrollbar{display:none}.sidebar-footer{color:var(--c-text-3);border-top:1px solid var(--c-border);flex-direction:column;gap:2px;margin-top:auto;padding:10px 10px 0;font-size:10px;display:flex}.sidebar-section{margin-bottom:4px}.sidebar-section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--c-text-3);padding:8px 10px 6px;font-size:10px;font-weight:700}.sidebar-divider{background:var(--c-border);height:1px;margin:6px 4px 10px}.sidebar-project-wrap{align-items:center;gap:6px;padding:4px 6px 10px;display:flex}.sidebar-project-icon{color:var(--c-text-3);flex-shrink:0}.sidebar-project-loading{color:var(--c-text-3);font-size:11px;font-style:italic}.sidebar-project-select{appearance:none;background:var(--c-surface-3);border:1px solid var(--c-border-2);min-width:0;color:var(--c-text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;outline:none;flex:1;padding:5px 8px;font-family:inherit;font-size:12px;font-weight:500;transition:border-color .12s,box-shadow .12s;overflow:hidden}.sidebar-project-select:focus{border-color:var(--c-primary);box-shadow:0 0 0 2px #d715001a}.sidebar-section-toggle{text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;align-items:center;gap:5px;font-family:inherit;transition:color .12s;display:flex}.sidebar-section-toggle:hover{color:var(--c-text-2)}.sidebar-chevron{color:var(--c-text-3);flex-shrink:0;align-items:center;transition:transform .18s;display:inline-flex}.sidebar-chevron.expanded{transform:rotate(90deg)}.sidebar-section-label-text{white-space:nowrap}.nav-item{cursor:pointer;color:var(--c-text-2);-webkit-user-select:none;user-select:none;border-radius:7px;align-items:center;gap:9px;padding:8px 10px;font-size:13px;font-weight:500;line-height:1;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--c-surface-3);color:var(--c-text)}.nav-item.active{background:color-mix(in srgb, var(--c-primary) 8%, transparent);color:var(--c-primary-alt);font-weight:600}.nav-icon{color:var(--c-text-3);flex-shrink:0;transition:color .12s}.nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nav-item:hover .nav-icon{color:var(--c-text-2)}.nav-item.active .nav-icon{color:var(--c-primary)}.main-content{flex:1;min-width:0;padding:28px 32px 40px;animation:.22s both fadeUp;overflow-y:auto}.mobile-navigation-drawer{background:var(--c-sidebar);color:var(--c-text)}.mobile-navigation-body{padding:8px 12px 24px}.mobile-navigation-body .nav-item{min-height:40px}.drawer-brand{align-items:center;gap:11px;min-width:0;display:flex}.auth-loading{background:var(--c-bg);flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.auth-loading-text{color:var(--c-text-3);letter-spacing:.02em;font-size:13px}.loading-center{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:100px 32px;display:flex}.loading-text{color:var(--c-text-3);font-size:13px}.error-well{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:60px 32px;display:flex}.error-title{color:var(--c-danger);font-size:16px;font-weight:600}.error-body{color:var(--c-text-2);max-width:480px;font-size:14px}.error-hint{color:var(--c-text-3);font-size:13px}@media (min-width:641px) and (max-width:1007px){.app-header{padding-left:16px;padding-right:16px}.sidebar{width:180px;min-width:180px;padding-left:8px;padding-right:8px}.main-content{padding:24px 20px 32px}.user-chip-name{max-width:110px}.user-chip-role{display:none}}@media (max-width:640px){.app-header{padding:0 12px}.app-header-start{flex:1;gap:8px;min-width:0}.app-menu-button-wrap{display:block}.app-brand,.app-brand-text{min-width:0}.app-brand-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-brand-sub,.user-chip-name,.user-chip-role{display:none}.user-chip{justify-content:center;gap:0;width:34px;height:34px;padding:0}.sidebar{display:none}.main-content{width:100%;min-height:calc(100vh - 56px);padding:20px 16px 28px;overflow-x:hidden}.loading-center{padding:64px 16px}.error-well{padding:48px 16px}.error-body{max-width:100%}}@media (max-width:420px){.app-brand-icon{width:32px;height:32px}.app-brand-name{max-width:150px}.app-header-actions{gap:4px}}@media (max-width:360px){.app-brand-name{max-width:105px}}
@font-face{font-family:johnsonText;src:url(../media/JohnsonText-s.p.17-ep2gpoxz20.woff2)format("woff2");font-display:swap}@font-face{font-family:johnsonText Fallback;src:local(Arial);ascent-override:102.32%;descent-override:31.01%;line-gap-override:0.0%;size-adjust:96.76%}.johnsontext_b16f8b48-module__wSpEMq__className{font-family:johnsonText,johnsonText Fallback}.johnsontext_b16f8b48-module__wSpEMq__variable{--font-johnson-text:"johnsonText", "johnsonText Fallback"}
@font-face{font-family:johnsonDisplay;src:url(../media/JohnsonDisplay-s.p.3k9_1uyhj2jed.woff2)format("woff2");font-display:swap}@font-face{font-family:johnsonDisplay Fallback;src:local(Arial);ascent-override:103.54%;descent-override:31.38%;line-gap-override:0.0%;size-adjust:95.62%}.johnsondisplay_41419832-module__aovAgG__className{font-family:johnsonDisplay,johnsonDisplay Fallback}.johnsondisplay_41419832-module__aovAgG__variable{--font-johnson-display:"johnsonDisplay", "johnsonDisplay Fallback"}
