/* Two-person focus room. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.study-page-head{display:flex!important;justify-content:space-between;align-items:flex-end;gap:24px;background:linear-gradient(125deg,#fff0f7,#f1efff 52%,#eafaff)!important;overflow:hidden;position:relative}
.app[data-active=study] .tab.is-on{background:linear-gradient(135deg,#e95298,#825fff)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 8px 22px #bd4d9130!important}
.tab[data-view=study]{background:linear-gradient(135deg,#fff0f7,#f1ebff);color:#aa3f78;border-color:#efc9dc}
.study-page-head::after{content:"";position:absolute;width:210px;height:210px;right:23%;top:-130px;border-radius:50%;background:radial-gradient(circle,#ff77b94a,transparent 68%);pointer-events:none}
.study-eyebrow,.focus-card-head span,.study-section-head>div>span,.music-now>span,.music-queue header span{display:block;font:700 9px/1.5 var(--pix);letter-spacing:.15em;color:#a36e9a}
.study-page-head p{margin-top:8px;color:#7d7182;font-size:13px}
.study-presence{display:grid;justify-items:end;gap:8px;position:relative;z-index:1}
.study-presence>span{font-size:12px;color:#665b6b}
.study-presence>b{display:flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:#ffffffb8;border:1px solid #ffffff;color:#6f6672;font-size:10px;box-shadow:0 8px 25px #74547612}
.study-presence>b i{width:7px;height:7px;border-radius:50%;background:#aaa;box-shadow:0 0 0 4px #aaa2}
.study-presence>b[data-state=online] i{background:#37b889;box-shadow:0 0 0 4px #37b88922}
.study-presence>b[data-state=syncing] i{background:#e9a743;box-shadow:0 0 0 4px #e9a74322;animation:studyPulse 1s infinite}
@keyframes studyPulse{50%{opacity:.45}}

.study-focus-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.85fr);gap:18px;margin:0 0 20px}
.focus-card,.study-goals,.study-stats,.music-preview{background:rgba(255,255,255,.82);border:1px solid rgba(101,78,108,.13);border-radius:20px;box-shadow:0 20px 55px rgba(71,47,79,.08);position:relative;overflow:hidden}
.focus-card{padding:24px}
.focus-card-head,.study-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.focus-card-head h3,.study-section-head h3,.music-now h3{margin:4px 0 0;color:#3f3444;font:700 23px/1.3 'Noto Sans SC',sans-serif}
.timer-modes{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;padding:4px;border:1px solid #eadfe8;background:#fff8fc;border-radius:10px;max-width:390px}
.timer-modes button{border:0;border-radius:7px;background:transparent;color:#857687;font-size:10px;padding:7px 9px}
.timer-modes button.is-on{background:#3e3447;color:#fff;box-shadow:0 5px 15px #3e344729}
.timer-stage{display:grid;grid-template-columns:255px 1fr;align-items:center;gap:28px;padding-top:20px}
.timer-orbit{width:230px;height:230px;border-radius:50%;padding:10px;background:conic-gradient(#e8589b var(--timer-progress),#f0e7ef 0);box-shadow:0 22px 50px #9b52722b;position:relative}
.timer-orbit::before,.timer-orbit::after{content:"";position:absolute;border:1px solid #ecb9d35e;border-radius:50%;inset:-12px;animation:timerOrbit 12s linear infinite}
.timer-orbit::after{inset:-22px;border-style:dashed;animation-duration:24s;animation-direction:reverse}
@keyframes timerOrbit{to{transform:rotate(360deg)}}
.timer-face{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(145deg,#fff,#fff2f8);box-shadow:inset 0 0 35px #f7cfe21f}
.timer-face span{font-size:11px;color:#a06f91;letter-spacing:.08em}.timer-face strong{font:800 52px/1.25 var(--pix);letter-spacing:-.06em;color:#4a3c50;margin:12px 0}.timer-face small{font-size:10px;color:#918494}
.timer-copy>span{font:700 9px var(--pix);letter-spacing:.13em;color:#c1779f}.timer-copy h4{font-size:19px;color:#4b3f50;margin:12px 0 8px}.timer-copy p{font-size:12px;line-height:1.8;color:#8b7f8e}.timer-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.study-primary,.study-ghost,.study-section-head form button{min-height:39px;padding:8px 15px;border-radius:9px;border:1px solid transparent;font-size:11px;font-weight:700}.study-primary,.study-section-head form button{background:linear-gradient(135deg,#e95298,#825fff);color:#fff;box-shadow:0 9px 23px #c34d9130}.study-ghost{background:#fff;border-color:#e4d9e4;color:#746679}

.noise-card{background:linear-gradient(145deg,#f0fcff,#f5f1ff)}
.noise-wave{height:28px;display:flex;align-items:center;gap:3px}.noise-wave i{display:block;width:3px;height:9px;background:#5bbdca;border-radius:3px}.noise-card.is-playing .noise-wave i{animation:noiseWave .75s ease-in-out infinite alternate}.noise-wave i:nth-child(2),.noise-wave i:nth-child(5){animation-delay:.15s;height:18px}.noise-wave i:nth-child(3){animation-delay:.3s;height:25px}
@keyframes noiseWave{to{height:26px}}
.noise-visual{height:70px;display:flex;align-items:center;justify-content:center;position:relative;margin:12px 0}.noise-visual span{position:absolute;border:1px solid #63c7d37a;border-radius:50%;width:30px;height:30px}.noise-visual span:nth-child(2){width:64px;height:64px}.noise-visual span:nth-child(3){width:102px;height:102px;border-color:#a78de143}.noise-card.is-playing .noise-visual span{animation:noiseRipple 2.2s ease-out infinite}.noise-card.is-playing .noise-visual span:nth-child(2){animation-delay:.5s}.noise-card.is-playing .noise-visual span:nth-child(3){animation-delay:1s}
@keyframes noiseRipple{0%{transform:scale(.72);opacity:.2}50%{opacity:1}100%{transform:scale(1.14);opacity:.1}}
.noise-options{display:grid;gap:7px}.noise-options button{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid #dfdfed;background:#ffffffa6;border-radius:11px;padding:9px 11px;color:#55495d}.noise-options button>i{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#e9f8fa;color:#4c9faa;font-size:18px}.noise-options button span{display:grid;gap:2px}.noise-options button b{font-size:12px}.noise-options button small{font-size:9px;color:#8d8292}.noise-options button.is-on{border-color:#78c9d4;background:#fff;box-shadow:0 8px 20px #5bbac318}.noise-controls{display:flex;align-items:center;gap:14px;margin-top:14px}.noise-controls label{display:flex;align-items:center;gap:8px;min-width:0;flex:1;font-size:10px;color:#7b7182}.noise-controls input,.music-volume input{width:100%;accent-color:#6abfca}

.study-goals,.study-stats{padding:25px;margin-bottom:20px}.study-section-head form{display:flex;gap:8px;min-width:min(460px,52%)}.study-section-head form input{min-width:0;flex:1;border:1px solid #e3d9e3;border-radius:9px;padding:9px 12px;background:#fff;color:#44384a;font-size:12px}.study-section-head form button{white-space:nowrap}
.goal-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.goal-person{border:1px solid #eadfea;border-radius:16px;background:#fffafd;padding:17px}.goal-person.her{background:#f7fbff;border-color:#dfe9ef}.goal-person>header{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:11px;padding-bottom:13px;border-bottom:1px solid #eee5ed}.goal-person>header img{height:54px;max-width:54px;object-fit:contain}.goal-person>header span{font:700 8px var(--pix);letter-spacing:.1em;color:#a47596}.goal-person>header h4{font-size:15px;color:#493d4e;margin-top:4px}.goal-person>header>b{font:700 10px var(--pix);color:#9a7090;background:#fff;padding:7px 8px;border-radius:7px;border:1px solid #eee0e9}.goal-list{display:grid;gap:8px;padding-top:13px}.goal-row{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;gap:8px;min-height:40px}.goal-row input{position:absolute;opacity:0;pointer-events:none}.goal-check{display:grid;place-items:center;width:25px;height:25px;border:1px solid #d9cbd7;border-radius:8px;background:#fff;color:transparent;cursor:pointer}.goal-row input:checked+.goal-check{background:#e95b9c;border-color:#e95b9c;color:#fff}.goal-row p{font-size:12px;color:#554959;line-height:1.5}.goal-row.is-done p{text-decoration:line-through;color:#a599a6}.goal-delete{border:0;background:transparent;color:#b5a9b4;font-size:16px}.goal-row.is-other .goal-check,.goal-row.is-other .goal-delete{pointer-events:none;opacity:.5}.goal-empty{padding:18px 4px 8px;color:#aaa0ac;font-size:11px;text-align:center}

.study-section-head>small{color:#968a98;font-size:11px}.study-stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}.study-stat-cards article{min-height:125px;padding:17px;border:1px solid #eadfea;border-radius:14px;background:#fff;display:flex;flex-direction:column;justify-content:center;position:relative}.study-stat-cards article.together{background:linear-gradient(140deg,#fff0f7,#f0efff)}.study-stat-cards small{font-size:10px;color:#8c7f90}.study-stat-cards strong{font:700 23px/1.4 'Noto Sans SC',sans-serif;color:#443849;margin:6px 0}.study-stat-cards em{font-style:normal;font-size:9px;color:#a194a3}.stat-dot{position:absolute;right:14px;top:14px;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#e85899,#825fff);box-shadow:0 0 0 5px #e8589914}.stat-dot.him{background:#6e69dd}.stat-dot.her{background:#e75d9d}.stat-dot.week{background:#59bfc9}.study-week-chart{height:142px;display:grid;grid-template-columns:repeat(7,1fr);gap:9px;align-items:end;margin-top:18px;padding:18px 15px 0;border-top:1px solid #eee5ed}.week-bar{height:100%;display:grid;grid-template-rows:1fr auto;gap:7px;align-items:end;text-align:center}.week-bar i{display:block;width:min(40px,70%);height:var(--bar-height);min-height:5px;margin:auto;background:linear-gradient(180deg,#ee67a5,#8170e9);border-radius:9px 9px 4px 4px;position:relative}.week-bar i::after{content:attr(data-minutes);position:absolute;left:50%;top:-17px;transform:translateX(-50%);font:8px var(--pix);color:#8f7d92}.week-bar span{font-size:9px;color:#9a8e9d}.week-bar.is-today span{color:#df4f93;font-weight:700}

.music-preview{display:grid;grid-template-columns:230px minmax(280px,1fr) minmax(270px,.9fr);gap:26px;padding:26px;background:linear-gradient(120deg,#251f2c,#342741 57%,#203b42);color:#fff}.music-cover{aspect-ratio:1;border-radius:17px;padding:21px;background:radial-gradient(circle at 70% 28%,#ff9dca 0 8%,transparent 9%),linear-gradient(145deg,#ff6da8,#e6a057 48%,#6f62d5);box-shadow:0 20px 50px #0e0b1370;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.music-cover::before{content:"";position:absolute;width:180px;height:180px;border:25px solid #ffffff19;border-radius:50%;right:-55px;top:-52px}.music-cover span{font:700 11px var(--pix);letter-spacing:.15em}.music-cover strong{font:900 35px/1.2 'Noto Sans SC',sans-serif}.music-cover small{font:700 8px var(--pix);letter-spacing:.08em}.music-cover i{position:absolute;right:20px;bottom:20px;font-style:normal;font-size:25px}.music-now{align-self:center}.music-now>span{color:#cfb7dc}.music-now h3{color:#fff;font-size:25px}.music-now p{color:#c6b8c9;font-size:11px;margin:7px 0 25px}.music-track{height:4px;border-radius:5px;background:#ffffff24;overflow:hidden}.music-track i{display:block;width:37%;height:100%;background:linear-gradient(90deg,#ff65a6,#a48aff)}.music-times{display:flex;justify-content:space-between;color:#a99caf;font:8px var(--pix);margin-top:7px}.music-controls{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:19px}.music-controls button{display:grid;place-items:center;width:34px;height:34px;border:0;background:transparent;color:#d6cbd9;font-size:20px;opacity:1}.music-controls .music-play{width:49px;height:49px;border-radius:50%;background:#fff;color:#32253b;font-size:15px;box-shadow:0 10px 25px #0b07144d}.music-queue{padding-left:24px;border-left:1px solid #ffffff1b}.music-queue header{display:flex;justify-content:space-between}.music-queue header span{color:#c8b4d1}.music-queue header b{font-size:10px;color:#aa9caf}.music-queue ol{list-style:none;margin:13px 0 17px;display:grid;gap:4px}.music-queue li{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:8px;border-radius:9px;color:#bfb2c3}.music-queue li.is-on{background:#ffffff0d;color:#fff}.music-queue li>span,.music-queue li>em{font:8px var(--pix);font-style:normal}.music-queue li div{display:grid;gap:2px}.music-queue li b{font-size:11px}.music-queue li small{font-size:8px;color:#94889b}.music-volume{display:grid;grid-template-columns:20px 1fr 35px;align-items:center;gap:7px;color:#b8aabc;font-size:10px}.music-volume b{font:8px var(--pix)}

html[data-theme=dark] .study-page-head{background:linear-gradient(125deg,#2a1e2b,#252036 52%,#19323a)!important}
html[data-theme=dark] .study-page-head h2,html[data-theme=dark] .study-page-head p,html[data-theme=dark] .study-presence>span{color:#f3e9f2}
html[data-theme=dark] .focus-card,html[data-theme=dark] .study-goals,html[data-theme=dark] .study-stats{background:#211d28;border-color:#ffffff19}
html[data-theme=dark] .focus-card h3,html[data-theme=dark] .focus-card h4,html[data-theme=dark] .study-section-head h3,html[data-theme=dark] .goal-person h4,html[data-theme=dark] .study-stat-cards strong{color:#f6edf5}
html[data-theme=dark] .noise-card{background:linear-gradient(145deg,#18292e,#241f34)}
html[data-theme=dark] .timer-face,html[data-theme=dark] .goal-person,html[data-theme=dark] .study-stat-cards article{background:#2c2733;border-color:#ffffff16}
html[data-theme=dark] .goal-person.her{background:#242b35}
html[data-theme=dark] .goal-row p,html[data-theme=dark] .timer-face strong{color:#f4ebf3}
html[data-theme=dark] .timer-modes,html[data-theme=dark] .noise-options button{background:#28232f;border-color:#ffffff17;color:#e7dce7}
html[data-theme=dark] .timer-orbit{background:conic-gradient(#ff69ab var(--timer-progress),#3c3441 0)}
html[data-theme=dark] .timer-face{box-shadow:inset 0 0 35px #a756801b}

@media(max-width:1050px){.study-focus-grid{grid-template-columns:1fr}.noise-card{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.noise-card .focus-card-head,.noise-card .noise-controls{grid-column:1/-1}.noise-visual{min-height:160px}.music-preview{grid-template-columns:190px 1fr}.music-queue{grid-column:1/-1;border-left:0;border-top:1px solid #ffffff1b;padding:18px 0 0}.music-queue ol{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.study-page-head{align-items:flex-start!important}.study-presence{justify-items:start}.study-focus-grid{gap:12px}.focus-card,.study-goals,.study-stats,.music-preview{border-radius:15px}.focus-card{padding:18px}.focus-card-head{align-items:flex-start;flex-direction:column}.timer-modes{max-width:none;width:100%;justify-content:flex-start}.timer-stage{grid-template-columns:1fr;text-align:center}.timer-orbit{width:210px;height:210px;margin:auto}.timer-actions{justify-content:center}.noise-card{display:block}.noise-visual{min-height:80px}.study-section-head{align-items:flex-start;flex-direction:column}.study-section-head form{min-width:100%;width:100%}.goal-columns{grid-template-columns:1fr}.study-stat-cards{grid-template-columns:1fr 1fr}.study-week-chart{padding-inline:0}.music-preview{grid-template-columns:105px 1fr;gap:16px;padding:18px}.music-cover{padding:13px}.music-cover strong{font-size:20px}.music-cover i{right:12px;bottom:10px}.music-now h3{font-size:18px}.music-now p{margin-bottom:15px}.music-controls{gap:7px;margin-top:10px}.music-controls button{width:28px}.music-controls .music-play{width:40px;height:40px}.music-queue ol{grid-template-columns:1fr}.music-queue li:nth-child(n+3){display:none}}
@media(max-width:430px){.study-page-head{display:grid!important}.study-presence{display:flex;align-items:center;justify-content:space-between;width:100%}.timer-stage{padding-top:25px}.study-stat-cards{grid-template-columns:1fr}.study-stat-cards article{min-height:104px}.music-preview{grid-template-columns:1fr}.music-cover{width:150px}.music-now{width:100%}.week-bar i::after{font-size:7px}.noise-controls{align-items:stretch;flex-direction:column}.study-section-head form{display:grid;grid-template-columns:1fr auto}}
@media(prefers-reduced-motion:reduce){.timer-orbit::before,.timer-orbit::after,.noise-card.is-playing .noise-wave i,.noise-card.is-playing .noise-visual span{animation:none!important}}

/* Colour-coded choices make the new study controls easier to scan. */
.timer-modes button{border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.timer-modes button[data-timer-minutes="25"]{background:#ffe6f1;color:#a9366d;border-color:#ffc7df}
.timer-modes button[data-timer-minutes="30"]{background:#fff0df;color:#a85b20;border-color:#ffd8ad}
.timer-modes button[data-timer-minutes="40"]{background:#fff7cf;color:#8b6810;border-color:#f5df83}
.timer-modes button[data-timer-minutes="45"]{background:#e4f7e7;color:#397846;border-color:#bfe7c6}
.timer-modes button[data-timer-minutes="50"]{background:#dff7f5;color:#247874;border-color:#afe5e0}
.timer-modes button[data-timer-minutes="60"]{background:#e4efff;color:#376ca7;border-color:#bfd7f7}
.timer-modes button[data-timer-minutes="120"]{background:#eee8ff;color:#6848a9;border-color:#d4c5fb}
.timer-modes button[data-timer-minutes="5"],.timer-modes button[data-timer-minutes="15"]{background:#e5f8f0;color:#28745b;border-color:#bce8d6}
.timer-modes button:hover{transform:translateY(-1px);filter:saturate(1.12)}
.timer-modes button.is-on{background:linear-gradient(135deg,#e95298,#825fff);border-color:transparent;color:#fff;box-shadow:0 7px 18px #b44e9638}
.timer-modes button:focus-visible,.noise-options button:focus-visible{outline:3px solid #865fff45;outline-offset:2px}

.noise-options button{--noise-accent:#55aeba;--noise-bg:#e8f8fa;--noise-border:#bfe6ea;background:var(--noise-bg);border-color:var(--noise-border);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.noise-options button>i{background:#fff9;color:var(--noise-accent);box-shadow:inset 0 0 0 1px #fff}
.noise-options button[data-noise="white"]{--noise-accent:#6f7e96;--noise-bg:#f1f4f8;--noise-border:#d6dde7}
.noise-options button[data-noise="pink"]{--noise-accent:#c14d83;--noise-bg:#ffe9f2;--noise-border:#f6bfd6}
.noise-options button[data-noise="brown"]{--noise-accent:#8b5a3b;--noise-bg:#f5e8dc;--noise-border:#dfc3aa}
.noise-options button[data-noise="rainfire"]{--noise-accent:#b35f36;--noise-bg:linear-gradient(120deg,#e8f3ff,#fff0df);--noise-border:#d8c9bd}
.noise-options button[data-noise="ocean"]{--noise-accent:#167aa0;--noise-bg:#e0f5ff;--noise-border:#adddef}
.noise-options button[data-noise="library"]{--noise-accent:#6f659e;--noise-bg:#f0ecff;--noise-border:#d4c9f2}
.noise-options button:hover{transform:translateY(-1px);filter:saturate(1.08)}
.noise-options button.is-on{border-color:var(--noise-accent);background:var(--noise-bg);box-shadow:0 8px 22px color-mix(in srgb,var(--noise-accent) 24%,transparent)}
.noise-options button.is-on>i{background:var(--noise-accent);color:#fff}

html[data-theme=dark] .timer-modes button{filter:saturate(.9) brightness(.78);color:#241f29}
html[data-theme=dark] .timer-modes button.is-on{filter:none;color:#fff}
html[data-theme=dark] .noise-options button{background:color-mix(in srgb,var(--noise-accent) 22%,#28232f);border-color:color-mix(in srgb,var(--noise-accent) 52%,#28232f);color:#f7eef6;filter:none}
html[data-theme=dark] .noise-options button.is-on{background:color-mix(in srgb,var(--noise-accent) 38%,#28232f);color:#fff}
html[data-theme=dark] .tab[data-view=study]{background:linear-gradient(135deg,#3a2634,#33284a);color:#ffc2df;border-color:#75435f}
