/* Reset, typography, buttons, inputs, utilities */
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink)}
button{font-family:inherit;cursor:pointer}
.hidden{display:none!important}
.num{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.muted{color:var(--ink-2)}
.r{text-align:right}
.sp{flex:1}

/* Icons — sprite in js/icons.js; stroke lives here so weight is uniform */
svg.ic{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;vertical-align:-3.5px}
svg.ic.sm{width:14px;height:14px;vertical-align:-2.5px}
svg.ic.xs{width:12px;height:12px;vertical-align:-2px;stroke-width:2}
.btn svg.ic{width:14px;height:14px;vertical-align:-2.5px;margin-right:2px}
.rowact svg.ic{width:14.5px;height:14.5px;vertical-align:-3px}
/* theme-conditional visibility (e.g. moon in light, sun in dark) */
[data-theme="light"] .only-dark{display:none!important}
[data-theme="dark"] .only-light{display:none!important}

/* Buttons */
.btn{border:1px solid var(--in-bd);background:var(--card);color:var(--ink);border-radius:9px;
  padding:7px 13px;font-weight:650;font-size:13px}
.btn:hover{border-color:var(--red);color:var(--red-d)}
.btn.pri{background:var(--red-fill);color:#fff;border:none}
.btn.pri:hover{background:var(--red-fill-h);color:#fff}
.btn.sm{padding:5px 10px;font-size:12.5px}
.btn.danger:hover{border-color:var(--red);color:var(--red)}
.btn:disabled{opacity:.45;pointer-events:none}

/* Search input */
.srch{border:1px solid var(--line);border-radius:9px;padding:7px 11px;font-size:13px;
  outline:none;min-width:220px;font-family:inherit;background:var(--card);color:var(--ink)}
.srch:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-t)}
