
/* structure */


/* --- Intro overlay video --- */
.intro-overlay[hidden] { display: none !important; }

.intro-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.intro-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.intro-skip {
  position: absolute;
  right: 16px;
  bottom: 16px;
  min-width: 120px;
}

.intro-unmute {
  position: absolute;
  left: 16px;
  bottom: 16px;
  min-width: 120px;
}


body {
  position: relative;
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  background-color: transparent;
  font-family: 'Roboto', sans-serif;
  font-size: 20px;
}

header {
  display: inline-block; 
  position: relative;
  border-bottom: transparent;
  background: rgba(0, 0, 0, 0.6);
  width: 100%;
  height: auto;
  text-align: center;
  margin-bottom: 20px;
}

main {
  display: inline-block;
  position: relative;
  min-height: 1024px;
  width: 100%;
  /*background-image:url("stimulist-back.png");*/
  background-color: transparent;
  background-attachment: fixed;
  padding-bottom: 100px;
}

.footer {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  padding: 10px 0px 10px 0px;
  background: rgba(0, 0, 0, 0.6);
  color: white;
  text-align: center;
}


footer a {
  text-decoration: underline;
  color: #fff;
}

/* native elements */

a {
  text-decoration: none;
  color: #fff;
}

img {
  max-width: 100%;
  max-height: 100%;
}

h1 {
  color: #fff;
  text-align: center;
  font-size: 50px;
}

h2 {     
  color: #fff;
  text-align: center;
  font-size: 20px;
} 

h6 {  
  color: #fff;
  text-align: center;
  font-size: 40px;
  margin: 0 auto;
}

ul {
  list-style-type: none;
  display: block;
  float: inherit;
  padding: 0;
  margin: 0 auto;
  width: 82%;
}

li {
  color: #fff;
  padding: 12px 16px;
  margin-bottom: 10px;
  font-family: 'Roboto', sans-serif;
  /****** awesome background layer trick to create college rule paper. 
   * 
   * 
   * background: url("./li-left-bg.png"), url("./li-right-bg.png"); 
   * 
   * 
   */
  background: rgba(0, 0, 0, 0.6);
  background-position: left; 
  background-repeat: repeat; 
  width: auto;
  }

#empty-checklist,
#empty-repeatlist {
  position: relative;
  margin: 0 auto;
  z-index: 1;
  font-weight: normal;
  font-family: 'Roboto', sans-serif;
  color: rgba(133, 133, 133, 1);
  background: transparent;
}

label {
  margin-left: 30px;
}

table {
  width: 75%;
  height: 100%;
  margin: 0 auto;
  padding-bottom: 20px;
}

th {
    border: 1px solid #000;
    background: rgba(255,255,255, 0.6);
    color: #000;
    height: 20px;
}

tr {
    border: 2px solid #000;
    background: rgba(0,0,0, 0.6);
    color: #000;
}

td {
 border: 2px solid #000;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    height: 100px;
    padding: 10px;
}

input[type="checkbox" i] {
    background-color: initial;
    cursor: pointer;
    appearance: auto;
    box-sizing: border-box;
    margin: 0px 0px 0px 20px;
    padding: initial;
    border: initial;
}

input[type="text" i] {
  margin: 0px;
  width: 80%;
  height: auto;
  font-size: 20px;
  color: #000;
  font-family: 'Roboto', sans-serif;
}

/* login screen */ 

/* =========================
   0.4 LOGIN / TERMINAL LOOK
   ========================= */


/* =========================
   LOGIN / TERMINAL LOOK
   ========================= */

#loginScreen {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px 24px;
  overflow: hidden;
  background: rgba(2, 6, 16, 0.18);
}

.login-overlay {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  background: none;
  width: 100%;
}

.login-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  transform: none;
  margin: 0 0 20px 0;
}

.loginlogo {
  color: rgb(0, 204, 255);
  font-family: "Bebas Neue", sans-serif;
  font-size: 78px;
  line-height: 1;
  letter-spacing: 0.04em;
  margin: 0;
  text-shadow:
    0 0 6px rgba(0, 204, 255, 1),
    0 0 14px rgba(0, 204, 255, 0.9),
    0 0 28px rgba(0, 204, 255, 0.65),
    0 0 46px rgba(0, 204, 255, 0.35);
  animation: neonPulseCyan 2.4s ease-in-out infinite;
}

