:root{--color-primary: #E9A2B5;--color-primary-dark: #A64E68;--color-secondary: #CFE5F2;--color-accent: #C99B39;--color-purple: #8765A6;--color-success: #2F8A68;--color-warning: #C7852D;--color-danger: #C7595C;--color-info: #4D80B8;--bg-page: #FBF9F6;--bg-card: #FFFFFF;--bg-secondary: #FFF0F3;--text-primary: #2D2A2A;--text-secondary: #66605E;--text-muted: #837C78;--text-on-primary: #FFFFFF;--border-light: #E9A2B5;--border-subtle: #EAE3DF;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(70, 46, 50, .045);--shadow-md: 0 8px 24px rgba(70, 46, 50, .07);--shadow-lg: 0 18px 48px rgba(70, 46, 50, .1);--shadow-primary: 0 5px 14px rgba(166, 78, 104, .2);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--transition-fast: .15s ease;--transition-normal: .25s ease;--layout-max-width: 1200px;--layout-sidebar-width: 240px;--layout-header-height: 60px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg-page);color:var(--text-primary);font-size:var(--text-base);line-height:1.6}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(166,78,104,.28);outline-offset:3px}input{font-family:inherit;outline:none}a{color:var(--color-primary-dark);text-decoration:none}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--color-primary-dark);color:var(--text-on-primary);border-radius:var(--radius-md);padding:11px 20px;font-size:var(--text-base);font-weight:600;box-shadow:var(--shadow-primary)}.btn-primary:hover{background:#913f58;box-shadow:0 7px 18px #a64e683d;transform:translateY(-1px)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled,.btn-secondary:disabled{cursor:not-allowed;opacity:.56;transform:none;box-shadow:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;background:var(--bg-card);color:var(--color-primary-dark);border:1px solid var(--color-primary);border-radius:var(--radius-md);padding:10px 18px;font-size:var(--text-base);font-weight:500}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--color-primary-dark)}.btn-tertiary{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text-muted);border-radius:var(--radius-md);padding:10px 16px;font-size:var(--text-sm);font-weight:500}.btn-tertiary:hover{background:#f4f0ed;color:var(--text-secondary)}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid rgba(234,227,223,.9);box-shadow:var(--shadow-md);padding:var(--space-lg)}.input-field{width:100%;background:var(--bg-card);border:1px solid #E3DAD6;border-radius:var(--radius-md);padding:12px 14px;font-size:var(--text-base);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.input-field:focus{border-color:var(--color-primary-dark);box-shadow:0 0 0 3px #a64e681a}.input-field::placeholder{color:#a7a09c}.input-field:disabled{background:#f6f3f0;color:var(--text-muted);cursor:not-allowed}.badge{display:inline-flex;align-items:center;width:fit-content;background:var(--bg-secondary);color:var(--color-primary-dark);border-radius:var(--radius-full);padding:2px 12px;font-size:var(--text-xs);font-weight:600}.progress-bar{background:var(--border-subtle);border-radius:var(--radius-full);height:8px;overflow:hidden}.progress-bar-fill{background:var(--color-primary);height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}.progress-bar-fill.success{background:var(--color-success)}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--layout-sidebar-width);background:var(--bg-card);border-right:1px solid var(--border-subtle);padding:var(--space-lg) var(--space-md);flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-logo{font-size:var(--text-lg);font-weight:600;color:var(--color-primary-dark);margin-bottom:var(--space-xl);padding:0 var(--space-sm)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-md);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-xs);transition:all var(--transition-fast)}.sidebar-nav-item:hover{background:var(--bg-secondary)}.sidebar-nav-item.active{background:var(--bg-secondary);color:var(--color-primary-dark);border-left:3px solid var(--color-primary)}.main-content{flex:1;padding:var(--space-xl);max-width:var(--layout-max-width)}.page-title{font-size:var(--text-2xl);font-weight:600;margin-bottom:var(--space-md)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin-bottom:var(--space-lg)}.stat-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-lg);text-align:center}.stat-card-value{font-size:var(--text-4xl);font-weight:600;color:var(--color-primary-dark)}.stat-card-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-xs)}.timeline{display:flex;flex-direction:column;gap:var(--space-md)}.time-block{display:flex;align-items:center;gap:var(--space-md);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-md) var(--space-lg);border-left:4px solid var(--border-subtle);transition:all var(--transition-fast)}.time-block:hover{box-shadow:var(--shadow-md)}.time-block.review{border-left-color:var(--color-secondary)}.time-block.attack{border-left-color:var(--color-primary)}.time-block.weekly_test{border-left-color:var(--color-purple)}.time-block.done{border-left-color:var(--color-success);opacity:.7}.time-block.skipped{border-left-color:var(--color-danger);opacity:.5}.time-block-time{font-size:var(--text-sm);color:var(--text-muted);min-width:50px;font-variant-numeric:tabular-nums}.time-block-content{flex:1}.time-block-title{font-size:var(--text-base);font-weight:500}.time-block-meta{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.question-card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-2xl);margin-bottom:var(--space-lg)}.question-title{font-size:var(--text-xl);font-weight:500;margin-bottom:var(--space-lg);line-height:1.5}.option-item{display:flex;align-items:flex-start;gap:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-sm);cursor:pointer;transition:all var(--transition-fast)}.option-item:hover{border-color:var(--color-primary);background:var(--bg-secondary)}.option-item.selected{border-color:var(--color-primary);border-width:2px}.option-item.correct{border-color:var(--color-success);background:#10b98114}.option-item.wrong{border-color:var(--color-danger);background:#ef444414}.option-label{width:28px;height:28px;border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--color-primary-dark);display:flex;align-items:center;justify-content:center;font-weight:500;font-size:var(--text-sm);flex-shrink:0}.hint-box{background:#f59e0b1a;border-left:4px solid var(--color-warning);border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-md);font-size:var(--text-sm);color:#92400e}.role-card{background:linear-gradient(135deg,var(--color-purple),var(--color-primary-dark));border-radius:var(--radius-xl);padding:var(--space-2xl);color:#fff;text-align:center}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-secondary),var(--bg-page))}.login-card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-2xl);width:380px}.login-title{font-size:var(--text-2xl);font-weight:600;text-align:center;margin-bottom:var(--space-xl);color:var(--color-primary-dark)}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-sm)}.error-msg{color:var(--color-danger);font-size:var(--text-sm);margin-top:var(--space-sm);text-align:center}.heatmap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16px,1fr));gap:3px;margin-top:var(--space-md)}.heatmap-cell{width:16px;height:16px;border-radius:3px;cursor:pointer}.heatmap-cell:hover{transform:scale(1.3)}.goal-box{background:#f4a5b81a;border-left:4px solid var(--color-primary);border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-md);font-size:var(--text-sm);line-height:1.7}.prereq-item{padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-md);background:var(--bg-card)}.prereq-title{font-weight:600;color:var(--color-primary-dark);margin-bottom:var(--space-sm);font-size:var(--text-base)}.prereq-content{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.8}.concept-card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-2xl);margin-bottom:var(--space-lg)}.analogy-box{background:#c4dfee40;border-left:4px solid var(--color-secondary);border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-md);font-size:var(--text-sm);line-height:1.8}.analogy-label{font-weight:600;color:#0f6e56;margin-bottom:var(--space-xs);font-size:var(--text-xs)}.formula-box{background:#9b7cb814;border-left:4px solid var(--color-purple);border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-md)}.formula-label{font-weight:600;color:var(--color-purple);margin-bottom:var(--space-xs);font-size:var(--text-xs)}.formula-text{font-family:SF Mono,Menlo,monospace;font-size:var(--text-base);color:var(--text-primary);line-height:1.7}.example-box{background:#10b98114;border-left:4px solid var(--color-success);border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-md);font-size:var(--text-sm);line-height:1.8}.example-label{font-weight:600;color:#065f46;margin-bottom:var(--space-xs);font-size:var(--text-xs)}.example-question{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--text-lg);line-height:1.8;border:1px dashed var(--border-subtle)}.step-item{display:flex;gap:var(--space-md);margin-bottom:var(--space-md);align-items:flex-start}.step-num{width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0;font-size:var(--text-sm)}.step-body{flex:1}.step-title{font-weight:600;color:var(--text-primary);margin-bottom:2px}.step-detail{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.7}.answer-box{background:#10b9811a;border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-lg);color:#065f46;line-height:1.7}.tip-box{background:#f59e0b1a;border-left:4px solid var(--color-warning);border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-md);font-size:var(--text-sm);color:#92400e;line-height:1.7}.focus-card{background:linear-gradient(135deg,#f4a5b829,#c4dfee38);border:1px solid rgba(244,165,184,.4);border-radius:var(--radius-xl);padding:var(--space-2xl);margin-bottom:var(--space-lg);text-align:center}.focus-label{font-size:var(--text-sm);color:var(--color-primary-dark);margin-bottom:var(--space-sm)}.focus-title{font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-xs)}.focus-chapter{font-size:var(--text-sm);color:var(--text-muted)}.score-dashboard{display:flex;gap:var(--space-lg);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-xl);margin-bottom:var(--space-lg);align-items:center}.score-main{flex:1}.score-label{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-xs)}.score-value{font-size:var(--text-4xl);font-weight:600;color:var(--color-primary-dark);line-height:1}.score-unit{font-size:var(--text-base);font-weight:400;color:var(--text-muted)}.score-gap{font-size:var(--text-sm);color:var(--color-purple);margin-top:var(--space-xs);font-weight:500}.score-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);flex-shrink:0}.score-metric{text-align:center;min-width:80px}.score-metric-value{font-size:var(--text-xl);font-weight:600;color:var(--text-primary)}.score-metric-label{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.feynman-intro{display:flex;flex-direction:column;gap:4px;background:#9b7cb814;border-left:4px solid var(--color-purple);border-radius:var(--radius-sm);padding:var(--space-md);margin-bottom:var(--space-lg);font-size:var(--text-sm);color:var(--color-purple)}.feynman-intro span{color:var(--text-secondary);font-weight:400}.feynman-question{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-lg);font-size:var(--text-lg);font-weight:500;line-height:1.8;border:1px dashed var(--color-purple);margin-bottom:var(--space-md)}.feynman-input{width:100%;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--text-base);font-family:inherit;line-height:1.8;resize:vertical}.feynman-input:focus{border-color:var(--color-purple);outline:none}.reminder-toast{position:fixed;right:var(--space-lg);bottom:var(--space-lg);width:320px;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-md) var(--space-lg);border-left:4px solid var(--color-primary);z-index:1000;animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.reminder-toast-title{font-weight:600;color:var(--color-primary-dark);font-size:var(--text-base);margin-bottom:var(--space-xs)}.reminder-toast-body{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.7;margin-bottom:var(--space-sm)}.reminder-toast-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.app-layout{background:radial-gradient(circle at 86% 4%,rgba(207,229,242,.28),transparent 27rem),var(--bg-page)}.sidebar{width:252px;display:flex;flex-direction:column;padding:26px 16px 18px;background:#ffffffdb;border-right-color:#e0d7d2bf}.brand-lockup{display:flex;align-items:center;gap:12px;padding:2px 8px 24px;color:inherit}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#f7d8e0,#ecaabd);color:#8f4259;font-size:21px;font-weight:700;box-shadow:0 5px 14px #a64e6821}.brand-copy{display:flex;flex-direction:column;line-height:1.25}.brand-copy strong{font-size:16px;font-weight:700;letter-spacing:.02em}.brand-copy small{margin-top:5px;color:var(--text-muted);font-size:9px;font-weight:700;letter-spacing:.15em}.sidebar-nav{display:flex;flex-direction:column;gap:20px}.nav-section{display:flex;flex-direction:column;gap:4px}.sidebar-section-label{padding:0 12px;margin:0 0 5px;color:#968c87;font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.sidebar-nav-item{position:relative;gap:12px;min-height:44px;padding:9px 12px;border-radius:11px;color:#6e6865;font-size:13px;font-weight:500;transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.sidebar-nav-item:hover{background:#fbf2f3;color:var(--color-primary-dark);transform:translate(2px)}.sidebar-nav-icon{width:23px;height:23px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:#f7f4f1;color:#847b76;font-size:14px}.sidebar-nav-arrow{margin-left:auto;color:transparent;font-size:18px;transition:color var(--transition-fast)}.sidebar-nav-item:hover .sidebar-nav-arrow{color:#c47a8d}.sidebar-nav-item.active{background:#fbecef;color:var(--color-primary-dark);border-left:0;font-weight:650}.sidebar-nav-item.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 4px 4px 0;background:var(--color-primary-dark)}.sidebar-nav-item.active .sidebar-nav-icon{background:#f2d5dd;color:var(--color-primary-dark)}.sidebar-note{display:flex;align-items:center;gap:9px;margin:auto 4px 16px;padding:13px 11px;border-radius:12px;background:linear-gradient(120deg,#fff0f3f2,#eff7fbeb);color:#756c68;font-size:11px}.sidebar-note-mark{color:var(--color-primary-dark);font-size:16px}.sidebar-footer{display:flex;align-items:center;gap:10px;padding:14px 4px 0;border-top:1px solid var(--border-subtle)}.sidebar-avatar{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:#f5e6ea;color:var(--color-primary-dark);font-size:14px;font-weight:700}.sidebar-user-meta{display:flex;flex:1;flex-direction:column;min-width:0;line-height:1.35}.sidebar-user-meta strong{overflow:hidden;color:var(--text-primary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-meta span{margin-top:3px;color:var(--text-muted);font-size:10px}.logout-button{width:32px;height:32px;border:1px solid transparent;border-radius:9px;background:transparent;color:#8a817d;font-size:16px}.logout-button:hover{background:#f8ecee;color:var(--color-primary-dark)}.app-main-column{min-width:0;flex:1}.app-topbar{height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 clamp(22px,4vw,52px);border-bottom:1px solid rgba(224,215,210,.62);background:#ffffff8f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-breadcrumb{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12px}.topbar-breadcrumb strong{color:var(--text-primary);font-size:13px;font-weight:650}.topbar-divider{color:#c9bfba}.topbar-date{display:flex;align-items:center;gap:8px;color:#766f6b;font-size:12px}.topbar-date-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eff6f9;color:#6487a0;font-size:16px}.main-content{width:100%;max-width:1480px;margin:0 auto;padding:34px clamp(22px,4vw,52px) 56px}.page-title{color:var(--text-primary);font-size:clamp(26px,2.5vw,34px);font-weight:700;letter-spacing:-.035em;line-height:1.2}.page-heading{margin-bottom:25px}.page-eyebrow,.card-eyebrow{display:inline-block;color:var(--color-primary-dark);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.page-subtitle{margin-top:8px;color:var(--text-secondary);font-size:14px}.card,.stat-card,.question-card,.concept-card,.score-dashboard,.time-block{border:1px solid rgba(228,220,216,.85);box-shadow:0 8px 26px #462e320e}.card{transition:box-shadow var(--transition-normal),transform var(--transition-normal)}.card:hover{box-shadow:0 12px 30px #462e3213}.stat-card{text-align:left}.stat-card-value{font-size:32px;letter-spacing:-.04em}.stat-card-label{color:#7c7470}.question-card,.concept-card{padding:clamp(22px,3vw,38px)}.option-item{border-color:#e7dfdb}.option-item:hover{border-color:#d694a6;background:#fff8f9}.option-item.selected{border-color:var(--color-primary-dark);background:#fff7f8}.option-label{background:#f9e8ec;color:var(--color-primary-dark)}.progress-bar{background:#eee9e5;height:9px}.progress-bar-fill{background:linear-gradient(90deg,#d9869c,#b95c77)}.login-container{background:radial-gradient(circle at 18% 18%,rgba(244,208,218,.55),transparent 25rem),radial-gradient(circle at 88% 86%,rgba(207,229,242,.7),transparent 29rem),var(--bg-page)}.login-card{width:min(100%,420px);border:1px solid rgba(228,220,216,.9);box-shadow:0 24px 70px #462e321f}.login-title{color:var(--text-primary);letter-spacing:-.03em}.step-num{background:var(--color-primary-dark)}.page-loading{padding:64px 24px;color:var(--text-muted);text-align:center}.today-page{display:flex;flex-direction:column;gap:22px}.page-heading--today{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:0}.page-heading--today .page-title{margin:7px 0 0}.goal-chip{display:flex;flex-direction:column;gap:4px;min-width:164px;padding:12px 16px;border:1px solid #E7E1DD;border-radius:13px;background:#ffffffbd}.goal-chip span{color:var(--text-muted);font-size:10px}.goal-chip strong{color:var(--text-primary);font-size:13px;font-weight:650}.score-dashboard{display:grid;grid-template-columns:minmax(200px,.9fr) minmax(0,1.5fr);gap:28px;align-items:center;margin:0;padding:24px 28px;border-radius:18px;background:#ffffffed}.score-main{min-width:0}.score-label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.02em}.score-value{margin-top:8px;color:var(--color-primary-dark);font-size:clamp(38px,4.2vw,52px);font-weight:750;letter-spacing:-.055em}.score-unit{margin-left:6px;color:var(--text-muted);font-size:13px;font-weight:500;letter-spacing:0}.score-gap{margin-top:7px;color:#7a658b;font-size:12px;font-weight:600}.score-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.score-metric{min-width:0;padding:5px 12px;border-left:1px solid #EEE8E4}.score-metric-value{font-size:21px;letter-spacing:-.03em}.score-metric-label{margin-top:5px;color:var(--text-muted);font-size:10px;line-height:1.4}.today-content-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(230px,.7fr);gap:22px;align-items:start}.today-main-column,.today-side-column{display:flex;min-width:0;flex-direction:column;gap:20px}.focus-card{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:178px;margin:0;padding:28px 30px;border:1px solid rgba(224,164,180,.55);border-radius:18px;background:linear-gradient(112deg,#ffeff3fa,#f7fafbf7);text-align:left}.focus-copy{min-width:0}.focus-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--color-primary-dark);font-size:11px;font-weight:700;letter-spacing:.04em}.focus-dot{width:7px;height:7px;border-radius:50%;background:#c66b84;box-shadow:0 0 0 4px #c66b841f}.focus-title{margin:14px 0 5px;font-size:clamp(21px,2.3vw,28px);font-weight:700;letter-spacing:-.035em}.focus-chapter{color:#776f6c;font-size:12px}.focus-action{flex:0 0 auto;text-decoration:none}.focus-action span{font-size:17px}.focus-card--test{border-color:#8765a638;background:linear-gradient(112deg,#f5f0f9,#f4f8fa)}.focus-card--test .focus-kicker{color:var(--color-purple)}.focus-card--test .focus-dot{background:var(--color-purple);box-shadow:0 0 0 4px #8765a61f}.focus-card--empty{border-color:#e6e0dc;background:linear-gradient(112deg,#f7f4f1,#f5f8f9)}.focus-side-mark{color:#a38bb9;font-size:42px}.schedule-section{padding:3px 0 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 13px}.section-heading h2{font-size:17px;font-weight:700;letter-spacing:-.02em}.section-heading p{margin-top:4px;color:var(--text-muted);font-size:11px}.section-count{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:#f4f0ed;color:#756c68;font-size:10px;font-weight:650}.timeline{gap:10px}.time-block{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:13px;align-items:center;padding:15px 16px;border-left-width:3px;border-radius:14px;background:#ffffffeb}.time-block:hover{box-shadow:0 10px 28px #462e3214;transform:translateY(-1px)}.time-block.done{opacity:.76}.time-block.skipped{opacity:.65}.time-block-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#fbecef;color:var(--color-primary-dark);font-size:16px;font-weight:700}.time-block-icon--review{background:#eef6f9;color:#6487a0}.time-block-icon--weekly_test{background:#f3eef8;color:var(--color-purple)}.time-block-topline{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.task-type-label{color:#857c78;font-size:9px;font-weight:700;letter-spacing:.06em}.task-duration{color:#8a817d;font-size:10px}.time-block-title{margin-top:3px;font-size:13px;font-weight:650;line-height:1.45}.time-block-meta{margin-top:3px;color:var(--text-muted);font-size:10px}.time-block-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.btn-compact{min-height:32px;padding:6px 11px;border-radius:9px;font-size:10px;text-decoration:none;box-shadow:none}.btn-compact:hover{transform:translateY(-1px)}.schedule-empty{padding:28px;border:1px dashed #DDD4CF;border-radius:14px;color:var(--text-muted);text-align:center;font-size:12px}.daily-progress-card,.daily-budget-card{border:1px solid rgba(228,220,216,.88);border-radius:17px;background:#ffffffe8;box-shadow:0 8px 26px #462e320d}.daily-progress-card{padding:22px}.card-eyebrow{color:#9a817f;font-size:9px}.progress-card-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:10px 0 13px}.progress-card-heading h2{font-size:16px;font-weight:700}.progress-card-heading strong{color:var(--color-primary-dark);font-size:22px;letter-spacing:-.04em}.progress-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:20px}.progress-card-stats div{display:flex;flex-direction:column;gap:4px;padding:10px 6px;border-radius:10px;background:#faf7f4;text-align:center}.progress-card-stats strong{color:var(--text-primary);font-size:17px}.progress-card-stats span{color:var(--text-muted);font-size:9px}.daily-budget-card{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:center;padding:18px}.budget-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eef6f9;color:#6487a0;font-size:20px}.budget-copy{display:flex;flex-direction:column;gap:3px}.budget-copy span{color:var(--text-muted);font-size:10px}.budget-copy strong{font-size:19px;letter-spacing:-.03em}.budget-copy small{color:var(--text-muted);font-size:10px;font-weight:500;letter-spacing:0}.daily-budget-card p{grid-column:1 / -1;padding-top:12px;border-top:1px solid #F0EAE6;color:#817874;font-size:10px;line-height:1.6}.empty-plan{display:flex;min-height:440px;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;border:1px solid rgba(228,220,216,.88);border-radius:22px;background:linear-gradient(135deg,#fffffff5,#fff4f6eb);box-shadow:var(--shadow-md);text-align:center}.empty-plan-mark{display:grid;place-items:center;width:60px;height:60px;margin-bottom:20px;border-radius:20px;background:#fbecef;color:var(--color-primary-dark);font-size:28px}.empty-plan .page-eyebrow{margin-bottom:9px}.empty-plan-title{max-width:540px;color:var(--text-primary);font-size:clamp(25px,3vw,34px);font-weight:700;letter-spacing:-.04em;line-height:1.25}.empty-plan-copy{max-width:440px;margin:13px 0 23px;color:var(--text-secondary);font-size:13px;line-height:1.8}.empty-plan-action{text-decoration:none}@media (max-width: 1100px){.sidebar{width:224px}.score-dashboard{grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr);gap:18px;padding:22px}.score-metric{padding-inline:8px}.today-content-grid{grid-template-columns:minmax(0,1.45fr) minmax(210px,.75fr);gap:16px}}@media (max-width: 860px){.app-layout{flex-direction:column}.sidebar{position:sticky;z-index:30;top:0;width:100%;height:auto;padding:10px 18px 9px;border-right:0;border-bottom:1px solid rgba(224,215,210,.8);background:#fffffff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand-lockup{padding:0 4px 9px}.brand-mark{width:34px;height:34px;border-radius:11px;font-size:17px}.brand-copy{flex-direction:row;align-items:baseline;gap:8px}.brand-copy small{margin-top:0}.sidebar-nav{flex-direction:row;gap:6px;overflow-x:auto;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.nav-section{flex-direction:row;gap:4px;flex:0 0 auto}.sidebar-section-label,.sidebar-note,.sidebar-footer,.sidebar-nav-arrow{display:none}.sidebar-nav-item{min-height:38px;gap:7px;padding:6px 10px;white-space:nowrap;font-size:11px}.sidebar-nav-icon{width:20px;height:20px;font-size:12px}.sidebar-nav-item.active:before{top:auto;right:10px;bottom:0;left:10px;width:auto;height:2px}.main-content{padding:25px 22px 40px}.app-topbar{height:54px;padding-inline:22px}}@media (max-width: 700px){.page-heading--today{align-items:flex-start;flex-direction:column;gap:14px}.goal-chip{min-width:0;padding:9px 12px}.score-dashboard{grid-template-columns:1fr;gap:18px;padding:20px}.score-metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}.score-metric:nth-child(odd){border-left:0}.today-content-grid{grid-template-columns:1fr}.today-side-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.daily-progress-card{padding:18px}.daily-budget-card{align-content:start}.focus-card{min-height:0;padding:22px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.sidebar{padding-inline:12px}.brand-lockup{padding-bottom:7px}.brand-copy strong{font-size:14px}.brand-copy small{font-size:8px}.sidebar-nav-item{padding-inline:8px}.sidebar-nav-icon{display:none}.app-topbar{padding-inline:16px}.topbar-date{font-size:10px}.topbar-date-icon{width:24px;height:24px}.main-content{padding:22px 16px 32px}.today-page{gap:17px}.page-heading--today .page-title{font-size:26px}.score-metric{padding-inline:5px}.focus-card{align-items:flex-start;flex-direction:column;gap:17px}.focus-title{margin-top:11px;font-size:22px}.time-block{grid-template-columns:34px minmax(0,1fr);gap:10px;padding:13px}.time-block-icon{width:32px;height:32px;border-radius:10px}.time-block-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.today-side-column{grid-template-columns:1fr}.empty-plan{min-height:380px;padding:32px 20px}.reminder-toast{right:12px;bottom:12px;width:min(320px,calc(100vw - 24px))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{color-scheme:dark;--color-primary: #55E7D0;--color-primary-dark: #A39AFF;--color-secondary: #6CCBFF;--color-accent: #FFD479;--color-purple: #BE94FF;--color-success: #60E6AF;--color-warning: #FFCC76;--color-danger: #FF829E;--color-info: #6BCBFF;--bg-page: #080B18;--bg-card: #11172B;--bg-secondary: #1A2140;--text-primary: #F1F4FF;--text-secondary: #ADB8D4;--text-muted: #7D89A8;--text-on-primary: #08121C;--border-light: rgba(117, 244, 220, .45);--border-subtle: rgba(155, 175, 224, .16);--shadow-sm: 0 8px 24px rgba(0, 0, 0, .2);--shadow-md: 0 18px 42px rgba(0, 0, 0, .25);--shadow-lg: 0 28px 80px rgba(0, 0, 0, .38);--shadow-primary: 0 8px 28px rgba(85, 231, 208, .22)}html{min-width:320px;background:var(--bg-page)}body{min-width:320px;overflow-x:hidden;background:var(--bg-page);color:var(--text-primary)}body:before,body:after{position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;pointer-events:none;content:""}body:before{background:radial-gradient(ellipse at 18% 8%,rgba(81,116,255,.15),transparent 34rem),radial-gradient(ellipse at 88% 72%,rgba(36,214,194,.09),transparent 34rem),linear-gradient(135deg,#080b18,#0a0f21 55%,#080b18);animation:ambient-drift 22s ease-in-out infinite alternate}body:after{opacity:.18;background-image:radial-gradient(rgba(179,195,232,.34) .7px,transparent .7px);background-size:27px 27px;-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 78%);mask-image:linear-gradient(to bottom,#000 0%,transparent 78%)}::selection{color:#08121c;background:#55e7d0d1}.btn-primary{color:#09121c;background:linear-gradient(115deg,#63f0d5,#8ee6f5 48%,#a69aff);box-shadow:0 8px 26px #59ded638,inset 0 1px #ffffff80}.btn-primary:hover{color:#060d16;background:linear-gradient(115deg,#86ffe7,#a1edff 48%,#c0b7ff);box-shadow:0 12px 32px #59ded652,0 0 0 1px #aff5ff29;transform:translateY(-2px)}.btn-secondary{color:#d3ceff;border-color:#a39aff52;background:#1d2342c7}.btn-secondary:hover{color:#f5f4ff;border-color:#a39affb3;background:#2e335be6}.btn-tertiary{color:#909bb7}.btn-tertiary:hover{color:#d9e1f8;background:#96a6d31a}.input-field,textarea.input-field,select.input-field{color:var(--text-primary);border-color:#9bafe033;background-color:#090e1eb8}.input-field:focus{border-color:#55e7d0c7;box-shadow:0 0 0 4px #55e7d01a,0 0 22px #55e7d014}.input-field::placeholder{color:#687493}.input-field:disabled{color:#7885a4;background:#1b223bbd}select option{color:#f1f4ff;background:#11172b}.app-layout{position:relative;isolation:isolate;background:transparent}.sidebar{z-index:4;border-right-color:#9bafe021;background:linear-gradient(180deg,#0d1225f7,#0a0e1df2);box-shadow:14px 0 48px #00000021}.brand-lockup{color:var(--text-primary)}.brand-mark{color:#07131d;background:linear-gradient(145deg,#69f0d9,#9a91ff 85%);box-shadow:0 7px 24px #67dfdf3d,inset 0 1px #ffffff8c}.brand-copy strong{color:#edf1ff}.brand-copy small{color:#7f8bab}.sidebar-section-label{color:#667392}.sidebar-nav-item{color:#98a5c4}.sidebar-nav-item:hover{color:#dde7ff;background:#97a4d917}.sidebar-nav-icon{color:#8795b7;background:#899bd414}.sidebar-nav-arrow{color:transparent}.sidebar-nav-item:hover .sidebar-nav-arrow{color:#82e8dc}.sidebar-nav-item.active{color:#e9f5ff;background:linear-gradient(100deg,#46e5d024,#8479ff21);box-shadow:inset 0 0 0 1px #76d5e721}.sidebar-nav-item.active:before{background:linear-gradient(180deg,#5ae8d3,#a59bff);box-shadow:0 0 12px #55e7d099}.sidebar-nav-item.active .sidebar-nav-icon{color:#79efde;background:#55e7d021}.sidebar-note{color:#adb9d4;border:1px solid rgba(150,169,222,.12);background:linear-gradient(120deg,#3d529626,#2d9a9b1f)}.sidebar-note-mark{color:#7af1da}.sidebar-footer{border-top-color:#9bafe024}.sidebar-avatar{color:#101328;background:linear-gradient(145deg,#77ebd9,#a99bff)}.logout-button{color:#8f9cbb}.logout-button:hover{color:#ffb2c3;background:#ff829e1f}.app-topbar{border-bottom-color:#9bafe01f;background:#0a0e1d8f}.topbar-breadcrumb{color:#7783a2}.topbar-breadcrumb strong{color:#e5eafe}.topbar-divider{color:#4c5775}.topbar-date{color:#a7b3d0}.topbar-date-icon{color:#78ebdd;background:#55e7d01a}.main-content{animation:page-enter .52s cubic-bezier(.2,.75,.25,1) both}.page-title{color:#f0f3ff}.page-subtitle{color:#aab6d1}.page-eyebrow,.card-eyebrow{color:#75ebd8}.card,.stat-card,.question-card,.concept-card,.score-dashboard,.time-block,.daily-progress-card,.daily-budget-card,.prereq-item{color:var(--text-primary);border-color:#99aee029;background-color:#11172bd1;box-shadow:0 16px 42px #0003,inset 0 1px #ffffff06;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.card{transition:border-color .24s ease,box-shadow .24s ease,transform .24s ease}.card:hover{border-color:#68e6d742;box-shadow:0 20px 52px #00000040,0 0 28px #52e6d40b}.stat-card{transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.stat-card:hover{transform:translateY(-4px);border-color:#75ebd859;box-shadow:0 18px 42px #00000047,0 0 25px #55e7d014}.stat-card-value{color:#81eada}.stat-card-label{color:#98a5c0}.badge{color:#8cebdd;border:1px solid rgba(85,231,208,.14);background:#55e7d017}.progress-bar{background:#97a9db24}.progress-bar-fill{position:relative;background:linear-gradient(90deg,#4ce2ce,#8d9cff 56%,#d395ff);box-shadow:0 0 18px #5edddf5c}.progress-bar-fill:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);transform:translate(-100%);animation:progress-glint 3.2s ease-in-out infinite}.time-block{border-left-color:#5bdbcd}.time-block.review{border-left-color:#66c9f5}.time-block.attack{border-left-color:#75e8d4}.time-block.weekly_test{border-left-color:#b59aff}.time-block.done{border-left-color:#60e6af}.time-block.skipped{border-left-color:#ff829e}.time-block:hover{border-color:#6ae4d852;box-shadow:0 18px 42px #00000045}.time-block-icon{color:#85f0df;background:#55e7d01f}.time-block-icon--review{color:#83d9ff;background:#6ccbff21}.time-block-icon--weekly_test{color:#c4a6ff;background:#be94ff24}.time-block-title{color:#eaf0ff}.time-block-meta,.task-duration{color:#8996b5}.task-type-label{color:#9aa7c6}.section-heading h2{color:#eaf0ff}.section-heading p{color:#8592b1}.section-count{color:#aeb9d4;background:#8d9bcf1f}.schedule-empty{color:#9aa7c6;border-color:#9bafe03b}.daily-progress-card,.daily-budget-card{border-color:#99aee029;background:#11172bd6}.card-eyebrow{color:#7191b8}.progress-card-heading h2{color:#edf2ff}.progress-card-heading strong{color:#71e9d6}.progress-card-stats div{background:#899bd417}.progress-card-stats strong{color:#eaf0ff}.progress-card-stats span{color:#8b98b6}.budget-icon{color:#79e9da;background:#55e7d01c}.budget-copy span,.budget-copy small{color:#8d9ab8}.budget-copy strong{color:#edf2ff}.daily-budget-card p{color:#93a0bd;border-top-color:#9bafe01f}.goal-chip{border-color:#9bafe030;background:#131b32c7}.goal-chip span{color:#8694b4}.goal-chip strong{color:#eaf2ff}.score-value{color:#7ce9d8}.score-label,.score-unit,.score-metric-label{color:#8f9bb8}.score-gap{color:#c1a6ff}.score-metric{border-left-color:#9bafe026}.empty-plan{border-color:#99aee02e;background:radial-gradient(circle at 80% 15%,rgba(101,115,235,.15),transparent 23rem),linear-gradient(135deg,#121930f7,#0c1627ed);box-shadow:var(--shadow-lg)}.empty-plan-mark{color:#08121c;background:linear-gradient(135deg,#5be8d3,#a69aff);box-shadow:0 0 34px #55e7d03d;animation:float-gently 4.5s ease-in-out infinite}.empty-plan-title{color:#f2f5ff}.empty-plan-copy{color:#a3b0cd}.option-item{color:#dce5fa;border-color:#9bafe02b;background:#0b1122a3}.option-item:hover{border-color:#55e7d07a;background:#55e7d011}.option-item.selected{border-color:#6de8d7;background:#55e7d017}.option-item.correct{border-color:#60e6afa6;background:#60e6af1a}.option-item.wrong{border-color:#ff829ea6;background:#ff829e1a}.option-label{color:#8deddd;background:#55e7d01a}.question-title{color:#f0f4ff}.goal-box,.hint-box,.analogy-box,.formula-box,.example-box,.tip-box,.answer-box,.feynman-question{color:#c0cce5!important;border-color:#71cedc61;background:#4b90b21a!important}.goal-box{border-left-color:#78eadb}.hint-box{border-left-color:#ffcc76}.analogy-box{border-left-color:#6ccbff}.formula-box{border-left-color:#be94ff}.example-box{border-left-color:#60e6af}.tip-box{border-left-color:#ffcc76}.answer-box{border-left-color:#60e6af}.prereq-item{background:#0e1529b3}.prereq-title,.concept-card h2,.feynman-intro span{color:#82ecdd}.prereq-content,.step-detail{color:#a6b3cf}.formula-label{color:#c0a1ff}.formula-text{color:#e8e9ff}.analogy-label{color:#83dcff}.example-label{color:#76e9b7}.example-question{color:#e6ecff;border-color:#be94ff42;background:#9b80f517}.step-num{color:#09121c;background:linear-gradient(145deg,#68ead8,#a398ff)}.step-title{color:#eaf0ff}.feynman-input{color:#edf2ff;border-color:#9bafe033;background:#090e1eb8}.feynman-input::placeholder{color:#7180a0}.feynman-input:focus{border-color:#9a91ff}.role-card{background:linear-gradient(130deg,#5454bd,#1c9f9c 68%,#83d9b6);box-shadow:0 18px 50px #3a80b72e}.heatmap-cell{box-shadow:inset 0 0 0 1px #9bafe01f}.page-loading{color:#9ba8c7}.auth-shell{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(470px,.92fr);min-height:100vh;overflow:hidden;color:#f1f4ff;background:#090d1c}.auth-atmosphere{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.auth-atmosphere-orb{position:absolute;display:block;border-radius:50%;filter:blur(1px)}.auth-atmosphere-orb--one{top:-18rem;left:-12rem;width:54rem;height:54rem;background:radial-gradient(circle,rgba(89,108,255,.2),rgba(34,80,139,.05) 48%,transparent 70%);animation:ambient-drift 17s ease-in-out infinite alternate}.auth-atmosphere-orb--two{right:-15rem;bottom:-23rem;width:56rem;height:56rem;background:radial-gradient(circle,rgba(56,232,199,.13),rgba(44,89,145,.04) 50%,transparent 70%);animation:ambient-drift 20s ease-in-out infinite alternate-reverse}.auth-atmosphere-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.18;background-image:linear-gradient(rgba(133,157,221,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(133,157,221,.1) 1px,transparent 1px);background-size:54px 54px;-webkit-mask-image:linear-gradient(90deg,#000,transparent 74%);mask-image:linear-gradient(90deg,#000,transparent 74%)}.auth-showcase{position:relative;display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;padding:clamp(30px,5vw,70px) clamp(30px,7vw,100px);overflow:hidden;border-right:1px solid rgba(157,177,231,.12)}.auth-brand{position:relative;z-index:2;display:inline-flex;align-items:center;gap:12px;width:fit-content;color:#f2f5ff;text-decoration:none}.auth-brand-mark{display:grid;width:43px;height:43px;place-items:center;border:1px solid rgba(218,255,251,.5);border-radius:15px;color:#09131d;background:linear-gradient(145deg,#73f4dc,#9c91ff);box-shadow:0 0 28px #5edfe04d,inset 0 1px #ffffff8f;font-size:20px}.auth-brand>span:last-child{display:flex;flex-direction:column;gap:3px}.auth-brand strong{color:#f2f4ff;font-size:15px;letter-spacing:.06em}.auth-brand small{color:#8390b2;font-size:8px;font-weight:700;letter-spacing:.22em}.auth-showcase-copy{position:relative;z-index:1;max-width:460px;margin:auto 0 54px}.auth-kicker{display:inline-flex;align-items:center;gap:9px;color:#91a1c7;font-size:11px;font-weight:650;letter-spacing:.1em}.auth-kicker span{width:7px;height:7px;border-radius:50%;background:#61ebd3;box-shadow:0 0 14px #61ebd3e6;animation:signal-pulse 2.2s ease-in-out infinite}.auth-showcase-copy h1{margin-top:18px;color:#eef2ff;font-size:clamp(38px,4.8vw,65px);font-weight:750;letter-spacing:-.065em;line-height:1.14}.auth-showcase-copy h1 em{color:#9bede2;font-style:normal;text-shadow:0 0 36px rgba(104,231,219,.22)}.auth-showcase-copy p{max-width:390px;margin-top:18px;color:#9aa8c7;font-size:13px;line-height:1.9}.auth-showcase-foot{position:relative;z-index:1;display:flex;gap:25px;color:#8491b1;font-size:10px}.auth-showcase-foot span{display:inline-flex;align-items:center;gap:7px}.auth-showcase-foot b{color:#77e9dc;font-size:14px}.auth-art{position:absolute;top:11%;right:4%;width:min(52vw,620px);aspect-ratio:1;transform:translate(14%,-2%)}.auth-orbit{position:absolute;top:50%;left:50%;border:1px solid rgba(151,172,235,.14);border-radius:50%;transform:translate(-50%,-50%)}.auth-orbit--outer{width:89%;height:89%;border-style:dashed;animation:orbit-turn 76s linear infinite}.auth-orbit--middle{width:66%;height:66%;border-color:#5fe6d438;animation:orbit-turn 43s linear infinite reverse}.auth-orbit--inner{width:44%;height:44%;border-color:#ab97ff45;box-shadow:0 0 55px #6a76fa14,inset 0 0 55px #6a76fa12;animation:orbit-breathe 8s ease-in-out infinite}.auth-orbit span{position:absolute;top:12%;left:18%;width:8px;height:8px;border-radius:50%;background:#81ebdd;box-shadow:0 0 18px #81ebdd}.auth-orbit--middle span{top:76%;left:13%;width:6px;height:6px;background:#ac9aff;box-shadow:0 0 17px #ac9aff}.auth-orbit--inner span{top:21%;left:78%;width:5px;height:5px;background:#6fd7ff;box-shadow:0 0 17px #6fd7ff}.auth-core{position:absolute;top:50%;left:50%;display:flex;width:25%;height:25%;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(210,255,247,.42);border-radius:34%;color:#a2f3e5;background:radial-gradient(circle at 35% 20%,#87efde47,#484ca457 54%,#151d3eeb);box-shadow:0 0 80px #5eddda38,inset 0 0 36px #868eff29;transform:translate(-50%,-50%) rotate(-8deg);animation:core-hover 6s ease-in-out infinite;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.auth-core strong{font-size:clamp(29px,4vw,48px);font-weight:750;letter-spacing:-.08em;line-height:1}.auth-core small{margin-top:5px;color:#c5c9ef;font-size:clamp(8px,.9vw,11px);letter-spacing:.16em}.auth-core-spark{position:absolute;top:14%;right:16%;color:#d8fff8;font-size:14px}.auth-float-card{position:absolute;z-index:2;display:flex;align-items:center;gap:10px;padding:12px 15px;border:1px solid rgba(178,197,244,.2);border-radius:14px;background:#111830c7;box-shadow:0 16px 40px #0000004d,inset 0 1px #ffffff0a;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:float-gently 5.5s ease-in-out infinite}.auth-float-card--score{top:24%;left:7%}.auth-float-card--focus{right:5%;bottom:20%;animation-delay:-2.5s}.auth-float-card>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.auth-float-card small{color:#8998bc;font-size:8px}.auth-float-card strong{color:#e9f1ff;font-size:10px}.auth-float-icon{display:grid;width:27px;height:27px;place-items:center;border-radius:9px;color:#7de8d9;background:#55e7d01f}.auth-float-card i{margin-left:6px;color:#70e8c4;font-size:15px;font-style:normal;letter-spacing:-4px}.auth-float-card b{margin-left:5px;color:#beb2ff;font-size:11px;font-variant-numeric:tabular-nums}.auth-focus-pulse{width:7px;height:7px;border-radius:50%;background:#67ecd4;box-shadow:0 0 12px #67ecd4}.auth-star{position:absolute;color:#d9dcff;text-shadow:0 0 13px rgba(184,180,255,.9)}.auth-star--one{top:21%;right:27%;font-size:17px}.auth-star--two{right:18%;bottom:26%;color:#7bebd8;font-size:11px}.auth-star--three{top:36%;left:17%;color:#b59fff;font-size:29px}.auth-panel{position:relative;display:flex;min-height:100vh;flex-direction:column;align-items:center;justify-content:center;padding:clamp(28px,5vw,74px);background:radial-gradient(ellipse at 88% 10%,rgba(110,106,235,.08),transparent 27rem),#090d1b9e}.auth-card{width:min(100%,438px);padding:clamp(28px,3.5vw,45px);border:1px solid rgba(157,178,231,.16);border-radius:25px;background:linear-gradient(145deg,#151d36e8,#0d1326eb);box-shadow:0 30px 90px #00000061,inset 0 1px #ffffff0a;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);animation:auth-card-enter .72s cubic-bezier(.2,.8,.2,1) both}.auth-heading{margin-bottom:29px}.auth-eyebrow{display:inline-flex;align-items:center;gap:8px;color:#7be8d9;font-size:10px;font-weight:700;letter-spacing:.14em}.auth-eyebrow:before{width:18px;height:1px;content:"";background:linear-gradient(90deg,#61EBD5,transparent)}.auth-heading h2{margin-top:11px;color:#f1f4ff;font-size:clamp(27px,3vw,34px);font-weight:700;letter-spacing:-.045em}.auth-heading p{margin-top:8px;color:#919fbe;font-size:12px;line-height:1.7}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-form--register{gap:15px}.auth-field{display:flex;flex-direction:column;gap:8px}.auth-label{color:#c0cae2;font-size:11px;font-weight:650;letter-spacing:.02em}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-wrap .auth-input{min-height:49px;padding:0 43px;border-radius:12px;font-size:12px}.auth-input-icon{position:absolute;z-index:1;left:15px;color:#8392b5;font-size:14px;pointer-events:none}.auth-input--password{padding-right:68px!important}.auth-password-toggle{position:absolute;right:11px;padding:5px 7px;border-radius:6px;color:#8693b1;background:transparent;font-size:9px}.auth-password-toggle:hover{color:#8cebdd;background:#55e7d014}.auth-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.auth-select-arrow{position:absolute;right:16px;color:#8c9ab8;font-size:18px;pointer-events:none}.auth-field-hint{margin-top:-3px;color:#707d9b;font-size:9px}.auth-submit{width:100%;min-height:50px;justify-content:space-between;margin-top:4px;padding:0 17px 0 19px;border-radius:12px;font-size:12px}.auth-submit-arrow{display:grid;width:27px;height:27px;place-items:center;border:1px solid rgba(8,18,28,.14);border-radius:8px;background:#ffffff2e;font-size:16px;transition:transform .2s ease}.auth-submit:hover .auth-submit-arrow{transform:translate(2px,-2px)}.auth-submit:disabled{cursor:wait;opacity:.7}.auth-error{margin-top:-4px;padding:9px 11px;border:1px solid rgba(255,130,158,.22);border-radius:9px;color:#ff9fb4;background:#ff829e14;text-align:left;font-size:10px}.auth-switch{margin-top:23px;color:#8f9cba;text-align:center;font-size:10px}.auth-switch a{margin-left:5px;color:#8bebdd;font-weight:650}.auth-switch a:hover{color:#c6fff3}.auth-switch a span{display:inline-block;margin-left:2px;transition:transform .18s ease}.auth-switch a:hover span{transform:translate(3px)}.auth-card-foot{display:flex;align-items:center;gap:10px;margin-top:27px;color:#657392;font-size:8px;text-align:center;white-space:nowrap}.auth-foot-line{height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(145,163,214,.22))}.auth-foot-line:last-child{transform:scaleX(-1)}.auth-legal{position:absolute;right:24px;bottom:18px;left:24px;color:#586582;font-size:9px;text-align:center}.auth-brand--mobile{display:none}@keyframes page-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-card-enter{0%{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ambient-drift{0%{transform:translate3d(-1.2%,-.8%,0) scale(1)}to{transform:translate3d(1.4%,1.2%,0) scale(1.035)}}@keyframes orbit-turn{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes orbit-breathe{0%,to{opacity:.66;transform:translate(-50%,-50%) scale(.96)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}}@keyframes core-hover{0%,to{transform:translate(-50%,-50%) rotate(-8deg) translateY(0)}50%{transform:translate(-50%,-50%) rotate(-4deg) translateY(-9px)}}@keyframes float-gently{0%,to{translate:0 0}50%{translate:0 -8px}}@keyframes signal-pulse{0%,to{box-shadow:0 0 #61ebd37a}50%{box-shadow:0 0 0 6px #61ebd300}}@keyframes progress-glint{0%,65%{transform:translate(-120%)}to{transform:translate(120%)}}@media (max-width: 1000px){.auth-shell{grid-template-columns:minmax(360px,.9fr) minmax(430px,1.1fr)}.auth-showcase{padding-right:42px;padding-left:42px}.auth-art{top:13%;right:-8%;width:58vw}.auth-showcase-copy{margin-bottom:62px}}@media (max-width: 760px){.auth-shell{display:block;min-height:100svh;overflow:hidden}.auth-showcase{display:none}.auth-panel{min-height:100svh;justify-content:center;padding:34px 20px 68px;background:transparent}.auth-brand--mobile{display:inline-flex;margin-bottom:25px}.auth-card{width:min(100%,440px)}.auth-legal{bottom:20px}.auth-atmosphere-grid{opacity:.13}}@media (max-width: 520px){.auth-panel{padding:23px 15px 62px}.auth-brand--mobile{margin-bottom:19px}.auth-brand-mark{width:38px;height:38px;border-radius:13px}.auth-card{padding:27px 22px;border-radius:21px}.auth-heading{margin-bottom:23px}.auth-heading h2{font-size:27px}.auth-form{gap:15px}.auth-form--register{gap:13px}.auth-input-wrap .auth-input{min-height:47px}}@media (max-width: 700px){.focus-card{border-color:#6ce1d53d;background:linear-gradient(112deg,#28284ef2,#12313ef0)}.focus-kicker{color:#88eadb}.focus-dot{background:#68ebdd;box-shadow:0 0 0 4px #68ebdd1f}.focus-title{color:#f0f4ff}.focus-chapter{color:#a7b3d0}.focus-card--test{border-color:#be94ff3d;background:linear-gradient(112deg,#252040,#16273e)}.focus-card--test .focus-kicker{color:#c0a4ff}.focus-card--test .focus-dot{background:#b398ff}.focus-card--empty{border-color:#9bafe030;background:linear-gradient(112deg,#1a2035,#17232e)}.section-count{background:#8d9bcf1f;color:#aeb9d4}}@media (max-width: 520px){.sidebar{border-bottom-color:#9bafe024;background:#0c1122f7}.sidebar-nav-item{color:#a6b2ce}.sidebar-nav-item.active{color:#ebf6ff}.brand-copy strong{color:#edf1ff}.brand-copy small{color:#7f8bab}.app-topbar{background:#0a0e1d8f}}.startup-screen{position:relative;display:flex;min-height:100vh;flex-direction:column;align-items:center;justify-content:center;gap:8px;overflow:hidden;color:#f1f4ff;background:#090d1c}.startup-screen strong{margin-top:16px;font-size:15px;letter-spacing:-.02em}.startup-screen>span:last-child{color:#8290b1;font-size:11px}.startup-orbit{position:relative;display:grid;width:62px;height:62px;place-items:center;border:1px solid rgba(120,234,218,.28);border-radius:50%;box-shadow:0 0 32px #55e7d01a,inset 0 0 24px #8b84ff14;animation:orbit-breathe 2.2s ease-in-out infinite}.startup-orbit:before,.startup-orbit:after{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(165,153,255,.38);border-radius:50%;content:"";animation:orbit-turn 5s linear infinite}.startup-orbit:after{top:16px;right:16px;bottom:16px;left:16px;border-color:#65ebd65c;animation-direction:reverse;animation-duration:3.5s}.startup-orbit i{width:9px;height:9px;border-radius:50%;background:#72ead8;box-shadow:0 0 17px #72ead8}.vector-visual-card{background:#11172bd1!important;border-color:#99aee029!important}.vector-visual-title{color:#e7eeff}.energy-map-cell{box-shadow:inset 0 0 0 1px #ffffff06}.energy-map-cell:hover{z-index:1;transform:scale(1.16);box-shadow:0 0 14px #55e7d047}.energy-map-cell--1{color:#91e7ff}.energy-map-cell--2{color:#ffe09a;box-shadow:0 0 10px #ffd4791a}.energy-map-cell--3{color:#6c7897}.library-page{display:flex;flex-direction:column;gap:24px}.library-hero{position:relative;isolation:isolate;display:flex;min-height:305px;align-items:center;overflow:hidden;padding:clamp(27px,4vw,46px);border:1px solid rgba(143,169,231,.18);border-radius:25px;background:radial-gradient(ellipse at 82% 45%,rgba(70,149,176,.2),transparent 27rem),radial-gradient(ellipse at 48% 100%,rgba(113,95,213,.16),transparent 31rem),linear-gradient(123deg,#121c36f5,#0b1428f7);box-shadow:0 25px 70px #00000042,inset 0 1px #ffffff0a}.library-hero:after{position:absolute;z-index:-1;right:0;bottom:0;left:0;height:1px;content:"";background:linear-gradient(90deg,transparent,rgba(95,230,213,.44),rgba(174,153,255,.34),transparent)}.library-hero-content{position:relative;z-index:2;max-width:610px}.library-hero-content .page-eyebrow{color:#8decdd}.library-hero-content h1{margin-top:13px;color:#f2f5ff;font-size:clamp(30px,4vw,48px);font-weight:750;letter-spacing:-.06em;line-height:1.18}.library-hero-content h1 em{color:#8decdd;font-style:normal;text-shadow:0 0 34px rgba(85,231,208,.2)}.library-hero-content>p{max-width:490px;margin-top:12px;color:#a2afcc;font-size:12px;line-height:1.85}.library-hero-stats{display:flex;align-items:center;gap:19px;margin-top:24px}.library-hero-stats span{display:flex;align-items:baseline;gap:7px}.library-hero-stats strong{color:#d9f7f0;font-size:20px;font-variant-numeric:tabular-nums}.library-hero-stats small{color:#8190b0;font-size:9px}.library-hero-stats i{width:1px;height:21px;background:#99aee038}.library-hero-note{position:absolute;right:27px;bottom:22px;z-index:3;display:flex;align-items:center;gap:8px;color:#8c9ab8;font-size:9px}.library-hero-note span{display:grid;width:22px;height:22px;place-items:center;border:1px solid rgba(116,231,216,.23);border-radius:7px;color:#81eadb;background:#55e7d017}.library-hero-orbit{position:absolute;top:50%;right:7%;width:min(29vw,300px);aspect-ratio:1;transform:translateY(-52%);opacity:.75}.library-orbit{position:absolute;top:50%;left:50%;display:block;border:1px solid rgba(130,223,218,.22);border-radius:50%;transform:translate(-50%,-50%)}.library-orbit--outer{width:94%;height:94%;border-style:dashed;animation:orbit-turn 60s linear infinite}.library-orbit--inner{width:62%;height:62%;border-color:#ae99ff4d;box-shadow:0 0 48px #7875ff21;animation:orbit-turn 39s linear infinite reverse}.library-orbit--outer:before,.library-orbit--inner:before{position:absolute;top:18%;left:14%;width:7px;height:7px;border-radius:50%;content:"";background:#79ebdd;box-shadow:0 0 17px #79ebdd}.library-orbit--inner:before{top:auto;right:12%;bottom:12%;left:auto;width:5px;height:5px;background:#b49bff;box-shadow:0 0 17px #b49bff}.library-orbit-core{position:absolute;top:50%;left:50%;display:grid;width:31%;height:31%;place-items:center;border:1px solid rgba(199,255,247,.48);border-radius:30%;color:#0b1523;background:linear-gradient(145deg,#78eedb,#a59aff);box-shadow:0 0 50px #5be4d747,inset 0 1px #ffffff9e;font-size:34px;transform:translate(-50%,-50%) rotate(-9deg);animation:core-hover 5.5s ease-in-out infinite}.library-toolbar{display:flex;align-items:end;justify-content:space-between;gap:24px}.library-section-kicker{color:#7484a6;font-size:9px;font-weight:700;letter-spacing:.17em}.library-toolbar-copy h2{margin-top:4px;color:#eef2ff;font-size:21px;letter-spacing:-.035em}.library-toolbar-copy h2 span{display:inline-grid;width:25px;height:20px;margin-left:5px;place-items:center;border:1px solid rgba(85,231,208,.15);border-radius:7px;color:#86ecdd;background:#55e7d014;font-size:9px;vertical-align:middle}.library-search{display:flex;width:min(100%,330px);min-height:43px;align-items:center;gap:10px;padding:0 12px;border:1px solid rgba(155,175,224,.17);border-radius:11px;color:#7b89aa;background:#10172cc4;transition:border-color .18s ease,box-shadow .18s ease}.library-search:focus-within{border-color:#55e7d07a;box-shadow:0 0 0 3px #55e7d012}.library-search>span{font-size:22px;line-height:1}.library-search input{width:100%;border:0;outline:0;color:#e7edff;background:transparent;font:inherit;font-size:10px}.library-search input::placeholder{color:#7280a0}.library-search button{display:grid;width:23px;height:23px;flex:0 0 auto;place-items:center;border-radius:7px;color:#9dabc7;background:#91a2d01a;font-size:15px}.library-filter-row{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:4px}.library-filter{display:inline-flex;min-height:32px;align-items:center;gap:5px;padding:0 12px;border:1px solid rgba(155,175,224,.15);border-radius:999px;color:#99a7c4;background:#12192fa3;font-size:9px;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease}.library-filter:hover{color:#dde9ff;border-color:#99afe64d;transform:translateY(-1px)}.library-filter.active{color:#09131c;border-color:transparent;background:linear-gradient(110deg,#6febd6,#a69aff);box-shadow:0 5px 20px #5ae0d829}.library-filter.active span{font-size:8px}.material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.material-card{--material-accent: #71E8D6;position:relative;isolation:isolate;display:flex;min-height:244px;flex-direction:column;overflow:hidden;padding:19px;border:1px solid rgba(153,174,224,.14);border-radius:17px;background:linear-gradient(145deg,#151d35e8,#0d1427eb);box-shadow:0 12px 35px #00000029,inset 0 1px #ffffff06;animation:material-enter .6s cubic-bezier(.2,.75,.25,1) both;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.material-card--mint{--material-accent: #71E8D6}.material-card--violet{--material-accent: #B39AFF}.material-card--blue{--material-accent: #74CFFF}.material-card--amber{--material-accent: #FFD479}.material-card--rose{--material-accent: #FF91B0}.material-card:before{position:absolute;top:0;right:0;left:0;height:2px;content:"";background:linear-gradient(90deg,transparent,var(--material-accent),transparent);opacity:.8}.material-card:hover{z-index:1;transform:translateY(-5px);border-color:color-mix(in srgb,var(--material-accent) 44%,transparent);box-shadow:0 24px 50px #0000004d,0 0 27px color-mix(in srgb,var(--material-accent) 9%,transparent)}.material-card-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.material-number{color:var(--material-accent);font-size:12px;font-weight:750;letter-spacing:.08em}.material-category{padding:4px 8px;border:1px solid color-mix(in srgb,var(--material-accent) 22%,transparent);border-radius:999px;color:color-mix(in srgb,var(--material-accent) 86%,white);background:color-mix(in srgb,var(--material-accent) 8%,transparent);font-size:8px}.material-featured{position:absolute;top:18px;left:52px;color:#8b98b5;font-size:8px}.material-featured:before{display:inline-block;width:5px;height:5px;margin:0 5px 1px 0;border-radius:50%;content:"";background:var(--material-accent);box-shadow:0 0 9px var(--material-accent)}.material-card h3{position:relative;z-index:1;margin-top:18px;color:#ebf0ff;font-size:15px;font-weight:680;letter-spacing:-.025em;line-height:1.45}.material-card p{position:relative;z-index:1;margin-top:8px;color:#94a1bf;font-size:10px;line-height:1.8}.material-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:13px}.material-tags span{padding:4px 7px;border-radius:6px;color:#8694b2;background:#90a2d414;font-size:8px}.material-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:15px}.material-formats{display:flex;gap:5px}.material-formats i{padding:4px 6px;border:1px solid rgba(151,170,222,.15);border-radius:5px;color:#8291b1;font-size:7px;font-style:normal;font-weight:700;letter-spacing:.04em}.material-open{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--material-accent) 23%,transparent);border-radius:8px;color:var(--material-accent);background:color-mix(in srgb,var(--material-accent) 7%,transparent);font-size:9px;font-weight:650}.material-open span{display:inline-block;font-size:12px;transition:transform .18s ease}.material-open:hover{border-color:color-mix(in srgb,var(--material-accent) 50%,transparent);background:color-mix(in srgb,var(--material-accent) 14%,transparent)}.material-open:hover span{transform:translate(2px,-2px)}.material-card-glow{position:absolute;right:-80px;bottom:-110px;z-index:-1;width:190px;height:190px;border-radius:50%;background:var(--material-accent);filter:blur(90px);opacity:.08;transition:opacity .22s ease}.material-card:hover .material-card-glow{opacity:.17}.library-empty{display:flex;min-height:210px;flex-direction:column;align-items:center;justify-content:center;border:1px dashed rgba(155,175,224,.2);border-radius:17px;color:#92a0bd;background:#11172b66}.library-empty>span{color:#7ee9d8;font-size:30px}.library-empty strong{margin-top:7px;color:#dde6fb;font-size:13px}.library-empty p{margin-top:4px;font-size:10px}.material-reader-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#030610c2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:reader-backdrop-in .22s ease both}.material-reader{display:grid;width:min(1500px,100%);height:min(940px,100%);min-height:0;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid rgba(153,174,224,.24);border-radius:20px;background:#0e1428;box-shadow:0 34px 110px #0009,0 0 46px #48bdbd12;animation:reader-window-in .34s cubic-bezier(.2,.8,.2,1) both}.material-reader-header{position:relative;z-index:2;display:flex;min-height:72px;align-items:center;gap:13px;padding:12px 17px;border-bottom:1px solid rgba(153,174,224,.15);background:#0f162bf5}.reader-back-button,.reader-close-button{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border:1px solid rgba(153,174,224,.15);border-radius:10px;color:#a8b5d1;background:#8c9dcf14;font-size:17px}.reader-back-button:hover,.reader-close-button:hover{color:#8debdd;border-color:#55e7d061;background:#55e7d01a}.reader-heading{min-width:0;flex:1}.reader-heading>span{color:#8290b0;font-size:8px}.reader-heading h2{overflow:hidden;margin-top:2px;color:#eef2ff;font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.reader-actions{display:flex;align-items:center;gap:9px}.reader-format-switch{display:flex;padding:3px;border:1px solid rgba(153,174,224,.14);border-radius:9px;background:#070c1bcc}.reader-format-switch button{padding:6px 9px;border-radius:6px;color:#8795b3;background:transparent;font-size:8px}.reader-format-switch button.active{color:#09131d;background:linear-gradient(105deg,#69ebd6,#a69aff)}.reader-download{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid rgba(102,218,208,.2);border-radius:8px;color:#85ebdd;background:#55e7d012;font-size:8px;text-decoration:none}.reader-download:hover{border-color:#66dad080;background:#55e7d021}.reader-close-button{margin-left:1px;font-size:19px}.material-reader-body{display:flex;min-height:0;flex-direction:column;padding:0 12px 12px}.reader-statusbar{display:flex;min-height:31px;align-items:center;justify-content:space-between;gap:12px;padding:0 7px;color:#7180a0;font-size:8px}.reader-statusbar span:first-child{display:inline-flex;align-items:center;gap:6px}.reader-statusbar i{width:6px;height:6px;border-radius:50%;background:#62e6b3;box-shadow:0 0 9px #62e6b3}.reader-statusbar span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-reader-stage{position:relative;min-height:0;flex:1;overflow:hidden;border:1px solid rgba(155,175,224,.14);border-radius:12px;background:#f7f8fc}.material-reader-frame{display:block;width:100%;height:100%;border:0;background:#f7f8fc}.reader-loading,.reader-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#c0cce5;background:#0c1224f5}.reader-loading strong,.reader-error strong{margin-top:14px;color:#e5ecff;font-size:12px}.reader-loading small,.reader-error span{margin-top:5px;color:#8997b6;font-size:9px}.reader-spinner{width:33px;height:33px;border:2px solid rgba(142,161,213,.16);border-top-color:#75eadb;border-right-color:#a79bff;border-radius:50%;animation:orbit-turn .9s linear infinite}.reader-error a{margin-top:14px;color:#84ebdd;font-size:10px}@keyframes material-enter{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes reader-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes reader-window-in{0%{opacity:0;transform:translateY(17px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 1100px){.material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.library-page{gap:18px}.library-hero{min-height:310px;align-items:flex-start;padding:26px 22px 54px}.library-hero-content{max-width:74%}.library-hero-content h1{font-size:clamp(29px,7vw,38px)}.library-hero-content>p{font-size:10px}.library-hero-orbit{top:48%;right:-9%;width:43vw;opacity:.57}.library-hero-note{right:18px;bottom:16px}.library-toolbar{align-items:stretch;flex-direction:column;gap:12px}.library-search{width:100%}.material-grid{gap:10px}.material-reader-backdrop{padding:10px}.material-reader{height:calc(100svh - 20px);border-radius:14px}.material-reader-header{min-height:62px;gap:8px;padding:9px}.reader-format-switch button{padding-inline:7px}}@media (max-width: 520px){.library-hero{min-height:320px}.library-hero-content{max-width:100%}.library-hero-content h1{font-size:31px}.library-hero-content>p{max-width:75%}.library-hero-stats{gap:11px;margin-top:19px}.library-hero-stats span{align-items:flex-start;flex-direction:column;gap:0}.library-hero-stats strong{font-size:17px}.library-hero-stats small{font-size:8px}.library-hero-orbit{top:55%;right:-14%;width:54vw}.material-grid{grid-template-columns:1fr}.material-card{min-height:220px}.reader-heading h2{max-width:130px;font-size:11px}.reader-heading>span{font-size:7px}.reader-actions{gap:5px}.reader-download{padding:7px;font-size:0}.reader-download span{font-size:13px}.reader-close-button,.reader-back-button{width:31px;height:31px}.reader-format-switch button,.reader-statusbar{font-size:7px}}@media (max-width: 760px){.auth-art{opacity:.44}.auth-atmosphere-orb--one{top:-15rem;left:-21rem}.auth-atmosphere-orb--two{right:-27rem;bottom:-18rem}}.admin-page{display:flex;flex-direction:column;gap:var(--space-lg)}.admin-page .page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md)}.admin-grid{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(420px,1.4fr);gap:var(--space-lg);align-items:start}.admin-student-list{padding:var(--space-md)}.admin-filters{display:grid;grid-template-columns:1fr 130px 120px;gap:var(--space-sm);margin-bottom:var(--space-md)}.admin-filters .input-field,.admin-message-heading .input-field{min-width:0}.admin-student-rows{display:flex;flex-direction:column;max-height:68vh;overflow:auto}.admin-select-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:8px 10px;color:var(--text-muted);font-size:var(--text-xs)}.admin-select-toolbar label{display:flex;align-items:center;gap:7px;cursor:pointer}.admin-student-select-row{display:flex;align-items:center;gap:10px;padding-left:8px;border-top:1px solid var(--border-subtle)}.admin-student-select-row>input{flex:0 0 auto}.admin-student-row{display:flex;align-items:center;gap:var(--space-sm);text-align:left;width:100%;padding:12px 10px;border:0;background:transparent;color:var(--text-primary);cursor:pointer;transition:background .2s ease,transform .2s ease}.admin-student-row:hover,.admin-student-row.selected{background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.admin-student-row:hover{transform:translate(2px)}.admin-student-avatar{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:13px;background:color-mix(in srgb,var(--color-primary) 12%,white);color:var(--color-primary);font-weight:700}.admin-student-copy{min-width:0;display:flex;flex:1;flex-direction:column;gap:4px}.admin-student-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-student-copy small,.admin-empty{color:var(--text-muted);font-size:var(--text-xs)}.admin-needs-dot{width:8px;height:8px;border-radius:50%;background:var(--color-warning);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-warning) 12%,transparent)}.admin-detail-column{display:flex;flex-direction:column;gap:var(--space-lg);min-width:0}.admin-student-detail h2{margin:var(--space-xs) 0;font-size:var(--text-xl)}.admin-student-detail>p{color:var(--text-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.admin-detail-stats{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin:var(--space-md) 0 var(--space-lg);padding:var(--space-md) 0;border-block:1px solid var(--border-subtle);color:var(--text-secondary)}.admin-detail-stats strong{color:var(--text-primary);margin-left:6px}.admin-student-detail h3,.admin-message-heading h3{margin:0 0 var(--space-sm);font-size:var(--text-md)}.admin-activity-list{display:flex;flex-direction:column;gap:0}.admin-activity-list>div{display:flex;justify-content:space-between;gap:var(--space-md);padding:9px 0;border-top:1px solid var(--border-subtle);font-size:var(--text-sm)}.admin-activity-list small{color:var(--text-muted);text-align:right}.admin-message-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.admin-message-heading h3{margin-bottom:0}.admin-message-heading .input-field{max-width:170px}.admin-messages{display:flex;flex-direction:column;gap:var(--space-sm);max-height:260px;min-height:90px;overflow:auto;padding:var(--space-md) 0}.admin-message{align-self:flex-start;max-width:82%;padding:10px 13px;border-radius:14px 14px 14px 4px;background:var(--bg-secondary)}.admin-message--mine{align-self:flex-end;border-radius:14px 14px 4px;background:color-mix(in srgb,var(--color-primary) 12%,white)}.admin-message p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--text-sm)}.admin-message time{display:block;margin-top:5px;color:var(--text-muted);font-size:10px;text-align:right}.admin-compose{display:grid;gap:var(--space-sm)}.admin-compose .btn-primary{justify-self:end}.admin-empty-state{min-height:250px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--text-muted)}.admin-empty-state>span{font-size:36px;color:var(--color-primary);margin-bottom:var(--space-sm)}.admin-empty-state p{margin:var(--space-xs) 0 0}.admin-broadcast-card{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.4fr);align-items:center;gap:var(--space-md)}.admin-broadcast-card h3{margin:3px 0}.admin-broadcast-card p{color:var(--text-muted);font-size:var(--text-xs);line-height:1.6}.admin-broadcast-footer{grid-column:2;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);color:var(--color-success);font-size:var(--text-sm)}@media (max-width: 1000px){.admin-grid{grid-template-columns:1fr}.admin-student-rows{max-height:330px}.admin-broadcast-card{grid-template-columns:1fr}.admin-broadcast-footer{grid-column:1}}@media (max-width: 600px){.admin-filters{grid-template-columns:1fr 1fr}.admin-filters .input-field:first-child{grid-column:1 / -1}.admin-page .page-heading,.admin-message-heading{align-items:flex-start;flex-direction:column}.admin-message-heading .input-field{max-width:none;width:100%}.admin-activity-list>div{flex-direction:column;gap:3px}.admin-activity-list small{text-align:left}}.messages-page{max-width:900px;margin:0 auto}.student-message-card{display:flex;flex-direction:column;gap:var(--space-md)}.student-message-top{display:flex;align-items:center;gap:10px;padding-bottom:var(--space-md);border-bottom:1px solid var(--border-subtle)}.student-message-top>div{display:flex;flex-direction:column;gap:3px}.student-message-top small{color:var(--text-muted);font-size:var(--text-xs)}.message-online-dot{width:10px;height:10px;border-radius:50%;background:var(--color-success);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-success) 12%,transparent)}.student-message-list{min-height:320px;max-height:55vh;display:flex;flex-direction:column;gap:var(--space-sm);overflow:auto}.student-message{align-self:flex-start;max-width:82%;padding:11px 14px;border-radius:15px 15px 15px 4px;background:var(--bg-secondary)}.student-message--mine{align-self:flex-end;border-radius:15px 15px 4px;background:color-mix(in srgb,var(--color-primary) 12%,white)}.student-message p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.student-message time{display:block;margin-top:5px;color:var(--text-muted);font-size:10px;text-align:right}
