:root{--bg:#f4f5f7;--surface:#fff;--border:#e2e5ea;--border-strong:#d2d6dd;--text:#1b2430;--text-dim:#5b6572;--text-faint:#8a94a2;--accent:#1f9d55;--accent-hover:#198047;--accent-soft:#e7f6ee;--danger:#d64550;--danger-soft:#fbeaec;--warn:#b8860b;--radius:8px;--radius-sm:6px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font);font-size:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--accent-hover);text-decoration:none}a:hover{text-decoration:underline}.header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;height:56px;gap:24px}.header,.header .brand{display:flex;align-items:center}.header .brand{font-weight:700;font-size:16px;gap:9px}.header .brand .dot{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#35b268,#146c3a)}.header nav{display:flex;gap:4px}.header nav a{color:var(--text-dim);padding:7px 12px;border-radius:var(--radius-sm);font-weight:500}.header nav a:hover{background:var(--bg);text-decoration:none;color:var(--text)}.header .spacer{flex:1 1}.container{max-width:1080px;margin:0 auto;padding:28px 24px}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-title h1{font-size:20px;margin:0}.card{border:1px solid var(--border);border-radius:var(--radius);padding:20px}.btn,.card{background:var(--surface)}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;font-weight:500;font-size:14px;font-family:inherit}.btn:hover{background:var(--bg)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{border-color:#ecc3c7;color:var(--danger);background:#fff}.btn.danger:hover{background:var(--danger-soft)}.btn.sm{padding:5px 10px}.btn.sm,label{font-size:13px}label{display:block;color:var(--text-dim);margin-bottom:5px;font-weight:500}input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;color:var(--text);background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.form-group{margin-bottom:16px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row input{width:auto}.checkbox-row label{margin:0}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.3px;color:var(--text-faint);padding:10px 12px;font-weight:600}td,th{border-bottom:1px solid var(--border)}td{padding:11px 12px}tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600}.badge.green{background:var(--accent-soft);color:var(--accent-hover)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.gray{background:#eef0f3;color:var(--text-dim)}.badge.amber{background:#fbf2db;color:var(--warn)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.muted{color:var(--text-dim)}.help{font-size:12.5px;margin-top:6px}.empty,.help{color:var(--text-faint)}.empty{text-align:center;padding:40px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:14px;gap:14px;margin-bottom:22px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat .num{font-size:24px;font-weight:700}.stat .lbl{font-size:12.5px;color:var(--text-dim);margin-top:2px}.alert{background:var(--danger-soft);border:1px solid #ecc3c7;color:var(--danger);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13.5px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-box{width:100%;max-width:360px}.login-box .brand{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:18px;margin-bottom:20px}.login-box .brand .dot{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#35b268,#146c3a)}