.login-logo-image {
  width: 108px;
  height: auto;
  display: block;
  filter:
    drop-shadow(0 0 8px rgba(0, 204, 255, 0.6))
    drop-shadow(0 0 18px rgba(0, 204, 255, 0.3));
}

/* less glass, more hard sci-fi panel */
.terminal-shell {
  position: relative;
  width: min(720px, 92vw);
  min-height: 320px;
  margin-top: 0;
  border-radius: 18px;
  border: 1px solid rgba(184, 184, 184, 0.34);
  background:
    linear-gradient(180deg, rgba(6, 10, 20, 0.94), rgba(2, 5, 12, 0.96));
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.03) inset,
    0 0 0 2px rgba(184, 184, 184, 0.08),
    0 18px 60px rgba(0,0,0,0.55),
    0 0 22px rgba(184, 184, 184, 0.16);
  overflow: hidden;
}

.terminal-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(199, 208, 219, 0.06), transparent 16%),
    repeating-linear-gradient(
      to bottom,
      rgba(255,255,255,0.025) 0px,
      rgba(255,255,255,0.025) 1px,
      transparent 2px,
      transparent 4px
    );
  opacity: 0.22;
}

.terminal-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow:
    inset 0 0 24px rgba(199, 208, 219, 0.06),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

.terminal-header {
  display: flex;
  align-items: center;
  gap: 14px;
  height: 52px;
  padding: 0 16px;
  border-bottom: 1px solid rgba(199, 208, 219, 0.12); /* match silver outline */
  background:
    linear-gradient(180deg, rgba(10, 18, 36, 0.96), rgba(6, 11, 22, 0.96));
}

.terminal-lights {
  display: flex;
  align-items: center;
  gap: 8px;
}

.terminal-lights .dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
}

.dot-red { background: #ff6b7a; box-shadow: 0 0 8px rgba(255, 107, 122, 0.45); }
.dot-yellow { background: #ffd76b; box-shadow: 0 0 8px rgba(255, 215, 107, 0.35); }
.dot-green { background: #77e7a0; box-shadow: 0 0 8px rgba(119, 231, 160, 0.35); }

.terminal-title {
  color: #c7d0db;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: lowercase;
  font-family: "Roboto", sans-serif;
  text-shadow:
    0 0 6px rgba(199, 208, 219, 0.42),
    0 0 14px rgba(199, 208, 219, 0.18);
}

.terminal-body {
  position: relative;
  padding: 22px 24px 20px;
  color: #c7d0db;
  font-family: "Roboto", sans-serif;
}

.terminal-line,
.terminal-login,
.terminal-response {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 34px;
  line-height: 1.7;
  font-size: 15px;
  letter-spacing: 0.05em;
}

.prompt {
  flex: 0 0 auto;
  color: rgb(0, 204, 255);
  text-shadow:
    0 0 8px rgba(0, 204, 255, 0.55),
    0 0 16px rgba(0, 204, 255, 0.22);
  user-select: none;
}

.type-line {
  color: #c7d0db;
  text-shadow:
    0 0 6px rgba(199, 208, 219, 0.82),
    0 0 14px rgba(199, 208, 219, 0.30),
    0 0 24px rgba(199, 208, 219, 0.12);
  white-space: pre-wrap;
  word-break: break-word;
}

.login-greeting {
  min-height: 36px;
  color: #c7d0db;
  font-family: "Arial";
  font-size: 30px;
  letter-spacing: 0.04em;
  text-shadow:
    0 0 6px rgba(199, 208, 219, 0.9),
    0 0 14px rgba(199, 208, 219, 0.36),
    0 0 24px rgba(199, 208, 219, 0.14);
}

#terminalPassword {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  color: rgb(0, 204, 255);
  font: inherit;
  letter-spacing: 0.08em;
  caret-color: transparent;
  text-shadow:
    0 0 8px rgba(0, 204, 255, 0.70),
    0 0 16px rgba(0, 204, 255, 0.28),
    0 0 28px rgba(0, 204, 255, 0.10);
}


#terminalPassword::placeholder {
  color: rgba(125, 210, 255, 0.34);
}

.terminal-cursor {
  width: 10px;
  height: 20px;
  border-radius: 2px;
  background: rgba(0, 204, 255, 0.95);
  box-shadow:
    0 0 10px rgba(0, 204, 255, 0.85),
    0 0 20px rgba(0, 204, 255, 0.35);
  animation: terminalBlink 1s steps(1) infinite;
  flex: 0 0 auto;
}


.terminal-response {
  margin-top: 14px;
  color: #9fe8ff;
  min-height: 28px;
}

.terminal-response.is-error {
  color: #ff93a3;
  text-shadow:
    0 0 10px rgba(255, 147, 163, 0.28),
    0 0 20px rgba(255, 147, 163, 0.10);
}

.terminal-response.is-success {
  color: rgb(0, 204, 255);
  text-shadow:
    0 0 8px rgba(0, 204, 255, 0.70),
    0 0 18px rgba(0, 204, 255, 0.26),
    0 0 30px rgba(0, 204, 255, 0.10);
}

@keyframes terminalBlink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

@media (max-width: 640px) {
  #loginScreen {
    padding: 14px;
  }

  .login-intro {
    transform: none;
    gap: 8px;
    margin: 0 0 18px 0;
  }

  .loginlogo {
    font-size: 54px;
  }

  .login-logo-image {
    width: 82px;
  }

  .terminal-shell {
    width: 100%;
    min-height: 280px;
    margin-top: 0;
    border-radius: 16px;
  }

  .terminal-header {
    height: 48px;
    padding: 0 12px;
  }

  .terminal-body {
    padding: 18px 16px 16px;
  }

  .terminal-line,
  .terminal-login,
  .terminal-response {
    font-size: 13px;
    gap: 8px;
  }
}


