:root {
  color-scheme: dark;
  --ink: #39ff14;
  --muted: #b0dfa2;
  --paper: #050805;
  --surface: #0b140b;
  --hover: #142914;
  --line: #294529;
  --control: #70a860;
  --radius: 1rem;
  font-family: "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-padding-top: 1.5rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font-size: 1.5rem; line-height: 1.6; overflow-wrap: anywhere; }
button, input, select, textarea { font: inherit; }
button, a { touch-action: manipulation; }
button { cursor: pointer; color: inherit; }
button:disabled { cursor: not-allowed; opacity: 1; background: var(--hover); color: var(--muted); border-color: var(--control); }
a { color: inherit; text-decoration: none; }
svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
img { display: block; max-width: 100%; object-fit: contain; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { line-height: 1.3; text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 4vw, 3.5rem); margin-bottom: 1.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.5rem; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [data-view]:focus-visible {
  outline: 3px solid var(--ink); outline-offset: 4px;
}
.svg-library { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; top: .75rem; left: .75rem; padding: .75rem; background: var(--ink); color: var(--paper); z-index: 20; transform: translateY(-200%); }
.skip-link:focus { transform: none; }

.eyebrow { font-size: 1.35rem; font-weight: 700; letter-spacing: .06em; color: var(--muted); }
nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0 2rem; }
.nav-link { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .75rem; border: 1px solid var(--line); background: none; border-radius: .5rem; text-align: center; min-height: 2.75rem; line-height: 1.5; min-width: 0; }
.nav-link.active { background: var(--hover); border-color: var(--control); font-weight: 700; }
.nav-link:hover { background: var(--hover); border-color: var(--control); }
.status-dot { display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--muted); flex-shrink: 0; }
.status-dot.running { background: var(--ink); }
.workspace { min-width: 0; }
.topbar { max-width: 84rem; margin: auto; padding: .25rem 1rem 0; font-size: 1.35rem; color: var(--muted); }
.today-date { text-transform: capitalize; }
main { max-width: 84rem; margin: auto; padding: .5rem 1rem 1.5rem; }
.hero { container-type: inline-size; }
.hero h1 { margin-bottom: .75rem; }
.hero-description { margin-top: .75rem; color: var(--muted); }
.clock-sequence { display: grid; grid-template-columns: minmax(0, 1fr) minmax(32rem, 1.8fr) minmax(0, 1fr); width: 100%; align-items: stretch; justify-items: center; gap: 1rem; }
.hero-clock { display: grid; contain: size; width: 100%; min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.clock-sequence img { width: 100%; height: 100%; min-height: 0; min-width: 0; border-radius: var(--radius); }
.clock-sequence .usage-card { width: 100%; }
.navigation-title { margin-top: 1.5rem; }
[hidden] { display: none !important; }
[data-view] { scroll-margin-top: 1rem; }
.page-heading, .card-heading, .history-heading, .dialog-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.page-heading { margin-bottom: 1.5rem; }
.page-heading>div { flex: 1 1 25rem; min-width: 0; }
.eyebrow { margin-bottom: .75rem; }
.page-heading p:last-child, .muted, .section-description { color: var(--muted); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 1.5rem; }
.side-column { min-width: 0; display: flex; flex-direction: column; gap: 1.5rem; }
.card, .break-card { min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem; }
.small, .section-description { font-size: 1.35rem; }
.section-description { margin-top: .5rem; }
.usage-body { display: flex; flex-wrap: wrap; align-items: flex-start; padding-top: 1rem; gap: 1rem; }
.usage-copy { flex: 1 1 12rem; min-width: 0; }
.time-ring { width: 10.5rem; aspect-ratio: 1; position: relative; flex-shrink: 0; max-width: 100%; container-type: inline-size; }
.time-ring>svg { display: block; width: 100%; height: auto; aspect-ratio: 1; transform: rotate(-90deg); }
.ring-track { stroke: var(--control); stroke-width: 9; }
.ring-progress { stroke: var(--ink); stroke-width: 9; stroke-dasharray: 0 100; }
.ring-label { position: absolute; inset: 1rem; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; pointer-events: none; }
.ring-label strong { font-size: 1.75rem; line-height: 1.3; font-variant-numeric: tabular-nums; }
.ring-label>span { font-size: 1.35rem; color: var(--muted); }
@container (max-width: 10rem) {
  .ring-label { position: static; margin-top: .5rem; }
}
.usage-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-top: .75rem; }
.usage-cta { color: var(--ink); font-weight: 600; }
#usage-status { margin-bottom: .75rem; font-size: 1.35rem; }
.text-button { border: 1px solid var(--control); border-radius: .5rem; background: var(--paper); color: var(--ink); padding: .5rem .75rem; min-height: 2.75rem; }
.app-list { margin-top: .5rem; }
.app-row { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.app-row:last-child { border: 0; }
.app-icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid var(--control); border-radius: .75rem; font-size: 1.5rem; font-weight: 700; }
.app-name { font-weight: 600; }
.app-progress { height: .375rem; background: var(--control); border-radius: .25rem; margin-top: .5rem; overflow: hidden; }
.app-progress>span { display: block; height: 100%; background: var(--ink); width: 0; }
.app-time { color: var(--muted); font-variant-numeric: tabular-nums; }
.timer-button { border: 1px solid var(--control); background: var(--paper); color: var(--ink); padding: .5rem .75rem; border-radius: .5rem; min-height: 2.75rem; }
.timer-button.running { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.tracking-note { display: flex; gap: .5rem; align-items: baseline; font-size: 1.35rem; margin-top: 1rem; color: var(--muted); }
.chart-card { container-type: inline-size; }
.chart { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-template-rows: auto 7rem auto; align-items: end; gap: .5rem; margin: 1.5rem 0; border-bottom: 1px solid var(--line); padding-bottom: 1rem; }
.chart-column { min-width: 0; display: grid; grid-row: 1 / 4; grid-template-rows: subgrid; justify-items: center; align-items: end; }
.chart-value, .chart-day { font-size: 1.35rem; color: var(--muted); }
.chart-bar { width: 60%; min-height: 3px; max-width: 2.5rem; border-radius: .25rem .25rem 0 0; background: var(--control); height: 0; }
.chart-column.today .chart-bar { background: var(--ink); }
.chart-day { align-self: start; }
.chart-column.today .chart-day { color: var(--ink); font-weight: 700; text-decoration: underline; }
.chart-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; font-size: 1.35rem; color: var(--muted); }
.chart-key { display: inline-block; width: .75rem; height: .75rem; background: var(--control); margin-right: .5rem; }
@container (max-width: 22rem) {
  .chart { grid-template-columns: repeat(auto-fit, minmax(min(100%, 4rem), 1fr)); grid-template-rows: none; }
  .chart-column { grid-row: auto; grid-template-rows: auto 7rem auto; }
}

