/* Mata Grid · shared "glass" design tokens (light + dark, user-toggled via html[data-theme]) */
:root{
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  /* light: wallpaper cerah, panel kaca lebih pekat, teks sekunder cukup gelap agar terbaca */
  --ink:#141a26; --ink-2:#3b4454; --ink-3:#5f6979; --line:rgba(20,30,50,.14);
  --glass:rgba(255,255,255,.80); --glass-2:rgba(255,255,255,.66); --glass-strong:rgba(255,255,255,.92);
  --glass-border:rgba(255,255,255,.85); --glass-inset:rgba(255,255,255,.95); --glass-edge:rgba(20,30,50,.10);
  --field:rgba(255,255,255,.75); --field-border:rgba(20,30,50,.16);
  --accent:#0a6fe0; --accent-2:#3aa6ff; --ok:#1f9d4c; --warn:#d98a00; --crit:#d43a2f; --violet:#8f46d8; --amber:#c98a0c;
  --shadow:0 18px 50px rgba(20,40,90,.16), 0 2px 6px rgba(20,40,90,.08);
  --radius:20px; --radius-s:12px;
  --wp1:#e4ebf6; --wp2:#cfd9ff; --wp3:#bfe6f5; --wp4:#cdf1e8; --wp5:#eed9ff;
  --blob1:#9fb1ff; --blob2:#8fdcd2; --blob3:#dcb4ff; --blob-opacity:.55; --blob-mode:normal;
  --sheet:rgba(247,248,252,.97);
  color-scheme: light;
}
:root[data-theme="dark"]{
  --ink:#eef1f5; --ink-2:#c3c9d3; --ink-3:#8b93a1; --line:rgba(255,255,255,.10);
  --glass:rgba(24,27,38,.62); --glass-2:rgba(24,27,38,.44); --glass-strong:rgba(24,27,38,.84);
  --glass-border:rgba(255,255,255,.16); --glass-inset:rgba(255,255,255,.20);
  --field:rgba(0,0,0,.30); --field-border:rgba(255,255,255,.14);
  --ok:#5fd37f; --warn:#ffb648; --crit:#ff6b60;
  --shadow:0 24px 70px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.35);
  --wp1:#050b1f; --wp2:#1d1650; --wp3:#0b3a5c; --wp4:#0d4a47; --wp5:#3d2258;
  --glass-edge:rgba(255,255,255,.06); --blob1:#5b6cff; --blob2:#2ec4b6; --blob3:#c77dff; --blob-opacity:.5; --blob-mode:screen; --accent:#0a84ff; --amber:#e9a93a;
  --sheet:rgba(22,25,36,.97);
  color-scheme: dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#eef1f5; --ink-2:#c3c9d3; --ink-3:#8b93a1; --line:rgba(255,255,255,.10);
    --glass:rgba(24,27,38,.62); --glass-2:rgba(24,27,38,.44); --glass-strong:rgba(24,27,38,.84);
    --glass-border:rgba(255,255,255,.16); --glass-inset:rgba(255,255,255,.20);
    --field:rgba(0,0,0,.30); --field-border:rgba(255,255,255,.14);
    --ok:#5fd37f; --warn:#ffb648; --crit:#ff6b60;
    --shadow:0 24px 70px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.35);
    --wp1:#050b1f; --wp2:#1d1650; --wp3:#0b3a5c; --wp4:#0d4a47; --wp5:#3d2258;
    --glass-edge:rgba(255,255,255,.06); --blob1:#5b6cff; --blob2:#2ec4b6; --blob3:#c77dff; --blob-opacity:.5; --blob-mode:screen; --accent:#0a84ff; --amber:#e9a93a;
    --sheet:rgba(22,25,36,.97);
    color-scheme: dark;
  }
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font-family:var(--font);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;background:var(--wp1);overflow:hidden}
.wallpaper{position:fixed;inset:0;z-index:0;overflow:hidden;
  background:radial-gradient(1200px 800px at 15% 10%, var(--wp2) 0%, transparent 60%),
             radial-gradient(1000px 700px at 85% 20%, var(--wp3) 0%, transparent 60%),
             radial-gradient(900px 700px at 60% 95%, var(--wp4) 0%, transparent 60%),
             radial-gradient(700px 500px at 30% 80%, var(--wp5) 0%, transparent 65%), var(--wp1)}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:var(--blob-opacity);mix-blend-mode:var(--blob-mode);animation:float 26s ease-in-out infinite}
.blob.b1{width:520px;height:520px;left:-120px;top:-100px;background:var(--blob1)}
.blob.b2{width:460px;height:460px;right:-100px;top:10%;background:var(--blob2);animation-delay:-8s}
.blob.b3{width:600px;height:600px;left:35%;bottom:-260px;background:var(--blob3);animation-delay:-16s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-30px) scale(1.06)}}
@media (prefers-reduced-motion: reduce){.blob{animation:none}}
.glass{background:var(--glass);backdrop-filter:blur(28px) saturate(170%);-webkit-backdrop-filter:blur(28px) saturate(170%);
  border:1px solid var(--glass-border);box-shadow:var(--shadow), inset 0 1px 0 var(--glass-inset), 0 0 0 1px var(--glass-edge);border-radius:var(--radius)}
