/* Base variables and resets */
:root {
  --bg: #ffffff;
  --surface: #ffffff;
  --text: #0f172a;
  --muted: #6b7280;
  --accent: #ef4444;
  --accent-2: #f97316;
  --glass: rgba(255, 255, 255, 0.5);
  --card-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
  --ghost-border: rgba(0, 0, 0, 0.07);
  --input-bg: rgba(255, 255, 255, 0.98);
  --input-border: rgba(0, 0, 0, 0.06);
  --toast-bg: rgba(0, 0, 0, 0.65);
  --toast-color: #fff;
  --icon-hover-bg: rgba(0, 0, 0, 0.04);
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background: linear-gradient(180deg, var(--bg), #f5f7fb);
  color: var(--text);
  min-height: 100vh;
  position: relative;
  overflow-x: hidden;
}

/* Decorative background blobs */
body::before, body::after {
  content: "";
  position: fixed;
  border-radius: 50%;
  transform: translate(-30%, 10%);
  z-index: 0;
  opacity: 0.06;
}
body::before {
  width: 680px;
  height: 680px;
  background: linear-gradient(135deg, var(--mode-accent), var(--mode-accent-2));
  left: -200px;
  top: -120px;
}
body::after {
  width: 420px;
  height: 420px;
  background: linear-gradient(135deg, #6ea8fe, #a78bfa);
  right: -160px;
  bottom: -60px;
}

.app { display: flex; flex-direction: column; min-height: 100vh; }
.header { display: flex; align-items: center; justify-content: space-between; padding: 20px 28px; }
.logo {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: flex;
  align-items: center;
  gap: 8px;
  transition:all .3s ease;
}
.logo:hover {
  filter:brightness(1.1);
  transform:scale(1.02);
}
.icon-btn {
  border: none;
  background: transparent;
  font-size: 1.1rem;
  cursor: pointer;
  padding: 8px;
  border-radius: 10px;
  transition: all 0.15s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
}
.icon-btn:hover { 
  background: var(--icon-hover-bg);
  color: var(--mode-accent);
  transform: translateY(-1px);
}
.icon-btn:focus { 
  outline: 2px solid var(--mode-accent);
  outline-offset: 2px;
}

.main{display:flex;flex-direction:column;gap:20px;padding:24px;align-items:start}

.timer-area{background:var(--surface);border-radius:28px;padding:45px 55px;display:flex;flex-direction:column;justify-content:center;gap:27px;box-shadow:var(--card-shadow);min-height:700px;max-width:950px}
.timer-top{display:flex;flex-direction:column;gap:12px}
.session-indicator{font-size:20px;font-weight:700;color:var(--muted);letter-spacing:0.01em}

/* Quote area */
.quote-area{position:fixed;right:32px;top:150px;width:475px;max-width:42vw;z-index:40;display:flex;justify-content:flex-start}
.quote-area.hidden{opacity:0;transform:translateX(12px);pointer-events:none;visibility:hidden}
.quote-card{width:100%;background:linear-gradient(180deg,var(--glass), rgba(0,0,0,0.03));box-shadow:var(--card-shadow);border-radius:20px;padding:25px;color:var(--text);position:relative;}
.quote-icon{position:absolute;top:15px;left:25px;opacity:0.2;}
.quote-icon svg{stroke:var(--accent);color:var(--accent);width:48px;height:48px;}
.quote-card blockquote{margin:0;margin-top:48px;font-size:22px;line-height:1.5;color:var(--muted);font-weight:400;position:relative;z-index:1}
.quote-card cite{display:block;margin-top:14px;font-size:17px;color:var(--muted);}
.quote-card.fade-enter{opacity:0;transform:translateY(6px)}
.quote-card.fade-enter-active{opacity:1;transform:none;transition:all 420ms ease}
.quote-card.fade-exit{opacity:1}
.quote-card.fade-exit-active{opacity:0;transition:opacity 280ms ease}

.progress-container{width:100%;height:8px;background:color-mix(in srgb, var(--muted) 12%, transparent);border-radius:6px;overflow:hidden}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));width:0%}
.progress-bar{transition:width .6s ease}