.break-card>p { color: var(--muted); margin: .5rem 0; }
.break-countdown { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; border-top: 1px solid var(--line); padding: .5rem 0; }
.break-countdown strong { font-size: 1.75rem; font-variant-numeric: tabular-nums; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; padding: .75rem 1rem; border: 1px solid var(--control); border-radius: .5rem; font-weight: 600; line-height: 1.2; }
.button-primary, .button-light { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.button-primary:hover:not(:disabled), .button-light:hover:not(:disabled) { background: #b0ffa0; }
.button-light { width: 100%; }
.button-outline { background: var(--paper); color: var(--ink); }
.button-outline:hover, .text-button:hover, .timer-button:hover:not(.running), .delete-entry:hover { background: var(--hover); }
.break-caption { display: block; text-align: center; font-size: 1.35rem; color: var(--muted); margin-top: 1rem; }
.night-heading { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.night-heading>div { flex: 1 1 10rem; min-width: 0; }
.moon-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid var(--control); border-radius: .75rem; }
.night-card>p { color: var(--muted); margin-top: .5rem; }
.switch { position: relative; width: 3.5rem; height: 2.75rem; margin-left: auto; flex-shrink: 0; }
.switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; width: 100%; height: 100%; }
.switch>span { position: absolute; inset: .375rem 0; display: block; background: var(--paper); border: 2px solid var(--control); border-radius: 2rem; pointer-events: none; }
.switch>span:before { content: ""; position: absolute; width: 1.25rem; height: 1.25rem; left: .25rem; top: .25rem; background: var(--muted); border-radius: 50%; }
.switch input:checked+span { background: var(--ink); border-color: var(--ink); }
.switch input:checked+span:before { transform: translateX(1.5rem); background: var(--paper); }
.switch input:focus-visible+span, .mood-option input:focus-visible+span { outline: 3px solid var(--ink); outline-offset: 4px; }
.privacy-note { display: flex; align-items: start; gap: .75rem; color: var(--muted); font-size: 1.35rem; }
.privacy-note strong { color: var(--ink); }

.journal-card { margin-top: 0; }
.journal-flower { font-size: 2.5rem; }
.mood-fieldset { border: 0; padding: 0; margin: .75rem 0; min-width: 0; }
.mood-options { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.mood-option { position: relative; flex: 1 1 7rem; min-width: 0; }
.mood-option input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.mood-option>span { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .5rem; min-height: 2.75rem; border: 1px solid var(--control); border-radius: .5rem; background: var(--paper); position: relative; pointer-events: none; }
.mood-option b { font-size: 1.75rem; font-weight: 400; }
.mood-option input:checked+span { background: var(--ink); color: var(--paper); border-color: var(--ink); font-weight: 700; }
.mood-option:hover>span { border-color: var(--ink); }
.journal-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); align-items: end; gap: 1.25rem; }
.journal-fields label { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.optional { font-size: 1.35rem; color: var(--muted); }
.journal-fields .button { grid-column: 1 / -1; justify-self: end; }
input:not([type=checkbox], [type=radio]), select, textarea { padding: .75rem; border: 1px solid var(--control); background: var(--paper); border-radius: .5rem; color: var(--ink); min-width: 0; width: 100%; }
textarea { resize: vertical; }
select option { background: var(--paper); color: var(--ink); }
input::placeholder { color: var(--muted); opacity: 1; }
input:user-invalid, select:user-invalid { border: 2px dashed var(--ink); }
.journal-history { border-top: 1px solid var(--line); margin-top: 1.5rem; padding-top: 1.25rem; }
.journal-history ul { padding: 0; margin: 1rem 0 0; list-style: none; }
.empty-state { color: var(--muted); }
.journal-entry { padding: 1rem 0; border-bottom: 1px solid var(--line); display: flex; align-items: start; gap: .75rem; }
.entry-content { flex: 1; min-width: 0; }
.entry-content p { color: var(--muted); white-space: pre-wrap; }
.entry-content time { font-size: 1.35rem; color: var(--muted); }
.delete-entry, .close-button { display: grid; place-items: center; flex-shrink: 0; min-width: 2.75rem; min-height: 2.75rem; border: 1px solid var(--control); background: var(--paper); color: var(--muted); border-radius: .5rem; }
.export-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 1.5rem; margin-top: 1.5rem; }
.export-banner>div { flex: 1 1 22rem; min-width: 0; }
.export-icon { display: grid; place-items: center; border: 1px solid var(--control); border-radius: .75rem; width: 3rem; height: 3rem; }
.export-banner p { color: var(--muted); margin: .5rem 0; }
footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: 1.35rem; color: var(--muted); }
.footer-brand { font-size: 1.75rem; font-weight: 700; color: var(--ink); }
footer>span:last-child { display: flex; align-items: center; gap: .5rem; }
.app-disclaimer { font-size: 1.35rem; color: var(--muted); margin-top: 1rem; }
.notice { padding: 1rem; background: var(--surface); border: 2px dashed var(--ink); border-radius: .5rem; margin-top: 1rem; }

