:root{
  --petrol:#115e59; --petrol-d:#0c4a46; --lime:#a3e635; --lime-d:#84cc16;
  --paper:#f5f5f4; --card:#ffffff; --ink:#0f2e2c; --muted:#5b7c78;
  --line:rgba(17,94,89,.14); --amber:#f59e0b; --amber-bg:#fffbeb;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:var(--paper); color:var(--ink);
  padding-top:env(safe-area-inset-top); padding-bottom:env(safe-area-inset-bottom);
}
.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,"SF Mono",Menlo,monospace}
.wrap{max-width:640px;margin:0 auto;padding:20px 16px 96px}

.head{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px}
.tick{width:6px;height:26px;border-radius:99px;background:var(--lime);flex:0 0 auto;margin-top:3px}
.head h1{margin:0;font-size:26px;letter-spacing:-.02em;color:var(--petrol)}
.head p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.install{margin-left:auto;border:1px solid var(--line);background:var(--card);
  color:var(--petrol);font-weight:600;border-radius:10px;padding:8px 12px;font-size:13px}

.settings{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px}
.settings label{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px}
.settings span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.settings input{width:100%;border:0;background:transparent;font-size:18px;font-weight:700;color:var(--petrol);outline:none;margin-top:3px}

.primary{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;
  background:var(--petrol);color:var(--lime);font-weight:700;font-size:16px;
  border:0;border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.primary:active{transform:scale(.99)}
.cam{font-size:18px}

.spin{display:none;margin-top:10px;text-align:center;color:var(--muted);font-size:14px}
.htmx-request .spin,.spin.htmx-request{display:block}

.weekinfo{margin:16px 2px 8px;font-size:14px;font-weight:600;color:var(--muted)}
.rows{display:flex;flex-direction:column;gap:8px}
.row{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.row.onzeker{border-color:var(--amber)}
.row.off{opacity:.5}
.rowtop{display:flex;align-items:center;gap:8px}
.chk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--petrol)}
.chk input{width:20px;height:20px;accent-color:var(--lime-d)}
.twijfel{background:#fef3c7;color:#92400e;font-size:10px;font-weight:800;border-radius:5px;padding:2px 6px}
.uren{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;color:var(--petrol)}
.del{border:0;background:transparent;color:#9ca3af;font-size:16px;padding:4px 6px;border-radius:8px}
.del:active{background:#f3f4f6}

.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.veld{border:1px solid var(--line);background:#fafaf9;border-radius:8px;padding:4px 6px}
.veld span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.veld input,.veld select{width:100%;border:0;background:transparent;font-size:12px;color:var(--ink);outline:none;font-family:ui-monospace,monospace}
.veld select{font-family:inherit}

.dashed{width:100%;margin-top:10px;border:1px dashed var(--line);background:transparent;color:var(--muted);
  font-weight:600;border-radius:12px;padding:12px;font-size:14px}
.dashed:active{background:var(--card)}

.uitkomst{margin-top:18px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.lijn{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);margin-bottom:4px}
.lijn b{color:var(--petrol)}
.hr{height:1px;background:var(--line);margin:12px 0}
.mu{display:flex;align-items:center;justify-content:space-between;background:var(--petrol);border-radius:10px;padding:12px}
.mu>span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:rgba(163,230,53,.85);font-weight:700}
.mu-r{display:flex;align-items:center;gap:8px}
.mu-r b{font-size:24px;color:var(--lime)}
.copy{border:0;background:var(--lime);color:var(--petrol-d);border-radius:8px;padding:6px 8px;font-size:15px}
.copy:active{transform:scale(.95)}
.warn{margin-top:12px;border:1px solid #fcd34d;background:var(--amber-bg);color:#92400e;border-radius:10px;padding:10px;font-size:12px}

.alert{margin-top:12px;border:1px solid #fcd34d;background:var(--amber-bg);color:#92400e;border-radius:12px;padding:12px;font-size:14px}
