:root{--navy:#0f1f4b;--navy-2:#1b3a8c;--indigo:#4338ca;--bg:#eef2fb;--surface:#fff;--line:#e2e8f4;--text:#0f172a;--muted:#64748b;--ok:#059669;--warn:#d97706;--bad:#dc2626;--sidebar:260px;--shadow:0 12px 40px #0f1f4b14;--radius:16px;--font:"DM Sans", "Noto Sans Ethiopic", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.admin-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar);color:#fff;background:linear-gradient(#0b1738,#1b3a8c);flex-direction:column;padding:24px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;padding:4px 8px 20px;display:flex}.brand-mark{color:#0f1f4b;background:#fbbf24;border-radius:12px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.brand small{opacity:.7;font-size:11px;display:block}.side-nav{flex-direction:column;flex:1;gap:4px;display:flex}.side-link{color:#dbe4ff;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.side-link.active,.side-link:hover{color:#fff;background:#ffffff1f}.side-foot{border-top:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:8px;padding-top:16px;display:flex}.side-foot button{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:10px;padding:8px 12px}.admin-main{margin-left:var(--sidebar);flex:1;min-width:0;padding:28px 32px 48px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head h1{letter-spacing:-.04em;font-size:28px}.page-head p{color:var(--muted);margin-top:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.stat span{color:var(--muted);font-size:13px}.stat b{letter-spacing:-.04em;margin-top:8px;font-size:28px;display:block}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.search,select,input,textarea{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:12px;padding:10px 12px}.search{flex:1;min-width:240px}textarea{resize:vertical;width:100%;min-height:80px}.btn{cursor:pointer;border:0;border-radius:12px;padding:10px 14px;font-weight:700}.btn-primary{background:var(--navy-2);color:#fff}.btn-ghost{color:var(--navy);background:#e8eefc}.btn-danger{color:#b91c1c;background:#fee2e2}.btn:disabled{opacity:.6;cursor:not-allowed}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:12px 10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.badge{border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.badge.ok{color:#047857;background:#d1fae5}.badge.warn{color:#b45309;background:#fef3c7}.badge.bad{color:#b91c1c;background:#fee2e2}.badge.idle{color:#475569;background:#e2e8f0}.grid-2{grid-template-columns:1.2fr .8fr;gap:16px;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid .full{grid-column:1/-1}.muted{color:var(--muted)}.error{color:var(--bad);font-size:13px}.ok-msg{color:var(--ok);font-size:13px}.login-card{background:#fff;border-radius:24px;width:min(420px,92vw);padding:32px;box-shadow:0 30px 80px #0000002e}.login-card h1{margin:8px 0 6px}.login-card p{color:var(--muted);margin-bottom:22px}.field{gap:6px;margin-bottom:14px;display:grid}.field label{font-size:13px;font-weight:700}.login-card .btn{width:100%}.modal-back{z-index:20;background:#0f172a73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;width:min(720px,100%);max-height:90vh;padding:22px;overflow:auto}.sign-preview{background:linear-gradient(#f8faff,#eef2ff);border-radius:16px;place-items:center;margin-bottom:12px;padding:12px;display:grid}.sign-preview svg{width:96px;height:96px}@media (width<=1100px){.stats,.grid-2,.form-grid{grid-template-columns:1fr 1fr}}@media (width<=800px){.sidebar{display:none}.admin-main{margin-left:0;padding:16px}.stats,.grid-2,.form-grid{grid-template-columns:1fr}}