/* Dropdown Button */
.dropbtn {
  background-color: transparent;
  color: white;
  width: 140px;
  height: 76px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  font-family: 'Roboto', sans-serif;
  font-size: 20px;
  display: block;
  border: none;
}

/* The container <div> - needed to position the dropdown content */
.dropdown {
  float: right;
  position: relative;
  display: block;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: rgba(0,0,0,0.6);
  width: 140px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

/* Links inside the dropdown */
.dropdown-content a {
  color: #fff;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

/* Change color of dropdown links on hover */
.dropdown-content a:hover {color: rgb(0,204,255); }

/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {display: block;}

/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover .dropbtn {background-color:rgb(0,204,255,0.6); color: #000;}


/* ==============================
   Milestone A – Accordion UI
   ============================== */



/* Base row = old active look */
.list-accordion-row {
  position: relative;
  margin: 0 auto;
  width: 80%;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  margin-bottom: 10px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.10),
    rgba(255, 255, 255, 0.05)
  );
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.02) inset,
    0 10px 30px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}


.list-accordion-row:hover {
  background: rgba(255,255,255,0.09);
  transform: translateY(-1px);
  z-index: 20;
}

/* Active row = same glass look, but cyan/YourScore tinted */
.list-accordion-row.active {
  border: 1px solid rgba(0, 204, 255, 0.34);
  background: linear-gradient(
    180deg,
    rgba(0, 204, 255, 0.14),
    rgba(0, 204, 255, 0.07)
  );
  box-shadow:
    0 0 0 1px rgba(0, 204, 255, 0.06) inset,
    0 10px 30px rgba(0, 0, 0, 0.24),
    0 0 18px rgba(0, 204, 255, 0.14);
}

/* Optional: make active title pop slightly more */
.list-accordion-row.active .list-accordion-title {
  color: rgb(0, 204, 255);
  text-shadow:
    0 0 8px rgba(0, 204, 255, 0.35),
    0 0 18px rgba(0, 204, 255, 0.12);
}


/* Optional: active sublabel */
.list-accordion-row.active .list-accordion-sub {
  color: rgba(180, 235, 255, 0.9);
}


/* --- List menu trigger: override stim-row positioning/visibility --- */
.list-accordion-row .stim-menu-trigger {
  /* base stim-menu-trigger is hidden; override for list rows */
  visibility: hidden;      /* hidden until hover (like stim rows) */
  opacity: 0;
  pointer-events: none;

  /* undo the stim-row absolute positioning */
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  margin: 0 !important;
}

.list-accordion-row.menu-open {
  z-index: 200;
}

/* show trigger on list hover/active */
.list-accordion-row:hover .stim-menu-trigger,
.list-accordion-row.active .stim-menu-trigger {
  visibility: visible !important;
  opacity: 1;
  pointer-events: auto;
}