.session-dots{display:flex;gap:8px;align-items:center;margin-left:0;margin-top:8px}
.session-dots .dot{width:10px;height:10px;border-radius:50%;background:color-mix(in srgb, var(--muted) 15%, transparent)}
.session-dots .dot.active{background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 5px 10px rgba(0,0,0,0.06)}

.timer-display{display:flex;justify-content:center;align-items:baseline;width:100%;min-height:275px}
.timer-display span{display:inline-block}
 #minutes, #seconds{display:inline-block}
#minutes{font-weight:900;font-size:clamp(90px, 20vw, 300px);line-height:1;color:var(--text)}
#seconds{font-weight:700;font-size:clamp(60px, 12vw, 175px);line-height:1;color:var(--muted)}
.colon{align-self:baseline;font-weight:900;font-size:clamp(68px, 9vw, 200px);line-height:1;margin:0 12px;color:var(--text);display:inline-block;vertical-align:middle;transform:translateY(-0.06em)}

.timer-controls{display:flex;gap:14px;justify-content:center}
.start-btn{
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
  color:white;
  border:none;
  padding:20px 32px;
  border-radius:18px;
  font-size:24px;
  cursor:pointer;
  box-shadow:0 14px 36px rgba(0,0,0,0.14);
  transition:all .2s ease;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  gap:10px;
}
.btn-icon{display:inline-block}
.btn-text{font-weight:400}
.btn-icon svg{width:24px;height:24px}
.start-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 42px rgba(0,0,0,0.18);
  filter:brightness(1.05);
}
.start-btn:active{
  transform:translateY(0);
  box-shadow:0 8px 24px rgba(0,0,0,0.12);
}
.ghost-btn{
  background:transparent;
  border:1px solid var(--ghost-border);
  padding:18px 24px;
  border-radius:16px;
  color:var(--muted);
  cursor:pointer;
  font-size:18px;
  transition:all .2s ease;
}
.ghost-btn:hover{
  border-color:var(--mode-accent);
  color:var(--mode-accent);
  background:var(--icon-hover-bg);
  transform:translateY(-1px);
}
.ghost-btn:active{
  transform:translateY(0);
}
.small{padding:10px 14px;font-size:16px}
.start-btn.small:hover {
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(0,0,0,0.16);
}
.ghost-btn.small:hover {
  border-color:var(--mode-accent);
  color:var(--mode-accent);
  background:var(--icon-hover-bg);
}
.icon-btn-large{font-size:24px;padding:18px 20px;display:flex;align-items:center;justify-content:center}
.icon-btn-large svg{display:inline-block;width:28px;height:28px}

.settings-area{background:linear-gradient(180deg, var(--glass), rgba(0,0,0,0.06));color:var(--text);border-radius:20px;padding:22px;box-shadow:var(--card-shadow);position:fixed;right:24px;top:80px;width:440px;max-width:92vw;height:calc(100vh - 160px);transform:translateX(calc(100% + 48px));transition:transform .28s ease;z-index:60}
.settings-area.open{transform:translateX(0);}
.settings-bg{position:fixed;inset:0;background:rgba(0,0,0,0.2);z-index:50;opacity:0;pointer-events:none;transition:opacity .2s ease}
.settings-bg.open{opacity:1;pointer-events:auto}
.settings-inner{display:flex;flex-direction:column;gap:14px}
.settings-head{display:flex;align-items:center;justify-content:space-between}
.settings-area h2{margin:0 0 6px 0;font-size:20px}
.setting-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:16px}
.setting-row.slider-row{flex-direction:column;align-items:flex-start}
.setting-row.slider-row label{margin-bottom:8px}
.setting-input{display:flex;gap:12px;align-items:center}
.setting-input input[type=number]{width:110px;padding:10px;border-radius:10px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font-size:16px}
.setting-input input[type=text]{width:260px;padding:10px;border-radius:10px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font-size:16px}
.setting-input select{padding:10px;border-radius:10px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font-size:16px}

