:root{--bg: #f5f8ff;--panel: rgba(255, 255, 255, .72);--panel-strong: rgba(255, 255, 255, .88);--panel-soft: rgba(255, 255, 255, .52);--line: rgba(115, 142, 197, .18);--line-strong: rgba(93, 121, 178, .32);--text: #20315f;--text-soft: #6d7da9;--text-muted: #9aa7c6;--accent: #7f9fda;--accent-soft: #edf3ff;--accent-sky: linear-gradient(180deg, rgba(222, 234, 255, .96), rgba(240, 245, 255, .9));--accent-mist: linear-gradient(180deg, rgba(239, 245, 255, .95), rgba(250, 252, 255, .94));--accent-slate: linear-gradient(180deg, rgba(213, 226, 248, .98), rgba(232, 240, 255, .92));--accent-lavender: linear-gradient(180deg, rgba(237, 229, 255, .98), rgba(247, 243, 255, .94));--accent-sage: linear-gradient(180deg, rgba(225, 241, 227, .98), rgba(241, 250, 242, .95));--accent-rose: linear-gradient(180deg, rgba(255, 229, 235, .98), rgba(255, 243, 246, .95));--accent-amber: linear-gradient(180deg, rgba(255, 241, 215, .98), rgba(255, 248, 234, .95));--shadow: 0 28px 80px rgba(117, 140, 191, .09);--radius-xl: 32px;--radius-lg: 24px;--radius-md: 18px}:root[data-theme=dark]{--bg: #11192e;--panel: rgba(17, 28, 50, .78);--panel-strong: rgba(22, 34, 59, .92);--panel-soft: rgba(21, 31, 54, .56);--line: rgba(155, 182, 233, .13);--line-strong: rgba(143, 169, 221, .32);--text: #e8efff;--text-soft: #b0bddf;--text-muted: #8392b9;--accent: #98b7ff;--accent-soft: rgba(142, 169, 225, .11);--accent-sky: linear-gradient(180deg, rgba(72, 97, 150, .54), rgba(48, 70, 119, .58));--accent-mist: linear-gradient(180deg, rgba(49, 67, 111, .46), rgba(35, 49, 82, .5));--accent-slate: linear-gradient(180deg, rgba(84, 110, 164, .58), rgba(53, 77, 126, .62));--accent-lavender: linear-gradient(180deg, rgba(101, 85, 152, .56), rgba(72, 58, 110, .56));--accent-sage: linear-gradient(180deg, rgba(82, 120, 94, .52), rgba(58, 88, 70, .56));--accent-rose: linear-gradient(180deg, rgba(151, 90, 113, .56), rgba(115, 64, 84, .56));--accent-amber: linear-gradient(180deg, rgba(164, 121, 60, .58), rgba(122, 85, 35, .58));--shadow: 0 30px 80px rgba(3, 8, 20, .28)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top left,rgba(169,194,241,.18),transparent 28%),radial-gradient(circle at top right,rgba(214,225,251,.28),transparent 26%),linear-gradient(180deg,rgba(255,255,255,.5),transparent 16%),var(--bg);color:var(--text);font-family:Avenir Next,Avenir,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea{font:inherit}button{cursor:pointer}textarea,input{outline:none}#root{min-height:100vh}.planner-shell{min-height:100dvh;display:grid;grid-template-columns:104px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;align-items:center;gap:24px;padding:24px 18px;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.3),transparent 80%)}.brand-mark{width:60px;height:60px;display:grid;place-items:center;font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-size:2.35rem;color:var(--accent)}.planner-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel-strong);color:var(--accent);font-size:.92rem;letter-spacing:.18em;text-transform:uppercase}.planner-badge-icon{font-size:1rem;line-height:1}.app-surface{min-height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr);padding:22px 24px 24px;overflow:hidden}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.eyebrow,.section-label{margin:0 0 8px;color:var(--accent);font-size:.8rem;letter-spacing:.28em;text-transform:uppercase}.topbar h1,.panel-heading h2,.calendar-header h2,.today-title,.install-banner h2,.modal-header h3,.calendar-detail h3{margin:0;font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-weight:400}.topbar h1{font-size:clamp(2rem,3.4vw,3.9rem);line-height:.98}.topbar-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px}.icon-button,.mode-toggle,.avatar-button,.text-button,.primary-button,.ghost-button,.color-chip{border:1px solid var(--line);background:var(--panel-strong);color:var(--text);transition:.18s ease}.icon-button:hover,.mode-toggle:hover,.avatar-button:hover,.text-button:hover,.primary-button:hover,.ghost-button:hover,.color-chip:hover{border-color:var(--line-strong);transform:translateY(-1px)}.icon-button{width:42px;height:42px;display:grid;place-items:center;border-radius:999px}.mode-toggle,.text-button,.primary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:0 16px;border-radius:999px}.mode-toggle,.text-button{background:#ffffff8f}.primary-button{background:var(--accent-soft);color:var(--accent)}.ghost-button{background:transparent}.ghost-button.danger{color:#b35b77}.avatar-button{width:44px;height:44px;border-radius:999px;display:grid;place-items:center;font-weight:600;color:var(--accent)}.install-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;margin-bottom:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow)}.install-banner h2{font-size:1.55rem;margin-bottom:6px}.install-banner p{margin:0;max-width:720px;color:var(--text-soft)}.planner-grid,.calendar-stage{min-height:0;height:100%}.media-strip{display:block;margin-bottom:18px}.vinyl-player,.media-empty{display:flex;align-items:center;gap:20px}.vinyl-player{align-items:stretch}.media-empty{flex-direction:column;align-items:flex-start;gap:6px}.vinyl-deck{position:relative;width:188px;min-width:188px;height:188px;padding:16px;border-radius:28px;background:radial-gradient(circle at 35% 28%,#ffffffbf,#dbe6fb59);border:1px solid var(--line);display:grid;place-items:center}.vinyl-record{position:relative;width:148px;height:148px;border-radius:999px;background:radial-gradient(circle at center,rgba(255,255,255,.12) 0 14%,transparent 14% 15%,rgba(18,29,55,.75) 15% 100%),linear-gradient(145deg,#182746,#22355f 50%,#0e1a33);box-shadow:inset 0 0 0 1px #ffffff14;overflow:hidden}.vinyl-rings{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:repeating-radial-gradient(circle at center,transparent 0 8px,rgba(255,255,255,.05) 8px 9px);opacity:.9}.vinyl-cover,.vinyl-cover--placeholder{position:absolute;top:35px;right:35px;bottom:35px;left:35px;width:calc(100% - 70px);height:calc(100% - 70px);border-radius:999px;object-fit:cover;z-index:1}.vinyl-cover--placeholder{display:grid;place-items:center;font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-size:2.2rem;color:var(--accent);background:var(--panel-strong)}.vinyl-core{position:absolute;inset:calc(50% - 8px);width:16px;height:16px;border-radius:999px;background:#f9fbff;z-index:2}.vinyl-deck.is-spinning .vinyl-record{animation:vinyl-spin 5s linear infinite}.tonearm{position:absolute;right:24px;top:18px;width:72px;height:10px;border-radius:999px;background:linear-gradient(90deg,#7b91be8c,#465983f2);transform-origin:8px 5px;transform:rotate(-26deg);transition:transform .22s ease}.tonearm:after{content:"";position:absolute;right:2px;top:-3px;width:16px;height:16px;border-radius:999px;background:var(--panel-strong);border:1px solid var(--line)}.tonearm.is-active{transform:rotate(8deg)}.media-copy{min-width:0;display:grid;gap:14px}.media-empty strong,.media-meta strong{font-size:1rem;font-weight:600}.media-empty span,.media-meta span,.media-meta small,.media-note{color:var(--text-soft)}.media-meta{min-width:0;display:grid;gap:4px}.media-meta strong,.media-meta span,.media-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-progress{width:min(420px,100%);height:6px;border-radius:999px;background:#7f9fda24;overflow:hidden;margin-top:4px}.media-progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),rgba(127,159,218,.55))}.media-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-start}.media-note{margin:4px 0 0;font-size:.82rem}.enhanced-sync{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding-top:4px;border-top:1px solid var(--line)}.enhanced-text{display:block;color:var(--text-soft);max-width:540px;line-height:1.5}.enhanced-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.planner-grid{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(360px,1.35fr) minmax(320px,1fr);gap:18px}.panel{min-width:0;min-height:0;padding:20px;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.left-rail,.tasks-panel{display:grid;gap:16px;align-content:start}.schedule-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px}.calendar-card,.today-card,.study-card,.headline-card,.intention-card,.calendar-detail-card{padding:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-soft)}.calendar-header,.panel-heading,.task-group-head,.today-title,.calendar-stage-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-header h2,.panel-heading h2{font-size:1.75rem}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday-row{margin-top:10px;color:var(--text-soft);font-size:.78rem;text-align:center}.weekday-row.is-large{margin-top:0;margin-bottom:10px;font-size:.84rem}.calendar-grid{gap:6px}.calendar-grid.is-large{gap:10px;flex:1}.calendar-day{position:relative;min-height:42px;display:grid;place-items:center;border:1px solid transparent;border-radius:16px;background:transparent;color:var(--text);overflow:hidden}.calendar-day.is-muted{color:var(--text-muted)}.calendar-day.is-selected{background:var(--accent-soft);border-color:var(--line);color:var(--accent)}.calendar-day.is-detailed{min-height:124px;padding:12px;align-content:space-between;align-items:stretch;text-align:left;background:#ffffff3d}.calendar-cell-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-cell-top strong{font-size:1rem}.calendar-cell-top span,.calendar-day.is-detailed small{color:var(--text-soft);font-size:.78rem}.calendar-day.is-detailed p{margin:8px 0;color:var(--text);font-size:.88rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.calendar-dot{position:absolute;bottom:7px;width:5px;height:5px;border-radius:999px;background:var(--accent)}.expand-calendar{width:100%;margin-top:14px}.today-date,.study-note{margin:10px 0 0;color:var(--text-soft);line-height:1.5}.today-title{justify-content:flex-start;color:var(--accent);font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-size:1.4rem}.stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.stats-row article{display:grid;gap:6px}.stats-row strong{font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-size:1.55rem;font-weight:400}.stats-row span{color:var(--text-soft);font-size:.87rem}.study-card{display:grid;gap:14px}.timer-readout{font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-size:clamp(2rem,3vw,2.8rem);font-weight:400;letter-spacing:.04em}.study-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.study-history{display:grid;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.study-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-soft)}.study-history-row strong{color:var(--text);font-size:.95rem}.schedule-shell{min-height:0;display:grid;grid-template-columns:68px minmax(0,1fr);gap:12px}.timeline-axis{display:grid;align-content:start}.axis-slot{display:flex;align-items:flex-start;justify-content:flex-start;color:var(--text-soft);font-size:.86rem}.schedule-scroll{min-height:0;overflow:auto;padding-right:4px}.timeline-body{position:relative;min-width:0}.grid-slot{position:absolute;left:0;right:0;padding:0;border:0;background:transparent}.grid-line{position:absolute;inset:0 0 auto 0;border-top:1px solid var(--line)}.events-layer{position:absolute;top:0;right:0;bottom:0;left:0}.event-block{position:absolute;left:8px;right:8px;display:grid;align-content:start;gap:4px;padding:10px 14px;border-radius:16px;border:1px solid rgba(130,154,204,.16);text-align:left;color:var(--text);box-shadow:none}.event-block strong{font-size:1rem;font-weight:500}.event-block span{color:var(--text-soft);font-size:.86rem}.event-block.color-sky,.color-chip.color-sky{background:var(--accent-sky)}.event-block.color-mist,.color-chip.color-mist{background:var(--accent-mist)}.event-block.color-slate,.color-chip.color-slate{background:var(--accent-slate)}.event-block.color-lavender,.color-chip.color-lavender{background:var(--accent-lavender)}.event-block.color-sage,.color-chip.color-sage{background:var(--accent-sage)}.event-block.color-rose,.color-chip.color-rose{background:var(--accent-rose)}.event-block.color-amber,.color-chip.color-amber{background:var(--accent-amber)}.event-block.is-compact{padding:6px 10px;gap:2px}.event-block.is-compact strong{font-size:.88rem}.event-block.is-compact span{font-size:.76rem}.time-marker{position:absolute;left:0;right:0;display:flex;align-items:center;gap:10px;color:var(--accent);pointer-events:none;z-index:3}.time-marker i{width:10px;height:10px;border-radius:999px;background:var(--accent)}.time-marker:after{content:"";flex:1;border-top:1px solid var(--accent)}.tasks-panel{grid-template-rows:auto auto minmax(0,1fr) auto}.headline-card textarea,.intention-card textarea{width:100%;border:0;resize:none;background:transparent;color:var(--text);font-family:Iowan Old Style,Baskerville,Times New Roman,serif;line-height:1.6}.quote-card{display:grid;gap:10px}.quote-card p{margin:0;font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-size:1.12rem;line-height:1.6;font-style:italic}.headline-card textarea{min-height:88px;margin-top:10px;font-size:1.05rem}.intention-card textarea{min-height:110px;margin-top:12px;font-size:1.1rem}.task-groups{min-height:0;overflow:auto;display:grid;gap:16px;padding-right:4px}.task-group{padding-top:8px;border-top:1px solid var(--line)}.task-group:first-child{border-top:0;padding-top:0}.task-group-head{color:var(--accent);font-size:.77rem;letter-spacing:.22em;text-transform:uppercase}.task-group-head small{color:var(--text-muted);font-size:.78rem}.task-list{margin:10px 0 0;padding:0;list-style:none}.task-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border-bottom:0}.task-row.is-done .task-copy span{text-decoration:line-through;color:var(--text-muted)}.check-button,.star-button,.task-copy{border:0;background:transparent;color:inherit}.check-button,.star-button{display:grid;place-items:center;width:34px;height:34px;color:var(--accent)}.task-copy{display:grid;gap:3px;padding:0;text-align:left}.task-copy span{font-size:1rem}.task-copy small{color:var(--accent)}.task-empty{padding:12px 0 4px;color:var(--text-muted)}.calendar-stage{display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px}.calendar-stage-body{min-height:0;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,.7fr);gap:18px}.calendar-stage-board{min-height:0;display:flex;flex-direction:column}.calendar-detail{display:grid;align-content:start;gap:14px;padding:8px 4px 8px 6px}.calendar-detail h3{font-size:1.8rem}.calendar-detail-card{display:grid;gap:6px}.calendar-detail-card span{color:var(--text-soft);font-size:.85rem}.calendar-detail-card strong{font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-size:1.12rem;font-weight:400;line-height:1.4}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#10162640;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20}.modal-card{width:min(100%,520px);display:grid;gap:18px;padding:24px;border:1px solid var(--line);border-radius:28px;background:var(--panel-strong);box-shadow:var(--shadow)}.modal-header,.field,.toggle-row,.field-row{display:grid;gap:10px}.modal-header{grid-template-columns:1fr auto}.field span{color:var(--text-soft);font-size:.92rem}.field input,.toggle,.color-chip{border-radius:16px}.field input{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--line);background:#ffffff80;color:var(--text)}.field-row,.toggle-row,.study-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.color-row{display:flex;flex-wrap:wrap;gap:10px}.color-chip{min-width:84px;min-height:42px;padding:0 14px;text-transform:capitalize}.color-chip.is-active{border-color:var(--line-strong);color:var(--accent)}.toggle{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;border:1px solid var(--line);background:#fff6;color:var(--text-soft)}.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}.spotify-help{margin:0;color:var(--text-soft);line-height:1.6}.spotify-code{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:#ffffff61;color:var(--text);overflow-wrap:anywhere}.close-rotated{transform:rotate(45deg)}@media(max-width:1280px){.app-surface{padding:18px 20px 20px}.planner-grid{grid-template-columns:minmax(220px,.84fr) minmax(320px,1.24fr) minmax(280px,.92fr);gap:14px}.panel{padding:16px}.calendar-day.is-detailed{min-height:112px;padding:10px}}@media(max-width:900px){.planner-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:10;flex-direction:row;justify-content:flex-start;padding:14px 16px;border-right:0;border-bottom:1px solid var(--line);background:#f5f8ffd9;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}:root[data-theme=dark] .sidebar{background:#11192ee0}.brand-mark{width:42px;height:42px;font-size:1.75rem}.app-surface{min-height:auto;padding:18px;overflow:visible}.topbar{flex-direction:column}.topbar-actions{justify-content:flex-start}.planner-grid,.calendar-stage-body,.media-strip,.study-actions,.field-row,.toggle-row,.stats-row{grid-template-columns:1fr}.planner-grid,.calendar-stage{height:auto}.schedule-shell{grid-template-columns:58px minmax(0,1fr)}.schedule-scroll{overflow:auto}.calendar-day.is-detailed{min-height:102px}.install-banner{align-items:flex-start;flex-direction:column}.vinyl-player,.enhanced-sync{flex-direction:column;align-items:flex-start}.media-actions,.enhanced-actions{justify-content:flex-start}.tasks-panel{grid-template-rows:auto auto auto auto}}@keyframes vinyl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