/* list menu dropdown placement (right aligned) */
.list-accordion-row .stim-menu {
  left: auto !important;
  z-index: 300;
  right: 10px !important;
  top: 46px !important;
}


.list-accordion-title {
  font-weight: 700;
  font-size: 16px;
  color: #999;
}

.list-accordion-sub {
  line-height: 1.2;
  font-size: 12px;
  opacity: 0.75;
}

.list-accordion-row .score-value {
  display: inline-block;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
}

.list-accordion-row .score-value-your {
  color: rgb(0, 204, 255);
  text-shadow:
    0 0 4px rgba(0, 204, 255, 0.95),
    0 0 8px rgba(0, 204, 255, 0.85),
    0 0 16px rgba(0, 204, 255, 0.75),
    0 0 32px rgba(0, 204, 255, 0.6);
  animation: neonPulseCyan 2.4s ease-in-out infinite;
}

.list-accordion-row .score-value-stim {
  color: #B8B8B8;
  text-shadow:
    0 0 4px rgba(184, 184, 184, 0.8),
    0 0 8px rgba(184, 184, 184, 0.6),
    0 0 16px rgba(184, 184, 184, 0.5);
  animation: neonPulseGray 2.4s ease-in-out infinite;
}

.list-accordion-row .score-separator {
  color: rgba(255, 255, 255, 0.45);
}

/* customs */

.button {
  position: relative;
  color: black;
  height: auto;
  padding: 10px 12px;
  font-family: 'Roboto', sans-serif;
  font-size: 20px;
  background-color: #00bfff;
  min-width: 120px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.button:hover {
  background-color: #87ceeb;
  color: #000;
  cursor: pointer;
}

.center-screen {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  min-height: auto;
  margin-bottom: 10px;
}

.logo {
  font-family: "Bebas Neue", sans-serif;
  float: left;
  font-size: 40px;
  margin-left: 20px;
  color: #fff;
  display: inline-block;
  padding: 12px 16px;
}

.info {
  color: #000;
  font-size: 20px; 
    background: url("./li-left-bg.png"), url("./li-right-bg.png");
    background-position: center left, center center;
    background-repeat: repeat-y, repeat-x;
  background-color: #fff;
  padding: 10px 10px 10px 70px;
  
}

.info a {
  color: #000;
  font-weight: bold;
  text-decoration: underline;
}

.scores {
  background: rgba(0, 0, 0, 0.6);
  width: 300px;
  height:150px;
  padding:0px;
  margin: 10px;
  color: #fff; 
}

.date-number {
  margin-bottom: 50px;
}

.dailyscores {
  background: rgba(0, 0, 0, 0.6);
  width: auto;
  height: 100px;
  padding: 10px;
}

p#yourScore {
  color: rgb(0, 204, 255);
  margin: 0 auto;
  padding-top: 5px;
  font-size: 50px;
  font-weight: bold;

  text-shadow:
    0 0 4px rgba(0, 204, 255, 0.95),
    0 0 8px rgba(0, 204, 255, 0.85),
    0 0 16px rgba(0, 204, 255, 0.75),
    0 0 32px rgba(0, 204, 255, 0.6);

  animation: neonPulseCyan 2.4s ease-in-out infinite;
}

@keyframes neonPulseCyan {
  0%, 100% {
    text-shadow:
      0 0 6px rgba(0, 204, 255, 0.85),
      0 0 18px rgba(0, 204, 255, 0.65);
  }
  50% {
    text-shadow:
      0 0 10px rgba(0, 204, 255, 1),
      0 0 28px rgba(0, 204, 255, 0.85);
  }
}


p#stimulistScore {
  color: #B8B8B8;
  margin: 0 auto;
  padding-top: 5px;
  font-size: 50px;
  font-weight: bold;

  text-shadow:
    0 0 4px rgba(184, 184, 184, 0.8),
    0 0 8px rgba(184, 184, 184, 0.6),
    0 0 16px rgba(184, 184, 184, 0.5);

  animation: neonPulseGray 2.4s ease-in-out infinite;
}


@keyframes neonPulseGray {
  0%, 100% {
    text-shadow:
      0 0 4px rgba(184, 184, 184, 0.75),
      0 0 10px rgba(184, 184, 184, 0.5);
  }
  50% {
    text-shadow:
      0 0 8px rgba(184, 184, 184, 0.9),
      0 0 20px rgba(184, 184, 184, 0.7);
  }
}


 p#time-left {
   color: #fff;
   margin: 5px 0px 5px 0px;
   font-size: 50px; 
   font-weight: bold;
 }

