/* === Layout & components (theme-agnostic) === */
:root{
  --bg:#000;            /* overridden by theme */
  --text:#eaeaea;       /* overridden by theme */
  --accent:#00ffff;     /* overridden by theme */
  --text-dim:#a9b0b8;   /* overridden by theme */
  --container-max-w:1200px;
  --mono: "Source Code Pro", monospace;
}

/* Reset-ish */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--mono);
  display:flex;flex-direction:column;align-items:center;overflow-x:hidden;
}

/* Links */
a{color:var(--text);text-decoration:none}
a:hover{color:var(--accent);text-decoration:underline}

/* ===== Nav / Menu ===== */
.navbar{position:fixed;top:0;left:0;z-index:20}
.navbar-container{position:relative;height:56px;width:56px}
.navbar-container input[type="checkbox"]{position:absolute;top:12px;left:12px;width:32px;height:32px;opacity:0;z-index:3;cursor:pointer}
.hamburger-lines{position:absolute;top:18px;left:18px;width:24px;height:18px;display:flex;flex-direction:column;justify-content:space-between;z-index:2;cursor:pointer}
.hamburger-lines .line{height:2px;width:100%;background:var(--text-dim);border-radius:2px;transition:transform .25s ease}
.navbar-container input:checked ~ .hamburger-lines .line1{transform:translateY(8px) rotate(45deg)}
.navbar-container input:checked ~ .hamburger-lines .line2{transform:scaleX(0)}
.navbar-container input:checked ~ .hamburger-lines .line3{transform:translateY(-8px) rotate(-45deg)}
.menu-items{
  position:fixed;top:0;left:0;height:100vh;width:280px;background:rgba(0,0,0,.96);
  border-right:1px solid rgba(255,255,255,.12);
  transform:translateX(-110%);transition:transform .35s ease;padding:72px 18px 24px;list-style:none;
  box-shadow:12px 0 40px rgba(0,0,0,.25)
}
.navbar-container input:checked ~ .menu-items{transform:translateX(0)}
.menu-items li{margin:0 0 12px}
.menu-items a{color:var(--text)} .menu-items a:hover{color:var(--accent)}
.menu-divider{height:1px;margin:10px 0;background:rgba(255,255,255,.12)}
.menu-heading{color:var(--accent);font-weight:700;margin-bottom:6px}
.profile-current{color:var(--accent);font-weight:700}

/* ===== Wrapper / Profile badge ===== */
.wrapper{display:flex;flex-direction:column;align-items:center;width:100%;padding:72px 0 0}
.profile-badge{
  width:min(95vw,var(--container-max-w));margin:0 auto 8px;padding:6px 10px;
  color:var(--text);background:rgba(0,0,0,.6);
  border:1px solid rgba(255,255,255,.12);border-left:3px solid var(--accent);
  border-radius:8px;font-weight:700;
}

/* ===== Clocks ===== */
#clocks{
  width:min(95vw,var(--container-max-w));margin:8px auto 10px;
  display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:flex-start;
}
.clock{
  color:var(--text);background:rgba(0,0,0,.6);
  border:1px solid rgba(255,255,255,.12);border-left:3px solid var(--accent);
  border-radius:8px;padding:6px 10px;min-width:180px;
}

/* ===== Card & Links ===== */
.maincard{
  width:min(95vw,var(--container-max-w));background:rgba(0,0,0,.85);
  border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.25);margin:0 auto;
}
.content{padding:22px 26px 10px}

/* Each section is a column (collapses on narrow) */
.links{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:1.5rem 2.25rem;align-items:start}
.links section{display:flex;flex-direction:column;gap:.5rem}
.links h3{color:var(--accent);font-weight:700;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:.25rem}
.links ul{list-style:none;display:grid;gap:.35rem}
.links li{line-height:1.35}

/* ===== Command bar ===== */
.search{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:12px 26px 18px;border-top:1px solid rgba(255,255,255,.12)}
.search label{color:var(--accent);font-weight:700;margin-right:6px}
#search_box{border:none;background:transparent;color:var(--text);font-size:22px;font-weight:600;outline:none;caret-color:var(--accent)}
#search_box::placeholder{color:rgba(255,255,255,.35)}
.search small{margin-top:4px;color:rgba(255,255,255,.55);font-size:12px}
.search code{color:var(--accent);background:rgba(255,255,255,.06);padding:1px 6px;border-radius:6px;border:1px solid rgba(255,255,255,.12)}

