*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f6f8;color:#222}
a{color:inherit;text-decoration:none}
.topbar{height:58px;background:#1f2937;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px}
.topbar a{color:#fff}
.brand{font-weight:700;letter-spacing:1px}
.layout{display:flex;min-height:calc(100vh - 58px)}
.sidebar{width:220px;background:#111827;color:#d1d5db;padding:18px 10px}
.sidebar a{display:block;padding:10px 12px;border-radius:7px;margin:3px 0}
.sidebar a:hover{background:#374151;color:#fff}
.menu-title{font-size:11px;text-transform:uppercase;color:#9ca3af;margin:20px 12px 5px}
.content{flex:1;padding:26px;max-width:1400px}
h1{margin-top:0}
h2{font-size:18px;margin-top:0}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}
.card,.panel{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:18px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.card span{display:block;color:#6b7280;font-size:13px}
.card strong{display:block;font-size:25px;margin-top:8px}
.panel{margin-bottom:20px;overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}
th{background:#f9fafb;font-size:13px}
input,select{width:100%;padding:9px 10px;border:1px solid #d1d5db;border-radius:6px;background:#fff}
label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}
.grid-form{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.grid-form .wide{grid-column:1/-1}
.form-actions{align-self:end}
.btn{border:0;border-radius:6px;padding:9px 14px;cursor:pointer}
.btn.primary{background:#2563eb;color:#fff}
.btn.full{width:100%;margin-top:15px}
.alert{padding:11px 14px;border-radius:7px;margin-bottom:16px}
.alert.success{background:#dcfce7;color:#166534}
.alert.error{background:#fee2e2;color:#991b1b}
.muted{color:#6b7280}
.hint{font-size:12px;color:#6b7280;margin-top:15px}
.small-input{width:100px}
.flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.flow div{padding:12px 15px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;font-weight:600}
.flow b{color:#6b7280}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#eef2f7}
.login-box{width:360px;background:#fff;padding:28px;border-radius:12px;box-shadow:0 10px 35px rgba(0,0,0,.1)}
.login-box h1{text-align:center;margin-bottom:5px}
.login-box .muted{text-align:center}
.login-box label{margin-top:13px}
.tree,.tree ul{list-style:none;margin:0;padding-left:25px}
.tree ul{border-left:1px dashed #cbd5e1}
.tree li{margin:10px 0;position:relative}
.node{display:inline-block;padding:10px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc}
.node small{display:block;color:#64748b;margin-top:3px}
@media(max-width:800px){.sidebar{width:170px}.cards{grid-template-columns:repeat(2,1fr)}.grid-form{grid-template-columns:1fr}}
@media(max-width:560px){.sidebar{display:none}.content{padding:15px}.cards{grid-template-columns:1fr}.topbar{padding:0 14px}}