dialog { color: var(--ink); background: var(--surface); width: min(38rem, calc(100% - 2rem)); max-width: none; border: 1px solid var(--control); border-radius: var(--radius); padding: 1.5rem; max-height: 90dvh; overflow: auto; }
dialog::backdrop { background: #000e; }
.dialog-heading { flex-wrap: nowrap; align-items: start; margin-bottom: 1rem; }
.dialog-heading>h2, .dialog-heading>.eyebrow { min-width: 0; }
dialog p { color: var(--muted); margin: 1rem 0; }
dialog .form-label { display: block; margin: 1.25rem 0 .5rem; }
dialog .button { width: 100%; margin-top: .75rem; }
hr { border: 0; border-top: 1px solid var(--line); margin: 1.5rem 0; }
.danger-button { background: var(--paper); border: 2px dashed var(--ink); color: var(--ink); border-radius: .5rem; padding: .75rem; }
.danger-button:hover { background: var(--hover); }
#break-dialog { text-align: center; }
.breathing-orb { display: grid; place-items: center; width: 6rem; max-width: 100%; aspect-ratio: 1; margin: 1.5rem auto; background: var(--paper); color: var(--ink); border: 1px solid var(--control); border-radius: 50%; }
.breathing-orb svg { width: 2.5rem; height: 2.5rem; }
#breath-time { font-size: 2.5rem; font-variant-numeric: tabular-nums; color: var(--ink); }
.finish-break { margin-top: 1rem; }
details { color: var(--muted); margin-top: 1.5rem; }
summary { cursor: pointer; color: var(--ink); }
details ol { padding-left: 1.5rem; }
details li { margin-top: .75rem; }
.toast { position: fixed; bottom: 1rem; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 2rem); padding: 1rem; background: var(--surface); color: var(--ink); border: 1px solid var(--control); border-radius: .75rem; z-index: 10; pointer-events: none; }
.toast[hidden] { display: none; }

@container (max-width: 60rem) {
  .clock-sequence { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .hero-clock { contain: none; max-width: 12rem; }
  .clock-sequence img { height: auto; aspect-ratio: 1; }
  .clock-sequence .usage-card { max-width: 40rem; }
}
@media (max-width: 75rem) {
  .dashboard-grid { grid-template-columns: minmax(0, 1fr); }
  nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 40rem) {
  .journal-fields { grid-template-columns: minmax(0, 1fr); }
  .app-row { grid-template-columns: minmax(0, 1fr) auto; }
  .app-row .timer-button { grid-column: 1 / -1; }
  .app-icon { display: none; }
  .nav-link svg { display: none; }
}
@media (max-width: 35rem) {
  main { padding: .5rem .75rem 1rem; }
  .card, .break-card, dialog { padding: 1rem; }
  .journal-fields .button { justify-self: stretch; }
  .chart { gap: .25rem; }
  .topbar { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