/* Autocomplete dropdown */
#cmd-hints{
  position:absolute;left:0;top:calc(100% + 6px);min-width:280px;max-width:90vw;background:rgba(0,0,0,.85);
  border:1px solid rgba(255,255,255,.12);border-left:3px solid var(--accent);
  border-radius:8px;padding:6px 0;z-index:40;backdrop-filter:blur(6px);
}
#cmd-hints .hint{padding:6px 10px;font-size:14px;color:var(--text);cursor:default;white-space:nowrap}
#cmd-hints .hint:hover,#cmd-hints .hint.active{background:rgba(255,255,255,.06);color:var(--accent)}

/* ===== Scratchpad ===== */
.scratchpad{width:min(95vw,var(--container-max-w));margin:18px auto 24px;padding:0 2px}
.scratchpad-title{color:var(--accent);font-weight:700;margin:0 0 8px;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:.25rem}
#scratch{
  width:100%;background:rgba(0,0,0,.6);color:var(--text);
  border:1px solid rgba(255,255,255,.12);border-left:3px solid var(--accent);
  border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.4;outline:none;resize:vertical
}

/* ===== Modal ===== */
.modal-overlay{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);display:grid;place-items:center}
.modal-window{
  width:min(92vw,720px);background:rgba(0,0,0,.92);border:1px solid rgba(255,255,255,.12);
  border-left:4px solid var(--accent);border-radius:12px;padding:14px 16px 12px;color:var(--text);box-shadow:0 20px 60px rgba(0,0,0,.4);position:relative
}
.modal-title{font-weight:700;margin:0 0 8px;color:var(--accent)}
.modal-pre{background:rgba(255,255,255,.04);padding:10px 12px;border-radius:8px;overflow:auto}
.modal-body{font-size:14px;line-height:1.35}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.modal-actions .modal-ok{background:var(--accent);color:#000;border:0;padding:6px 12px;border-radius:8px;font-weight:700;cursor:pointer}
.modal-close{position:absolute;top:8px;right:10px;border:0;background:transparent;color:var(--text);font-size:20px;cursor:pointer}

/* A11y helper */
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px}

/* Responsive collapse */
@media (max-width:900px){
  #clocks{justify-content:center}
  .links{grid-auto-flow:row;grid-template-columns:1fr}
  #search_box{font-size:20px}
}

/* --- Timers UI --- */
.timer-stack{position:fixed;bottom:16px;right:16px;display:grid;gap:8px;z-index:45}
.timer-tile{
  width:280px;background:rgba(0,0,0,.85);border:1px solid rgba(255,255,255,.12);
  border-left:3px solid var(--accent);border-radius:10px;padding:8px 10px;color:var(--text);
  box-shadow:0 6px 18px rgba(0,0,0,.25)
}
.timer-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.timer-label{font-weight:700}
.timer-remaining{font-variant-numeric:tabular-nums}
.timer-progress{margin-top:6px;height:4px;background:rgba(255,255,255,.12);border-radius:999px;overflow:hidden}
.timer-progress>i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s linear}
.timer-done{border-left-color:#f43f5e}
.timer-progress>i.done{background:#f43f5e;width:100%}
.timer-actions{margin-top:6px;display:flex;justify-content:flex-end}
.timer-stop{background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--text);border-radius:8px;padding:2px 8px;cursor:pointer}
.timer-stop:hover{border-color:var(--accent);color:var(--accent)}
.timer-toast{
  position:fixed;left:50%;transform:translateX(-50%);bottom:24px;
  background:rgba(0,0,0,.9);color:var(--text);border:1px solid rgba(255,255,255,.12);
  border-left:4px solid var(--accent);padding:8px 12px;border-radius:10px;opacity:0;transition:opacity .3s ease;z-index:60
}
.timer-toast.show{opacity:1}
