@font-face{font-family:Inter Variable;src:url(/fonts/inter-latin-wght-normal.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-600-normal.woff2) format("woff2");font-style:normal;font-weight:600;font-display:swap}:root{font-family:Inter Variable,Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-synthesis:none;color:#293530;background:#f4f8f6;--accent:#10b981;--accent-2:#0ea5a5;--accent-hover:#0e9f70;--accent-pressed:#0b7d58;--accent-grad:linear-gradient(135deg,#10b981 0%,#0ea5a5 100%);--action-grad:linear-gradient(135deg,#0b7d58 0%,#0a7a8f 100%);--accent-pale:#dff3ef;--accent-surface:#eaf7f4;--ink:#0e1714;--text:#293530;--muted:#647069;--faint:#9ba69f;--disabled:#b0bab3;--bg:#f4f8f6;--surface:#fff;--surface-2:#fafcfb;--hover:#ebf2ee;--border:#e4eae6;--border-strong:#d1dad4;--border-control:#cbd5ce;--warn:#d98a0b;--warn-pale:#fbf1de;--warn-text:#8a6410;--danger:#e5484d;--danger-pale:#fff0f0;--info:#0ba5c0;--info-pale:#e6f7fa;--info-text:#0a7a8f;--r-6:6px;--r-8:8px;--r-10:10px;--r-12:12px;--shadow-sm:0 1px 2px rgba(16,17,23,.06);--shadow-md:0 12px 30px rgba(16,17,23,.1);--focus-ring:0 0 0 3px rgba(16,185,129,.18);--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus-ring)}a{color:var(--accent-pressed);text-underline-offset:2px}code,pre,.mono{font-family:var(--mono)}.app-shell{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr);background:var(--bg)}.sidebar{position:sticky;top:0;z-index:20;height:100vh;padding:18px 14px;display:flex;flex-direction:column;color:var(--text);background:var(--surface);border-right:1px solid var(--border)}.brand{min-height:32px;padding:2px 6px 0;display:flex;align-items:center;gap:10px}.brand-mark{width:28px;height:28px;flex:none;display:grid;place-items:center;color:#fff;background:var(--accent-grad);border-radius:var(--r-8);box-shadow:0 4px 12px #10b98147}.brand-word{color:var(--ink);font-size:17px;line-height:1;font-weight:800;letter-spacing:-.02em}.brand-d{color:var(--accent);background:var(--accent-grad);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand small{margin-left:auto;color:var(--faint);font-size:8px;font-weight:750;letter-spacing:.13em}.brand.large{padding:0;min-height:42px;justify-content:center}.brand.large .brand-mark{width:42px;height:42px;border-radius:12px}.brand.large .brand-word{font-size:25px}.brand.large small{margin-left:1px}.sidebar-label{margin-top:28px;padding:0 10px 8px;color:var(--disabled);font-size:9.5px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav button{height:38px;padding:0 12px;display:flex;align-items:center;gap:11px;border:0;border-radius:var(--r-8);color:#37423c;background:transparent;font-size:13px;font-weight:600;text-align:left;transition:color .15s,background .15s}.sidebar nav button:hover{background:var(--hover)}.sidebar nav button.active{color:var(--accent-pressed);background:var(--accent-surface)}.nav-icon{width:18px;display:inline-flex;flex:none;color:var(--muted)}.sidebar nav button.active .nav-icon{color:var(--accent-pressed)}.sidebar-foot{margin-top:auto;padding:14px 8px 0;border-top:1px solid var(--border)}.local-badge{width:fit-content;margin-bottom:15px;padding:5px 9px;display:flex;align-items:center;gap:7px;color:var(--warn-text);background:var(--warn-pale);border-radius:999px;font-size:9px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.local-badge i{width:6px;height:6px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 3px #d98a0b21}.account{min-width:0;display:flex;align-items:center;gap:10px}.account .avatar{width:34px;height:34px;display:grid;place-items:center;flex:none;color:var(--accent-pressed);background:var(--accent-surface);border:1px solid #b9e0d3;border-radius:50%;font-weight:750}.account div:last-child{min-width:0;display:grid}.account strong{overflow:hidden;color:var(--ink);font-size:12px;white-space:nowrap;text-overflow:ellipsis}.account span{color:var(--faint);font-size:10px}.logout{margin:10px 0 0 44px;padding:0;border:0;color:var(--muted);background:transparent;font-size:11px}.logout:hover{color:var(--danger)}main{min-width:0}.page{width:min(100%,1440px);margin:0 auto;padding:48px 50px 72px}.page-header{margin-bottom:30px;display:flex;align-items:flex-end;justify-content:space-between;gap:28px}.eyebrow{margin-bottom:8px;color:var(--accent-pressed);font-size:9.5px;line-height:1;font-weight:750;letter-spacing:.1em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:7px;color:var(--ink);font-size:30px;line-height:1.18;font-weight:780;letter-spacing:-.025em}h2,h3{color:var(--ink)}.page-header p{margin:0;color:var(--muted);font-size:13px}.primary,.secondary,.ghost{min-height:38px;padding:0 15px;border-radius:var(--r-8);font-size:12px;font-weight:700}.primary{border:0;color:#fff;background:var(--action-grad);box-shadow:0 5px 14px #0b7d583d}.primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 6px 18px #0b7d584d}.secondary{border:1px solid var(--border-strong);color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.secondary:hover:not(:disabled){background:var(--hover)}.ghost{border:1px solid transparent;color:var(--muted);background:transparent}.ghost:hover:not(:disabled){color:var(--ink);background:var(--hover)}.full{width:100%}.small{min-height:32px;padding:0 11px}.metrics{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:12px}.metric{min-height:138px;padding:19px;display:grid;border:1px solid var(--border);border-radius:var(--r-10);color:var(--ink);background:var(--surface);text-align:left;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .15s}.metric:hover{transform:translateY(-1px);border-color:var(--border-strong);box-shadow:0 8px 22px #10111712}.metric span{color:var(--muted);font-size:11px;font-weight:650}.metric strong{align-self:end;font-size:34px;font-weight:760;letter-spacing:-.035em}.metric small{color:var(--faint);font-size:10px}.metric.green{border-top:3px solid var(--accent)}.metric.blue{border-top:3px solid var(--info)}.metric.amber{border-top:3px solid var(--warn)}.card{border:1px solid var(--border);border-radius:var(--r-10);background:var(--surface);box-shadow:var(--shadow-sm)}.welcome{margin-top:18px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:25px;background:linear-gradient(120deg,var(--surface),var(--accent-surface));border-color:#cce8df}.welcome h2{margin-bottom:6px;font-size:19px;font-weight:730;letter-spacing:-.01em}.welcome p{margin:0;color:var(--muted);font-size:12px}.notice{margin-bottom:18px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:var(--r-8);font-size:12px}.notice.error{color:#a52d32;background:var(--danger-pale);border:1px solid #f3cfd1}.icon-button{width:32px;height:32px;padding:0;display:inline-grid;place-items:center;flex:none;border:0;border-radius:var(--r-6);color:inherit;background:transparent}.icon-button:hover{background:#0e17140f}.loading{min-height:180px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:12px}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{min-height:250px;display:grid;place-content:center;text-align:center;color:var(--muted);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--r-10)}.empty-mark{width:46px;height:46px;margin:0 auto;display:grid;place-items:center;color:var(--accent);background:var(--accent-surface);border-radius:50%}.empty p{margin:10px 0 0;font-size:12px}.table-card{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-10);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;color:var(--text);font-size:12px}th{color:var(--faint);background:var(--surface-2);font-size:9px;font-weight:750;letter-spacing:.08em;text-align:left;text-transform:uppercase}th,td{padding:14px 16px;border-bottom:1px solid var(--border);white-space:nowrap}tbody tr:hover{background:#fbfdfc}tr:last-child td{border-bottom:0}td strong{color:var(--ink)}.license-grid,.model-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px}.license-card,.model-card{padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-10);box-shadow:var(--shadow-sm)}.license-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.kind{color:var(--accent-pressed);font-size:9px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.license-card h3,.model-card h3{margin:5px 0 0;font-size:16px;font-weight:720}.model-card>p{min-height:35px;margin:16px 0;color:var(--muted);font-size:12px;line-height:1.45}.pill{display:inline-block;padding:4px 9px;border-radius:999px;color:var(--muted);background:var(--hover);font-size:9px;font-weight:750;white-space:nowrap}.pill.active,.pill.published{color:var(--accent-pressed);background:var(--accent-surface)}.pill.suspended{color:var(--warn-text);background:var(--warn-pale)}.pill.revoked,.pill.expired,.pill.withdrawn{color:#a52d32;background:var(--danger-pale)}.pill.pending,.pill.draft{color:var(--info-text);background:var(--info-pale)}dl{margin:20px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}dl div{padding-left:10px;border-left:1px solid var(--border)}dt{margin-bottom:4px;color:var(--faint);font-size:9px}dd{margin:0;color:var(--ink);font-size:11px;font-weight:650}.card-actions{padding-top:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border)}.card-actions button,.table-action{padding:5px 2px;border:0;color:var(--accent-pressed);background:transparent;font-size:10px;font-weight:650}.card-actions button:not(:last-child):after{content:"·";margin-left:10px;color:var(--border-strong)}.card-actions .danger-text,.danger-text{color:var(--danger)}.center-screen,.login-screen{min-height:100vh;padding:25px;display:grid;place-items:center;background:radial-gradient(circle at 50% 10%,rgba(16,185,129,.11),transparent 34%),var(--bg)}.login-screen:before{content:"";position:fixed;inset:0 0 auto;height:4px;background:var(--accent-grad)}.auth-card{width:min(430px,100%);padding:34px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-12);box-shadow:var(--shadow-md)}.auth-intro{margin:34px 0 25px;text-align:center}.auth-intro h1{font-size:25px}.auth-intro p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.local-banner{margin-bottom:2px;padding:11px 13px;display:grid;color:var(--warn-text);background:var(--warn-pale);border-radius:var(--r-8);font-size:11px}.local-banner span{margin-top:2px;color:#9b772e;font-size:10px}form{display:grid;gap:16px}label{display:grid;gap:7px;color:var(--text);font-size:11px;font-weight:650}label span{color:var(--faint);font-weight:450}input,select,textarea{width:100%;padding:10px 11px;outline:none;color:var(--ink);background:var(--surface);border:1px solid var(--border-control);border-radius:var(--r-6);font-size:12px;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:#aebbb3}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--faint)}fieldset{padding:14px;border:1px solid var(--border);border-radius:var(--r-8)}legend{padding:0 5px;color:var(--muted);font-size:10px;font-weight:700}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:7px}.segmented label{position:relative}.segmented input{position:absolute;opacity:0}.segmented span{padding:9px;border:1px solid var(--border);border-radius:var(--r-6);color:var(--muted);background:var(--surface);font-weight:600;text-align:center;cursor:pointer}.segmented input:focus-visible+span{box-shadow:var(--focus-ring)}.segmented input:checked+span{color:var(--accent-pressed);background:var(--accent-surface);border-color:#b9e0d3}.form-actions{margin-top:7px;display:flex;justify-content:flex-end;gap:8px}.form-help{margin:-5px 0 0;color:var(--faint);font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.file-row{position:relative;padding:11px 0;display:grid;grid-template-columns:1fr 1.4fr 1.4fr .7fr;gap:8px;border-bottom:1px solid var(--border)}.file-row input{padding:8px;font-size:10px}.remove-file{position:absolute;top:-6px;right:-8px;color:var(--danger)}.modal-backdrop{position:fixed;z-index:50;inset:0;padding:25px;overflow-y:auto;display:grid;place-items:center;background:#0e17147a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(520px,100%);max-height:calc(100vh - 50px);padding:24px;overflow-y:auto;background:var(--surface);border:1px solid rgba(255,255,255,.45);border-radius:var(--r-12);box-shadow:0 24px 70px #0e171440}.modal.wide{width:min(900px,100%)}.modal-head{margin-bottom:22px;display:flex;align-items:flex-start;justify-content:space-between}.modal-head h2{margin:0;font-size:20px;font-weight:740;letter-spacing:-.015em}.modal-head .icon-button{color:var(--muted)}.one-time{text-align:center}.warning-icon{width:42px;height:42px;margin:0 auto 14px;display:grid;place-items:center;color:var(--warn-text);background:var(--warn-pale);border-radius:50%;font-size:19px;font-weight:750}.one-time p{color:var(--muted);font-size:12px;line-height:1.6}.code-box{margin:19px 0 5px;padding:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-8)}.code-box code{color:var(--ink);font-size:13px;font-weight:600;text-align:left;word-break:break-all}.timeline{margin-left:9px;border-left:1px solid var(--border-strong)}.timeline article{position:relative;padding:0 0 20px 25px}.timeline-dot{position:absolute;top:7px;left:-5px;width:9px;height:9px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px var(--bg)}.audit-main{padding:15px 17px;display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-8);box-shadow:var(--shadow-sm);font-size:11px}.audit-main>div{display:grid}.audit-main span,.audit-main time{color:var(--muted)}.audit-main span{font-size:10px}.audit-main>code{color:var(--faint);font-size:9px}.audit-main details{grid-column:1/-1;color:var(--muted)}.audit-main pre{overflow-x:auto;padding:10px;color:var(--text);background:var(--surface-2);border-radius:var(--r-6);font-size:9px}.mobile-menu{position:fixed;z-index:30;top:12px;left:12px;width:40px;height:40px;padding:0;display:none;place-items:center;border:0;border-radius:var(--r-8);color:#fff;background:var(--action-grad);box-shadow:0 5px 14px #0b7d5842}@media(max-width:1120px){.metrics{grid-template-columns:repeat(3,1fr)}.file-row{grid-template-columns:1fr 1fr}}@media(max-width:820px){.app-shell{display:block}.mobile-menu{display:grid}.sidebar{position:fixed;width:230px;transform:translate(-100%);transition:transform .2s ease;box-shadow:12px 0 34px #0e171429}.sidebar.open{transform:translate(0)}.page{padding:72px 20px 52px}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:26px}.page-header .primary{width:100%}.metrics{grid-template-columns:repeat(2,1fr)}.license-grid,.model-grid{grid-template-columns:1fr}}@media(max-width:540px){h1{font-size:26px}.auth-card{padding:26px 21px}.metrics{grid-template-columns:1fr}.metric{min-height:120px}.welcome{align-items:flex-start;flex-direction:column}.form-grid,.file-row,.segmented{grid-template-columns:1fr}.modal-backdrop{padding:10px}.modal{max-height:calc(100vh - 20px);padding:20px}.code-box{align-items:stretch;flex-direction:column}.audit-main{grid-template-columns:1fr}.audit-main time{grid-row:2}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