#checklist, #repeatlist {
  text-align: left;
  width: 80%;
}



/* --- Stim actions dropdown (index page only, rendered by UI.js) --- */
.stim-row {
  position: relative;
  margin: 0 auto;
  width: auto;
  display: flex;
  align-items: center;
  padding: 10px;
  gap: 14px;
}

.stim-text {
  display: inline-block;
}

/* Make the menu trigger look like your existing checkbox */
.stim-menu-trigger {
  width: 18px;
  height: 18px;
  margin: 14px 6px 3px 10px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  /* hidden until hover */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s ease;

  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);

  margin: 0;                 /* IMPORTANT: stop shrinking the row */
}

.stim-menu-icon {
  width: 18px;
  height: 18px;
  display: block;
}

.stim-row:hover .stim-menu-trigger {
  opacity: 1;
  visibility: visible;
}

.stim-menu {
  position: absolute;
  left: 10px;
  top: 44px;
  min-width: 160px;
  background: #fff;
  border: 2px solid #000;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 50;
  display: flex;
  flex-direction: column;
    transition: opacity 0.12s ease, transform 0.12s ease;

}

.stim-menu-item {
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border: none;
  background: transparent;
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  cursor: pointer;
}

.stim-menu-item:hover {
  background: rgba(0,0,0,0.08);
}

.stim-editor-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: calc(100% - 40px);
}

.stim-edit-icon {
  font-size: 18px;
}

.stim-edit-input {
  width: 100%;
  font-size: 20px;
  color: #000;
  font-family: 'Roboto', sans-serif;
}

.stim-menu[hidden] {
  display: none !important;
  opacity: 0;
  transform: translateY(-4px);
}


/* Stim category dot */
.stim-category-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  min-width: 10px;
  border-radius: 999px;
  margin: 0 10px 0 2px;
  background: transparent;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.12);
  vertical-align: middle;
}

.stim-category-dot.cat-blue {
  background: #3aa0ff;
  box-shadow: 0 0 8px rgba(58,160,255,0.7);
}

.stim-category-dot.cat-red {
  background: #ff4d5a;
  box-shadow: 0 0 8px rgba(255,77,90,0.7);
}

.stim-category-dot.cat-green {
  background: #31d07f;
  box-shadow: 0 0 8px rgba(49,208,127,0.7);
}

.stim-category-dot.cat-yellow {
  background: #ffd84d;
  box-shadow: 0 0 8px rgba(255,216,77,0.7);
}

/* --- Calendar score styling to match main neon scores --- */

/* --- Calendar grid override --- */
.calendar-table {
  width: 75%;
  margin: 0 auto;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid rgba(184, 184, 184, 0.35); /* outer perimeter */
}

.calendar-table th,
.calendar-table td {
  border: 1px solid rgba(184, 184, 184, 0.25); /* inner grid lines */
  box-sizing: border-box;
}

.calendar-table thead,
.calendar-table tbody,
.calendar-table tr {
  border: none;
}

.calendar-table th {
  background: rgba(184, 184, 184, 0.9);
  color: #000;
}

.calendar-table td {
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
}

.calendar-table td.day {
  position: relative;
  text-align: center;
  vertical-align: middle;
}

.calendar-table td.day {
  position: relative;
  text-align: center;
  vertical-align: middle;
  border: 1px solid rgba(200, 200, 200, 0.35);
  background: rgba(0, 0, 0, 0.5);
}


.calendar-table td.day.today {
  box-shadow:
    inset 0 0 12px rgba(0, 204, 255, 0.25),
    0 0 18px rgba(0, 204, 255, 0.12);
}

.calendar-table td.day.today .date-number {
  color: rgb(0, 204, 255);

  text-shadow:
    0 0 6px rgba(0, 204, 255, 0.9),
    0 0 14px rgba(0, 204, 255, 0.5),
    0 0 22px rgba(0, 204, 255, 0.25);
}


.calendar-table .date-number {
  position: absolute;
  top: 6px;
  right: 8px;
  font-size: 14px;

  /* default = neutral */
  color: rgba(200, 200, 200, 0.8);
}