.glass-2{background:var(--glass-2);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--glass-border);border-radius:var(--radius-s);box-shadow:inset 0 1px 0 var(--glass-inset), 0 0 0 1px var(--glass-edge)}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}
h1{font-size:26px}h2{font-size:18px}h3{font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.muted{color:var(--ink-3)}.mono{font-family:var(--mono);font-size:.92em}
label{display:block;font-size:12px;color:var(--ink-2);margin:10px 0 4px;font-weight:500}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--field-border);border-radius:10px;padding:9px 11px;outline:none;transition:box-shadow .15s,border-color .15s}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(10,132,255,.22)}
textarea{min-height:70px;resize:vertical}
.btn{display:inline-flex;align-items:center;gap:8px;font:inherit;font-weight:600;font-size:13px;color:var(--ink);background:var(--field);border:1px solid var(--field-border);
  border-radius:10px;padding:8px 14px;cursor:pointer;transition:transform .08s,box-shadow .15s,background .15s;box-shadow:inset 0 1px 0 rgba(255,255,255,.35);text-decoration:none}
.btn:hover{background:var(--glass-strong)}.btn:active{transform:translateY(1px)}
.btn.primary{color:#fff;background:linear-gradient(180deg,#3d9dff,#0a84ff);border-color:rgba(0,60,140,.35);box-shadow:0 6px 16px rgba(10,132,255,.35), inset 0 1px 0 rgba(255,255,255,.35)}
.btn.danger{color:#fff;background:linear-gradient(180deg,#ff6b60,#ff453a);border-color:rgba(140,20,10,.35)}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.switch{position:relative;width:40px;height:24px;border-radius:12px;background:rgba(120,120,128,.32);border:0;cursor:pointer;transition:background .2s;flex:none;padding:0}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.3);transition:left .2s}
.switch.on{background:var(--ok)}.switch.on::after{left:18px}
.seg{display:inline-flex;background:rgba(120,120,128,.16);border-radius:10px;padding:3px;gap:2px}
.seg button{font:inherit;font-size:12px;font-weight:600;color:var(--ink-2);background:none;border:0;border-radius:8px;padding:5px 12px;cursor:pointer}
.seg button.on{background:var(--glass-strong);color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.15)}
.pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;background:rgba(100,110,130,.16);color:var(--ink-2);letter-spacing:.02em;white-space:nowrap}
.pill.ok{background:rgba(52,199,89,.18);color:#1e7e3a}.pill.warn{background:rgba(255,159,10,.2);color:#9a5a00}.pill.crit{background:rgba(255,69,58,.18);color:#b42318}.pill.accent{background:rgba(10,132,255,.16);color:#0a5bb5}
:root[data-theme="dark"] .pill.ok{color:#6fe39b}:root[data-theme="dark"] .pill.warn{color:#ffc46b}:root[data-theme="dark"] .pill.crit{color:#ff8a80}:root[data-theme="dark"] .pill.accent{color:#7cc0ff}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pill.ok{color:#6fe39b}:root:not([data-theme="light"]) .pill.warn{color:#ffc46b}:root:not([data-theme="light"]) .pill.crit{color:#ff8a80}:root:not([data-theme="light"]) .pill.accent{color:#7cc0ff}}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
.tw{overflow:auto;-webkit-overflow-scrolling:touch}
.toast{position:fixed;z-index:50;left:50%;bottom:28px;transform:translateX(-50%);padding:10px 16px;border-radius:14px;font-weight:600;display:none;max-width:92vw}
.kpi{padding:14px 16px}.kpi .n{font-size:28px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi .l{font-size:12px;color:var(--ink-3)}
.kpi.crit .n{color:var(--crit)}.kpi.ok .n{color:var(--ok)}.kpi.warn .n{color:var(--warn)}.kpi.accent .n{color:var(--accent)}
.grid{display:grid;gap:12px}
.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1024px){.cols-4{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}}
.sheet-bg{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.25);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:12px}
.sheet-bg.on{display:flex}
.sheet{width:min(560px,100%);max-height:88vh;overflow:auto;padding:22px 24px}
.perm-grid{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
a{color:var(--accent);text-decoration:none}
::selection{background:rgba(10,132,255,.25)}
/* theme toggle (sun / moon) */
.theme{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;border:1px solid var(--field-border);background:var(--field);cursor:pointer;color:var(--ink-2);padding:0;flex:none}
.theme:hover{background:var(--glass-strong)}
.theme svg{width:16px;height:16px}
.theme .moon{display:none}
:root[data-theme="dark"] .theme .sun{display:none}:root[data-theme="dark"] .theme .moon{display:block}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .theme .sun{display:none}:root:not([data-theme="light"]) .theme .moon{display:block}}
.lang{display:inline-flex;gap:2px;background:rgba(120,120,128,.16);border-radius:8px;padding:2px}
.lang button{font:inherit;font-size:11px;font-weight:700;border:0;background:none;color:var(--ink-3);padding:4px 8px;border-radius:6px;cursor:pointer}
.lang button.on{background:var(--glass-strong);color:var(--ink)}