/* Slider styles */
.slider-container{display:flex;align-items:center;gap:12px;width:100%}
.slider-container input[type=range]{flex:1;height:6px;border-radius:3px;background:var(--input-border);outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}
.slider-container input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:linear-gradient(90deg,var(--accent),var(--accent-2));cursor:pointer;transition:all 0.2s ease;box-shadow:0 2px 6px rgba(0,0,0,0.1)}
.slider-container input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:linear-gradient(90deg,var(--accent),var(--accent-2));cursor:pointer;transition:all 0.2s ease;box-shadow:0 2px 6px rgba(0,0,0,0.1);border:none}
.slider-container input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.1);box-shadow:0 3px 8px rgba(0,0,0,0.15)}
.slider-container input[type=range]:hover::-moz-range-thumb{transform:scale(1.1);box-shadow:0 3px 8px rgba(0,0,0,0.15)}
.slider-value{min-width:40px;text-align:center;font-weight:600;color:var(--text);font-size:16px;padding:6px 8px;background:var(--input-bg);border-radius:8px;border:1px solid var(--input-border)}
.settings-footer{margin-top:8px;text-align:center;color:var(--muted)}

footer{padding:24px;text-align:center;color:var(--muted)}

/* Responsive */
@media (max-width:940px){
  .main{flex-direction:column}
  .settings-area{right:10px;left:10px;top:70px;width:auto;height:auto;border-radius:14px;transform:translateX(calc(100% + 24px))}
  .quote-area{display:none}
}

