:root{--bg: #f8fafc;--card: #ffffff;--border: #e2e8f0;--ink: #0f172a;--text: #1e293b;--muted: #475569;--quiet: #64748b;--blue: #2563eb;--blue-dark: #1d4ed8;--blue-soft: #eff6ff;--gold-ink: #8a5a12;--gold-bg: #fdf6e7;--gold-border: #f3e1b8;--red-ink: #b91c1c;--red-bg: #fef2f2;--red-border: #fecaca;--green-ink: #15803d;--green-bg: #f0fdf4;--green-border: #bbf7d0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:400 14px/1.5 Inter,system-ui,sans-serif}h1,h2{font-family:Poppins,system-ui,sans-serif;color:var(--ink);margin:0}a{color:var(--blue-dark)}button,input,select{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:10px;border:0;font-weight:600;cursor:pointer}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-dark)}.btn-line{background:#fff;color:var(--text);border:1px solid #cbd5e1}.btn-line:hover:not(:disabled){background:var(--bg)}.btn-ghost{background:transparent;color:#334155}.btn-ghost:hover:not(:disabled){background:#f1f5f9}.field{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}.field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #dbeafe}.field input,.field select{flex:1;border:0;outline:none;background:transparent;color:var(--ink);min-width:0}.badge{display:inline-flex;align-self:flex-start;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink);background:var(--gold-bg);border:1px solid var(--gold-border);padding:3px 8px;border-radius:999px}.notice{padding:10px 14px;border-radius:10px;font-size:13px;border:1px solid}.notice-error{background:var(--red-bg);border-color:var(--red-border);color:var(--red-ink)}.notice-ok{background:var(--green-bg);border-color:var(--green-border);color:var(--green-ink)}.signin{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:48px 16px}.signin-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:0 24px 60px -24px #0f172a2e;padding:40px 36px;display:flex;flex-direction:column;gap:22px}.signin-head{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.signin-head .badge{align-self:center}.shell{display:flex;flex-wrap:wrap;min-height:100vh}.sidebar{flex:1 1 232px;max-width:264px;background:#fff;border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:22px}.sidebar-brand{display:flex;flex-direction:column;gap:8px;padding:0 8px}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--quiet);padding:0 12px 6px}.nav-link{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border-radius:10px;color:#334155;text-decoration:none;font-weight:500}.nav-link:hover{background:#f1f5f9;color:var(--ink)}.nav-link[aria-current=page]{background:var(--blue-soft);color:var(--blue-dark)}.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px}.avatar{width:32px;height:32px;border-radius:999px;background:#1e293b;color:#fff;display:flex;align-items:center;justify-content:center;font:600 12px Poppins,system-ui,sans-serif;flex:none}.me-text{display:flex;flex-direction:column;min-width:0;flex:1}.me-text span:last-child{font-size:12px;color:var(--quiet);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main{flex:999 1 640px;min-width:0;padding:28px 36px 48px;display:flex;flex-direction:column;gap:24px;max-width:1240px}@media(max-width:640px){main{padding:20px 16px 40px}.sidebar{max-width:none}}.page-head{display:flex;flex-direction:column;gap:4px}.page-head h1{font-size:30px;line-height:1.2;font-weight:600}.page-head p{margin:0;color:var(--muted)}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:22px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:48px 20px;border:1px dashed #cbd5e1;border-radius:16px;background:#fff;color:var(--muted)}.empty strong{color:var(--ink);font:600 16px Poppins,system-ui,sans-serif}table{border-collapse:collapse;width:100%}th{font-size:12px;font-weight:600;color:var(--quiet);text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.table-wrap{overflow-x:auto}.row-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row-form .field{flex:1 1 240px}
