@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--background:#0e142a;--foreground:#f7f7fb;--card:#1e274a;--card-foreground:#f7f7fb;--popover:#161c38;--popover-foreground:#f7f7fb;--primary:#1a214d;--primary-foreground:#fff;--secondary:#a13032;--secondary-foreground:#fff;--accent:#ff3e00;--accent-foreground:#fff;--muted:#94a0c2;--muted-foreground:#b9c0d8;--border:#ffffff1f;--input:#ffffff1a;--ring:#ff3e00;--success:#3ddc97;--warning:#f6c85f;--danger:#ff5a66;--gradient-adm:linear-gradient(45deg, #a13032 0%, #ff3e00 100%);--font-sans:"Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius:14px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px}.dark{--background:#0e142a;--foreground:#f7f7fb;--card:#1e274a;--card-foreground:#f7f7fb;--popover:#161c38;--popover-foreground:#f7f7fb;--primary:#1a214d;--primary-foreground:#fff;--secondary:#a13032;--secondary-foreground:#fff;--accent:#ff3e00;--accent-foreground:#fff;--muted:#94a0c2;--muted-foreground:#b9c0d8;--border:#ffffff1f;--input:#ffffff1a;--ring:#ff3e00}*{box-sizing:border-box}html{background:var(--background);color:var(--foreground)}body{min-width:320px;min-height:100vh;font-family:var(--font-sans);background:radial-gradient(circle at top right, #ff3e0024, transparent 34%), var(--background);margin:0}button,input,select{font:inherit}button{cursor:pointer}.shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--border);background:linear-gradient(#1a214d 0%,#121936 100%);flex:0 0 248px;width:248px;height:100vh;padding:22px 16px;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:28px;display:flex}.brand-mark{background:var(--gradient-adm);color:#fff;letter-spacing:-1px;border-radius:12px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand-title{font-weight:800;line-height:1.05}.brand-subtitle{color:var(--muted-foreground);margin-top:3px;font-size:12px}.nav-section{color:#f7f7fb70;text-transform:uppercase;letter-spacing:.14em;margin:18px 10px 8px;font-size:11px}.nav-item{color:#f7f7fbad;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:11px;width:100%;min-height:42px;margin:4px 0;padding:0 12px;display:flex;position:relative}.nav-item:hover{color:var(--foreground);background:#ffffff0f}.nav-item.active{color:var(--foreground);background:#ffffff17;border-color:#ffffff14}.nav-item.active:before{content:"";background:var(--gradient-adm);border-radius:999px;width:3px;position:absolute;top:9px;bottom:9px;left:0}.nav-icon{text-align:center;width:18px;color:var(--accent)}.main{flex:1;min-width:0;padding:26px}.header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;display:flex}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:800}h1{letter-spacing:-.03em;margin:4px 0 8px;font-size:28px;line-height:1.15}.lead{color:var(--muted-foreground);max-width:760px;margin:0;line-height:1.5}.card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(#1e274af0,#161c38f0);padding:18px}.card:hover{border-color:#ff3e0047}.btn{border:1px solid var(--border);min-height:42px;color:var(--foreground);background:#ffffff0f;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:700;display:inline-flex}.btn:hover{background:#ffffff1a}.btn-primary{background:var(--gradient-adm);color:#fff;border:none}.btn-danger{color:#ffd4d8;background:#ff5a661f;border-color:#ff5a6652}.btn-small{border-radius:999px;min-height:32px;padding:0 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.input,select{border:1px solid var(--border);min-height:42px;color:var(--foreground);background:#ffffff12;border-radius:12px;outline:none;padding:0 12px}select option{color:var(--foreground);background:#161c38}.input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ff3e0029}.grid{gap:16px;display:grid}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bento{grid-template-columns:1.35fr .85fr;align-items:start}.stat-label{color:var(--muted-foreground);margin-bottom:8px;font-size:13px}.stat-value{font-family:var(--font-mono);letter-spacing:-.04em;font-size:28px;font-weight:800}.stat-reference{color:var(--muted-foreground);letter-spacing:-.03em;margin-left:4px;font-size:16px;font-weight:700}.stat-percent{color:var(--accent);font-family:var(--font-mono);margin-top:4px;font-size:13px;font-weight:800}.stat-sub{color:var(--muted);margin-top:8px;font-size:12px}.user-link{appearance:none;color:inherit;font:inherit;cursor:pointer;text-underline-offset:4px;background:0 0;border:0;padding:0;-webkit-text-decoration:underline #ff3e00bf;text-decoration:underline #ff3e00bf}.user-link:hover{color:var(--accent)}.progress{background:#ffffff14;border-radius:999px;height:9px;margin-top:12px;position:relative;overflow:hidden}.progress:before{content:"";background:linear-gradient(90deg,#ff3e002e,#ff3e000a);width:100%;position:absolute;inset:0}.progress span{height:100%;width:var(--progress-value,0%);background:var(--gradient-adm);border-radius:inherit;display:block;position:relative;box-shadow:0 0 14px #ff3e0047}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tab{border:1px solid var(--border);min-height:38px;color:var(--muted-foreground);background:#ffffff0a;border-radius:999px;padding:0 12px}.tab.active{color:#fff;background:#ff3e0026;border-color:#ff3e0066}.filters{grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;margin:16px 0;display:grid}.filter-field{gap:6px;min-width:0;display:grid}.filter-field span{color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:800}.filter-field select,.filter-field input{width:100%}.dropzone{border-radius:var(--radius);background:#ffffff09;border:1px dashed #ffffff47;padding:18px;transition:all .18s}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:#ff3e0014}.file-input{display:none}.table-wrap{border:1px solid var(--border);border-radius:12px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid #ffffff14;padding:12px 14px;font-size:13px}th{color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.1em;background:#ffffff0a;font-size:11px;position:sticky;top:0}td.mono,th.mono{font-family:var(--font-mono)}.badge{border:1px solid var(--border);min-height:24px;color:var(--muted-foreground);border-radius:999px;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}.badge.hot{color:#ffc7b8;background:#ff3e001f;border-color:#ff3e006b}.badge.ok{color:#b8f6d9;background:#3ddc971a;border-color:#3ddc9752}.empty{text-align:center;min-height:240px;color:var(--muted-foreground);place-items:center;padding:26px;display:grid}.empty-graphic{border:1px solid var(--border);background:repeating-linear-gradient(90deg,#ff3e0014 0 8px,#0000 8px 16px),linear-gradient(#ffffff14,#0000);border-radius:12px;width:82px;height:56px;margin:0 auto 14px}.chart-bars{border-bottom:2px solid #0000;border-image:linear-gradient(45deg,#a13032,#ff3e00) 1;align-items:end;gap:10px;height:220px;padding:18px 8px 0;display:flex}.bar{background:linear-gradient(#ff3e00eb,#a130327a);border-radius:8px 8px 0 0;flex:1;min-width:22px;position:relative}.bar span{font-family:var(--font-mono);color:var(--muted-foreground);font-size:11px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.donut-layout{grid-template-columns:190px 1fr;align-items:center;gap:18px;display:grid}.donut{border-radius:50%;place-items:center;width:180px;height:180px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #ffffff14}.donut:after{content:"";border:1px solid var(--border);background:#1e274a;border-radius:50%;position:absolute;inset:34px}.donut span{z-index:1;font-family:var(--font-mono);color:var(--accent);font-size:26px;font-weight:800;position:relative}.donut-list{gap:10px;display:grid}.donut-row{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.match-block{background:#ffffff09;border:1px solid #ffffff14;border-radius:12px;margin:10px 0;padding:12px}.request-app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.request-app-card{background:#ffffff09;border:1px solid #ffffff14;border-radius:12px;padding:12px}.request-app-card.active{background:#ff3e0012;border-color:#ff3e004d}.app-detail{color:var(--muted-foreground);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;font-size:13px;display:flex}.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi-focus{gap:18px}.kpi-filter-card{grid-template-columns:1.2fr .8fr;align-items:end;gap:18px;display:grid}.kpi-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.month-pills{flex-wrap:wrap;gap:8px;max-height:130px;padding-right:4px;display:flex;overflow:auto}.line-chart{border-bottom:2px solid #0000;border-image:var(--gradient-adm) 1;align-items:end;gap:14px;height:260px;padding:20px 8px 0;display:flex;overflow-x:auto}.line-point{background:var(--gradient-adm);border-radius:10px 10px 0 0;justify-content:center;min-width:72px;display:flex;position:relative;box-shadow:0 0 18px #ff3e002e}.line-point span{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);position:absolute;bottom:-28px}.line-point strong{color:var(--accent);font-size:12px;font-family:var(--font-mono);position:absolute;top:-24px}.library-toolbar{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.library-save-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.library-card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.upload-chip{color:#ffc7b8;cursor:pointer;white-space:nowrap;background:#ff3e001f;border:1px solid #ff3e006b;border-radius:999px;justify-content:center;align-items:center;min-height:34px;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex}.upload-chip:hover,.upload-chip.drag{background:#ff3e0033;border-color:#ff3e00b8}.library-file{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.library-file.pending{background:#ff3e000b;border-bottom-color:#ff3e0047;border-radius:12px;margin:0 -8px;padding:12px 8px}.library-file-main{flex:1;min-width:0}.library-file-main strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.library-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.icon-danger{color:#ffd4d8;background:#ff5a661a;border:1px solid #ff5a6652;border-radius:999px;min-height:32px;padding:0 10px;font-size:12px;font-weight:800}.icon-danger:hover{background:#ff5a662e;border-color:#ff5a6685}.notice{color:#ffd2c4;background:#ff3e0014;border:1px solid #ff3e0059;border-radius:12px;padding:12px 14px;font-size:13px}.modal-backdrop{z-index:20;background:#040814b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border);background:#161c38;border-radius:18px;width:100%;max-width:520px;padding:20px;position:relative}.user-modal{max-width:920px}.user-modal-table{max-height:520px;margin-top:16px;overflow:auto}.modal-close{border:1px solid var(--border);width:34px;height:34px;color:var(--foreground);background:#ffffff0f;border-radius:999px;font-size:22px;line-height:1;position:absolute;top:12px;right:12px}.modal-close:hover{background:#ff3e0029;border-color:#ff3e006b}.footer-note{color:var(--muted);font-size:12px;line-height:1.5}@media (width<=1100px){.kpi-grid,.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bento,.kpi-filter-card{grid-template-columns:1fr}.filters,.kpi-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.shell{display:block}.sidebar{flex-basis:auto;width:100%;height:auto;position:relative}.main{padding:18px}.header{display:block}.kpi-grid,.library-grid,.filters,.kpi-filter-grid{grid-template-columns:1fr}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}}
