:root{--ribbon-blue:#0047ff;--ribbon-blue-deep:#002db8;--ribbon-blue-light:#e6edff;--ink:#0a0a0a;--paper:#fff;--bone:#f4f4f0;--line:#1a1a1a;--muted:#6b6b6b;--mute-2:#9a9a9a;--success:#00a862;--warning:#ffb800;--danger:#ff3b30;--border-soft:#e5e5e0;--sidebar-w:240px;--topbar-h:64px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bone);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Archivo,sans-serif;line-height:1.5}.mono{font-family:JetBrains Mono,monospace}.display{text-transform:uppercase;letter-spacing:-.02em;font-family:Archivo Black,sans-serif;font-style:italic;line-height:.95}.wrap{max-width:1320px;margin:0 auto;padding:0 48px}.grid-2{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.comp-label{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin-bottom:16px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.comp-label:before{content:"◆";color:var(--ribbon-blue)}.divider-bar{background:var(--ink);height:4px;margin:32px 0;position:relative}.divider-bar:after{content:"";background:var(--ribbon-blue);transform-origin:0;width:20%;position:absolute;top:0;bottom:0;left:0;transform:skew(-12deg)}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"sidebar topbar""sidebar main";min-height:100vh;display:grid}.app-sidebar{background:var(--ink);color:var(--paper);flex-direction:column;grid-area:sidebar;height:100vh;padding:24px 0;display:flex;position:sticky;top:0;overflow-y:auto}.app-sidebar .brand{text-transform:uppercase;letter-spacing:-.01em;border-bottom:1px solid #ffffff14;padding:0 24px 24px;font-family:Archivo Black,sans-serif;font-size:14px;font-style:italic;line-height:.95}.app-sidebar .brand .bar{background:var(--ribbon-blue);width:80px;height:3px;margin-top:4px;display:block;transform:skew(-12deg)}.app-nav{flex-direction:column;flex:1;gap:2px;padding:16px 0;display:flex}.app-nav a{color:#ffffffb3;letter-spacing:.15em;text-transform:uppercase;border-left:2px solid #0000;align-items:center;gap:12px;padding:10px 24px;font-family:JetBrains Mono,monospace;font-size:11px;text-decoration:none;transition:all .15s;display:flex}.app-nav a:hover{color:var(--paper);background:#ffffff0a}.app-nav a.active{color:var(--paper);border-left-color:var(--ribbon-blue);background:#0047ff1f}.app-nav a.disabled{opacity:.4;pointer-events:none}.app-nav a .marker{opacity:.5;letter-spacing:.2em;margin-left:auto;font-size:8px}.app-topbar{background:var(--paper);border-bottom:1px solid var(--border-soft);grid-area:topbar;justify-content:space-between;align-items:center;gap:24px;padding:0 32px;display:flex}.app-topbar .breadcrumb{letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:10px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.app-topbar .breadcrumb a{color:var(--muted);text-decoration:none}.app-topbar .breadcrumb .sep{color:var(--mute-2)}.app-topbar .breadcrumb .current{color:var(--ink)}.user-menu{align-items:center;gap:12px;display:flex}.user-avatar{background:var(--ink);width:36px;height:36px;color:var(--paper);letter-spacing:-.02em;justify-content:center;align-items:center;font-family:Archivo Black,sans-serif;font-size:13px;font-style:italic;display:flex}.user-info{flex-direction:column;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.3;display:flex}.user-info .name{color:var(--ink);letter-spacing:.05em;font-weight:500}.user-info .email{color:var(--muted);letter-spacing:.05em;font-size:10px}.app-main{grid-area:main;padding:32px;overflow-x:auto}.btn{letter-spacing:.15em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:10px;padding:14px 22px;font-family:JetBrains Mono,monospace;font-size:11px;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--ribbon-blue)}.btn-blue{background:var(--ribbon-blue);color:var(--paper)}.btn-blue:hover{background:var(--ribbon-blue-deep)}.btn-outline{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn-outline:hover{background:var(--ink);color:var(--paper)}.btn-ghost{color:var(--muted);background:0 0;padding:10px 14px}.btn-ghost:hover{color:var(--ribbon-blue)}.btn-danger{background:var(--danger);color:var(--paper)}.btn-icon{letter-spacing:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:14px;display:inline-flex}.btn-lg{gap:14px;padding:18px 32px;font-size:13px}.btn-sm{padding:8px 14px;font-size:10px}.btn-arrow:after{content:"→";transition:transform .2s}.btn-arrow:hover:after{transform:translate(4px)}.btn-full{width:100%}.badge{letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:6px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:500;display:inline-flex}.badge-paid{background:var(--success);color:var(--paper)}.badge-open{background:var(--ink);color:var(--paper)}.badge-overdue{background:var(--danger);color:var(--paper)}.badge-draft{background:var(--bone);color:var(--ink);border:1px solid var(--ink)}.badge-pending{background:var(--warning);color:var(--ink)}.badge-blue{background:var(--ribbon-blue);color:var(--paper)}.badge-dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.stat-card{background:var(--paper);border:1px solid var(--line);padding:28px;transition:all .25s;position:relative;overflow:hidden}.stat-card:hover{box-shadow:6px 6px 0 var(--ink);transform:translateY(-2px)}.stat-card.dark{background:var(--ink);color:var(--paper)}.stat-card.blue{background:var(--ribbon-blue);color:var(--paper)}.stat-label{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.stat-card.dark .stat-label,.stat-card.blue .stat-label{color:#fff9}.stat-value{letter-spacing:-.03em;text-transform:uppercase;margin-top:12px;font-family:Archivo Black,sans-serif;font-size:44px;font-style:italic;line-height:1}.stat-card.blue .stat-value{color:var(--paper)}.stat-delta{letter-spacing:.05em;align-items:center;gap:8px;margin-top:12px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.stat-delta.up{color:var(--success)}.stat-delta.down{color:var(--danger)}.stat-card.dark .stat-delta.up,.stat-card.blue .stat-delta.up{color:#5fe3a1}.stat-card.dark .stat-delta.down,.stat-card.blue .stat-delta.down{color:#ffb4ae}.stat-spark{width:100%;height:40px;margin-top:16px}.data-table{border-collapse:collapse;background:var(--paper);border:1px solid var(--line);width:100%}.data-table thead th{text-align:left;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);background:var(--bone);white-space:nowrap;padding:14px 18px;font-family:JetBrains Mono,monospace;font-size:10px}.data-table tbody td{border-bottom:1px solid var(--border-soft);vertical-align:middle;padding:18px;font-size:14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--bone)}.data-table .num{text-align:right;font-family:JetBrains Mono,monospace;font-size:13px}.data-table .big{letter-spacing:-.01em;text-transform:uppercase;font-family:Archivo Black,sans-serif;font-size:15px;font-style:italic}.data-table td .sub{color:var(--muted);margin-top:2px;font-family:JetBrains Mono,monospace;font-size:10px}.chart-card{background:var(--paper);border:1px solid var(--line);padding:28px}.chart-legend{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);gap:20px;margin-top:20px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.chart-legend span{align-items:center;gap:8px;display:flex}.chart-legend span:before{content:"";background:var(--color,var(--ribbon-blue));width:12px;height:12px}.alert{border-left:4px solid;align-items:center;gap:14px;padding:18px 22px;font-size:14px;display:flex}.alert-info{background:var(--ribbon-blue-light);border-color:var(--ribbon-blue);color:var(--ribbon-blue-deep)}.alert-success{border-color:var(--success);color:#006b3f;background:#e8f9f1}.alert-warning{border-color:var(--warning);color:#8a6500;background:#fff7e0}.alert-danger{border-color:var(--danger);color:#b02020;background:#ffe8e6}.alert-icon{flex-shrink:0;font-family:Archivo Black,sans-serif;font-size:18px;font-style:italic}.alert-content{flex:1}.alert-title{letter-spacing:.2em;text-transform:uppercase;margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.alert-body{font-size:13px;line-height:1.5}.pills{border:1px solid var(--line);background:var(--paper);display:inline-flex}.pill{letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border-right:1px solid var(--line);-webkit-user-select:none;user-select:none;padding:10px 18px;font-family:JetBrains Mono,monospace;font-size:10px;transition:all .2s}.pill:last-child{border-right:none}.pill:hover{background:var(--bone)}.pill.active{background:var(--ink);color:var(--paper)}.page-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px;display:flex}.page-heading h1{text-transform:uppercase;letter-spacing:-.025em;font-family:Archivo Black,sans-serif;font-size:clamp(40px,5vw,64px);font-style:italic;line-height:.92}.page-heading .eyebrow{letter-spacing:.25em;text-transform:uppercase;color:var(--muted);align-items:center;gap:12px;margin-bottom:12px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.page-heading .eyebrow:before{content:"";background:var(--ink);width:32px;height:1px}.login-shell{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-left{background:var(--ink);color:var(--paper);flex-direction:column;justify-content:space-between;padding:64px 48px;display:flex;position:relative;overflow:hidden}.login-left:before{content:"";aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#0047ff33,#0000 60%);width:80%;position:absolute;top:30%;right:-20%}.login-brand{text-transform:uppercase;letter-spacing:-.01em;z-index:1;font-family:Archivo Black,sans-serif;font-size:18px;font-style:italic;line-height:.95;position:relative}.login-brand .bar{background:var(--ribbon-blue);width:120px;height:4px;margin-top:5px;display:block;transform:skew(-12deg)}.login-title{text-transform:uppercase;letter-spacing:-.035em;z-index:1;font-family:Archivo Black,sans-serif;font-size:clamp(56px,9vw,128px);font-style:italic;line-height:.85;position:relative}.login-title .hl{display:inline-block;position:relative}.login-title .hl:after{content:"";background:var(--ribbon-blue);z-index:-1;height:14px;position:absolute;bottom:10px;left:-4px;right:-4px;transform:skew(-12deg)}.login-meta{letter-spacing:.2em;text-transform:uppercase;color:#ffffff80;z-index:1;font-family:JetBrains Mono,monospace;font-size:11px;position:relative}.login-right{background:var(--paper);flex-direction:column;justify-content:center;max-width:560px;padding:64px 48px;display:flex}.login-right h2{text-transform:uppercase;letter-spacing:-.025em;margin-bottom:16px;font-family:Archivo Black,sans-serif;font-size:clamp(32px,4vw,48px);font-style:italic;line-height:.95}.login-right p{color:var(--muted);max-width:42ch;margin-bottom:40px;line-height:1.6}.login-right .btn-blue{padding:20px 32px;font-size:13px}.login-right .small{letter-spacing:.15em;text-transform:uppercase;color:var(--mute-2);margin-top:40px;font-family:JetBrains Mono,monospace;font-size:10px}@media (width<=1023px){.app-shell{grid-template-columns:1fr;grid-template-areas:"topbar""main"}.app-sidebar{display:none}.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.app-main{padding:20px}.app-topbar{padding:0 16px}.user-info{display:none}.login-shell{grid-template-columns:1fr}.login-left{min-height:40vh;padding:32px 24px}.login-right{padding:40px 24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
