/* Ritmo: a brighter identity, with comfortable type and self-hosted fonts. */
@font-face{font-family:Sora;src:url('./fonts/Sora-Variable.ttf') format('truetype');font-style:normal;font-weight:100 800;font-display:swap}
@font-face{font-family:Manrope;src:url('./fonts/Manrope-Variable.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{
  --font:Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --bg:#f5f2fc;--ink:#302544;--muted:#706381;--border:#e5def0;
  --green:#6d38e6;--lime:#d4fa73;--warning:#964808;--warning-bg:#fff2df;
}
body{font-size:16px;line-height:1.6}
h1,h2,h3,h4,.brand,.hero-progress strong,.metric-card strong,.subject-big-number strong,.overview-total h2,.subject-summary h2,.sidebar-goal>strong{font-family:Sora,var(--font)}
button,input,select,textarea{font-family:var(--font)}
strong,b{font-weight:750}
.eyebrow{font-size:12px;letter-spacing:1.6px;color:#79688f}
.sidebar{width:232px;background:linear-gradient(165deg,#2e1858,#201738);color:#d0c3e7}
.brand{font-size:36px;letter-spacing:-1.8px;color:#fff;gap:10px}
.brand-icon{background:#d4fa73;color:#3b225e;width:38px;height:38px;border-radius:12px}
.brand-dot{color:#d4fa73}
.sidebar-context{gap:7px;margin-top:35px}
.sidebar-context .eyebrow{font-size:10px;color:#b5a0d4;letter-spacing:1.1px}
.sidebar-context strong{font-size:16px;color:#fff}
.sidebar-context>span:last-child{font-size:12px;color:#bfb1d6}
.nav-item{font-size:15px;color:#c7b9df;font-weight:600;padding:14px 13px;gap:11px}
.nav-item .icon{width:21px;height:21px}
.nav-item:hover{background:#44266a;color:#fff}
.nav-item.active{background:#d4fa73;color:#34204e;box-shadow:0 4px 15px #0f05281a;font-weight:800}
.nav-count{background:#ff9658;color:#412048;font-size:12px;font-weight:800;width:23px;height:23px}
.sidebar-goal{margin-top:36px;border:1px solid #77629b;background:linear-gradient(135deg,#51346d,#37264e);padding:19px 16px}
.sidebar-goal-top{color:#e0d6ee;font-size:11px;gap:7px}
.sidebar-goal>strong{color:#d4fa73;font-size:43px;letter-spacing:-2px}
.sidebar-goal>strong>span{color:#dfd4ee;font-size:16px;letter-spacing:0}
.sidebar-goal p{color:#ded1f2;font-size:13px;line-height:1.8;margin:3px 0 18px}
.mini-track{gap:3px}.mini-track i{height:18px;background:#806d93}.mini-track i.filled{background:#d4fa73}
.sidebar-footer{border-color:#523e69;color:#b5a0d2;font-size:11px;margin-left:8px;margin-right:8px}.live-dot{background:#d4fa73}
.settings-nav{font-size:14px}
.topbar{height:80px;background:#fcfaff;border-color:#e7def3}
.breadcrumb{font-size:12px;color:#81718f;font-weight:700;letter-spacing:1px}.breadcrumb strong{color:#603c97}.breadcrumb>span{color:#baabcd}
.save-status{font-size:12px;color:#675184;gap:7px}.save-status .icon{height:17px;width:17px}.save-status.save-error{color:#9a4e06}
.icon-button{color:#7b6099;width:38px;height:38px}.icon-button:hover{background:#eee5fc}.icon-button .icon{width:19px;height:19px}
main{padding-top:32px}
.page-heading h1{font-size:36px;line-height:1.35;font-weight:700;letter-spacing:-1.4px}
.page-heading .eyebrow{font-size:11px;margin-bottom:7px}
.page-heading p{font-size:15px;line-height:1.8;color:#766783;margin-top:8px}
.button{font-size:14px;min-height:46px;padding:12px 19px;border-radius:11px;gap:9px;font-weight:750}
.button.primary{background:#6d38e6;color:#fff;box-shadow:0 4px 10px #6d38e629}.button.primary:hover{background:#5827c6;box-shadow:0 5px 16px #6d38e63b}
.button.secondary{background:#f2ebff;border-color:#d9c8f8;color:#6338a4}.button.secondary:hover{background:#e9dcff;border-color:#bfa0f0}
.button .icon{width:18px;height:18px}.button.compact{font-size:13px;min-height:40px;padding:9px 13px}
.text-button{font-size:14px;color:#6a35d0;font-weight:750;gap:8px}.text-button .icon{height:17px;width:17px}
.danger{color:#b52c4d}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a680ff;outline-offset:4px}
.hero-card{background:linear-gradient(120deg,#6230db,#8649f0);border-color:#7135df;min-height:275px;padding:32px 38px;box-shadow:0 8px 28px #7243cf15}
.hero-copy h2{font-size:34px;font-weight:650;color:#fff;line-height:1.25;letter-spacing:-1.1px}
.status-label{font-size:12px;font-weight:750;border-color:#b796ff;background:#ffffff18;color:#f0ffd9;padding:5px 11px;gap:6px;margin-bottom:16px}
.status-label .icon{width:14px;height:14px}
.hero-copy p{font-size:14px;color:#f0e6ff;max-width:385px;margin-top:16px;line-height:1.8}
.hero-link{color:#dcff98;font-size:14px;margin-top:17px;gap:9px}.hero-link:hover{color:#fff}.hero-link .icon{width:18px;height:18px}
.hero-progress{margin-right:4%;gap:14px}
.progress-orbit{width:172px;height:172px;padding:9px;background:conic-gradient(#d4fa73 calc(var(--percent)*1%),#b488f4 0)}
.progress-orbit>div{background:#733ce2;border:5px solid #8d58ec}
.progress-orbit strong{color:#fff;font-size:45px;letter-spacing:-2px;font-weight:650}.progress-orbit strong span{color:#e1caff;font-size:23px}
.progress-orbit>div>span{color:#f1e5ff;font-size:11px}
.hero-progress-caption{font-size:12px;color:#eee2ff}.hero-progress-caption strong{color:#d4fa73}
.hero-decoration{border-color:#b894ff55}.hero-decoration:before,.hero-decoration:after{border-color:#c7a7ff44}
.hero-card.late{background:linear-gradient(120deg,#ffcd8e,#ffe5bb);border-color:#f9b76d}.hero-card.late .hero-copy h2{color:#633506}.hero-card.late .hero-copy p{color:#76471b}.hero-card.late .hero-link{color:#79400d}.hero-card.late .status-label{background:#fff4dd;border-color:#e6a960;color:#81400b}.hero-card.late .progress-orbit{background:conic-gradient(#ad560d calc(var(--percent)*1%),#e5a65a 0)}.hero-card.late .progress-orbit>div{background:#ffe7c5;border-color:#ffd395}.hero-card.late .progress-orbit strong,.hero-card.late .progress-orbit strong>span{color:#713d10}.hero-card.late .progress-orbit>div>span,.hero-card.late .hero-progress-caption{color:#835126}.hero-card.late .hero-progress-caption strong{color:#6d3508}
.metrics-grid{gap:16px;margin-bottom:28px}
.metric-card{border-color:#e2d6f2;border-top:3px solid #a57af2;min-height:132px;padding:20px;gap:14px;background:#fff;box-shadow:0 3px 10px #41206f04}
.metric-card:nth-child(2){border-top-color:#ffb35a}.metric-card:nth-child(3){border-top-color:#37bdaa}
.metric-label{font-size:13px;color:#766581}.metric-card strong{font-size:32px;color:#3c255c;line-height:1.5;font-weight:650}
.metric-card strong small{font-size:14px;color:#84708f;font-weight:500}.metric-caption{font-size:12px;color:#796884;line-height:1.6}
.metric-icon{width:42px;height:42px;border-radius:12px}.metric-icon .icon{width:23px;height:23px}
.metric-icon.purple{background:#eee2ff;color:#8a44e8}.metric-icon.green{background:#fff0d8;color:#b26500}.metric-icon.neutral{background:#d8f7ef;color:#13836e}.metric-icon.amber{background:#ffe4c7;color:#a65b09}
.metric-click:hover{background:#faf6ff;border-color:#bb98ed}.metric-click.has-warning{border-color:#e7ba84;border-top-color:#ee9d42}.metric-click.has-warning strong{color:#9c500a}.metric-chevron{color:#9e71d4}
.week-workspace{grid-template-columns:minmax(0,1fr) 320px;gap:24px}
.panel{border-color:#e2d9ee;border-radius:20px;box-shadow:0 3px 13px #43216c04}
.agenda-panel{padding:27px 25px 12px}.progress-panel{padding:27px 23px 23px}
.panel-heading h2,.progress-panel .panel-heading h2{font-size:22px;font-weight:650;letter-spacing:-.7px}
.panel-heading .eyebrow,.progress-panel .eyebrow{font-size:11px;letter-spacing:1.3px}
.panel-intro{font-size:13px;color:#796684;line-height:1.8;margin-top:8px}
.small-icon{background:#f0e6ff;color:#8250d8;width:34px;height:34px}.small-icon .icon{height:19px;width:19px}
.week-arrows .icon-button{background:#f2ebfc}
.week-tabs{background:#f2ebfc;gap:6px;padding:6px}.week-tab{padding:12px;color:#7b6392;gap:4px;transition:background .15s,color .15s}
.week-tab>span{font-size:12px;font-weight:650}.week-tab>strong{font-size:15px;font-weight:750}
.week-tab.selected{background:#7539df;color:#fff;box-shadow:0 3px 9px #7139cd2e}.week-tab.selected>span{color:#eaddff}
.weekly-summary>div:first-child>span{font-size:14px;color:#766283}.weekly-summary strong{font-family:Sora,var(--font);font-size:29px;color:#503270;font-weight:650}
.weekly-summary strong small{font-family:var(--font);font-size:14px;color:#8b749a}.weekly-block-count{font-size:12px;padding:5px 9px;background:#e9dcff;color:#6b389e;font-weight:700}
.weekly-summary>p{font-size:12px;color:#796484;line-height:1.8}
.progress{background:#eee6f7;height:8px}.progress>span{background:#8a4eeb}.weekly-summary>.progress{height:9px}
.day-strip{gap:5px;margin:24px 0 20px}.day-cell{background:#f7f3fd;border-color:#e9dff7;border-radius:11px;padding:10px 0 8px;gap:4px}
.day-cell>span{font-size:10px;color:#79628b;font-weight:650}.day-cell>strong{font-family:Sora,var(--font);font-size:20px;font-weight:600;color:#5a3c75}
.day-cell.is-today{background:#f1e4ff;border-color:#bd8aee;color:#6535a1}.day-cell.is-selected{background:#7339df;border-color:#7339df;box-shadow:0 3px 10px #6b36cf30}.day-cell.is-selected>span,.day-cell.is-selected>strong{color:#fff}
.day-cell.free{background:#faf8fd;color:#93839e}.day-cell.free>strong{color:#93839e}.day-cell.is-selected.free>strong{color:#fff}.day-cell:hover{border-color:#a77bdc}
.day-dots{gap:4px;height:14px}.day-dots i{height:5px;width:5px;background:#bba0db}.day-dots i.done{background:#139c7e}.day-dots i.late{background:#d87522}.day-cell.is-selected .day-dots i{background:#c9adff}.day-cell.is-selected .day-dots i.done{background:#d4fa73}.day-dots>span{font-size:9px;color:#7c6c87}.day-cell.is-selected .day-dots>span{color:#ede0ff}
.agenda-filter{border-top-color:#e9dff6;padding-top:18px}.agenda-filter select{font-size:12px;color:#75558c;max-width:170px}
.agenda-mode{background:#f1e9fc}.agenda-mode>button{font-size:12px;padding:7px 10px;color:#7f6296;font-weight:650}.agenda-mode>button.selected{color:#7138cb;background:#fff;box-shadow:0 2px 5px #602ba519}
.day-heading h3{font-size:16px;letter-spacing:-.3px}.day-heading h3>span:not(.today-label){font-size:13px;color:#867194}.day-heading>span{font-size:12px;color:#836d93}
.today-label{font-size:11px;background:#e9d9ff;color:#713ac3;padding:3px 8px;font-weight:750}
.shift-card{border-color:#e2d5f2;background:#fff;border-radius:14px}.shift-top{padding:15px 16px 0}.shift-title h4{font-size:15px;font-weight:650}.shift-icon{color:#9c64db}.shift-icon .icon{width:19px;height:19px}
.edit-plan{width:30px;height:30px}.edit-plan .icon{height:15px;width:15px}
.shift-blocks{padding:20px 16px;gap:16px}.block-number{height:29px;width:29px;background:#f0e5ff;color:#9562cf;font-size:12px;font-weight:750;border-radius:9px}.block-number.checked{background:#ccf4e4;color:#0a8062}.block-number .icon{height:16px;width:16px}
.block-row{gap:10px}.block-label{font-size:10px;color:#8d739b;font-weight:650;letter-spacing:.7px}.block-row .subject-chip{font-size:15px;font-weight:650}.subject-chip{font-size:14px;gap:7px}.subject-chip>i{width:7px;height:7px}
.shift-footer{background:#faf5ff;border-color:#e9dff4;padding:11px 16px}.shift-footer>span{font-size:12px;color:#8a7299}.shift-footer .text-button{font-size:13px}.shift-footer .icon{width:16px;height:16px}
.changed-subject,.block-done{font-size:11px;color:#7b638d}.shift-note{font-size:12px;color:#80618f;margin:0 16px 14px}.shift-note>.icon{height:14px;width:14px}
.shift-card.complete{background:#f7fdfa;border-color:#b1e8d1}.shift-card.complete .shift-footer{background:#eefaf4;border-color:#ccebdc}.shift-card.complete .shift-footer .text-button{color:#137b5a}
.shift-card.late{background:#fffdf8;border-color:#efc594}.shift-card.late .shift-footer{background:#fff5e7;border-color:#efdbbf}
.badge{font-size:11px;font-weight:750;padding:4px 9px;border-radius:6px;line-height:1.5}.badge .icon{width:13px;height:13px}.badge.complete{background:#c9f1dd;color:#126344}.badge.today,.badge.ontime{background:#e7d5ff;color:#65329c}.badge.planned{background:#ede6f6;color:#755b8a}.badge.partial{background:#e0e9ff;color:#3c58a0}.badge.late{background:#ffe4bf;color:#995108}
.free-day{border-color:#e4d6ef}.free-day h3{font-size:13px;color:#8b7897}.free-label{font-size:12px;color:#907c9b}
.subject-progress-list{gap:21px;margin:26px 0}.subject-mini-top{font-size:14px;margin-bottom:8px;gap:9px}.subject-mini-top>span{color:#5b446f;font-weight:650;gap:7px}.subject-mini-top i{height:7px;width:7px}.subject-mini-top strong{font-size:15px;color:#5b3778}.subject-mini-top strong>span{color:#967da4;font-weight:500}.subject-track{height:6px;background:#eee8f6}.subject-track>span{background:var(--subject-color)}
.mini-total{font-size:11px;color:#8b709b;margin-top:6px}.lag-caption{font-size:12px;color:#a35c11;margin-top:6px}.no-week-target{font-size:11px;color:#8e76a0}.preparation-note{font-size:12px;color:#80628e;border-color:#e9dff3;gap:9px;line-height:1.8}.preparation-note .icon{width:16px;height:16px}
.subject-summary{border-top:4px solid #a477e5}.subject-summary h2{font-size:39px;color:#603296}.subject-summary h2>span{font-family:var(--font);font-size:18px;color:#8f70a5}.subject-summary p{font-size:14px;color:#866c98}
.area-legend>span{font-size:13px;color:#7d618f}.area-legend strong{color:#5a3874;font-weight:750}.area-legend i{height:8px;width:8px}
.filter-pill{font-size:13px;padding:9px 15px;color:#805e99;border-color:#ddcdec}.filter-pill.selected{background:#7338db;color:#fff;border-color:#7338db}.section-toolbar>.muted{font-size:13px;color:#836494}
.subject-detail{border-top:4px solid var(--subject-color);padding:24px}.subject-detail h2{font-size:23px;font-weight:650;margin-top:19px}.subject-detail .badge{font-size:10px;padding:4px 7px}.area-tag{font-size:12px;font-weight:750}.area-tag:before{width:7px;height:7px}
.subject-big-number strong{font-size:39px;color:#432457}.subject-big-number>span{font-size:14px;color:#8b709c}.subject-big-number b{font-size:15px}.block-segments{gap:5px;margin-top:16px}.block-segments>span{height:25px;background:#f0e9f7;border-color:#e5d9ef}.block-segments>span.due{background:#fff1dc;border-color:#e3a96b}.block-segments .icon{height:15px;width:15px}
.subject-forecast{font-size:13px;color:#7e638c;line-height:1.8;min-height:40px}.subject-facts{background:#f7f1fd;padding:14px;gap:10px}.subject-facts>span{font-size:12px;color:#8a6a9e}.subject-facts strong{color:#63427d;font-weight:750}.subject-detail>.text-button{font-size:13px}
.explanation-note{font-size:13px;color:#7a6389;line-height:1.9;gap:11px}.explanation-note strong{color:#5e3d79;font-weight:750}.explanation-note .icon{height:18px;width:18px}
.overview-total h2{font-size:64px;color:#6432a4;font-weight:650}.overview-total h2>span{color:#ae8fc5;font-size:30px}.overview-total>p{font-size:15px;color:#856397}.overview-total-footer{font-size:12px;color:#846594;gap:15px}.progress.large{height:11px;background:#ede1fa}
.chart-legend{font-size:12px;color:#7f6591}.chart-legend i{height:7px;width:14px}.chart-legend .planned,.comparison-track>.planned{background:#ddc7f7}.chart-legend .done,.comparison-track>.done{background:#8641e8}.chart-row{padding:20px 0;gap:20px}.chart-row>span{width:95px;gap:6px}.chart-row strong{font-size:14px;font-weight:750}.chart-row small{font-size:12px;color:#8c70a1}.chart-row>b{font-family:Sora,var(--font);font-size:19px;width:50px;color:#653a87}.chart-row>b small{font-family:var(--font);font-size:13px}.comparison-track{height:34px}.comparison-track>div{height:12px;border-radius:4px}.comparison-track>.done{top:20px}.chart-footnote{font-size:12px;color:#856b95;line-height:1.8}
.area-card{border-color:#e6d9f2}.area-card>strong{font-family:Sora,var(--font);font-size:32px;color:#4c2f60}.area-card>strong>span{font-family:var(--font);font-size:17px;color:#9d81ac}.area-card>p{font-size:12px;color:#8b6e9b}
table{font-size:14px}thead th{font-size:12px;background:#f7f1fd;color:#806094;font-weight:750}tbody td{color:#725583}tbody th .subject-chip{font-size:14px}th,td{padding:14px 12px;border-color:#ede4f6}tfoot{background:#eee1ff;color:#62338b}tfoot th{font-weight:750}
.week-cell{min-width:200px}.week-cell>div{font-size:14px;gap:15px}.week-cell small{font-size:11px;color:#8d70a2}.table-notes,.weekly-plan-note{font-size:13px;color:#7d628d;line-height:1.9}.table-notes strong{color:#63387e;font-weight:750}
.alert-intro-icon{background:#d2f5e4;color:#157e5c;width:53px;height:53px}.alert-intro-icon.warning{background:#ffe3bc;color:#ad5c0b}.alert-intro h2{font-size:22px}.alert-intro p{font-size:14px;color:#856793}.reference-label{font-size:12px;color:#8e72a0}
.alert-card{background:#fff5e7;border-color:#f2c896;padding:25px;gap:17px}.alert-icon{background:#ffe3bd;color:#b46613;height:39px;padding:9px}.alert-icon .icon{height:21px;width:21px}.alert-card h3{font-size:17px;color:#895013;font-weight:650}.alert-card p{font-size:14px;color:#976429;line-height:1.9}.alert-card .text-button{font-size:14px;color:#a45b0c}.alert-card.info{background:#f3eaff;border-color:#d3b1f5}.alert-card.info .alert-icon{background:#e6d3ff;color:#7d42c0}.alert-card.info h3{color:#714098}.alert-card.info p{color:#8b64a7}.alert-card.info .text-button{color:#7635b4}
.overdue-row{border-color:#ebdff4}.overdue-date strong{font-family:Sora,var(--font);font-size:16px}.overdue-date>span{font-size:12px;color:#8e70a1}.overdue-subjects small{font-size:11px;color:#8f72a1}
.calm-message>.icon{color:#a077d4}.calm-message>h3{font-size:24px;font-weight:600}.calm-message p{font-size:14px;color:#866b95}.calm-message .button{font-size:14px}
dialog{border-color:#d8c5ef;box-shadow:0 24px 100px #24103f45;border-radius:20px;width:710px}dialog::backdrop{background:#25133e9c;backdrop-filter:blur(5px)}#settings{width:650px}#confirm{width:510px}
.dialog-heading{border-color:#e9dcf6;background:#fdfaff;padding:26px 28px}.dialog-heading h2{font-size:25px;font-weight:650}.dialog-heading .eyebrow{font-size:11px;color:#8b6b9f}.dialog-heading>.icon-button{background:#f1e7fc}
.dialog-body{padding:25px 28px}.dialog-intro,.settings-section p,#confirm .dialog-body>p{font-size:15px;color:#7d5f90;line-height:1.9}
.planned-reference{background:#f4ebff;border-color:#e0caf8;padding:16px}.planned-reference>span{font-size:12px;color:#856099}.planned-reference .subject-chip{font-size:14px}.planned-reference>.text-button{font-size:13px;margin-top:11px}
.editor-block{background:#fdfaff;border-color:#e3cef4;padding:20px}.editor-block-title strong{font-size:15px;font-family:Sora,var(--font);font-weight:650}.editor-block-title>span{background:#e8d8ff;color:#7d41c2;font-size:13px;height:29px;width:29px;border-radius:8px}.editor-block label{font-size:13px;color:#805e95;margin-bottom:7px}.editor-block small{font-size:12px;color:#8e71a0;margin-top:8px}
input,select,textarea{font-size:16px;color:#5a3a72;border-color:#d8c3eb;border-radius:9px;padding:12px;background:#fff}input:focus,select:focus,textarea:focus{border-color:#9c6bdf}textarea::placeholder{color:#a18aac;font-size:14px}.notes-label{font-size:14px;color:#765389;margin-top:24px}.notes-label>span{font-size:12px;color:#a18aad}
.dialog-footer{background:#fbf7ff;border-color:#e9dcf5;padding:20px 28px;gap:18px}.dialog-footer .button{font-size:14px;min-height:44px;padding:11px 16px}.dialog-footer .save-helper{font-size:11px!important;color:#9a81a8}.dialog-footer>span{font-size:12px;color:#8c6d9d}.form-error{font-size:14px;color:#af3359;line-height:1.8}.inline-info{font-size:13px;color:#7a5691;background:#f4eaff;padding:14px}.inline-warning{font-size:12px;color:#a45f1c;background:#fff0db}
.settings-section+.settings-section{border-color:#e9def4}.settings-section h3{font-family:Sora,var(--font);font-size:16px;font-weight:650;margin-bottom:12px}.settings-section h3 .icon{height:21px;width:21px;color:#9664cd}.settings-small{font-size:13px!important;color:#9274a2!important}.settings-actions .button,.reference-control .button,.settings-section .text-button{font-size:13px}.plan-settings-grid strong{font-family:Sora,var(--font);font-size:31px;color:#7e45b8}.plan-settings-grid span{font-size:12px;color:#9072a0}
.history-check{background:#d4f4e5;color:#238567;height:33px;width:33px}.history-row{border-color:#ebdff4;gap:15px}.history-row strong{font-family:Sora,var(--font);font-size:15px}.history-row p,.history-row small{font-size:13px;color:#8e6d9f}.small-empty{color:#a67cce}.small-empty h3{font-size:20px;color:#7e519c}.small-empty p{font-size:14px;color:#9675a7}
.simulation-banner{background:#eaf0ff;border-color:#c9d7fb;color:#4f62a0;font-size:12px}.storage-warning{background:#fff1d9;border-color:#efc285;color:#966320;font-size:12px}.simulation-banner .text-button,.storage-warning .text-button{font-size:12px}
.toast{background:#43246b;border-color:#9b6ad5;color:#fff;font-size:14px;padding:15px 20px;box-shadow:0 6px 30px #39205029}
.page-footer{font-size:11px;color:#9278a2;padding-top:30px;line-height:1.8}

@media(max-width:1200px){
  .sidebar{width:205px}.workspace{margin-left:205px}.sidebar-context .eyebrow{font-size:9px}.sidebar-context strong{font-size:15px}.sidebar-context>span:last-child{font-size:11px}.nav-item{font-size:14px;padding:13px 11px;gap:9px}.nav-item .icon{width:19px;height:19px}.sidebar-goal-top{font-size:10px}.sidebar-goal p{font-size:12px}.brand{font-size:32px;gap:9px}.brand-icon{width:34px;height:34px}.settings-nav{font-size:13px}
  .week-workspace{grid-template-columns:minmax(0,1fr) 285px;gap:18px}.progress-panel{padding:24px 20px}.progress-panel .panel-heading h2{font-size:20px}.subject-mini-top{font-size:13px}.subject-mini-top strong{font-size:14px}.panel-heading .eyebrow{font-size:10px}.hero-copy h2{font-size:31px}.hero-copy p{font-size:13px;max-width:340px}.hero-progress{margin-right:0}.metric-card{padding:17px;gap:11px}.metric-icon{width:35px;height:35px}.metric-label{font-size:12px}.metric-caption{font-size:11px}.metric-card strong{font-size:29px}.metric-card strong small{font-size:12px}.block-row .subject-chip{font-size:14px}.day-cell>strong{font-size:18px}.day-cell>span{font-size:9px}.day-dots>span{font-size:8px}.agenda-panel{padding:25px 20px 12px}.page-heading h1{font-size:33px}.subject-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1050px){
  .week-workspace{grid-template-columns:1fr}.subject-progress-list{display:grid;grid-template-columns:1fr 1fr;gap:23px 32px}.progress-panel .panel-heading h2{font-size:22px}.progress-panel{padding:26px}.subject-mini-top{font-size:14px}.subject-mini-top strong{font-size:15px}.progress-panel .full-width{max-width:300px}.preparation-note{max-width:630px}.shift-blocks{grid-template-columns:1fr 1fr}.block-row>div{flex-direction:column;align-items:flex-start;gap:2px}.block-label{display:block}.block-done{display:none}.block-row .subject-chip{font-size:15px}.overview-grid{grid-template-columns:1fr}.hero-card{padding:30px;min-height:270px}.hero-copy h2{font-size:29px}.hero-copy p{max-width:295px;font-size:13px}.progress-orbit{height:148px;width:148px}.progress-orbit strong{font-size:39px}.progress-orbit>div>span{font-size:10px}.hero-progress-caption{font-size:11px}.hero-link{font-size:13px}.status-label{font-size:11px}.metric-card{padding:17px 14px}.metric-label{font-size:11px;max-width:140px}.metric-caption{font-size:10px}.metric-icon{width:31px;height:31px}.metric-icon .icon{height:19px;width:19px}.metric-card strong small{font-size:11px}.page-heading p{font-size:14px}.area-legend{grid-template-columns:1fr;gap:10px}.area-legend>span{font-size:12px}.subject-summary p{font-size:13px}
}
@media(max-width:800px){
  .sidebar{width:76px;background:linear-gradient(165deg,#2e1858,#201738)}.workspace{margin-left:76px}.brand>span:last-child{display:none}.brand-icon{width:40px;height:40px}.sidebar nav{margin-top:38px}.sidebar .nav-item{padding:15px 0}.sidebar .nav-item .icon{width:22px;height:22px}.nav-count{font-size:9px!important;width:16px;height:16px;line-height:16px;right:4px;top:5px}.settings-nav{padding:16px 0}.sidebar-context,.sidebar-goal,.sidebar-footer{display:none}.topbar{height:70px}.breadcrumb{font-size:10px}.save-status{font-size:11px}.page-heading h1{font-size:31px}.page-heading .button{font-size:13px;min-height:44px;padding:11px 14px}.page-heading .button .icon{height:17px;width:17px}.hero-copy h2{font-size:29px}.metric-card{padding:17px 14px;min-height:140px}.metric-icon{width:28px;height:28px;right:13px;top:17px}.metric-label{font-size:11px;padding-right:25px;min-height:35px}.metric-caption{font-size:10px}.metric-card strong{font-size:29px}.hero-copy p{font-size:12px}.hero-link{font-size:12px}.overview-total h2{font-size:53px}.subject-detail{padding:22px}.subject-detail h2{font-size:22px}.subject-detail .badge{font-size:9px}.subject-summary h2{font-size:34px}.area-tag{font-size:11px}.filter-pill{font-size:12px}.page-footer{font-size:10px}
}
@media(max-width:680px){
  .sidebar{width:auto;height:75px;inset:auto 0 0;flex-direction:row;background:#fff;border-color:#e1d1f2;box-shadow:0 -4px 24px #602c9f0c;padding:5px 10px max(5px,env(safe-area-inset-bottom))}.workspace{margin-left:0}.sidebar nav{margin:0}.sidebar .nav-item{color:#9473a8;padding:9px 0 6px;gap:5px}.sidebar .nav-item>span:not(.nav-count){font-size:10px;font-weight:700}.sidebar .nav-item .icon{height:23px;width:23px}.sidebar .nav-item.active{background:#efe1ff;color:#7834ce;box-shadow:none}.sidebar .nav-item:hover{background:#f5edff;color:#7136bb}.sidebar .settings-nav{display:none}.nav-count{width:15px!important;height:15px!important;line-height:15px!important;font-size:8px!important;right:calc(50% - 23px)!important;background:#ffb278!important;color:#633816}
  main{padding:24px 20px 100px}.topbar{height:65px;padding:0 20px}.breadcrumb{font-size:10px;gap:8px;letter-spacing:.5px}.save-status{font-size:11px;gap:5px}.topbar .save-status:after{font-size:11px}.topbar .icon-button{height:33px;width:33px}.topbar .icon-button .icon{width:18px;height:18px}.page-heading{gap:12px;margin-bottom:24px}.page-heading h1{font-size:29px;line-height:1.4;letter-spacing:-1px;max-width:295px}.page-heading .eyebrow{font-size:10px;letter-spacing:1px;margin-bottom:5px}.page-heading p{font-size:14px;max-width:280px;margin-top:7px;line-height:1.8}.page-heading>.button{width:45px;height:45px;min-height:45px;font-size:0;padding:0;gap:0;border-radius:13px}.page-heading>.button .icon{height:21px;width:21px}
  .hero-card{min-height:275px;padding:25px 22px;gap:12px;border-radius:20px}.hero-copy h2{font-size:26px;letter-spacing:-.8px;line-height:1.3}.hero-copy p{font-size:12px;max-width:205px;line-height:1.8;margin-top:14px}.status-label{font-size:10px;padding:4px 8px;margin-bottom:15px;gap:4px}.status-label .icon{width:12px;height:12px}.hero-link{font-size:11px;gap:5px;max-width:220px;margin-top:16px;line-height:1.8}.hero-link .icon{width:16px;height:16px}.hero-progress{gap:11px}.progress-orbit{height:110px;width:110px;padding:6px}.progress-orbit>div{border-width:3px}.progress-orbit strong{font-size:30px;letter-spacing:-1px}.progress-orbit strong span{font-size:17px}.progress-orbit>div>span{font-size:7px}.hero-progress-caption{font-size:9px;max-width:110px;line-height:1.8}.hero-decoration{height:340px;width:340px;right:-170px;top:45px}
  .metrics-grid{gap:8px;margin-bottom:24px}.metric-card{border-top-width:3px;padding:13px 10px;min-height:145px;border-radius:13px}.metric-icon{display:none}.metric-label{font-size:10px;padding:0;min-height:35px;max-width:100px;line-height:1.7}.metric-card strong{font-size:29px;margin:4px 0 2px;line-height:1.5;letter-spacing:-1px}.metric-card strong small{font-size:10px;letter-spacing:0}.metric-caption{font-size:9px;line-height:1.7}.metric-chevron{display:none}
  .week-workspace{gap:22px}.agenda-panel{padding:24px 20px 12px}.panel-heading h2,.progress-panel .panel-heading h2{font-size:21px;line-height:1.4;letter-spacing:-.6px}.panel-heading .eyebrow,.progress-panel .eyebrow{font-size:10px;letter-spacing:1px}.week-arrows .icon-button{height:32px;width:32px}.week-tabs{margin-top:22px}.week-tab{padding:11px 8px;gap:4px}.week-tab>span{font-size:11px}.week-tab>strong{font-size:14px}.weekly-summary{margin-top:23px;gap:12px}.weekly-summary>div:first-child>span{font-size:13px}.weekly-summary strong{font-size:28px}.weekly-summary strong small{font-size:12px}.weekly-summary>p{font-size:11px;line-height:1.8}.weekly-block-count{font-size:10px;padding:4px 7px}
  .day-strip{gap:4px;margin:23px 0 18px}.day-cell{padding:9px 0 7px;border-radius:8px;gap:4px}.day-cell>span{font-size:9px}.day-cell>strong{font-size:17px}.day-dots{height:12px;gap:3px}.day-dots i{width:4px;height:4px}.day-dots>span{font-size:8px}.agenda-filter{gap:7px;padding-top:17px}.agenda-mode{gap:2px;padding:3px}.agenda-mode>button{font-size:11px;padding:6px 7px}.agenda-filter select{font-size:11px;max-width:135px;padding:6px 1px}.day-heading h3{font-size:15px;gap:7px;letter-spacing:-.3px}.day-heading h3>span:not(.today-label){font-size:12px}.day-heading>span{font-size:11px}.today-label{font-size:10px;padding:2px 6px}
  .shift-top{padding:14px 13px 0;gap:7px}.shift-title{gap:6px}.shift-title h4{font-size:15px}.shift-icon .icon{height:17px;width:17px}.badge{font-size:10px;padding:4px 7px}.badge .icon{height:11px;width:11px}.edit-plan{height:28px;width:28px}.edit-plan .icon{height:14px;width:14px}.shift-blocks{padding:18px 13px;gap:12px}.block-row{gap:8px;align-items:center}.block-number{height:26px;width:26px;border-radius:7px;font-size:11px}.block-label{font-size:9px;letter-spacing:.5px}.block-row .subject-chip{font-size:14px;gap:5px;line-height:1.6}.subject-chip>i{height:6px;width:6px}.shift-footer{padding:11px 13px;gap:8px}.shift-footer>span{font-size:10px}.shift-footer .text-button{font-size:12px;gap:5px}.shift-footer .icon{height:14px;width:14px}.shift-note{font-size:11px;line-height:1.8}.changed-subject{font-size:10px;line-height:1.6}
  .progress-panel{padding:24px 23px}.subject-progress-list{column-gap:23px;row-gap:24px;margin:25px 0}.subject-mini-top{font-size:13px;gap:5px;margin-bottom:8px}.subject-mini-top>span{gap:5px}.subject-mini-top i{height:5px;width:5px}.subject-mini-top strong{font-size:14px}.subject-track{height:6px}.mini-total{font-size:10px!important;margin-top:7px}.lag-caption{font-size:11px;line-height:1.7}.no-week-target{font-size:10px;line-height:1.7}.preparation-note{font-size:12px}.panel-intro{font-size:13px}.progress-panel .button{font-size:14px;max-width:none}
  .subject-summary{padding:22px 20px;gap:13px}.subject-summary h2{font-size:32px;line-height:1.6}.subject-summary h2>span{font-size:14px}.subject-summary p{font-size:12px;line-height:1.8;max-width:200px}.subject-summary .eyebrow{font-size:10px}.area-legend{gap:10px;margin-top:6px}.area-legend>span{font-size:10px;gap:5px}.area-legend i{width:5px;height:5px}.area-legend strong{margin-left:3px}.filter-pills{gap:7px}.filter-pill{font-size:12px;padding:8px 12px}.subject-cards{grid-template-columns:1fr;gap:18px}.subject-detail{padding:24px}.subject-detail h2{font-size:25px;margin-top:18px}.subject-detail .badge{font-size:10px;padding:4px 8px}.area-tag{font-size:12px}.subject-big-number strong{font-size:40px}.subject-big-number>span{font-size:15px}.subject-big-number b{font-size:16px}.block-segments>span{height:28px}.subject-forecast{font-size:14px;min-height:0}.subject-facts>span{font-size:13px}.subject-detail>.text-button{font-size:14px}.explanation-note{font-size:12px;gap:10px;line-height:1.9}
  .overview-total{padding:25px;gap:0 15px}.overview-total h2{font-size:53px}.overview-total h2>span{font-size:25px}.overview-total>p{font-size:14px}.overview-total-footer{font-size:11px}.weekly-chart{padding:24px}.chart-legend{font-size:11px;margin-top:15px;gap:12px}.chart-row{padding:20px 0;gap:13px}.chart-row>span{width:80px;gap:6px}.chart-row strong{font-size:13px}.chart-row small{font-size:11px}.chart-row>b{font-size:18px;width:42px}.chart-row>b small{font-size:12px}.chart-footnote{font-size:12px;line-height:1.9}.area-overview,.plan-table-panel,.weekly-table-panel{padding:24px}.area-cards{gap:25px 18px}.area-card .area-tag{font-size:12px}.area-card>strong{font-size:32px}.area-card>p{font-size:11px;line-height:1.8}.table-notes,.weekly-plan-note{font-size:12px}table{font-size:14px}thead th{font-size:12px}tbody th .subject-chip{font-size:14px}.week-cell{min-width:190px}.week-cell>div{font-size:14px}.week-cell small{font-size:10px}
  .alert-intro{padding:22px 20px;gap:14px}.alert-intro-icon{width:44px;height:44px}.alert-intro h2{font-size:19px;line-height:1.5}.alert-intro p{font-size:13px;line-height:1.8}.alert-card{padding:22px 19px;gap:13px}.alert-icon{padding:7px;height:34px}.alert-icon .icon{width:20px;height:20px}.alert-card h3{font-size:16px;line-height:1.6}.alert-card p{font-size:13px}.alert-card .text-button{font-size:13px}.overdue-panel{padding:24px 21px}.overdue-row{gap:13px}.overdue-date{min-width:55px}.overdue-date strong{font-size:15px}.overdue-date>span{font-size:12px}.overdue-subjects .subject-chip{font-size:13px}.overdue-subjects small{font-size:11px}.overdue-row>.button{font-size:13px;min-height:40px;margin-left:68px}.calm-message h3{font-size:23px}.calm-message p{font-size:14px}.calm-message .button{font-size:14px}
  dialog{max-width:calc(100vw - 20px);border-radius:17px}.dialog-heading{padding:22px 20px}.dialog-heading h2{font-size:22px;line-height:1.5}.dialog-heading .eyebrow{font-size:10px}.dialog-body{padding:22px 20px}.dialog-intro,.settings-section p,#confirm .dialog-body>p{font-size:14px}.planned-reference{padding:15px}.planned-reference>span{font-size:12px}.planned-reference .subject-chip{font-size:14px}.planned-reference>.text-button{font-size:13px}.editor-block{padding:17px}.editor-block-title strong{font-size:15px}.editor-block label{font-size:13px}.editor-block small{font-size:12px}.editor-block input,.editor-block select{font-size:16px;padding:12px 10px}.editor-blocks{gap:15px}.notes-label{font-size:14px}.notes-label>span{font-size:12px}textarea{font-size:16px}textarea::placeholder{font-size:14px}.dialog-footer{padding:20px;gap:15px}.dialog-footer .button{font-size:13px;min-height:43px;padding:10px 14px}.dialog-footer>.text-button{font-size:12px}.dialog-footer>span{font-size:12px}.settings-section h3{font-size:16px}.settings-actions .button,.reference-control .button,.settings-section .text-button{font-size:13px}.settings-small{font-size:12px!important}.plan-settings-grid span{font-size:12px}.history-row strong{font-size:15px}.history-row p,.history-row small{font-size:13px}.small-empty h3{font-size:20px}.small-empty p{font-size:14px}
  .simulation-banner,.storage-warning{font-size:11px;line-height:1.9}.simulation-banner .text-button,.storage-warning .text-button{font-size:11px}.toast{font-size:13px;bottom:88px;padding:14px 17px}.page-footer{font-size:10px;line-height:1.9}
}
@media(max-width:520px){.editor-blocks{grid-template-columns:1fr}.editor-block-title{margin-bottom:16px}.editor-block select{margin-bottom:18px}}
@media(max-width:380px){
  main{padding-left:15px;padding-right:15px}.topbar{padding-left:15px;padding-right:15px}.breadcrumb{font-size:9px;gap:7px}.page-heading h1{font-size:27px}.page-heading p{font-size:13px}.page-heading .eyebrow{font-size:9px}.hero-card{padding:24px 18px;gap:9px}.hero-copy h2{font-size:24px}.hero-copy p{font-size:11px;max-width:180px}.hero-link{font-size:10px}.status-label{font-size:9px}.progress-orbit{height:97px;width:97px;padding:5px}.progress-orbit strong{font-size:27px}.progress-orbit>div>span{font-size:6px}.hero-progress-caption{font-size:8px;max-width:98px}.metric-card{padding:12px 8px;min-height:145px}.metric-label{font-size:9px}.metric-card strong{font-size:26px}.metric-card strong small{font-size:9px}.metric-caption{font-size:8px}.agenda-panel{padding:23px 16px 12px}.panel-heading h2,.progress-panel .panel-heading h2{font-size:20px}.week-tab>strong{font-size:13px}.weekly-summary strong small{font-size:11px}.weekly-block-count{font-size:9px}.day-cell>span{font-size:8px}.day-cell>strong{font-size:16px}.day-dots>span{font-size:7px}.agenda-mode>button{font-size:10px;padding:6px}.agenda-filter select{font-size:10px;max-width:126px}.day-heading h3{font-size:14px}.day-heading h3>span:not(.today-label){font-size:11px}.day-heading>span{font-size:10px}.block-row .subject-chip{font-size:13px}.block-number{width:24px;height:24px}.block-row{gap:7px}.shift-blocks{gap:10px;padding-left:12px;padding-right:12px}.shift-footer>span{font-size:9px}.shift-footer .text-button{font-size:11px}.subject-mini-top{font-size:12px}.subject-mini-top strong{font-size:13px}.subject-progress-list{column-gap:18px}.progress-panel{padding:24px 20px}.mini-total{font-size:10px!important}.area-legend>span{font-size:9px}.subject-summary h2>span{font-size:12px}.area-legend strong{margin-left:1px}
}
@media(max-width:680px){
  .hero-card{display:grid;grid-template-columns:minmax(0,1fr) 110px;column-gap:12px;row-gap:16px;align-items:center;padding:25px 22px;min-height:0}
  .hero-copy{display:contents}
  .hero-copy .status-label{grid-column:1/-1;justify-self:start;margin:0;width:max-content}
  .hero-copy h2{grid-column:1/-1;max-width:none;font-size:26px;line-height:1.35}
  .hero-copy p{grid-column:1;grid-row:3;max-width:none;margin:0;font-size:12px}
  .hero-copy .hero-link{grid-column:1;grid-row:4;max-width:none;margin:0;font-size:11px;gap:5px;justify-self:start}
  .hero-progress{grid-column:2;grid-row:3/span 2;margin:0;align-self:center;gap:8px}
  .progress-orbit{width:98px;height:98px;padding:5px}
  .progress-orbit strong{font-size:29px}.progress-orbit strong span{font-size:16px}
  .progress-orbit>div>span{font-size:7px}.hero-progress-caption{font-size:8px;max-width:105px}
}
@media(max-width:380px){.hero-card{padding:24px 18px;grid-template-columns:minmax(0,1fr) 98px;column-gap:10px}.hero-copy h2{font-size:24px}.hero-copy p{font-size:11px}.hero-copy .hero-link{font-size:10px}.progress-orbit{height:91px;width:91px}.progress-orbit strong{font-size:27px}.progress-orbit>div>span{font-size:6px}}
@media(max-width:680px){
  .metrics-grid{grid-template-columns:1fr;gap:10px}
  .metric-card{display:flex;align-items:center;padding:15px 17px;min-height:83px;gap:13px;border-top-width:1px;border-left:4px solid #a57af2}
  .metric-card:nth-child(2){border-left-color:#ffb35a}.metric-card:nth-child(3){border-left-color:#37bdaa}
  .metric-card .metric-icon{display:grid;position:static;width:33px;height:33px;border-radius:10px;opacity:1;flex-shrink:0}
  .metric-card .metric-icon .icon{width:19px;height:19px}
  .metric-card>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:3px;flex:1;min-width:0}
  .metric-label{grid-column:1;grid-row:1;font-size:13px;min-height:0;max-width:none;padding:0;line-height:1.7}
  .metric-card strong{grid-column:2;grid-row:1/span 2;align-self:center;font-size:29px;line-height:1.5;margin:0;letter-spacing:-1px}
  .metric-card strong small{font-size:11px;letter-spacing:0}
  .metric-caption{grid-column:1;grid-row:2;font-size:11px;line-height:1.8}
}
@media(max-width:380px){.metric-card{padding:14px 13px;gap:10px}.metric-label{font-size:12px}.metric-card strong{font-size:27px}.metric-card strong small{font-size:10px}.metric-caption{font-size:10px}}

/* The account screen keeps the same contrast and typography as the planner. */
.auth-page { min-height:100dvh; display:grid; place-items:center; padding:28px 18px; background:radial-gradient(ellipse at 15% 10%,#dac9ff,transparent 58%),#f3f0fc; }
.auth-card { width:min(100%,480px); padding:38px; border-radius:30px; background:white; box-shadow:0 24px 80px #381d6520; }
.auth-card .brand { color:#321653; margin-bottom:38px; width:fit-content; }
.auth-card h1 { font-size:38px; line-height:1.18; letter-spacing:-1.4px; margin:12px 0 18px; }
.auth-card p { font-size:16px; line-height:1.65; color:#625671; }
.login-form { display:grid; gap:10px; margin-top:28px; }
.login-form label { font-weight:700; font-size:15px; }
.login-form input { width:100%; min-height:50px; border:1.5px solid #d4c8e7; border-radius:12px; padding:12px 14px; font:inherit; font-size:16px; background:#fcfaff; color:#281a3c; }
.login-form input:focus { outline:3px solid #c7b2fc; border-color:#6d38e6; }
.login-form label:not(:first-child) { margin-top:10px; }
.auth-note { background:#e7f7c2; border-radius:12px; padding:14px; margin-top:26px; font-size:14px; font-weight:700; color:#3c5120; }
.cloud-message { color:#51249c; font-weight:750; padding:15px; background:#f2ebff; border-radius:12px; }
.account-email { font-weight:700; overflow-wrap:anywhere; }
.sync-conflict { padding:18px; border:1px solid #e4bd76; border-radius:14px; background:#fff9ed; margin-bottom:20px; }
#account .settings-actions { margin-top:18px; }
@media(max-width:520px) { .auth-card { padding:28px 22px; } .auth-card h1 { font-size:32px; } .auth-card .brand { margin-bottom:28px; } }
.auth-card .brand { display:flex; }
.auth-card .brand > span:last-child { display:block; }
@media(max-width:767px) { .topbar .save-status::after { content:attr(data-short); } }
.install-icon { border-radius:18px; margin-bottom:22px; }
.install-steps { padding-left:24px; line-height:1.8; font-size:16px; color:#4c3a61; }
.install-steps li { padding:5px 0; }
@media(display-mode:standalone) {
 .topbar { padding-top:env(safe-area-inset-top); height:calc(65px + env(safe-area-inset-top)); }
 .sidebar { padding-bottom:env(safe-area-inset-bottom); }
 .workspace main { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
}
@media(max-width:767px) { .topbar .save-status.save-error::after { content:attr(data-short); } }