.calendar-table .score {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  line-height: 1.2;
  margin-top: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.date-number {
  margin-bottom: 6px;
}

.calendar-table .score-separator {
  color: rgba(255,255,255,0.5);
  margin: 0 4px;
}

/* Your score (cyan neon) – matches p#yourScore vibe, smaller intensity */
.calendar-table .score-value-your {
  color: rgb(0, 204, 255);
  font-weight: bold;
  text-shadow:
    0 0 3px rgba(0, 204, 255, 0.85),
    0 0 6px rgba(0, 204, 255, 0.65),
    0 0 12px rgba(0, 204, 255, 0.45);
}

/* StimuList score (gray neon) – matches p#stimulistScore vibe */
.calendar-table .score-value-stim {
  color: #B8B8B8;
  font-weight: bold;
  text-shadow:
    0 0 3px rgba(184, 184, 184, 0.75),
    0 0 6px rgba(184, 184, 184, 0.55),
    0 0 12px rgba(184, 184, 184, 0.4);
}

/* =========================
   STORY CHARTS VIEW
   ========================= */

   /* chart containers */

#categoriesView[hidden],
#chartsBarsView[hidden],
#chartsPieView[hidden],
#empty-story[hidden] {
  display: none !important;
}

.charts-controls {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin: 8px 0 18px 0;
  flex-wrap: wrap;
}

.charts-filter {
  padding: 8px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.72);
  cursor: pointer;
  transition:
    color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease,
    transform 0.2s ease;
}

.charts-filter:hover {
  transform: translateY(-1px);
  color: rgba(255,255,255,0.92);
  background: rgba(255,255,255,0.08);
}

.charts-filter.active {
  color: rgb(0,204,255);
  border-color: rgba(0,204,255,0.38);
  box-shadow:
    0 0 10px rgba(0,204,255,0.34),
    inset 0 0 8px rgba(0,204,255,0.16);
  background: rgba(0,204,255,0.06);
}

.charts-pie-view {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.charts-donut-wrap {
  position: relative;
  width: 280px;
  height: 280px;
  margin: 0 auto 16px auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.charts-donut-canvas {
  display: block;
  width: 280px;
  height: 280px;
  filter:
    drop-shadow(0 0 10px rgba(0,204,255,0.12))
    drop-shadow(0 0 22px rgba(0,204,255,0.08));
}

.charts-legend {
  width: min(420px, 92%);
  margin: 0 auto;
  display: grid;
  gap: 8px;
}

.charts-legend-item {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,0.9);
  font-size: 14px;
  letter-spacing: 0.01em;
}

.charts-legend-dot {
  width: 10px;
  height: 10px;
  min-width: 10px;
  border-radius: 999px;
  display: inline-block;
}

.charts-legend-label {
  color: rgba(255,255,255,0.9);
}

/* stronger bar track */
.category-bar {
  width: 100%;
  height: 18px;
  border-radius: 999px;
  background: rgba(255,255,255,0.07);
  overflow: hidden;
  display: flex;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.04),
    0 0 12px rgba(255,255,255,0.04);
}

/* stronger animation visibility */
.category-bar-completed,
.category-bar-incomplete {
  transition: width 0.95s ease;
  will-change: width;
}

