@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Source+Serif+4:opsz,wght@8..60,600;8..60,700&display=swap";:root{--bg:#f0f3f7;--bg-elevated:#fff;--ink:#15202b;--muted:#5b6b7c;--line:#e2e8f0;--brand:#0b3d5c;--brand-2:#1a6b8a;--accent:#c45c26;--ok:#1f7a4d;--warn:#9a6b00;--error:#a11d2e;--sidebar:#0b3d5c;--sidebar-ink:#e8eef3;--radius:8px;--shadow:0 1px 2px #15202b0a, 0 8px 24px #15202b0f;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(180deg, #e8eef4 0%, var(--bg) 28%), var(--bg);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{color:var(--sidebar-ink);background:linear-gradient(185deg,#0c4568 0%,#082a3d 100%);border-right:1px solid #ffffff0f;flex-direction:column;gap:1.75rem;padding:1.5rem 1rem 1.25rem;display:flex}.brand{border-bottom:1px solid #ffffff1a;flex-direction:column;gap:.2rem;padding:.25rem .85rem 1rem;display:flex}.brand strong{letter-spacing:-.02em;color:#fff;font-family:"Source Serif 4",Georgia,serif;font-size:1.35rem;font-weight:700;display:block}.brand small{color:#e8eef3b8;letter-spacing:.01em;font-size:.8rem}.nav{flex-direction:column;gap:.2rem;padding:0 .25rem;display:flex}.nav a{color:#e8eef3d1;border-left:3px solid #0000;border-radius:6px;padding:.65rem .85rem;font-size:.94rem;font-weight:500}.nav a:hover{color:#fff;background:#ffffff12}.nav a.active{color:#fff;background:#ffffff1f;border-left-color:#7eb8d4}.sidebar-footer{border-top:1px solid #ffffff1a;gap:.65rem;margin-top:auto;padding-top:1rem;display:grid}.user-chip{background:#0000002e;border-radius:6px;padding:.7rem .85rem}.user-chip span{word-break:break-all;font-size:.88rem;font-weight:600;display:block}.user-chip small{color:#e8eef3a6;font-size:.78rem}.content{padding:2rem 2.25rem 2.75rem}.page{max-width:1080px}.page-header{border-bottom:1px solid var(--line);margin-bottom:1.5rem;padding-bottom:1rem}.page-header.row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page-header h1{letter-spacing:-.02em;color:var(--brand);margin:.1rem 0 .4rem;font-family:"Source Serif 4",Georgia,serif;font-size:1.75rem;font-weight:700}.page-header p{color:var(--muted);max-width:42rem;margin:0;font-size:.95rem}.back{color:var(--brand-2);font-size:.9rem}.stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;margin:0 0 1.5rem;display:grid}.stat{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.15rem 1.25rem}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.stat strong{color:var(--brand);margin-top:.45rem;font-family:"Source Serif 4",Georgia,serif;font-size:1.65rem;font-weight:700;display:block}.actions-row{flex-wrap:wrap;gap:.75rem;display:flex}.btn{border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);cursor:pointer;border-radius:6px;padding:.55rem 1rem;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s}.btn:hover{background:#f8fafc;border-color:#b7c4d2}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:#0e4d73;border-color:#0e4d73}.btn.ghost{color:inherit;opacity:.9;background:0 0;border-color:#0000;font-size:.88rem}.btn.ghost:hover{opacity:1;background:#ffffff14}.btn.sm{padding:.35rem .6rem;font-size:.85rem}.btn.lg{padding:.85rem 1.3rem;font-size:1rem}.btn:disabled{opacity:.6;cursor:not-allowed}.panel{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.25rem 1.35rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem;display:grid}.form-grid label{color:var(--muted);gap:.35rem;font-size:.88rem;display:grid}.form-grid input,.form-grid select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:.55rem .7rem}.form-grid .check{align-items:center;gap:.5rem;margin-top:1.4rem;display:flex}.form-actions{grid-column:1/-1;gap:.5rem;display:flex}.table-wrap{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.75rem .9rem;font-size:.92rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:#f7f9fb;font-size:.8rem;font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.row-actions{justify-content:flex-end;gap:.25rem;display:flex}.badge{background:#e8eef3;border-radius:999px;padding:.15rem .5rem;font-size:.75rem;display:inline-block}.badge.ok{color:var(--ok);background:#e4f5eb}.badge.warn{color:var(--warn);background:#fff3d6}.alert{border:1px solid #0000;border-radius:8px;margin-bottom:1rem;padding:.75rem .9rem}.alert.error{color:var(--error);background:#fde8eb;border-color:#f2c2c9}.alert.ok{color:var(--ok);background:#e4f5eb;border-color:#bfe3cd}.alert.warn{color:var(--warn);background:#fff3d6;border-color:#f0d59a}.tabs{gap:.35rem;margin-bottom:1rem;display:flex}.tabs button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;padding:.4rem .9rem}.tabs button.active{background:var(--brand);border-color:var(--brand);color:#fff}.cert-upload h3{margin:0 0 .35rem;font-family:"Source Serif 4",Georgia,serif}.cert-upload input[type=file]{padding:.45rem 0}.field-hint{color:var(--muted);font-size:.78rem}.password-field{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:stretch;width:100%;min-width:0;display:flex;overflow:hidden}.password-field:focus-within{border-color:#8aa4b8;box-shadow:0 0 0 3px #1a6b8a1f}.password-field .password-input,.form-grid .password-field .password-input{width:auto;min-width:0;box-shadow:none;color:var(--ink);background:0 0;border-radius:0;flex:auto;padding:.55rem .7rem;overflow-x:auto;border:0!important}.password-field.is-visible .password-input{letter-spacing:0;-webkit-text-security:none;text-security:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.password-eye{border:0;border-left:1px solid var(--line);width:2.5rem;height:auto;min-height:2.5rem;color:var(--muted);cursor:pointer;background:#f8fafc;border-radius:0;flex:0 0 2.5rem;place-items:center;padding:0;display:inline-grid;position:static;transform:none}.password-eye:hover,.password-eye[aria-pressed=true]{color:var(--brand);background:#0b3d5c0f}.muted{color:var(--muted)}.center-screen{place-content:center;justify-items:center;gap:.75rem;min-height:100vh;display:grid}.spinner{border:3px solid #c9d5e1;border-top-color:var(--brand);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{grid-template-columns:minmax(0,1fr) minmax(280px,42vw);min-height:100vh;display:grid}.login-panel{flex-direction:column;justify-content:center;width:100%;max-width:480px;margin:0 auto 0 0;padding:3rem clamp(1.75rem,5vw,4.5rem);display:flex}.login-panel .eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--brand-2);margin:0 0 .85rem;font-size:.72rem;font-weight:600}.login-panel h1{color:var(--brand);letter-spacing:-.02em;margin:0;font-family:"Source Serif 4",Georgia,serif;font-size:clamp(2.1rem,4vw,2.75rem);font-weight:700}.lede{color:var(--muted);max-width:28rem;margin:.85rem 0 1.75rem;font-size:1rem;line-height:1.55}.login-visual{background:linear-gradient(155deg,#0b3d5c 0%,#134f6e 48%,#1a6b8a 100%);position:relative}.login-visual:after{content:"";pointer-events:none;background:linear-gradient(#0000 40%,#082a3d59),repeating-linear-gradient(-18deg,#0000,#0000 11px,#ffffff08 11px 12px);position:absolute;inset:0}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{z-index:10;position:sticky;top:0}.nav{flex-flow:wrap}.stat-row,.form-grid,.login-page{grid-template-columns:1fr}.login-visual{min-height:180px}.content{padding:1.1rem}}
