:root{--bg: #0f1419;--panel: #161b22;--border: #30363d;--text: #e6edf3;--muted: #8b949e;--accent: #58a6ff;--ok: #238636;--danger: #da3633;--font: "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh}a{color:var(--accent)}button{font-family:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text);padding:.45rem .75rem}button.primary{background:var(--ok);border-color:var(--ok);color:#fff;font-weight:600}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{background:transparent;color:var(--accent);border-color:transparent}input,select,textarea{font-family:inherit;border-radius:6px;border:1px solid var(--border);background:#0d1117;color:var(--text);padding:.45rem .5rem}label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.app-shell{display:grid;grid-template-columns:200px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:1rem;display:flex;flex-direction:column;gap:.35rem}.sidebar h1{font-size:.95rem;margin:0 0 1rem;color:var(--muted)}.sidebar button{text-align:left;border:none;background:transparent}.sidebar button.active{color:var(--accent);font-weight:600}main{padding:1rem 1.25rem;overflow:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.card h2{margin:0 0 .75rem;font-size:1rem;color:var(--muted)}.row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{border-bottom:1px solid var(--border);padding:.4rem .5rem;text-align:left}th{color:var(--muted)}.msg{color:var(--ok);font-size:.9rem;min-height:1.25rem}.msg.err{color:var(--danger)}.login-page{max-width:400px;margin:4rem auto;padding:1.5rem}.login-page h1{font-size:1.2rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{background:var(--panel);border:1px solid var(--border);border-radius:8px;max-width:520px;width:100%;padding:1rem;max-height:90vh;overflow:auto}.modal.modal-wide{max-width:920px}.dense-table th,.dense-table td{font-size:.72rem;white-space:nowrap;padding:.35rem .45rem}.sidebar{min-height:100vh}