/* Themes */
.theme-morning{--bg:#fff7ed;--surface:#fff;--text:#0f172a;--muted:#6b7280;--accent:#ef4444;--accent-2:#f97316;--glass:rgba(255,255,255,0.9);--ghost-border:rgba(0,0,0,0.07);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-night{--bg:#0b1220;--surface:#071022;--text:#e6eef8;--muted:#9aa4b2;--accent:#5eead4;--accent-2:#34d399;--glass:rgba(6,10,14,0.65);--ghost-border:rgba(255,255,255,0.08);--input-bg:rgba(255,255,255,0.02);--input-border:rgba(255,255,255,0.06)}
.theme-night{--icon-hover-bg:rgba(255,255,255,0.04)}
.theme-mint{--bg:#f0fdf4;--surface:#ffffff;--text:#052e22;--muted:#5d7a6c;--accent:#10b981;--accent-2:#34d399;--glass:rgba(255,255,255,0.9);--ghost-border:rgba(0,0,0,0.07);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-lavender{--bg:#f5f3ff;--surface:#ffffff;--text:#241a2f;--muted:#72628a;--accent:#7c3aed;--accent-2:#a78bfa;--glass:rgba(255,255,255,0.92);--ghost-border:rgba(0,0,0,0.07);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}

/* New themes */
.theme-sunrise{--bg:#fff9f4;--surface:#fff;--text:#2b2b2b;--muted:#8a6b5a;--accent:#ff6b6b;--accent-2:#ffb86b;--glass:rgba(255,249,240,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-ocean{--bg:#eaf8ff;--surface:#ffffff;--text:#023047;--muted:#5b8aa6;--accent:#0284c7;--accent-2:#06b6d4;--glass:rgba(236,249,255,0.93);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-forest{--bg:#f2fbf4;--surface:#ffffff;--text:#092b18;--muted:#3b5a46;--accent:#059669;--accent-2:#10b981;--glass:rgba(245,255,249,0.96);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-rose{--bg:#fff3f7;--surface:#ffffff;--text:#321827;--muted:#775a6c;--accent:#ec4899;--accent-2:#f472b6;--glass:rgba(255,244,247,0.96);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-sunset{--bg:#fef2f2;--surface:#ffffff;--text:#7f1d1d;--muted:#a85a5a;--accent:#f97316;--accent-2:#fb923c;--glass:rgba(254,242,242,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-desert{--bg:#fefce8;--surface:#ffffff;--text:#92400e;--muted:#b45309;--accent:#f59e0b;--accent-2:#fbbf24;--glass:rgba(254,252,232,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-sky{--bg:#f0f9ff;--surface:#ffffff;--text:#0c4a6e;--muted:#0369a1;--accent:#0ea5e9;--accent-2:#38bdf8;--glass:rgba(240,249,255,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-meadow{--bg:#f0fdf4;--surface:#ffffff;--text:#166534;--muted:#16a34a;--accent:#22c55e;--accent-2:#4ade80;--glass:rgba(240,253,244,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-autumn{--bg:#fef3c7;--surface:#ffffff;--text:#9a3412;--muted:#c2410c;--accent:#ea580c;--accent-2:#fb923c;--glass:rgba(254,243,199,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-coral{--bg:#fff5f5;--surface:#ffffff;--text:#7c2d12;--muted:#9a3412;--accent:#f97316;--accent-2:#fb7185;--glass:rgba(255,245,245,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-indigo{--bg:#f0f4ff;--surface:#ffffff;--text:#1e1b4b;--muted:#6366f1;--accent:#6366f1;--accent-2:#8b5cf6;--glass:rgba(240,244,255,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-sand{--bg:#fefdf8;--surface:#ffffff;--text:#92400e;--muted:#b45309;--accent:#d97706;--accent-2:#f59e0b;--glass:rgba(254,253,248,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-emerald{--bg:#ecfdf5;--surface:#ffffff;--text:#064e3b;--muted:#059669;--accent:#10b981;--accent-2:#06b6d4;--glass:rgba(236,253,245,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-plum{--bg:#faf5ff;--surface:#ffffff;--text:#581c87;--muted:#7c3aed;--accent:#9333ea;--accent-2:#c084fc;--glass:rgba(250,245,255,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-berry{--bg:#fdf2f8;--surface:#ffffff;--text:#881337;--muted:#be185d;--accent:#db2777;--accent-2:#f472b6;--glass:rgba(253,242,248,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-gold{--bg:#fef7e0;--surface:#ffffff;--text:#a16207;--muted:#d97706;--accent:#f59e0b;--accent-2:#fbbf24;--glass:rgba(254,247,224,0.95);--ghost-border:rgba(0,0,0,0.06);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.06)}
.theme-pearl{--bg:#fafafa;--surface:#ffffff;--text:#1a1a1a;--muted:#666666;--accent:#333333;--accent-2:#555555;--glass:rgba(255,255,255,0.9);--ghost-border:rgba(0,0,0,0.08);--input-bg:rgba(255,255,255,0.98);--input-border:rgba(0,0,0,0.08);--card-shadow:0 6px 18px rgba(0,0,0,0.04)}
.theme-obsidian{--bg:#0f0f0f;--surface:#1a1a1a;--text:#e8e8e8;--muted:#a0a0a0;--accent:#d4d4d4;--accent-2:#b8b8b8;--glass:rgba(26,26,26,0.85);--ghost-border:rgba(255,255,255,0.08);--input-bg:rgba(26,26,26,0.95);--input-border:rgba(255,255,255,0.12);--card-shadow:0 6px 18px rgba(0,0,0,0.4);--icon-hover-bg:rgba(255,255,255,0.08);--toast-bg:rgba(26,26,26,0.9);--toast-color:#e8e8e8}

.theme-night{--toast-bg: rgba(255,255,255,0.06); --toast-color: var(--text)}

/* Mode-specific accents for progress bar, dots, hovers, etc. */
body[data-mode="work"] { --mode-accent: #ef4444 !important; --mode-accent-2: #f97316 !important; }
body[data-mode="short"] { --mode-accent: #10b981 !important; --mode-accent-2: #34d399 !important; }
body[data-mode="long"] { --mode-accent: #7c3aed !important; --mode-accent-2: #a78bfa !important; }

/* Small aesthetic helpers */
.button-row{text-align:center}
.icon{font-size:18px}

/* Tiny animation for progress */
@keyframes pulse {0%{transform:scale(1)}50%{transform:scale(1.02)}100%{transform:scale(1)}}
.timer-area:hover{animation:pulse 8s ease-in-out infinite}

/* Full browser width display adaptation */
.timer-display{width:100%}
#minutes, #seconds, .colon{font-variant-numeric:tabular-nums;transition:color .24s ease}

.toast{position:fixed;right:20px;bottom:30px;background:var(--toast-bg);color:var(--toast-color);padding:10px 14px;border-radius:8px;z-index:9999;box-shadow:0 6px 18px rgba(0,0,0,0.12);}


