/* app.css — Layout + Components (theme via CSS variables) */
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
.wrap{max-width:1200px;margin:0 auto;padding:18px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.brand{display:flex;align-items:center;gap:12px}
.dot{width:14px;height:14px;border-radius:999px;background:var(--accent);box-shadow:0 0 30px rgba(34,197,94,.35)}
.title{font-weight:800;letter-spacing:.2px}
.sub{font-size:12px;opacity:.75}
.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}
@media (max-width: 980px){.grid{grid-template-columns:1fr}}

.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
h2{margin:0 0 10px 0;font-size:16px}

.row{display:grid;grid-template-columns: 1.1fr 1fr .7fr .7fr 1.3fr auto;gap:10px;align-items:center}
@media (max-width: 980px){.row{grid-template-columns:1fr 1fr 1fr}}
@media (max-width: 640px){.row{grid-template-columns:1fr}}

input,select{width:100%;padding:10px 12px;border-radius:var(--radius_in);border:1px solid rgba(255,255,255,0.14);background:var(--input_bg);color:#fff;outline:none}
input:focus,select:focus{border-color:rgba(34,197,94,.45);box-shadow:0 0 0 3px rgba(34,197,94,.12)}
input::placeholder{color:rgba(255,255,255,0.55)}

.btn{padding:10px 12px;border-radius:var(--radius_in);border:1px solid rgba(255,255,255,0.14);background:var(--btn_bg);color:var(--text);font-weight:700;cursor:pointer}
.btn.primary{background:var(--accent);border-color:var(--accent_border);color:#08121c}
.btn.ghost{background:transparent}

.tableWrap{overflow:auto;border-radius:var(--radius_in);border:1px solid var(--border_soft);margin-top:12px}
.table{width:100%;border-collapse:collapse;min-width:860px}
.table th,.table td{padding:10px 10px;border-bottom:1px solid rgba(255,255,255,0.08);font-size:13px;white-space:nowrap}
.table th{text-align:left;opacity:.85}

.muted{opacity:.7}

.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.kpi{background:rgba(0,0,0,0.20);border:1px solid var(--border_soft);border-radius:var(--radius);padding:12px}
.kpi .k{font-size:12px;opacity:.75}
.kpi .v{font-size:18px;font-weight:800;margin-top:6px}
.kpi.danger{border-color:rgba(239,68,68,.35)}
.hint{margin:10px 0 0 0;font-size:12px;opacity:.8}

.loginWrap{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:18px}
.card.login{width:min(520px,92vw)}
.msg{margin-top:10px;color:#fca5a5;font-weight:700}


input:disabled,select:disabled,button:disabled{opacity:.55;cursor:not-allowed}
