/* === 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;
  display:flex;flex-direction:column;
}
.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 (min-width:721px){
  .maincard>.content{order:1}
  .maincard>.search{order:2}
}

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

@media (max-width:720px){
  body{align-items:stretch}
  .wrapper{align-items:stretch;padding:64px 16px 0}
  .profile-badge,
  #clocks,
  .maincard,
  .scratchpad{width:100%;margin-left:auto;margin-right:auto}
  .profile-badge{padding:8px 14px;font-size:15px}
  #clocks{gap:10px}
  .clock{flex:1 1 calc(50% - 10px);min-width:150px}
  .content{padding:20px 20px 10px}
  .search{order:-1;padding:16px 20px 12px;border-top:none;border-bottom:1px solid rgba(255,255,255,.12)}
  .search label{font-size:14px}
  #search_box{font-size:19px}
  .search small{line-height:1.45}
  #cmd-hints{left:20px;right:20px;max-width:calc(100% - 40px)}
  .scratchpad{padding:0}
}

@media (max-width:520px){
  .navbar{left:12px;top:12px}
  .navbar-container{height:48px;width:48px}
  .navbar-container input[type="checkbox"]{top:8px;left:8px;width:32px;height:32px}
  .hamburger-lines{top:14px;left:14px}
  .menu-items{width:min(100vw,320px);padding:64px 18px}
  .profile-badge{font-size:14px}
  #clocks{gap:8px}
  .clock{min-width:140px;padding:6px 8px}
  .content{padding:18px 18px 8px}
  .links{gap:1.25rem 1.5rem}
  .search{padding:12px 18px 14px}
  #search_box{font-size:18px}
  #cmd-hints{left:18px;right:18px;max-width:none;width:auto}
  #scratch{font-size:15px}
}

@media (max-width:420px){
  .profile-badge{font-size:13px;padding:8px 12px}
  #clocks{flex-direction:column}
  .clock{width:100%;min-width:0}
  .content{padding:16px 16px 8px}
  .search{padding:12px 16px 12px}
  .search small{font-size:11px}
  #cmd-hints{left:16px;right:16px}
  .scratchpad{margin-left:16px;margin-right:16px}
  .timer-stack{left:50%;right:auto;transform:translateX(-50%);bottom:20px}
  .timer-tile{width:min(92vw,320px)}
  .timer-toast{left:50%;right:auto;transform:translate(-50%,0)}
}

/* --- 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}