/* filtered mode bars should glow harder */
.category-bar-completed.category-blue {
  background: linear-gradient(90deg, #3aa0ff, #6cc0ff);
  box-shadow:
    0 0 10px rgba(58,160,255,0.88),
    0 0 24px rgba(58,160,255,0.58);
}

.category-bar-completed.category-red {
  background: linear-gradient(90deg, #ff4d5a, #ff7b85);
  box-shadow:
    0 0 10px rgba(255,77,90,0.88),
    0 0 24px rgba(255,77,90,0.58);
}

.category-bar-completed.category-green {
  background: linear-gradient(90deg, #31d07f, #6ef0ab);
  box-shadow:
    0 0 10px rgba(49,208,127,0.88),
    0 0 24px rgba(49,208,127,0.58);
}

.category-bar-completed.category-yellow {
  background: linear-gradient(90deg, #ffd84d, #ffe784);
  box-shadow:
    0 0 10px rgba(255,216,77,0.82),
    0 0 24px rgba(255,216,77,0.48);
}

.category-bar-completed.category-none {
  background: linear-gradient(90deg, rgb(0,204,255), rgb(120,235,255));
  box-shadow:
    0 0 10px rgba(0,204,255,0.88),
    0 0 24px rgba(0,204,255,0.58);
}

#chartsBarsView {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

#empty-story {
  color: rgba(133,133,133,1);
  font-weight: normal;
  text-align: left;
  margin-top: 8px;
}

@media (max-width: 640px) {
  .charts-donut-wrap {
    width: 240px;
    height: 240px;
  }

  .charts-donut-canvas {
    width: 240px;
    height: 240px;
  }

  .charts-legend {
    width: 100%;
  }
}


/* --- Category View --- */
.story-view-switch {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin: 12px 0 18px 0;
}

.story-view-btn {
  padding: 8px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.72);
  cursor: pointer;
  transition: all 0.2s ease;
}

.story-view-btn.active {
  color: rgb(0,204,255);
  border-color: rgba(0,204,255,0.38);
  box-shadow:
    0 0 8px rgba(0,204,255,0.28),
    inset 0 0 6px rgba(0,204,255,0.12);
}

.story-export-btn {
  margin-left: 6px;
}

#categoriesView {
  width: 80%;
  margin: 0 auto 20px auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.category-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.category-label {
  color: rgba(255,255,255,0.86);
  font-size: 14px;
}

.category-bar {
  width: 100%;
  height: 18px;
  border-radius: 999px;
  background: rgba(255,255,255,0.07);
  overflow: hidden;
  display: flex;
}

.category-bar-completed {
  background: rgb(0,204,255);
  box-shadow: 0 0 14px rgba(0,204,255,0.6);
}

.category-bar-incomplete {
  background: rgba(184,184,184,0.35);
}

#empty-story {
  color: rgba(133,133,133,1);
  font-weight: normal;
  text-align: left;
}

.category-bar {
  width: 100%;
  height: 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.07);
  overflow: hidden;
  display: flex;
}

.category-bar-completed,
.category-bar-incomplete {
  transition: width 0.7s ease;
}

.category-bar-incomplete {
  background: rgba(184,184,184,0.35);
}

/* Category-specific completed colors */
.category-bar-completed.category-blue {
  background: #3aa0ff;
  box-shadow: 0 0 10px rgba(58,160,255,0.55);
}

.category-bar-completed.category-red {
  background: #ff4d5a;
  box-shadow: 0 0 10px rgba(255,77,90,0.55);
}

.category-bar-completed.category-green {
  background: #31d07f;
  box-shadow: 0 0 10px rgba(49,208,127,0.55);
}

.category-bar-completed.category-yellow {
  background: #ffd84d;
  box-shadow: 0 0 10px rgba(255,216,77,0.45);
}

.category-bar-completed.category-none {
  background: rgb(0,204,255);
  box-shadow: 0 0 10px rgba(0,204,255,0.55);
}

/* --- Locked features style --- */
.locked-feature {
  opacity: 0.45;
  cursor: not-allowed;
  position: relative;
}

.locked-feature::after {
  content: " 🔒";
  font-size: 12px;
}

.locked-feature.button {
  opacity: 0.78;
}

.locked-feature.button::after {
  opacity: 0.35; /* keep a faint glow */
}

.stim-menu-item.locked-feature:hover {
  background: transparent;
}

.stim-menu-item.locked-feature {
  opacity: 0.65;
}

.stim-row.locked-feature {
  opacity: 0.65;
}


/* --- Live starfield background canvas --- */
#bgCanvas {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: -1;            /* keep behind everything */
  pointer-events: none;   /* never block clicks */
  background: #000;       /* fallback if image missing */
}


/* =========================
   GLASS - ACRYLIC BUTTONS
   ========================= */

/* Optional: define a single accent color */
:root {
  --accent: rgba(0, 204, 255, 1);         /* your cyan */
  --accent-soft: rgba(0, 204, 255, 0.35);
  --glass-fill: rgba(255, 255, 255, 0.10);
  --glass-border: rgba(255, 255, 255, 0.25);
  --glass-highlight: rgba(255, 255, 255, 0.35);
  --glass-shadow: rgba(0, 0, 0, 0.35);
}

/* Override your current .button look */
.button {
  position: relative;
  overflow: hidden;

  /* sizing */
  min-height: 48px;            /* thumb-friendly */
  border-radius: 16px;
  padding: 12px 16px;

  /* glass */
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.16),
    rgba(255, 255, 255, 0.08)
  );
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  /* text */
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;

  /* depth */
  box-shadow:
    0 10px 24px var(--glass-shadow),
    inset 0 1px 0 var(--glass-highlight);

  /* motion */
  transform: translateY(0) scale(1);
  transition:
    transform 120ms ease,
    box-shadow 160ms ease,
    border-color 160ms ease,
    background 160ms ease,
    filter 160ms ease;
}

