@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;1,9..144,300&family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-display:"Fraunces", Georgia, serif;--font-mono:"DM Mono", "Courier New", monospace;--font-body:"DM Sans", system-ui, sans-serif;--bg:#0f1117;--bg-card:#161b27;--bg-hover:#1e2535;--bg-input:#1a2030;--text:#e8eaf0;--text-muted:#8892a4;--text-dim:#4a5568;--border:#2a3348;--accent:#c96a3a;--accent-dim:#c96a3a1f;--accent-hover:#e07840;--green:#48bb78;--green-dim:#48bb781f;--red:#e05252;--red-dim:#e052521f;--blue:#4299e1;--blue-dim:#4299e11f;--amber:#d69e2e;--amber-dim:#d69e2e1f;--radius:6px;--radius-lg:10px;--shadow:0 2px 12px #0006;--transition:.15s ease}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}.app-shell{height:100vh;display:flex;overflow:hidden}.app-topbar{z-index:100;background:var(--bg-card);border-bottom:1px solid var(--border);align-items:center;gap:1rem;height:52px;padding:0 1.25rem;display:flex;position:fixed;top:0;left:0;right:0}.app-topbar-brand{font-family:var(--font-display);color:var(--text);letter-spacing:.02em;font-size:1rem;font-weight:300}.app-topbar-brand span{color:var(--accent);font-style:italic}.app-topbar-user{color:var(--text-muted);align-items:center;gap:.75rem;margin-left:auto;font-size:.8rem;display:flex}.app-sidebar{background:var(--bg-card);border-right:1px solid var(--border);z-index:50;width:180px;padding:1rem 0;position:fixed;top:52px;bottom:0;left:0;overflow-y:auto}.app-content{flex:1;height:calc(100vh - 52px);margin-top:52px;margin-left:180px;padding:1.5rem 2rem;overflow-y:auto}.nav-section{margin-bottom:1.25rem}.nav-section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);padding:0 1rem .4rem;font-size:.65rem;font-weight:500}.nav-link{color:var(--text-muted);transition:all var(--transition);border-left:2px solid #0000;align-items:center;gap:.6rem;padding:.45rem 1rem;font-size:.85rem;text-decoration:none;display:flex}.nav-link:hover{color:var(--text);background:var(--bg-hover)}.nav-link.active{color:var(--accent);background:var(--accent-dim);border-left-color:var(--accent)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1rem;padding:1.25rem}.card-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:1rem;font-size:.7rem;font-weight:500}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.page-title{font-family:var(--font-display);color:var(--text);font-size:1.6rem;font-weight:300}.page-subtitle{color:var(--text-muted);margin-top:.2rem;font-size:.82rem}.btn{border-radius:var(--radius);font-family:var(--font-body);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.85rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-hover);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-input)}.btn-danger{background:var(--red);color:#fff;border-color:var(--red)}.btn-danger:hover:not(:disabled){background:#c94444}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn-sm{padding:.3rem .65rem;font-size:.8rem}.btn-lg{padding:.65rem 1.25rem;font-size:.95rem}.form-group{margin-bottom:.9rem}.form-label{font-size:.75rem;font-weight:500;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:.3rem;display:block}.form-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);font-family:var(--font-body);transition:border-color var(--transition);outline:none;padding:.5rem .75rem;font-size:.875rem}.form-input:focus{border-color:var(--accent)}.form-input.error{border-color:var(--red)}.form-input::placeholder{color:var(--text-dim)}.form-hint{color:var(--text-muted);margin-top:.25rem;font-size:.75rem;display:block}.form-error{color:var(--red);margin-top:.25rem;font-size:.75rem;display:block}select.form-input{cursor:pointer}textarea.form-input{resize:vertical;min-height:80px}.badge{font-size:.7rem;font-weight:500;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;display:inline-flex}.badge-muted{background:var(--bg-hover);color:var(--text-muted)}.badge-green{background:var(--green-dim);color:var(--green)}.badge-red{background:var(--red-dim);color:var(--red)}.badge-blue{background:var(--blue-dim);color:var(--blue)}.badge-amber{background:var(--amber-dim);color:var(--amber)}.badge-accent{background:var(--accent-dim);color:var(--accent)}.alert{border-radius:var(--radius);margin-bottom:.75rem;padding:.65rem .9rem;font-size:.85rem}.alert-error{background:var(--red-dim);color:var(--red);border:1px solid #e052524d}.alert-success{background:var(--green-dim);color:var(--green);border:1px solid #48bb784d}.alert-info{background:var(--blue-dim);color:var(--blue);border:1px solid #4299e14d}.alert-amber{background:var(--amber-dim);color:var(--amber);border:1px solid #d69e2e4d}.table-wrap{border-radius:var(--radius-lg);border:1px solid var(--border);overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--bg-hover);border-bottom:1px solid var(--border);padding:.6rem .85rem;font-size:.65rem;font-weight:500}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.7rem .85rem}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-hover)}.modal-overlay{z-index:200;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow);max-height:90vh;padding:1.5rem;overflow-y:auto}.modal-title{font-family:var(--font-display);margin-bottom:1rem;font-size:1.1rem;font-weight:300}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;margin-top:1.25rem;padding-top:1rem;display:flex}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.spinning{animation:.6s linear infinite spin}.login-page{height:100vh;display:flex}.login-visual{background:var(--bg-card);border-right:1px solid var(--border);flex-direction:column;flex:1;justify-content:flex-end;padding:3rem;display:flex}.login-visual-title{font-family:var(--font-display);color:var(--text);font-size:3rem;font-weight:300;line-height:1.1}.login-visual-title em{color:var(--accent);font-style:italic}.login-visual-sub{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim);margin-top:1rem;font-size:.7rem}.login-form-panel{flex-direction:column;justify-content:center;width:380px;padding:3rem 2.5rem;display:flex}.login-form-title{font-family:var(--font-display);margin-bottom:.25rem;font-size:1.6rem;font-weight:300}.login-form-sub{color:var(--text-muted);margin-bottom:2rem;font-size:.82rem}.text-mono{font-family:var(--font-mono)}.text-muted{color:var(--text-muted)}
