:root { --bg:#f6f7f9; --card:#fff; --text:#111; --muted:#666; --line:#e5e7eb; --btn:#111; --btnText:#fff; }
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans';background:var(--bg);color:var(--text)}
.container{max-width:1100px;margin:0 auto;padding:16px}
.topbar{background:#fff;border-bottom:1px solid var(--line)}
.brand a{font-weight:700;text-decoration:none;color:var(--text)}
.nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px}
.nav a{color:var(--muted);text-decoration:none;padding:6px 8px;border-radius:8px}
.nav a:hover{background:#f1f3f5;color:var(--text)}
.nav .right{margin-left:auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.col-6{grid-column:span 6}
.col-12{grid-column:span 12}
@media(max-width:800px){.col-6{grid-column:span 12}}
.btn{background:var(--btn);color:var(--btnText);padding:8px 12px;border-radius:10px;text-decoration:none;display:inline-block;border:0;cursor:pointer}
.btn.secondary{background:#374151}
.btn.light{background:#e5e7eb;color:#111}
.btn.danger{background:#b91c1c}
.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.table th,.table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}
.table th{background:#f9fafb}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--line);background:#fff}
.badge.ok{background:#ecfdf5;border-color:#a7f3d0}
.badge.lock{background:#fef2f2;border-color:#fecaca}
.badge.warn{background:#fffbeb;border-color:#fde68a}
.progress{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden}
.progress > div{height:100%;background:#111}
.alert{padding:10px 12px;border-radius:12px;margin:12px 0}
.alert.success{background:#ecfdf5;border:1px solid #a7f3d0}
.alert.error{background:#fef2f2;border:1px solid #fecaca}
input,select,textarea{width:100%;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}
label{font-size:13px;color:var(--muted)}
.row{display:flex;gap:12px;flex-wrap:wrap}
.row > div{flex:1;min-width:240px}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}
small.muted{color:var(--muted)}
.footer{color:var(--muted)}