/* subtle top sheen */
.button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    120% 80% at 30% 10%,
    rgba(255, 255, 255, 0.35),
    rgba(255, 255, 255, 0) 60%
  );
  pointer-events: none;
  opacity: 0.9;
}

/* accent glow layer (used for hover/focus/active) */
.button::after {
  content: "";
  position: absolute;
  inset: -18px;
  background: radial-gradient(
    circle at 50% 50%,
    var(--accent-soft),
    rgba(0, 204, 255, 0) 55%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity 160ms ease;
}

/* hover: slight lift + soft glow */
.button:hover {
  border-color: rgba(255, 255, 255, 0.45);
  transform: translateY(-1px);
  box-shadow:
    0 14px 32px rgba(0, 0, 0, 0.42),
    0 0 18px rgba(0, 204, 255, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.button:hover::after {
  opacity: 0.55;
}

/* focus: accessibility ring that matches your theme */
.button:focus-visible {
  outline: none;
  box-shadow:
    0 14px 32px rgba(0, 0, 0, 0.42),
    0 0 0 3px rgba(0, 204, 255, 0.35),
    0 0 22px rgba(0, 204, 255, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.button:focus-visible::after {
  opacity: 0.75;
}

/* active press: “pressed glass” + stronger glow pulse */
.button:active {
  transform: translateY(1px) scale(0.99);
  filter: saturate(1.05);
  box-shadow:
    0 8px 18px rgba(0, 0, 0, 0.5),
    0 0 26px rgba(0, 204, 255, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    inset 0 0 0 999px rgba(0, 0, 0, 0.06); /* subtle “press” darken */
}

.button:active::after {
  opacity: 1;
}


/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
  .button,
  .button::after {
    transition: none !important;
  }
}

/* Settings buttons should match Story view buttons */
.settings-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 8px 14px;
  margin: 6px 8px 6px 0;
  font-size: 16px;
  line-height: 1.2;
  text-align: center;
  vertical-align: middle;
}

#settingsLocked .settings-action-btn,
#settingsUnlocked .settings-action-btn {
  width: auto;
}

.settings-action-btn:hover {
    color: rgb(0, 204, 255);
    border-color: rgba(0, 204, 255, 0.38);
    box-shadow: 0 0 8px rgba(0, 204, 255, 0.28), inset 0 0 6px rgba(0, 204, 255, 0.12);
}

#settingsLocked,
#settingsUnlocked {
  color: #fff;
}

#settingsLocked td,
#settingsUnlocked td {
  padding: 10px 0;
  vertical-align: middle;
}

/* Ensure main content stays above */
body, main, header {
  position: relative;
  z-index: 0;
}

/* --- iOS install helper sheet --- */
.ios-sheet[hidden] { display: none !important; }

.ios-sheet {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  z-index: 9999;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 16px;
}

.ios-sheet-card {
  width: min(520px, 100%);
  background: rgba(255,255,255,0.95);
  border: 2px solid #000;
  border-radius: 18px;
  box-shadow: 0px 8px 16px rgba(0,0,0,0.3);
  padding: 16px;
}

.ios-sheet-title {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: #000;
  margin-bottom: 10px;
}

.ios-sheet-text {
  font-family: 'Roboto', sans-serif;
  font-size: 18px;
  color: #000;
  line-height: 1.35;
  margin-bottom: 12px;
}

.ios-share {
  display: inline-block;
  padding: 0 6px;
  border: 1px solid rgba(0,0,0,0.25);
  border-radius: 8px;
  background: rgba(255,255,255,0.7);
}

.ios-sheet-close {
  width: 100%;
}


@media (hover: none), (pointer: coarse) {
  /* Touch devices don't have hover.
     Keep the 3-dot menu icon hidden by default, and reveal it after a tap.
     UI.js will add/remove .show-menu-trigger on the tapped .stim-row. */
  .stim-row:active .stim-menu-trigger {
    opacity: 1;
    visibility: visible;
  }

  .stim-row.show-menu-trigger .stim-menu-trigger {
    opacity: 1;
    visibility: visible;
  }
}

