:root{
  --bg:#0b0b0b;
  --card:#ffffff;
  --muted:rgba(0,0,0,.68);
  --border:#e6e6e6;
  --shadow:0 8px 28px rgba(0,0,0,.10);
  --radius:16px;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:#f6f6f6;color:#111}
a{color:inherit}
.wrap{max-width:1100px;margin:0 auto;padding:18px}
.header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.brand{display:flex;align-items:center;gap:10px}
.logo{width:40px;height:40px;border-radius:12px;background:#111;display:grid;place-items:center;color:#fff;font-weight:800}
h1{font-size:18px;margin:0}
.sub{font-size:13px;color:rgba(0,0,0,.65);margin:2px 0 0 0}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:980px){.grid{grid-template-columns:420px 1fr}}
label{display:block;font-size:13px;margin:10px 0 6px 0;color:rgba(0,0,0,.8)}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid #dcdcdc;border-radius:12px;font-size:14px;outline:none;background:#fff}
input:focus,select:focus,textarea:focus{border-color:#bdbdbd;box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row > *{flex:1;min-width:180px}
.pills{display:flex;gap:10px;flex-wrap:wrap}
.pill{display:inline-flex;gap:8px;align-items:center;background:#f7f7f7;border:1px solid #e9e9e9;border-radius:999px;padding:8px 12px;font-size:13px}
.pill input{width:auto}
.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
button{border:0;border-radius:14px;padding:11px 14px;font-weight:700;cursor:pointer}
.primary{background:#111;color:#fff}
.secondary{background:#efefef;color:#111}
.danger{background:#ffecec;color:#7c1111}
button:disabled{opacity:.5;cursor:not-allowed}
.note{font-size:12px;color:rgba(0,0,0,.65);line-height:1.4}
.banner{border-radius:14px;padding:10px 12px;border:1px solid;display:none}
.banner.warn{background:#fff6e6;border-color:#ffe0a6;color:#7a4b00}
.banner.ok{background:#effff4;border-color:#bdebc7;color:#0f5a25}
.kpi{display:flex;gap:12px;flex-wrap:wrap}
.kpi .box{flex:1;min-width:220px;background:#fafafa;border:1px solid #eee;border-radius:16px;padding:12px}
.kpi .ttl{font-size:12px;color:rgba(0,0,0,.65)}
.kpi .val{font-size:20px;font-weight:900;margin-top:4px}
.hr{height:1px;background:#eee;margin:14px 0}
.table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:16px;border:1px solid #eee}
.table th,.table td{padding:10px 10px;border-bottom:1px solid #eee;font-size:13px;vertical-align:top}
.table th{background:#fafafa;text-align:left}
.table tr:last-child td{border-bottom:0}
.table input{padding:8px 10px;border-radius:10px;font-size:13px}
.right{text-align:right}
.mini{font-size:12px;color:rgba(0,0,0,.65)}
.topactions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.badge{display:inline-flex;align-items:center;gap:8px;background:#111;color:#fff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}