:root{
  --primary:#1a56db;
  --primary-dark:#1442a8;
  --success:#0e9f6e;
  --danger:#e02424;
  --info:#0891b2;
  --secondary:#6b7280;
  --bg:#f3f4f6;
  --card-bg:#ffffff;
  --border:#e5e7eb;
  --text:#111827;
  --text-muted:#6b7280;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:14.5px;
}
a{color:var(--primary);text-decoration:none;}
a:hover{text-decoration:underline;}

.topbar{background:var(--card-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;}
.topbar-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:24px;padding:10px 20px;flex-wrap:wrap;}
.brand{font-weight:700;font-size:17px;color:var(--text);}
.brand:hover{text-decoration:none;}
.main-nav{display:flex;gap:4px;flex:1;flex-wrap:wrap;}
.main-nav a{padding:8px 12px;border-radius:6px;color:var(--text-muted);font-weight:500;}
.main-nav a:hover{background:var(--bg);text-decoration:none;}
.main-nav a.active{background:var(--primary);color:#fff;}
.user-box{display:flex;align-items:center;gap:12px;font-size:13px;}
.user-name em{color:var(--text-muted);font-style:normal;}
.btn-logout{background:var(--bg);padding:6px 12px;border-radius:6px;color:var(--text);}

.container{max-width:1280px;margin:24px auto;padding:0 20px;}

.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500;}
.alert-success{background:#def7ec;color:#03543f;}
.alert-danger{background:#fde8e8;color:#9b1c1c;}
.alert-info{background:#e1effe;color:#1e429f;}
.alert-warning{background:#fdf6b2;color:#8e4b10;}

.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:20px;}
.card h2, .card h3{margin-top:0;}

.grid{display:grid;gap:20px;}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr);} .grid-2{grid-template-columns:1fr;}}

.stat-card{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-radius:12px;padding:20px;}
.stat-card .label{opacity:.85;font-size:13px;}
.stat-card .value{font-size:30px;font-weight:700;margin-top:6px;}
.stat-card.k1{background:linear-gradient(135deg,#0e9f6e,#057a55);}
.stat-card.k2{background:linear-gradient(135deg,#0891b2,#0e7490);}
.stat-card.k3{background:linear-gradient(135deg,#7e3af2,#5521b5);}
.stat-card.k4{background:linear-gradient(135deg,#e3a008,#b45309);}

table{width:100%;border-collapse:collapse;background:var(--card-bg);}
table th, table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;font-size:13.5px;}
table th{background:#f9fafb;font-weight:600;color:var(--text-muted);text-transform:uppercase;font-size:11.5px;letter-spacing:.03em;}
table tr:hover td{background:#fafbff;}
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;}
.table-wrap table{border:none;}

.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600;}
.badge-success{background:#def7ec;color:#03543f;}
.badge-danger{background:#fde8e8;color:#9b1c1c;}
.badge-info{background:#e1effe;color:#1e429f;}
.badge-secondary{background:#f3f4f6;color:#4b5563;}
.badge-k1{background:#def7ec;color:#03543f;}
.badge-k2{background:#e1effe;color:#1e429f;}
.badge-k3{background:#ede9fe;color:#5521b5;}
.badge-k4{background:#fdf6b2;color:#8e4b10;}

.btn{display:inline-block;padding:9px 18px;border-radius:8px;border:none;font-weight:600;cursor:pointer;font-size:13.5px;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);text-decoration:none;}
.btn-secondary{background:#eef0f3;color:var(--text);}
.btn-secondary:hover{background:#e2e5ea;text-decoration:none;}
.btn-danger{background:var(--danger);color:#fff;}
.btn-danger:hover{opacity:.9;}
.btn-sm{padding:5px 10px;font-size:12px;}

.form-group{margin-bottom:16px;}
.form-group label{display:block;margin-bottom:6px;font-weight:600;font-size:13px;color:var(--text);}
.form-group .hint{font-size:12px;color:var(--text-muted);margin-top:4px;}
input[type=text], input[type=password], input[type=number], input[type=email], input[type=url], select, textarea{
  width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff;color:var(--text);
}
textarea{min-height:80px;resize:vertical;}
input:focus, select:focus, textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,86,219,.12);}

.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px;}
.filters .form-group{margin-bottom:0;min-width:160px;}

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a56db,#5521b5);}
.login-card{background:#fff;padding:40px;border-radius:16px;width:100%;max-width:380px;box-shadow:0 20px 50px rgba(0,0,0,.25);}
.login-card h1{font-size:20px;text-align:center;margin-bottom:4px;}
.login-card p.sub{text-align:center;color:var(--text-muted);margin-top:0;margin-bottom:24px;font-size:13px;}
.login-card .btn{width:100%;}

.site-footer{text-align:center;color:var(--text-muted);font-size:12px;padding:24px 0;}

.tree-item{padding:2px 0;}
.k-tag{font-weight:700;}

.actions-cell{white-space:nowrap;}
.text-right{text-align:right;}
.text-muted{color:var(--text-muted);}
.mt-0{margin-top:0;}
.flex-between{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
