/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.table{display:table}}:root{color:#23324a;font-synthesis:none;--blue:#2458dc;--muted:#64738b;--border:#e7ecf5;--nav:#16243b;background:#f5f7fc;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #6294ff}h1,h2,h3,p{margin:0}h1{letter-spacing:-.055em;font-size:2rem;font-weight:700;line-height:1.4}h2{font-size:1.125rem;font-weight:650}h3{font-size:1rem;font-weight:600}p{line-height:1.7}svg{flex-shrink:0}label{flex-direction:column;gap:8px;margin-bottom:16px;font-size:.875rem;font-weight:500;display:flex}input,textarea,select{color:#23324a;background:#fff;border:1px solid #d8e0ed;border-radius:9px;width:100%;min-width:0;padding:11px 12px;font-size:1rem}input:focus,textarea:focus,select:focus{border-color:var(--blue);outline:2px solid #a2bbff}input[type=date],input[type=time]{min-height:44px}.muted{color:var(--muted)}.small{font-size:.875rem}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.row{align-items:center;gap:12px;display:flex}.between{justify-content:space-between}.full{width:100%}.primary,.secondary,.danger,.danger-outline{border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 17px;font-size:.875rem;font-weight:600;display:inline-flex}.primary{background:var(--blue);color:#fff;box-shadow:0 3px 6px #2458dc12}.primary:hover{background:#1948c0}.secondary{background:#fff;border:1px solid #dce3ef}.secondary:hover{background:#f2f5fa}.danger{color:#fff;background:#b83042}.danger-outline{color:#b83042;background:#fff;border:1px solid #efcbd0}.icon-button{color:#687a93;border-radius:9px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.icon-button:hover{color:var(--blue);background:#edf2fa}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--nav);color:#c2cedf;z-index:20;flex-direction:column;width:234px;height:100vh;padding:32px 20px;display:flex;position:fixed}.brand{letter-spacing:-.045em;color:#fff;align-items:center;gap:10px;font-size:1.75rem;font-weight:750;display:flex}.brand-mark{background:var(--blue);color:#fff;border-radius:11px;justify-content:center;align-items:center;width:36px;height:36px;font-size:2rem;font-style:italic;font-weight:700;line-height:1;display:inline-flex}.sidebar .brand{padding:0 12px}.sidebar-caption{color:#8394ae;padding:15px 12px 35px;font-size:.875rem}.sidebar nav{flex-direction:column;gap:8px;display:flex}.sidebar nav a{border-radius:9px;align-items:center;gap:13px;padding:14px;font-size:.9375rem;display:flex}.sidebar nav a.active{color:#fff;background:#2b5ddc}.sidebar nav a:hover:not(.active){background:#ffffff0a}.nav-count{text-align:center;background:#ffffff24;border-radius:6px;min-width:22px;margin-left:auto;font-size:.75rem}.sidebar-bottom{border-top:1px solid #ffffff12;margin-top:auto;padding:20px 9px 0}.pair-mini{align-items:center;gap:10px;margin-bottom:16px;display:flex}.pair-mini strong,.pair-mini span{font-size:.875rem;display:block}.pair-mini span{color:#8294af;text-overflow:ellipsis;white-space:nowrap;max-width:140px;margin-top:5px;overflow:hidden}.avatar{color:var(--blue);background:#e8efff;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:1rem;display:flex}.small-avatar{border-radius:50%;width:34px;height:34px;font-size:.875rem}.sidebar-bottom .muted{color:#8b9bb4}.main-shell{flex:1;min-width:0;margin-left:234px}.topbar{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;gap:20px;height:76px;padding:0 40px;display:flex}.breadcrumb{color:#5c6f8c;align-items:center;gap:15px;font-size:.875rem;display:flex}.breadcrumb span{color:#b3bfce}.topbar-right{align-items:center;gap:20px;display:flex}.mobile-brand{display:none}.demo-banner{color:#335592;background:#edf3ff;border-bottom:1px solid #dce7fc;justify-content:space-between;align-items:center;gap:12px;padding:10px 40px;font-size:.875rem;display:flex}.demo-banner>div{flex-shrink:0;gap:4px;display:flex}.demo-banner button{border-radius:6px;padding:7px 10px}.demo-banner .selected{color:#2458dc;background:#fff;box-shadow:0 1px 5px #23324a13}.offline-banner{color:#8b600f;background:#fff4dc;gap:10px;padding:12px 40px;font-size:.875rem;display:flex}main{max-width:1440px;margin:auto;padding:38px 40px 50px}.page-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:30px;display:flex}.eyebrow{letter-spacing:.13em;color:#7b8ba4;margin-bottom:10px;font-size:.75rem;font-weight:600;display:block}.page-heading p{color:var(--muted);margin-top:9px;font-size:.9375rem}.heading-dot{color:var(--blue);margin-left:4px;font-size:2.7rem;line-height:0}.day-tag{border:1px solid var(--border);background:#fff;border-radius:9px;align-items:center;gap:9px;padding:12px 16px;font-size:.875rem;display:flex}.stats-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px;display:grid}.stat-card{border:1px solid var(--border);background:#fff;border-radius:13px;padding:23px 25px;position:relative}.stat-card>span{color:#6d7d95;font-size:.875rem}.stat-card>div{align-items:baseline;gap:12px;margin-top:13px;display:flex}.stat-card strong{letter-spacing:-.04em;font-size:2.125rem;font-weight:650;line-height:1}.stat-card strong small{margin-left:4px;font-size:1.125rem}.stat-card>div>span{color:#77869b;font-size:.875rem}.stat-icon{color:#6286e4;width:21px;height:21px;position:absolute;top:23px;right:24px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 285px;align-items:start;gap:26px;display:grid}.panel{border:1px solid var(--border);background:#fff;border-radius:13px;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;padding:23px 24px;display:flex}.date-switch{border:1px solid #e4eaf5;border-radius:7px;align-items:center;height:36px;font-size:.875rem;display:flex}.date-switch button{justify-content:center;align-items:center;width:32px;height:36px;display:flex}.date-switch input{background:0 0;border:0;max-width:132px;min-height:32px;padding:5px;font-size:.8125rem}.day-progress{color:#71819b;padding:23px 24px 19px;font-size:.875rem}.day-progress strong{color:var(--blue)}.progress-track{background:#eef2f9;border-radius:3px;height:6px;margin-top:12px;overflow:hidden}.progress-track>div{background:var(--blue);border-radius:3px;height:100%;transition:width .3s}.timeline{padding:4px 23px}.task-card{text-align:left;border-bottom:1px solid var(--border);gap:18px;width:100%;padding:18px 0;display:flex}.task-card:last-child{border:0}.time-column{flex-shrink:0;width:52px;padding-top:5px;position:relative}.time-column strong{color:#344968;font-size:.875rem;display:block}.time-column>span{color:#93a1b6;margin-top:7px;font-size:.75rem;display:block}.task-body{border-left:3px solid #dce7ff;flex:1;min-width:0;padding:5px 0 3px 17px}.task-card:hover .task-body{border-color:var(--blue)}.subject{color:#3868cc;background:#eef3ff;border-radius:5px;padding:4px 9px;font-size:.75rem;font-weight:500;display:inline-flex}.subject-math{color:#7854c8;background:#f0edff}.subject-reading{color:#257663;background:#e9f6f2}.status{white-space:nowrap;color:#708096;background:#eef1f7;border-radius:5px;align-items:center;padding:4px 9px;font-size:.75rem;display:inline-flex}.status.in_progress{color:#2458dc;background:#e9f0ff}.status.submitted{color:#926315;background:#fff3da}.status.completed{color:#247d51;background:#e8f7ef}.status.redo{color:#ad4940;background:#fff0ef}.status.cancelled{color:#8a929f;background:#f0f1f4}.task-body h3{margin-top:12px;margin-bottom:8px;line-height:1.6}.task-body>p{color:#8491a6;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.875rem;display:-webkit-box;overflow:hidden}.task-foot{color:#8f9bb0;flex-wrap:wrap;margin-top:15px;font-size:.75rem}.card-link{color:#3f6dd3;align-items:center;gap:3px;display:flex}.overdue{color:#b46525;font-weight:500}.cancelled{opacity:.7}.timeline-note{padding:16px 24px 22px;font-size:.75rem}.dashboard-aside{flex-direction:column;gap:22px;display:flex}.word-promo{color:#fff;background:#2458dc;border-radius:13px;padding:25px;position:relative;overflow:hidden}.word-promo .eyebrow{color:#c7d6ff;margin:0;font-size:.6875rem}.word-promo h2{letter-spacing:-.035em;margin-top:24px;font-size:1.375rem;line-height:1.65}.word-promo p{color:#d1ddff;margin-top:10px;font-size:.875rem}.word-promo button{color:#2458dc;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;width:100%;margin-top:25px;padding:12px 14px;font-size:.875rem;font-weight:600;display:flex}.compact{padding:24px}.week-bars{justify-content:space-between;align-items:flex-end;gap:12px;margin-top:25px;display:flex}.week-bars button{color:#8392a8;flex-direction:column;flex:1;align-items:center;gap:10px;min-width:0;font-size:.75rem;display:flex}.bar{background:#f0f3f9;border-radius:5px;align-items:flex-end;width:100%;max-width:16px;height:75px;display:flex;overflow:hidden}.bar span{background:#adc4ff;border-radius:4px;width:100%}.week-bars .current{color:var(--blue);font-weight:650}.week-bars .current .bar span{background:var(--blue)}.compact>p{margin-top:19px}.quiet-note{color:#8e9db4;align-items:flex-start;gap:12px;padding:0 14px;font-size:.875rem;display:flex}.quiet-note svg{margin-top:5px}.review-count{margin:23px 0;font-size:2.5rem;font-weight:600}.review-count small{color:var(--muted);margin-left:10px;font-size:.875rem;font-weight:400}.bottom-nav{display:none}footer{color:#95a1b5;gap:8px;max-width:1440px;margin:auto;padding:0 40px 25px;font-size:.75rem;display:flex}.footer-right{margin-left:auto}.empty{text-align:center;color:#8b9ab1;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:45px 25px;display:flex}.empty h3{color:#536783}.empty p{max-width:380px;font-size:.875rem}.week-heading{gap:10px;margin:8px 0 23px;font-size:.875rem}.week-grid{border:1px solid var(--border);background:#fff;border-radius:13px;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.week-day{border-right:1px solid var(--border);min-height:230px;padding:15px 10px}.week-day:last-child{border:0}.week-day header{flex-direction:column;gap:6px;margin-bottom:17px;padding:0 4px;font-size:.875rem;display:flex}.week-day header span{color:#8a9ab2;font-size:.75rem}.is-today{background:#f4f7ff}.is-today header strong{color:var(--blue)}.week-task{text-align:left;background:#edf2ff;border-radius:7px;flex-direction:column;gap:7px;width:100%;margin-bottom:10px;padding:10px;display:flex}.week-task>span{color:#6680af;font-size:.75rem}.week-task>strong{overflow-wrap:anywhere;font-size:.8125rem;font-weight:500;line-height:1.65}.week-day>p{padding:10px 4px}.template-list{margin-top:28px}.list-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:15px;padding:20px 24px;display:flex}.list-row:last-child{border:0}.list-row p{color:#7c8ca3;margin-top:7px;font-size:.875rem}.inbox{padding:12px 24px}.word-entry-grid{grid-template-columns:1fr 1fr .65fr;gap:20px;margin-bottom:28px;display:grid}.word-entry{border:1px solid var(--border);text-align:left;background:#fff;border-radius:13px;align-items:center;gap:16px;padding:25px;display:flex}.word-entry>svg:last-child{margin-left:auto}.word-entry>svg:first-child{color:#4c6fd5}.word-entry p{color:#8090a8;margin-top:7px;font-size:.875rem}.word-entry.blue{background:#eaf0ff;border-color:#d8e5ff}.word-daily{text-align:center;border:1px solid var(--border);background:#fff;border-radius:13px;padding:22px}.word-daily strong{font-size:1.5rem}.word-daily p{color:#7789a4;margin:7px 0;font-size:.875rem}.search-field{max-width:240px;margin:0}.search-field input{font-size:.875rem}.word-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:22px 24px;display:flex}.word-row:last-child{border:0}.word-main{min-width:0}.word-main h3{font-size:1.25rem;font-weight:650}.word-main>p{margin:3px 0 8px;font-size:.9375rem}.word-main>.row{flex-wrap:wrap;gap:5px}.word-progress{flex-wrap:wrap;gap:15px;margin-top:12px;font-size:.75rem;display:flex}.phonetic{color:#8a99af}.footnote{margin:18px 5px}.settings-grid{grid-template-columns:1.15fr 1fr;align-items:start;gap:24px;display:grid}.settings-panel{padding:27px}.settings-panel>h2{margin-bottom:23px}.settings-panel>p{margin-bottom:22px;font-size:.9375rem}.settings-panel>button{margin-top:15px}.pair-display{align-items:center;gap:14px;margin-bottom:25px;display:flex}.pair-display p{color:#7b8da5;margin-top:7px;font-size:.875rem}.invite-box{background:#f4f7fd;border-radius:9px;margin-top:20px;padding:20px}.invite-box label{font-size:.8125rem}.invite-box input{font-size:.875rem}.invite-box button{margin-top:12px}.danger-zone{border-top:1px solid var(--border);margin-top:35px;padding-top:25px}.danger-zone p{margin:12px 0 17px}.divider{text-align:center;color:#8c9ab0;padding:28px 0;font-size:.875rem}.settings-notes{color:#64738b;margin:15px 0 28px;padding-left:22px;font-size:.875rem;line-height:1.9}.settings-notes li{margin:12px 0}.unpaired-banner{background:#edf3ff;border:1px solid #dbe7fc;border-radius:10px;align-items:center;gap:14px;margin-bottom:25px;padding:18px;display:flex}.unpaired-banner>div{flex:1}.unpaired-banner p{color:#6e83a4;margin-top:5px;font-size:.875rem}.unpaired-banner strong{font-size:.9375rem}.modal{color:#23324a;background:#fff;border:0;border-radius:17px;width:min(620px,100vw - 32px);max-height:calc(100dvh - 48px);margin:auto;padding:25px;position:fixed;inset:0;overflow:auto;box-shadow:0 24px 80px #13233f30}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#12233a80}.modal-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:22px;display:flex}.modal-head h2{font-size:1.25rem}.modal .form-grid{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.form-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:25px;display:flex}.segmented{background:#eef2fa;border-radius:9px;margin-bottom:24px;padding:4px;display:flex}.segmented button{color:#72829b;border-radius:6px;flex:1;padding:10px 12px;font-size:.875rem}.segmented .selected{color:var(--blue);background:#fff;box-shadow:0 1px 3px #00000010}.error-box{color:#a13943;overflow-wrap:anywhere;background:#fff0f0;border:1px solid #f5d6d8;border-radius:8px;margin:15px 0;padding:12px 15px;font-size:.875rem}.success-box{color:#247b49;background:#eaf7ef;border-radius:8px;margin:15px 0;padding:12px 15px;font-size:.875rem}.task-meta{color:#788aa4;flex-wrap:wrap;align-items:center;gap:10px;font-size:.875rem;display:flex}.detail-section{border-top:1px solid var(--border);margin:25px 0;padding-top:23px}.detail-section h3{margin-bottom:15px}.detail-section>p{color:#64738b;font-size:.9375rem}.upload-buttons{flex-wrap:wrap;gap:10px;display:flex}.file-control{cursor:pointer;flex-direction:row;margin:0;position:relative;overflow:hidden}.file-control input{opacity:0;cursor:pointer;position:absolute;inset:0}.file-control:focus-within{outline:2px solid var(--blue)}.upload-buttons+p{margin:12px 0 15px}.draft-photos,.submission-photos{grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0;display:grid}.draft-photos>div{position:relative}.draft-photos img{object-fit:cover;border-radius:8px;width:100%;height:110px}.draft-photos button{background:#ffffffef;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;top:5px;right:5px}.draft-photos span{background:#fffe;border-radius:3px;padding:3px 5px;font-size:.75rem;position:absolute;bottom:6px;left:6px}.photo-view{background:#f2f5fa;border-radius:8px;align-items:center;min-height:80px;font-size:.8125rem;display:flex}.photo-view img{object-fit:cover;border-radius:8px;width:100%;height:120px}.submission{border:1px solid var(--border);border-radius:9px;margin-bottom:16px;padding:17px}.submission>p{margin-top:12px;font-size:.9375rem}.submission .between{flex-wrap:wrap}.feedback{background:#f0f7f3;border-radius:7px;margin-top:14px;padding:15px;font-size:.875rem}.feedback.redo{background:#fff5ec}.feedback strong{font-size:.875rem}.feedback p{margin-top:7px}.toast{z-index:1000;color:#fff;overflow-wrap:anywhere;background:#1f304a;border-radius:10px;max-width:90vw;padding:15px 22px;font-size:.9375rem;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 5px 30px #0002}.floating-adjust{z-index:30;position:fixed;bottom:35px;left:calc(50% + 117px);transform:translate(-50%)}.floating-adjust button{box-shadow:0 4px 20px #0003}.review-card{text-align:center;background:#f4f7fd;border-radius:12px;margin:24px 0;padding:35px 15px}.review-card h2{overflow-wrap:anywhere;margin:18px 0 12px;font-size:2rem}.review-card .answer{border-top:1px solid #dfe8f8;margin-top:20px;padding-top:20px}.answer strong{color:var(--blue);font-size:1.25rem}.answer p{color:#7b8da5;margin-top:12px;font-size:.875rem}.review-grades{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.auth-layout{background:#fff;grid-template-columns:1.1fr 1fr;min-height:100dvh;display:grid}.auth-story{color:#fff;background:#16243b;flex-direction:column;justify-content:center;padding:60px 9vw;display:flex}.auth-story .brand{margin-bottom:90px}.auth-story .eyebrow{color:#aabde0}.auth-story h1{font-size:2.75rem;line-height:1.65}.auth-story>p{color:#9fafc9;margin-top:30px;font-size:1rem}.auth-features{flex-wrap:wrap;gap:25px;margin-top:70px;display:flex}.auth-features>span{color:#b6c7e5;align-items:center;gap:8px;font-size:.875rem;display:flex}.auth-features svg{width:20px}.auth-form{flex-direction:column;justify-content:center;padding:60px 15%;display:flex}.auth-form>h2{font-size:1.875rem}.auth-form>p{margin:15px 0 30px}.auth-form form label{margin-bottom:23px}.auth-links{color:var(--blue);justify-content:space-between;gap:15px;margin-top:25px;font-size:.875rem;display:flex}.setup-error{max-width:700px;margin:auto;padding:50px}.spin{animation:1.5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=1500px){main{padding-top:50px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 325px}.sidebar{width:260px}.main-shell{margin-left:260px}.sidebar nav a{padding:16px}}@media (width<=1150px){.sidebar{width:200px;padding:28px 15px}.main-shell{margin-left:200px}main{padding:30px 25px}.topbar,.demo-banner{padding-left:25px;padding-right:25px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 245px;gap:20px}.panel-header{padding:20px}.word-promo{padding:22px}.week-grid{grid-template-columns:repeat(4,1fr)}.week-day{border-bottom:1px solid var(--border)}.word-entry-grid{grid-template-columns:1fr 1fr}.word-daily{grid-column:1/-1;justify-content:center;align-items:center;gap:15px;padding:15px;display:flex}.word-daily p{margin:0}.settings-grid{grid-template-columns:1fr}.floating-adjust{left:calc(50% + 100px)}}@media (width<=850px){.sidebar{width:180px;padding:25px 12px}.main-shell{margin-left:180px}.sidebar-caption{padding:15px 10px 25px;font-size:.75rem}.sidebar nav a{padding:13px 10px;font-size:.875rem}.sidebar .brand{font-size:1.5rem}.sidebar-bottom{padding-left:0}.dashboard-grid{grid-template-columns:1fr}.dashboard-aside{grid-template-columns:1fr 1fr;display:grid}.quiet-note{display:none}.stats-grid{gap:12px}.stat-card{padding:20px 16px}.stat-icon{width:18px;top:19px;right:15px}.page-heading h1{font-size:1.75rem}.date-switch{margin-left:auto}.floating-adjust{left:calc(50% + 90px)}}@media (width<=650px){.sidebar{display:none}.main-shell{margin:0}.topbar{height:64px;padding:0 20px}.breadcrumb{display:none}.mobile-brand{color:var(--blue);letter-spacing:-.045em;font-size:1.6rem;font-weight:750;display:block}.topbar-right{gap:12px}.topbar-right>.muted{font-size:.75rem}.demo-banner{flex-direction:column;align-items:flex-start;gap:7px;padding:10px 16px;font-size:.75rem}.demo-banner>div{align-self:flex-end}.demo-banner button{padding:6px 12px;font-size:.8125rem}.offline-banner{padding:12px 16px;font-size:.8125rem}main{padding:26px 16px 30px}.page-heading{align-items:flex-start;margin-bottom:24px}.page-heading h1{letter-spacing:-.06em;font-size:1.65rem}.page-heading p{margin-top:8px;font-size:.875rem}.eyebrow{margin-bottom:8px;font-size:.625rem}.day-tag{flex-shrink:0;gap:6px;margin-top:19px;padding:9px;font-size:.75rem}.day-tag svg{width:16px}.page-heading>.primary{flex-shrink:0;margin-top:10px;padding:10px}.page-heading>.primary svg{width:16px}.stats-grid{gap:8px;margin-bottom:20px}.stat-card{border-radius:10px;padding:16px 12px}.stat-card>span{font-size:.75rem}.stat-card>div{margin-top:12px;display:block}.stat-card strong{font-size:1.75rem;display:block}.stat-card strong small{font-size:1rem}.stat-card>div>span{margin-top:8px;font-size:.6875rem;display:block}.stat-icon{display:none}.dashboard-grid{gap:20px}.panel-header{gap:9px;padding:19px 16px}.panel-header h2{font-size:1rem}.date-switch{height:34px}.date-switch button{width:26px}.date-switch input{max-width:124px;font-size:.75rem}.day-progress{padding:19px 16px;font-size:.75rem}.timeline{padding:0 16px}.task-card{gap:12px;padding:18px 0}.time-column{width:43px}.time-column strong{font-size:.8125rem}.task-body{padding-left:13px}.task-body h3{font-size:.9375rem}.task-body>p{font-size:.8125rem}.task-foot{gap:7px;font-size:.6875rem}.subject,.status{font-size:.6875rem}.timeline-note{padding:16px;font-size:.6875rem}.dashboard-aside{gap:14px}.word-promo{padding:19px 16px}.word-promo .eyebrow{font-size:.5rem;line-height:1.7}.word-promo .row>svg{width:20px}.word-promo h2{margin-top:18px;font-size:1.125rem}.word-promo p{font-size:.75rem}.word-promo button{margin-top:19px;padding:10px;font-size:.75rem}.compact{padding:19px 16px}.compact h3{font-size:.9375rem}.week-bars{gap:6px;margin-top:23px}.bar{height:60px}.compact>p{font-size:.75rem}.bottom-nav{padding:8px 7px calc(8px + env(safe-area-inset-bottom));z-index:25;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffffa;border-top:1px solid #e0e6f1;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:#7e8da5;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:5px;min-height:43px;font-size:.6875rem;display:flex}.bottom-nav a.active{color:var(--blue);font-weight:600}.bottom-nav a.active svg{fill:#2458dc12}footer{padding:5px 16px 95px;font-size:.625rem}.week-heading{gap:5px;font-size:.75rem}.week-heading .secondary{padding:8px;font-size:.75rem}.week-heading svg{width:14px}.week-grid{grid-template-columns:1fr 1fr}.week-day{min-height:170px;padding:15px}.week-day:last-child{grid-column:1/-1}.week-task>strong{font-size:.875rem}.week-task>span{font-size:.75rem}.list-row{flex-wrap:wrap;padding:18px 16px}.list-row p{font-size:.8125rem}.list-row>.row{margin-left:auto}.word-entry-grid{gap:10px}.word-entry{gap:9px;padding:17px 12px}.word-entry h2{font-size:1rem}.word-entry p{font-size:.6875rem}.word-entry>svg{width:18px}.word-entry>svg:last-child{display:none}.word-daily{gap:10px;font-size:.75rem}.word-daily strong{font-size:1.125rem}.word-daily .small{font-size:.6875rem}.word-daily p{font-size:.75rem}.word-row{gap:8px;padding:18px 16px}.word-row>.row{align-self:flex-start;gap:0}.word-main h3{font-size:1.125rem}.word-main>p{font-size:.875rem}.word-main>.small{font-size:.8125rem}.search-field{width:160px}.search-field input{padding:9px;font-size:.75rem}.word-progress{gap:9px;font-size:.6875rem}.settings-panel{padding:22px}.settings-panel>p{font-size:.875rem}.unpaired-banner{flex-wrap:wrap;padding:15px}.unpaired-banner>.secondary{margin-left:34px}.modal{border-radius:14px;width:calc(100vw - 20px);max-height:calc(100dvh - 32px);padding:20px}.modal-head{margin-bottom:18px}.modal-head h2{font-size:1.125rem}.form-actions{flex-wrap:wrap}.form-actions button{flex:1}.task-meta{font-size:.75rem}.draft-photos img,.photo-view img{height:90px}.toast{width:max-content;max-width:90vw;font-size:.875rem;bottom:90px}.floating-adjust{z-index:30;bottom:82px;left:50%}.review-card h2{font-size:1.75rem}.auth-layout{grid-template-columns:1fr}.auth-story{padding:35px 25px}.auth-story .brand{margin-bottom:35px}.auth-story h1{font-size:1.75rem}.auth-story>p,.auth-features{display:none}.auth-form{padding:40px 25px}.auth-form>h2{font-size:1.5rem}.auth-form>p{font-size:.875rem}.auth-story .eyebrow{font-size:.75rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.pwa-update{z-index:900;background:#fff;border:1px solid #dce5f5;border-radius:12px;flex-wrap:wrap;gap:10px;max-width:380px;padding:18px;font-size:.875rem;display:flex;position:fixed;bottom:25px;right:25px;box-shadow:0 5px 30px #192d4620}.install-guide{border-top:1px solid #e2e8f0;min-width:0;margin-top:24px;padding-top:20px}.install-guide h3{align-items:center;gap:8px;margin-bottom:12px;font-size:1rem;display:flex}.install-guide p{line-height:1.7}.install-local{color:#274987;background:#eef4ff;border-radius:12px;padding:12px;font-size:.875rem}.install-guide button{margin-bottom:10px}.install-guide details{margin-top:12px;font-size:.875rem}.install-guide summary{cursor:pointer;font-weight:600;line-height:1.6}.install-steps{margin:12px 0;padding-left:20px}.install-steps li{margin-bottom:10px;line-height:1.7}.install-url input{font-size:.8125rem}.pwa-update span{width:100%;line-height:1.7}.subject,.status{font-size:.875rem}.task-foot,.time-column>span,.bottom-nav a{font-size:.8125rem}.task-body>p,.word-entry p,.word-daily p{font-size:.875rem}.eyebrow{letter-spacing:.08em}@media (width<=650px){.dashboard-aside{grid-template-columns:1fr}.word-promo h2{margin-top:18px;font-size:1.25rem}.word-promo p,.word-promo button{font-size:.875rem}.word-promo .eyebrow{font-size:.75rem}.pwa-update{max-width:none;bottom:85px;left:15px;right:15px}.subject,.status{font-size:.8125rem}.bottom-nav a{font-size:.75rem}.stats-grid .stat-card>span{font-size:.875rem}.page-heading p{font-size:1rem}.task-body>p{font-size:.875rem}}
