.notification-preference{justify-items:center;gap:.45rem;width:min(100%,31rem);margin-top:.9rem;display:grid}.notification-preference .notification-enable{min-width:12rem;min-height:44px;padding-block:.55rem;font-size:.88rem}.notification-permission-status{color:var(--muted);text-align:center;margin:0;font-size:.8rem;line-height:1.45}.completion-notice{z-index:10;width:min(100vw - 2rem,25rem);color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#100c19f5;border:1px solid #a995ffa6;border-radius:1rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid;position:fixed;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);box-shadow:0 0 2rem #7c5cff2e,0 1.5rem 4rem #0006}.completion-notice__kicker{color:var(--accent-light);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .25rem;font-size:.75rem;font-weight:700}.completion-notice h2{margin:0;font-size:1.05rem;line-height:1.3}.completion-notice__message{color:var(--muted);margin:.3rem 0 0;font-size:.9rem;line-height:1.5}.completion-notice__dismiss{min-height:44px;color:var(--text);background:#7c5cff24;border:1px solid #a995ff8c;border-radius:.7rem;padding:.55rem .8rem;font-weight:700}.completion-notice__dismiss:hover{border-color:var(--accent-light);background:#7c5cff38}@media (width<=35rem){.notification-preference,.notification-preference .notification-enable{width:100%}.completion-notice{grid-template-columns:1fr;width:100%;margin-top:-1.5rem;position:static}.completion-notice__dismiss{width:100%}}.storage-status-slot{align-items:center;min-height:2.5rem;margin:-.25rem 0 .75rem;display:flex}.storage-status{color:#d8d1e6;overflow-wrap:anywhere;background:#15121fe0;border:1px solid #a995ff59;border-radius:.65rem;width:fit-content;max-width:100%;margin:0;padding:.45rem .7rem;font-size:.82rem;line-height:1.45}.storage-status--success{color:#e3ddff;border-color:#a995ff8c}.storage-status--error{color:#ffd8df;border-color:#ff9aaa8c}.session-card{border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:1rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.15rem;display:grid;box-shadow:0 1.25rem 3.5rem #0003}.session-card__content{min-width:0}.session-card__subject{overflow-wrap:anywhere;color:var(--text);margin:0;font-weight:700}.session-card__meta{color:var(--muted);flex-wrap:wrap;gap:.3rem .75rem;margin-top:.3rem;font-size:.88rem;display:flex}.session-card__meta span{color:var(--accent-light);font-weight:700}.session-card__actions,.subject-editor__actions{flex-wrap:wrap;gap:.5rem;display:flex}.session-action{border:1px solid var(--border);min-height:44px;color:var(--muted);background:#0d0a1480;border-radius:.7rem;padding:.55rem .85rem;font-weight:700;transition:color .15s,border-color .15s,background-color .15s}.session-action:hover{border-color:var(--accent-light);color:var(--text);background:#7c5cff24}.session-action--edit,.session-action--save{color:var(--text);background:#7c5cff1f;border-color:#a995ff8c}.session-action--delete:hover{color:#ffd8df;background:#ff70891a;border-color:#ff9aaa}.subject-editor{gap:.55rem;display:grid}.subject-editor label{color:var(--text);font-size:.9rem;font-weight:700}.subject-editor input{width:100%;min-width:0;min-height:44px;color:var(--text);caret-color:var(--accent-light);background:#0d0a14;border:1px solid #a995ff94;border-radius:.72rem;padding:.7rem .8rem}.subject-editor input:focus-visible,.history-heading__focus-target:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}.subject-editor__footer{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.subject-editor__count{color:var(--muted);font-size:.78rem}.history-heading__focus-target{border-radius:.25rem}@media (width<=35rem){.session-card{grid-template-columns:1fr;align-items:stretch}.session-card__actions{grid-template-columns:1fr 1fr;display:grid}.session-action{width:100%}.subject-editor__footer{flex-direction:column;align-items:stretch}.subject-editor__actions{grid-template-columns:1fr 1fr;display:grid}}@media (width<=23rem){.session-card__actions,.subject-editor__actions{grid-template-columns:1fr}}:root{color:#f6f3ff;font-synthesis:none;text-rendering:optimizelegibility;--page:#07060c;--surface:#15121fe0;--surface-strong:#15121f;--surface-soft:#231d33b3;--text:#f6f3ff;--muted:#b8b1c8;--accent:#7c5cff;--accent-light:#a995ff;--accent-ink:#0b0715;--border:#b8b1c833;--ring-track:#b8b1c829;--focus-ring:#b7a6ff;background:#07060c;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--page);min-width:320px;min-height:100%}body{background:radial-gradient(circle at 50% 32%, #7c5cff1a, transparent 34rem), var(--page);min-width:320px;min-height:100vh;margin:0;position:relative;overflow-x:hidden}body:before,body:after{z-index:0;content:"";pointer-events:none;position:fixed}body:before{opacity:.92;background:linear-gradient(125deg,#050409 18%,#100921 42%,#07111a 68%,#090711 88%) 0 0/220% 220%;animation:32s ease-in-out infinite alternate ambient-shift;inset:-35%}body:after{aspect-ratio:1;filter:blur(8px);opacity:.7;background:radial-gradient(circle,#7c5cff2e 0%,#7c5cff12 36%,#0000 70%);border-radius:50%;width:min(78vw,44rem);animation:11s ease-in-out infinite ambient-breathe;top:6rem;left:50%;transform:translate(-50%)scale(.94)}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.48}.app-shell{z-index:1;width:min(100% - 2rem,52rem);min-height:100vh;margin-inline:auto;padding-block:clamp(1.5rem,4vw,3rem) 4rem;position:relative}.app-header{text-align:center}.app-kicker,.section-kicker{color:var(--accent-light);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-size:.78rem;font-weight:700}.app-header h1,.section-heading h2,.history-heading h2{color:var(--text);margin:0;line-height:1.2}.app-header h1{font-size:clamp(1.55rem,4vw,2rem);font-weight:700}.app-purpose{max-width:32rem;color:var(--muted);margin:.65rem auto 0;line-height:1.6}.app-main{gap:clamp(2.5rem,7vw,4.5rem);padding-top:clamp(2rem,6vw,3.5rem);display:grid}.timer-workspace{flex-direction:column;align-items:center;display:flex}.mode-selector{border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0d0a14bd;border-radius:1rem;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,36rem);padding:.35rem;display:grid;box-shadow:0 1rem 3rem #0000002e}.mode-button{color:#d0c9de;background:0 0;border:1px solid #0000;border-radius:.72rem;min-height:44px;padding:.7rem .75rem;font-size:.88rem;font-weight:650;line-height:1.2;transition:color .16s,border-color .16s,background-color .16s}.mode-button:hover{color:var(--text);background:#b8b1c814}.mode-button--active,.mode-button--active:hover{color:var(--text);background:#7c5cff3d;border-color:#a995ff94;box-shadow:inset 0 0 0 1px #7c5cff1f}.timer-ring{--timer-progress:1turn;aspect-ratio:1;background:conic-gradient(var(--accent) 0turn var(--timer-progress), var(--ring-track) var(--timer-progress) 1turn);border-radius:50%;place-items:center;width:clamp(15rem,56vw,22rem);margin-block:clamp(2rem,6vw,3rem);display:grid;position:relative;box-shadow:0 0 1.5rem #7c5cff38,0 0 5rem #7c5cff1f,0 2rem 5rem #00000052}.timer-ring[data-running=true]{box-shadow:0 0 1.75rem #7c5cff4d,0 0 5.5rem #7c5cff26,0 2rem 5rem #00000052}.timer-ring:before{border-radius:inherit;content:"";background:radial-gradient(circle at 50% 34%,#7c5cff17,#0000 58%),#0d0a14;border:1px solid #b8b1c81f;position:absolute;inset:clamp(.55rem,2vw,.75rem)}.timer-content{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.timer-mode,.timer-state{color:var(--muted);font-size:.88rem;font-weight:600}.timer-digits{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.06em;text-shadow:0 0 2rem #7c5cff2e;margin-block:.35rem;font-size:clamp(3.6rem,14vw,6.2rem);font-weight:720;line-height:1}.timer-state{color:var(--accent-light)}.timer-controls{flex-wrap:wrap;justify-content:center;gap:.75rem;width:min(100%,31rem);display:flex}.control-button{border-radius:.85rem;min-width:8rem;min-height:46px;padding:.75rem 1.2rem;font-weight:750;transition:transform .15s,border-color .15s,background-color .15s}.control-button:active:not(:disabled){transform:translateY(1px)}.control-button--primary{border:1px solid var(--accent-light);color:var(--accent-ink);background:var(--accent-light);box-shadow:0 .75rem 2.25rem #7c5cff38}.control-button--primary:hover:not(:disabled){background:#b7a6ff}.control-button--secondary{color:var(--text);background:#7c5cff1f;border:1px solid #a995ffa8}.control-button--secondary:hover:not(:disabled),.control-button--ghost:hover:not(:disabled){border-color:var(--accent-light);background:#7c5cff2b}.control-button--ghost{border:1px solid var(--border);color:#d0c9de;background:#0d0a1475}.today-section,.history-section{width:min(100%,43rem);margin-inline:auto}.section-heading,.history-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.section-heading h2,.history-heading h2{font-size:clamp(1.3rem,3vw,1.65rem)}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin:0;display:grid}.summary-item,.empty-state,.session-item{border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1.25rem 3.5rem #0003}.summary-item{border-radius:1rem;flex-direction:column-reverse;justify-content:space-between;min-height:7rem;padding:1.15rem;display:flex}.summary-item dt{color:var(--muted);font-size:.9rem}.summary-item dd{color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-size:2rem;font-weight:750;line-height:1}.save-scope{color:var(--muted);white-space:nowrap;margin:0 0 .1rem;padding-left:1rem;font-size:.8rem;position:relative}.save-scope:before{background:var(--accent-light);content:"";border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:50%;left:0;transform:translateY(-50%);box-shadow:0 0 .7rem #7c5cff80}.empty-state{border-radius:1rem;padding:clamp(1.25rem,4vw,1.75rem)}.empty-state p{color:var(--muted);margin:0;line-height:1.6}.empty-state .empty-state__title{color:var(--text);margin-bottom:.25rem;font-weight:700}.session-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.session-item{border-radius:1rem;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem;display:flex}.session-item p{margin:0}.session-subject{color:var(--text);font-weight:700}.session-item time{color:var(--muted);margin-top:.25rem;font-size:.88rem;display:block}.session-duration{color:var(--accent-light);white-space:nowrap;font-size:.88rem;font-weight:700}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@keyframes ambient-shift{0%{background-position:12% 30%;transform:rotate(-2deg)scale(1)}to{background-position:88% 70%;transform:rotate(2deg)scale(1.04)}}@keyframes ambient-breathe{0%,to{opacity:.52;transform:translate(-50%)scale(.94)}50%{opacity:.78;transform:translate(-50%)scale(1.04)}}@media (width<=35rem){.app-shell{width:min(100% - 2rem,52rem);padding-top:1.4rem}.app-purpose{font-size:.94rem}.mode-selector{border-radius:.85rem;padding:.25rem}.mode-button{min-height:48px;padding-inline:.35rem;font-size:.76rem}.timer-ring{width:min(76vw,17rem);margin-block:1.75rem}.timer-digits{font-size:clamp(3.4rem,19vw,4.8rem)}.timer-controls{grid-template-columns:1fr 1fr;display:grid}.control-button{width:100%;min-width:0}.control-button--primary{grid-column:1/-1}.history-heading{flex-direction:column;align-items:flex-start;gap:.65rem}.save-scope{margin:0}.session-item{flex-direction:column;align-items:flex-start;gap:.65rem}}@media (width<=23rem){.summary-grid,.timer-controls{grid-template-columns:1fr}.control-button--primary{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}body:before,body:after{animation:none}}
