@charset "UTF-8";:root{--bg: #f4f5f7;--panel: #ffffff;--ink: #1f2733;--muted: #6b7480;--border: #e3e6ea;--brand: #1565c0;--brand-dark: #0d47a1;--danger: #c62828;--ok: #2e7d32;--sidebar: #16202e;--sidebar-ink: #c7d0db}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{color:var(--brand);text-decoration:none}h1,h2{margin:0 0 4px}.muted{color:var(--muted)}.center{text-align:center}code{background:#eef1f4;padding:2px 6px;border-radius:4px;font-family:Consolas,monospace}.btn{display:inline-block;border:1px solid transparent;border-radius:6px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;background:#e9edf1;color:var(--ink);line-height:1}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:var(--brand);color:#fff}.btn.danger{background:transparent;color:var(--danger);border-color:var(--border)}.btn.ghost{background:transparent;border-color:var(--border);color:var(--ink)}.btn.sm{padding:5px 10px;font-size:12.5px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 1px 2px #0000000a;overflow:hidden}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:340px;padding:28px;display:flex;flex-direction:column}.login-card h1{font-size:20px}.login-card label{margin:14px 0 4px;font-weight:600;font-size:13px}.login-card .btn{margin-top:20px}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--sidebar);color:var(--sidebar-ink);flex-shrink:0}.sidebar .brand{padding:20px;font-weight:700;font-size:18px;color:#fff;line-height:1.2}.sidebar .brand small{font-weight:400;font-size:12px;color:var(--sidebar-ink)}.sidebar nav{display:flex;flex-direction:column;padding:8px}.sidebar nav a{color:var(--sidebar-ink);padding:11px 14px;border-radius:7px;font-weight:600}.sidebar nav a:hover{background:#ffffff0f}.sidebar nav a.active{background:var(--brand);color:#fff}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:10px;background:var(--panel);border-bottom:1px solid var(--border);padding:10px 20px}.topbar .spacer{flex:1}.topbar .user{font-weight:600;color:var(--muted)}.content{padding:24px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.grid{width:100%;border-collapse:collapse}.grid th,.grid td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.grid th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#fafbfc}.grid tbody tr:hover{background:#fafbfc}.grid td.actions,.grid th.actions{text-align:right;white-space:nowrap}.grid td.actions .btn{margin-left:6px}.form{padding:20px}.form.narrow{max-width:420px}.row{display:flex;gap:16px}.row.wrap{flex-wrap:wrap}.field{display:flex;flex-direction:column;margin-bottom:14px;min-width:180px}.field.grow{flex:1}.field.full{flex-basis:100%}.field.check{justify-content:flex-end}.field label{font-weight:600;font-size:13px;margin-bottom:5px}input,textarea,select{font:inherit;padding:9px 11px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink);width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px #1565c026}input[readonly]{background:#f3f4f6;color:var(--muted)}.field.check label{flex-direction:row;align-items:center;gap:8px}.field.check input{width:auto}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.error,.success{padding:10px 12px;border-radius:6px;margin:10px 0;font-weight:600;font-size:13px}.error{background:#fdecea;color:var(--danger)}.success{background:#e8f5e9;color:var(--ok)}
