:root{--bg:#f4f1ea;--panel:#fff;--text:#1a202c;--muted:#718096;--accent:#8b2332;--accent-dark:#5c1620;--accent-blue:#1e3a5f;--border:#e2e0d8;--radius:8px;--shadow:0 2px 8px #00000014}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1,h2,h3{margin:0 0 .5rem}button{cursor:pointer;border-radius:var(--radius);border:none;padding:.5rem 1rem;font-size:.95rem;transition:background .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-secondary{color:var(--text);background:#e2e0d8}.btn-secondary:hover{background:#d4d2ca}.btn-danger{color:#fff;background:#c53030}.btn-danger:hover{background:#9b2c2c}input,textarea,select{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:100%;padding:.5rem}textarea{min-height:120px;font-family:monospace}table{border-collapse:collapse;background:var(--panel);width:100%;box-shadow:var(--shadow);border-radius:var(--radius);overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem;font-size:.9rem}th{background:#eceae4;font-weight:600}.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.25rem}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.layout{min-height:100vh;display:flex}.sidebar{background:var(--accent-blue);color:#fff;flex-direction:column;width:240px;padding:1rem;display:flex}.sidebar h2{border-bottom:1px solid #fff3;margin-bottom:1.25rem;padding-bottom:.5rem;font-size:1.1rem}.sidebar nav a{color:#ffffffe6;border-radius:var(--radius);margin-bottom:.25rem;padding:.5rem .75rem;text-decoration:none;display:block}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:#ffffff1f}.content{flex:1;padding:1.5rem;overflow:auto}.login-box{background:var(--panel);border-radius:var(--radius);max-width:360px;box-shadow:var(--shadow);margin:10vh auto;padding:2rem}.error{color:#c53030;margin-top:.5rem}.success{color:#276749;margin-top:.5rem}.form-row{gap:1rem;margin-bottom:1rem;display:flex}.form-row>*{flex:1}.badge{text-transform:uppercase;border-radius:9999px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-cactus{color:#fff;background:#c05621}.badge-grapefruit{color:#fff;background:#2b6cb0}
