@import "https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&family=Roboto:wght@400;500;700&display=swap";:root,:root.light-theme,:root.scheme-beige,:root.light-theme.scheme-beige{--bg-base:#f6f3ea;--bg-surface:#fcfaf7;--bg-raised:#f3eee4;--bg-overlay:#fcfaf7f5;--border:#ebdcc2;--border-mid:#d5caa3;--accent:#9c5d3f;--accent-dim:#9c5d3f14;--accent-mid:#9c5d3f2e;--accent-rgb:156, 93, 63;--accent-contrast:#fff;--accent2:#4a7856;--accent2-dim:#4a785614;--accent2-rgb:74, 120, 86;--text-hi:#2e2a24;--text-mid:#665f55;--text-lo:#968d80;--ok:#4a7856;--warn:#ca8a04;--warn-dim:#ca8a0414;--danger:#b43c34;--info:#9c5d3f;--shadow-sm:0 1px 2px #3c40431f, 0 1px 3px #3c404314;--shadow-md:0 2px 6px #3c404326, 0 4px 12px #3c40431a;--shadow-lg:0 6px 20px #3c40432e, 0 12px 36px #3c40431f;--shadow-xl:0 12px 40px #3c404338, 0 24px 64px #3c404324;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-spring2:cubic-bezier(.175, .885, .32, 1.275);--ease-decel:cubic-bezier(0, 0, .2, 1);--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-accel:cubic-bezier(.4, 0, 1, 1);--dur-xfast:80ms;--dur-fast:.15s;--dur-mid:.24s;--dur-slow:.38s;--dur-xslow:.52s;--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:999px;--calendar-invert:0}:root.dark-theme,:root.dark-theme.scheme-beige{--bg-base:#1e1915;--bg-surface:#28221e;--bg-raised:#362e29;--bg-overlay:#28221ef5;--border:#423830;--border-mid:#65564b;--accent:#dfb098;--accent-dim:#dfb0981f;--accent-mid:#dfb09838;--accent-rgb:223, 176, 152;--accent-contrast:#1e1915;--accent2:#a3c9a8;--accent2-dim:#a3c9a81f;--accent2-rgb:163, 201, 168;--text-hi:#f0ede9;--text-mid:#c8c0b5;--text-lo:#968d80;--ok:#a3c9a8;--warn:#dfb098;--warn-dim:#dfb0981f;--danger:#e57373;--info:#dfb098;--shadow-sm:0 1px 3px #00000073;--shadow-md:0 2px 10px #0000008c;--shadow-lg:0 6px 24px #000000a6;--shadow-xl:0 12px 48px #000000bf;--calendar-invert:1}:root.scheme-chill-spice,:root.light-theme.scheme-chill-spice{--bg-base:#fff6f5;--bg-surface:#fff;--bg-raised:#fff1ee;--bg-overlay:#fff6f5f5;--border:#ffe8e5;--border-mid:#fcaaa0;--accent:#c62828;--accent-dim:#c6282814;--accent-mid:#c628282e;--accent-rgb:198, 40, 40;--accent-contrast:#fff;--accent2:#9b1313;--accent2-dim:#9b131314;--accent2-rgb:155, 19, 19;--text-hi:#38000a;--text-mid:#7a4d53;--text-lo:#a67c82;--ok:#388e3c;--warn:#9b1313;--warn-dim:#9b131314;--danger:#c62828;--info:#9b1313;--calendar-invert:0}:root.dark-theme.scheme-chill-spice{--bg-base:#1c0507;--bg-surface:#250a0d;--bg-raised:#381418;--bg-overlay:#250a0df5;--border:#4e1e23;--border-mid:#783d44;--accent:#ffa896;--accent-dim:#ffa8961f;--accent-mid:#ffa89638;--accent-rgb:255, 168, 150;--accent-contrast:#1c0507;--accent2:#c62828;--accent2-dim:#c628281f;--accent2-rgb:198, 40, 40;--text-hi:#ffeae5;--text-mid:#d5a49d;--text-lo:#a57771;--ok:#81c784;--warn:#ffa896;--warn-dim:#ffa8961f;--danger:#ff8a80;--info:#ffa896;--calendar-invert:1}:root.scheme-ink-wash,:root.light-theme.scheme-ink-wash{--bg-base:#f9f8f5;--bg-surface:#fff;--bg-raised:#f4f2ec;--bg-overlay:#f9f8f5f5;--border:#ebeae3;--border-mid:#b8b5a8;--accent:#2b2b2b;--accent-dim:#2b2b2b14;--accent-mid:#2b2b2b2e;--accent-rgb:43, 43, 43;--accent-contrast:#fff;--accent2:#5a6e85;--accent2-dim:#5a6e8514;--accent2-rgb:90, 110, 133;--text-hi:#1a1a1a;--text-mid:#4a4a4a;--text-lo:#7e7e7e;--ok:#4e6d53;--warn:#5a6e85;--warn-dim:#5a6e8514;--danger:#9a4e4e;--info:#5a6e85;--calendar-invert:0}:root.dark-theme.scheme-ink-wash{--bg-base:#181818;--bg-surface:#202020;--bg-raised:#2e2e2e;--bg-overlay:#202020f5;--border:#333;--border-mid:#4f4f4f;--accent:#e0e0e0;--accent-dim:#e0e0e01f;--accent-mid:#e0e0e038;--accent-rgb:224, 224, 224;--accent-contrast:#1a1a1a;--accent2:#5a6e85;--accent2-dim:#5a6e851f;--accent2-rgb:90, 110, 133;--text-hi:#f5f5f0;--text-mid:#cbcbcb;--text-lo:#8e8e8e;--ok:#81c784;--warn:#5a6e85;--warn-dim:#5a6e851f;--danger:#ff8a80;--info:#5a6e85;--calendar-invert:0}:root.scheme-quiet-luxury,:root.light-theme.scheme-quiet-luxury{--bg-base:#fbf9f5;--bg-surface:#fff;--bg-raised:#f5ecd8;--bg-overlay:#fbf9f5f5;--border:#efe7dc;--border-mid:#d5c7ab;--accent:#9b8a7c;--accent-dim:#9b8a7c14;--accent-mid:#9b8a7c2e;--accent-rgb:155, 138, 124;--accent-contrast:#2c2520;--accent2:#d4b2a7;--accent2-dim:#d4b2a714;--accent2-rgb:212, 178, 167;--text-hi:#3c3530;--text-mid:#6d635c;--text-lo:#998d84;--ok:#5b7b62;--warn:#d5c7ab;--warn-dim:#d5c7ab14;--danger:#c26a64;--info:#d5c7ab;--calendar-invert:0}:root.dark-theme.scheme-quiet-luxury{--bg-base:#221d1b;--bg-surface:#2d2724;--bg-raised:#3b332f;--bg-overlay:#2d2724f5;--border:#443b37;--border-mid:#75685f;--accent:#ecdac3;--accent-dim:#ecdac31f;--accent-mid:#ecdac338;--accent-rgb:236, 218, 195;--accent-contrast:#221d1b;--accent2:#d9bbb0;--accent2-dim:#d9bbb01f;--accent2-rgb:217, 187, 176;--text-hi:#fdfbf7;--text-mid:#dcd6ce;--text-lo:#a8a096;--ok:#a5d6a7;--warn:#ecdac3;--warn-dim:#ecdac31f;--danger:#ef9a9a;--info:#ecdac3;--calendar-invert:1}:root.scheme-google,:root.light-theme.scheme-google{--bg-base:#f8f9fa;--bg-surface:#fff;--bg-raised:#f1f3f4;--bg-overlay:#fffffff5;--border:#dadce0;--border-mid:#bdc1c6;--accent:#1a73e8;--accent-dim:#1a73e814;--accent-mid:#1a73e82e;--accent-rgb:26, 115, 232;--accent-contrast:#fff;--accent2:#188038;--accent2-dim:#18803814;--accent2-rgb:24, 128, 56;--text-hi:#202124;--text-mid:#5f6368;--text-lo:#80868b;--ok:#137333;--warn:#e37400;--warn-dim:#e3740014;--danger:#d93025;--info:#1a73e8;--calendar-invert:0}:root.dark-theme.scheme-google{--bg-base:#202124;--bg-surface:#292a2d;--bg-raised:#35363a;--bg-overlay:#292a2df5;--border:#3c4043;--border-mid:#5f6368;--accent:#8ab4f8;--accent-dim:#8ab4f81f;--accent-mid:#8ab4f838;--accent-rgb:138, 180, 248;--accent-contrast:#202124;--accent2:#81c995;--accent2-dim:#81c9951f;--accent2-rgb:129, 201, 149;--text-hi:#e8eaed;--text-mid:#bdc1c6;--text-lo:#9aa0a6;--ok:#81c995;--warn:#fdd663;--warn-dim:#fdd6631f;--danger:#f28b82;--info:#8ab4f8;--calendar-invert:1}*,:before,:after{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border-mid) transparent;margin:0;padding:0}html{font-size:15px}body{background:var(--bg-base);color:var(--text-hi);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color .3s var(--ease-out), color .3s var(--ease-out);font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4{letter-spacing:-.01em;font-family:Google Sans,Roboto,sans-serif;font-weight:500}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-lo)}.app-container{min-height:var(--app-height,100vh);min-height:var(--app-height,100dvh);display:flex}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);width:256px;padding:var(--sp-sm) var(--sp-md);flex-direction:column;flex-shrink:0;gap:0;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.logo-container{justify-content:space-between;align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-sm);margin-bottom:var(--sp-md);display:flex}.sidebar-collapse-btn{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);width:32px;height:32px;color:var(--text-mid);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-collapse-btn:hover{background:var(--accent-dim);color:var(--accent)}@media (width>=769px){.sidebar--collapsed{width:68px;padding:var(--sp-sm) var(--sp-xs)}.sidebar--collapsed .logo-text,.sidebar--collapsed .nav-item a span,.sidebar--collapsed .nav-logout-btn span,.sidebar--collapsed .network-status span,.sidebar--collapsed .nav-section-label{display:none}.sidebar--collapsed .logo-container{padding:var(--sp-xs) 0;justify-content:center}.sidebar--collapsed .sidebar-collapse-btn{margin:0 auto var(--sp-sm);order:2}.sidebar--collapsed .logo-text{display:none}.sidebar--collapsed .nav-item a,.sidebar--collapsed .nav-logout-btn{border-radius:var(--r-md);justify-content:center;padding:10px}.sidebar--collapsed .network-status{justify-content:center;padding:7px}}.app-logo{border-radius:var(--r-md);color:#fff;-webkit-user-select:none;user-select:none;width:40px;height:40px;transition:transform var(--dur-mid) var(--ease-spring), box-shadow var(--dur-mid) var(--ease-out);animation:logoAppear .6s var(--ease-spring) both;background:linear-gradient(135deg,#d4a373 0%,#9c5d3f 50%,#6f3d22 100%);flex-shrink:0;justify-content:center;align-items:center;font-family:Google Sans,sans-serif;font-size:20px;font-weight:700;display:inline-flex}.logo-container:hover .app-logo{box-shadow:0 6px 20px rgba(var(--accent-rgb), .4);transform:scale(1.1)rotate(-4deg)}.logo-text{color:var(--text-hi);white-space:nowrap;animation:fadeSlideRight .5s .1s var(--ease-decel) both;font-family:Google Sans,sans-serif;font-size:18px;font-weight:500}.nav-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-lo);padding:0 var(--sp-xs);margin-bottom:var(--sp-xs);margin-top:var(--sp-md);font-size:10px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;display:flex}.nav-links{flex-direction:column;gap:3px;list-style:none;display:flex}.nav-item a{align-items:center;gap:var(--sp-md);color:var(--text-mid);border-radius:var(--r-pill);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-mid) var(--ease-spring);white-space:nowrap;margin:0 4px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;display:flex;position:relative;overflow:hidden}.nav-item a:after{content:"";background:radial-gradient(circle at var(--rx,50%) var(--ry,50%), rgba(var(--accent-rgb), .18) 0%, transparent 70%);opacity:0;transition:transform .5s var(--ease-out), opacity .4s var(--ease-out);border-radius:inherit;pointer-events:none;position:absolute;inset:0;transform:scale(0)}.nav-item a:active:after{opacity:1;transition:all;transform:scale(2.5)}.nav-item a:hover{background:var(--bg-raised);color:var(--text-hi);transform:translate(2px)}.nav-item a.active{background:var(--accent-dim);color:var(--accent);font-weight:600;transform:translate(0)}.nav-item a.active:before{display:none}.nav-item a.active svg{filter:drop-shadow(0 0 4px rgba(var(--accent-rgb), .4))}.nav-logout-btn{align-items:center;gap:var(--sp-sm);color:var(--text-mid);border-radius:var(--r-md);cursor:pointer;text-align:left;width:100%;transition:all var(--dur-fast) var(--ease-out);white-space:nowrap;background:0 0;border:none;padding:9px 12px;font-family:inherit;font-size:13.5px;font-weight:500;display:flex}.nav-logout-btn:hover{color:var(--danger);background:#f060601a}.network-status{border-radius:var(--r-sm);margin-top:var(--sp-sm);border:1px solid var(--border);transition:all var(--dur-fast) var(--ease-out);white-space:nowrap;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:500;display:flex;overflow:hidden}.network-status.online{color:var(--ok);background:#3ecf8e0d;border-color:#3ecf8e33}.network-status.offline{color:var(--danger);background:#f060600d;border-color:#f0606033}.theme-toggle-fab{background:var(--bg-surface);border:1px solid var(--border);width:38px;height:38px;color:var(--text-hi);cursor:pointer;z-index:1001;box-shadow:var(--shadow-sm);transition:all var(--dur-fast) var(--ease-spring);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:14px;right:14px}.theme-toggle-fab:hover{border-color:var(--accent);color:var(--accent);transform:scale(1.1)rotate(20deg)}.main-content{min-width:0;padding:var(--sp-lg) var(--sp-xl);height:var(--app-height,100vh);height:var(--app-height,100dvh);flex:1;overflow:hidden auto}.page-container{gap:var(--sp-lg);animation:pageEnter var(--dur-slow) var(--ease-decel) both;flex-direction:column;max-width:1280px;display:flex}.page-header{justify-content:space-between;align-items:center;gap:var(--sp-md);padding-bottom:var(--sp-md);border-bottom:1px solid var(--border);display:flex}.page-header-left h1{color:var(--text-hi);font-size:22px;font-weight:700;line-height:1.2}.page-header-left p{color:var(--text-mid);margin-top:3px;font-size:13px}.page-header h1{color:var(--text-hi);font-size:22px;font-weight:700}.page-header>div>p{color:var(--text-mid);margin-top:3px;font-size:13px}.header-actions{align-items:center;gap:var(--sp-sm);flex-shrink:0;display:flex}.page-header--compact{border-bottom:none;padding-bottom:0}.page-header-sub{color:var(--text-mid);margin-top:3px;font-size:13px}.btn-icon-text .btn-label{white-space:nowrap}.stats-grid--compact{gap:var(--sp-sm)}.stat-card--compact{padding:var(--sp-md)}.stat-card--compact .stat-value{font-size:1.35rem}.page-loading{padding:var(--sp-xl);justify-content:center;display:flex}.grades-tab-body,.attendance-tab-body{gap:var(--sp-md);flex-direction:column;width:100%;max-width:none;display:flex}@media (width>=769px){.page-container--grades .page-header--compact{border-bottom:1px solid var(--border);padding-bottom:var(--sp-md);max-width:none}.page-container--grades .stats-grid--compact{grid-template-columns:repeat(3,minmax(140px,1fr));max-width:520px}.page-container--grades .gb-detail-grid{grid-template-columns:repeat(3,1fr)}}.stats-grid{gap:var(--sp-md);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.dashboard-main-grid{gap:var(--sp-md);grid-template-columns:1.7fr 1fr;display:grid}.stats-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-widgets{gap:var(--sp-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dashboard-widget-wide{grid-column:1/-1}.card-header-link{color:var(--accent);font-size:12px;font-weight:500;text-decoration:none}.card-header-link:hover{text-decoration:underline}.dash-quick-links{gap:var(--sp-sm);margin-bottom:var(--sp-md);flex-wrap:wrap;display:flex}.dash-quick-link{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-raised);color:var(--text-hi);transition:border-color var(--dur-fast), background var(--dur-fast);align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.dash-quick-link:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.dash-grade-item{justify-content:space-between;align-items:center;gap:var(--sp-md);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);padding:12px 16px;display:flex;box-shadow:0 1px 3px #00000005}.dash-grade-subject{color:var(--text-hi);font-size:14px;font-weight:600}.dash-grade-meta{color:var(--text-lo);margin-top:4px;font-size:12px}.dash-grade-badge{border-radius:var(--r-md);text-align:center;flex-shrink:0;min-width:38px;padding:6px 12px;font-size:14px;font-weight:700}.dash-grade-badge--high{background:var(--accent2-dim);color:var(--ok);border:1px solid rgba(var(--accent2-rgb), .2)}.dash-grade-badge--mid{background:var(--accent-dim);color:var(--accent);border:1px solid rgba(var(--accent-rgb), .2)}.dash-grade-badge--low{background:var(--warn-dim);color:var(--warn);border:1px solid #ea860033}.dash-grade-badge--bad{color:var(--danger);background:#d9302514;border:1px solid #d9302533}.dash-grade-badge--neutral{background:var(--bg-raised);color:var(--text-mid);border:1px solid var(--border)}.dash-assignment-item{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);border-left:4px solid var(--accent);padding:16px;box-shadow:0 1px 3px #00000005}.dash-assignment-subject{color:var(--text-hi);font-size:14px;font-weight:600}.dash-assignment-meta{color:var(--text-lo);margin-top:4px;font-size:12px}.dash-assignment-text{color:var(--text-mid);background:var(--bg-raised);border-radius:var(--r-sm);border-left:2px solid var(--border-mid);margin-top:8px;padding:8px 12px;font-size:13px;line-height:1.5}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-lg);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-mid) var(--ease-decel), transform var(--dur-mid) var(--ease-decel)}.card:hover{border-color:var(--border-mid);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{margin-bottom:var(--sp-md);color:var(--text-hi);font-size:14px;font-weight:600;font-family:var(--font-display);justify-content:space-between;align-items:center;display:flex}.card-header-icon{color:var(--text-mid)}.stat-card{align-items:flex-start;gap:var(--sp-md);display:flex}.stat-icon-wrapper{border-radius:var(--r-md);transition:transform var(--dur-mid) var(--ease-spring), box-shadow var(--dur-mid) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;padding:11px;display:flex}.stat-card:hover .stat-icon-wrapper{box-shadow:0 4px 12px rgba(var(--accent-rgb), .25);transform:scale(1.12)rotate(8deg)}.stat-body{flex:1;min-width:0}.stat-label{color:var(--text-mid);margin-bottom:5px;font-size:12px;font-weight:500;line-height:1}.stat-value{color:var(--text-hi);font-family:Google Sans,sans-serif;font-size:28px;font-weight:500;line-height:1}.stat-trend{align-items:center;gap:3px;margin-top:4px;font-size:11px;font-weight:600;display:flex}.stat-trend.up{color:var(--ok)}.stat-trend.down{color:var(--danger)}.stat-trend.flat{color:var(--text-mid)}.flex-column-list{gap:var(--sp-sm);flex-direction:column;display:flex}.class-item{padding:12px var(--sp-md);border:1px solid var(--border);border-radius:var(--r-md);transition:all var(--dur-mid) var(--ease-decel);background:var(--bg-raised);animation:staggerFadeIn var(--dur-mid) var(--ease-decel) both;justify-content:space-between;align-items:center;display:flex}.class-item:hover{border-color:var(--accent);background:var(--accent-dim);box-shadow:var(--shadow-sm);transform:translate(4px)}.class-item--class{border-left:3px solid var(--accent)}.class-item--study{border-left:3px solid var(--accent2)}.class-item--task{border-left:3px solid var(--warn)}.class-item--personal{border-left:3px solid var(--ok)}.class-name{color:var(--text-hi);font-size:14px;font-weight:600}.class-meta{color:var(--text-mid);margin-top:3px;font-size:12px}.class-time{text-align:right;flex-shrink:0}.class-time-value{color:var(--accent);font-size:14px;font-weight:700;font-family:var(--font-display)}.class-date-value{color:var(--text-lo);margin-top:2px;font-size:11px}.empty-state{align-items:center;gap:var(--sp-sm);padding:var(--sp-xl) 0;color:var(--text-mid);flex-direction:column;display:flex}.empty-state-icon{color:var(--text-lo)}.empty-state p{font-size:13.5px}.mood-card{flex-direction:column;height:100%;display:flex}.mood-chart-container{height:100px;margin:var(--sp-sm) 0}.mood-chart-container--lg{height:140px}.mood-history-list{gap:var(--sp-xs);margin-top:var(--sp-md);flex-direction:column;display:flex}.mood-history-item{padding:8px var(--sp-md);border-radius:var(--r-sm);background:var(--bg-raised);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:12.5px;display:flex}.mood-history-rating{color:var(--accent2);font-weight:700}.mood-history-date{color:var(--text-mid)}.mood-history-comment{color:var(--text-mid);flex:100%;font-size:12px}.mood-insight{color:var(--text-mid);margin-top:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);background:var(--bg-raised);border-radius:var(--r-sm);border-left:3px solid var(--accent2);font-size:12.5px;line-height:1.5}.btn{border-radius:var(--r-pill);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), box-shadow var(--dur-mid) var(--ease-decel), transform var(--dur-xfast) var(--ease-out), filter var(--dur-fast);white-space:nowrap;letter-spacing:.01em;isolation:isolate;border:none;justify-content:center;align-items:center;gap:8px;padding:8px 24px;font-family:Google Sans,Roboto,inherit;font-size:14px;font-weight:500;line-height:1;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle,#ffffff4d 0%,#0000 70%);position:absolute;inset:0;transform:scale(0)}.btn:active:after{opacity:1;transition:all;transform:scale(2)}.btn:hover{box-shadow:var(--shadow-md)}.btn:active{box-shadow:none;transform:scale(.965)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(var(--accent-rgb), .25);border:1px solid var(--accent)}.btn-primary:hover{background:var(--accent);filter:brightness(1.06);box-shadow:0 4px 16px rgba(var(--accent-rgb), .35)}.btn-secondary{background:var(--bg-surface);color:var(--accent);border:1px solid var(--border-mid);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.btn-text{color:var(--accent);background:0 0;padding:8px 12px}.btn-text:hover{background:var(--accent-dim)}.btn-danger{color:var(--danger);background:#f060601f;border:1px solid #f0606033}.btn-danger:hover{background:#f0606038;box-shadow:0 2px 8px #d9302533}.btn-icon{border-radius:var(--r-sm);padding:8px}.spin{animation:.9s linear infinite spin}.input-container{align-items:center;gap:var(--sp-sm);background:var(--bg-raised);border:1px solid var(--border);padding:9px var(--sp-md);border-radius:var(--r-pill);transition:all var(--dur-fast) var(--ease-out);display:flex}.input-container:focus-within{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .15)}input,select,textarea,button,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}input[type=text],input[type=search],input[type=number],input[type=email],input[type=password],input[type=tel],input[type=url],.material-input{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-hi);border-radius:var(--r-md);width:100%;transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);outline:none;padding:9px 14px;font-family:inherit;font-size:14px}input[type=text]:focus,input[type=search]:focus,input[type=number]:focus,input[type=email]:focus,input[type=password]:focus,input[type=tel]:focus,input[type=url]:focus,.material-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .15);background-color:var(--bg-surface)}textarea,.material-textarea{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);width:100%;min-height:80px;color:var(--text-hi);resize:vertical;transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);outline:none;padding:11px 14px;font-family:inherit;font-size:14px;line-height:1.5}textarea:focus,.material-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .15);background-color:var(--bg-surface)}.input-container .input-field,.input-field{color:var(--text-hi);flex:1;font-family:inherit;font-size:14px;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important;padding:0!important}.input-field::placeholder{color:var(--text-lo)}.form-group{flex-direction:column;gap:5px;display:flex}.form-group label{color:var(--text-mid);padding-left:3px;font-size:12px;font-weight:600}select,.material-select{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6368' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:14px;background-color:var(--bg-raised);color:var(--text-hi);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);outline:none;padding:9px 40px 9px 14px;font-family:inherit;font-size:14px}:root.dark-theme select,:root.dark-theme .material-select{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa0a6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}select:focus,.material-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .15);background-color:var(--bg-surface)}select:disabled,.material-select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--bg-raised)}select option{background-color:var(--bg-surface);color:var(--text-hi)}select:active,.material-select:active{transform:scale(.99)}input[type=date],input[type=time],input[type=datetime-local]{appearance:none;background-color:var(--bg-raised);color:var(--text-hi);border:1px solid var(--border);border-radius:var(--r-md);transition:all var(--dur-fast) var(--ease-out);cursor:pointer;outline:none;padding:9px 14px;font-family:inherit;font-size:14px}input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .15);background-color:var(--bg-surface)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(var(--calendar-invert,0));cursor:pointer;opacity:.7;transition:opacity var(--dur-fast) var(--ease-out);padding:2px}input[type=time]::-webkit-calendar-picker-indicator{filter:invert(var(--calendar-invert,0));cursor:pointer;opacity:.7;transition:opacity var(--dur-fast) var(--ease-out);padding:2px}input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(var(--calendar-invert,0));cursor:pointer;opacity:.7;transition:opacity var(--dur-fast) var(--ease-out);padding:2px}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=datetime-local]::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=checkbox]{appearance:none;border:2px solid var(--border-mid);cursor:pointer;width:18px;height:18px;transition:all var(--dur-fast) var(--ease-out);vertical-align:middle;background-color:#0000;border-radius:4px;outline:none;place-content:center;display:inline-grid}input[type=checkbox]:before{content:"";width:10px;height:10px;transition:transform var(--dur-fast) var(--ease-spring);clip-path:polygon(14% 44%,0 58%,33% 90%,100% 14%,86% 0%,33% 62%);background-color:#fff;transform:scale(0)}input[type=checkbox]:checked{background-color:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:focus{box-shadow:0 0 0 2px rgba(var(--accent-rgb), .15)}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=radio]{appearance:none;border:2px solid var(--border-mid);cursor:pointer;width:18px;height:18px;transition:all var(--dur-fast) var(--ease-out);vertical-align:middle;background-color:#0000;border-radius:50%;outline:none;place-content:center;display:inline-grid}input[type=radio]:before{content:"";width:8px;height:8px;transition:transform var(--dur-fast) var(--ease-spring);background-color:#fff;border-radius:50%;transform:scale(0)}input[type=radio]:checked{background-color:var(--accent);border-color:var(--accent)}input[type=radio]:checked:before{transform:scale(1)}input[type=radio]:focus{box-shadow:0 0 0 2px rgba(var(--accent-rgb), .15)}input[type=radio]:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox]:hover,input[type=radio]:hover{border-color:var(--accent)}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:6px;margin:10px 0}input[type=range]::-webkit-slider-runnable-track{background:var(--border);border-radius:var(--r-pill);height:6px;transition:background var(--dur-fast)}input[type=range]:focus::-webkit-slider-runnable-track{background:var(--border-mid)}input[type=range]::-webkit-slider-thumb{appearance:none;background-color:var(--accent);width:16px;height:16px;transition:transform var(--dur-fast) var(--ease-spring), background-color var(--dur-fast);box-shadow:var(--shadow-sm);border-radius:50%;margin-top:-5px}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2)}input[type=file]{color:var(--text-mid);font-size:14px}input[type=file]::file-selector-button{border-radius:var(--r-pill);border:1px solid var(--border-mid);background:var(--bg-surface);color:var(--accent);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);margin-right:12px;padding:6px 16px;font-family:inherit;font-size:13px;font-weight:500}input[type=file]::file-selector-button:hover{background:var(--accent-dim);border-color:var(--accent)}.modal-overlay{-webkit-backdrop-filter:blur(8px)saturate(1.5);z-index:1000;padding:var(--sp-md);animation:fadeIn var(--dur-mid) var(--ease-decel);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:var(--r-xl);width:100%;max-width:460px;padding:var(--sp-xl);box-shadow:var(--shadow-xl);gap:var(--sp-lg);animation:modalEnter var(--dur-slow) var(--ease-spring2);flex-direction:column;display:flex}.modal-card--wide{max-width:520px}.modal-title{color:var(--text-hi);font-size:18px;font-weight:700}.modal-actions{gap:var(--sp-sm);justify-content:flex-end;display:flex}.chat-page-layout{gap:var(--sp-md);height:calc(100vh - 96px);transition:grid-template-columns var(--dur-mid) var(--ease-out);grid-template-columns:1fr;display:grid}.chat-page-layout.with-sidebar{grid-template-columns:220px 1fr 340px}.chat-page-layout--with-sessions{grid-template-columns:220px 1fr}.chat-page-layout--with-sessions.with-sidebar{grid-template-columns:220px 1fr 340px}.chat-sessions-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);flex-direction:column;min-height:0;display:flex;overflow:hidden}.chat-sessions-panel__head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.chat-sessions-panel__head-actions{align-items:center;gap:6px;display:flex}.chat-sessions-toggle{flex-shrink:0;display:none}.chat-header__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.chat-sessions-backdrop{cursor:pointer;border:none;margin:0;padding:0;display:none}.chat-sessions-panel--drawer{display:none}.chat-sessions-panel__title{color:var(--text-hi);font-size:13px;font-weight:700}.chat-sessions-new{min-width:0;padding:6px 8px}.chat-sessions-list{flex-direction:column;flex:1;gap:6px;padding:8px;display:flex;overflow-y:auto}.chat-sessions-empty{color:var(--text-mid);margin:0;padding:8px;font-size:12px}.chat-session-item{border-radius:var(--r-md);background:var(--bg-raised);cursor:pointer;text-align:left;transition:border-color var(--dur-fast), background var(--dur-fast);border:1px solid #0000;padding:10px 10px 8px;position:relative}.chat-session-item:hover,.chat-session-item.active{border-color:var(--accent);background:var(--accent-dim)}.chat-session-item__title{color:var(--text-hi);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.chat-session-item__title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-session-item__preview{color:var(--text-mid);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:11px;overflow:hidden}.chat-session-item__actions{opacity:0;transition:opacity var(--dur-fast);gap:4px;margin-top:6px;display:flex}.chat-session-item:hover .chat-session-item__actions,.chat-session-item.active .chat-session-item__actions{opacity:1}.chat-session-item__btn{color:var(--text-mid);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.chat-session-item__btn:hover{background:var(--bg-surface);color:var(--text-hi)}.chat-session-item__btn--danger:hover{color:var(--danger,#e53935)}.chat-session-rename-input{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-hi);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}.chat-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);flex-direction:column;height:100%;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:12px;padding:14px 16px;display:flex}.chat-header__row{justify-content:space-between;align-items:center;gap:12px;display:flex}.chat-clear-btn{flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex}.chat-header__title{color:var(--text-hi);margin:0;font-size:1.05rem;font-weight:700;line-height:1.3}.chat-filters{flex-direction:column;gap:10px;display:flex}.chat-filter-group{flex-direction:column;gap:6px;min-width:0;display:flex}.chat-filter-group--subject{flex-direction:row;align-items:center;gap:10px}.chat-filter-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-mid);flex-shrink:0;font-size:11px;font-weight:600}.chat-filter-group--subject .chat-filter-label{min-width:58px}.chat-context-chips{flex-wrap:wrap;gap:6px;display:flex}.chat-context-chip{border:1px solid var(--border);background:var(--bg-raised);color:var(--text-mid);cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:4px;padding:7px 12px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.chat-context-chip__icon{font-size:14px;line-height:1}.chat-context-chip:hover{border-color:var(--border-mid);color:var(--text-hi)}.chat-context-chip.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);font-weight:600}.chat-subject-select{flex:1;min-width:0;height:38px;padding:6px 12px;font-size:13px}.messages-list{gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-empty-state{text-align:center;padding:var(--sp-xl) var(--sp-lg);flex-direction:column;flex:1;justify-content:center;align-self:center;align-items:center;max-width:360px;margin:auto 0;display:flex}.chat-empty-state__title{margin:0 0 var(--sp-sm);color:var(--text-hi);font-size:15px;font-weight:600}.chat-empty-state__hint{color:var(--text-mid);margin:0;font-size:13px;line-height:1.5}.message{border-radius:var(--r-lg);width:max-content;max-width:82%;animation:slideIn var(--dur-fast) var(--ease-out) both;padding:11px 16px;font-size:14px;line-height:1.55}.message-user{background:var(--bg-raised);color:var(--text-hi);border:1px solid var(--border-mid);border-bottom-right-radius:4px;align-self:flex-end}.light-theme .message-user{background:rgba(var(--accent-rgb), .08);border-color:rgba(var(--accent-rgb), .2)}.message-ai{background:0 0;border:none;align-self:flex-start;width:100%;max-width:100%;padding-left:0}.message-loading{color:var(--text-mid);align-self:flex-start;align-items:center;gap:6px;padding:4px 0;font-size:13px;display:flex}.sources-container{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;padding-top:10px;display:flex}.source-tag{background:var(--accent-dim);border:1px solid rgba(var(--accent-rgb), .2);color:var(--accent);border-radius:var(--r-pill);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);align-items:center;gap:5px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.source-tag:hover{background:var(--accent-mid);transform:translateY(-1px)}.action-tag--ok{color:#2e7d32;cursor:default;background:#4caf501f;border-color:#4caf5059}.action-tag--err{color:#c62828;cursor:default;background:#f443361a;border-color:#f4433659}.chat-input-bar{gap:var(--sp-sm);margin:0 var(--sp-lg) var(--sp-md);background:var(--bg-raised);border:1px solid var(--border);padding:8px 10px 8px var(--sp-lg);border-radius:var(--r-pill);transition:all var(--dur-fast) var(--ease-out);cursor:text;flex-shrink:0;align-items:center;display:flex}.chat-input-bar--disabled{opacity:.65;cursor:not-allowed}.chat-input-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .12)}.chat-input-bar input{min-width:0;color:var(--text-hi);cursor:inherit;background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:14px}.chat-input-bar input:disabled{cursor:not-allowed}.chat-input-bar input::placeholder{color:var(--text-lo)}.chat-input-wrap{margin:0 var(--sp-lg) var(--sp-md);flex-direction:column;flex-shrink:0;gap:6px;min-height:0;display:flex}.chat-input-wrap .chat-input-bar{margin:0}.chat-tool-menu{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);max-height:min(280px,38vh);box-shadow:var(--shadow-md,0 8px 24px #0000001f);z-index:30;flex-shrink:0;padding:6px;overflow-y:auto}.chat-tool-menu__item{text-align:left;border-radius:var(--r-md);cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;grid-template-rows:auto auto;grid-template-columns:minmax(140px,auto) 1fr;gap:2px 10px;padding:8px 10px;display:grid}.chat-tool-menu__item--active,.chat-tool-menu__item:hover{background:rgba(var(--accent-rgb), .1)}.chat-tool-menu__name{font-family:var(--font-mono,ui-monospace, monospace);color:var(--accent);font-size:13px;font-weight:600}.chat-tool-menu__desc{color:var(--text-mid);font-size:13px}.chat-tool-menu__hint{color:var(--text-lo);font-size:11px;font-family:var(--font-mono,ui-monospace, monospace);grid-column:1/-1}.chat-tool-menu__more{color:var(--text-lo);margin:4px 8px 2px;font-size:12px}.chat-input-error{margin:0 var(--sp-lg) var(--sp-xs);color:var(--danger,#c62828);border-radius:var(--r-md);background:#c6282814;flex-shrink:0;padding:8px 12px;font-size:12px;line-height:1.4}.source-detail-panel{gap:var(--sp-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);height:100%;padding:var(--sp-lg);animation:slideInRight var(--dur-mid) var(--ease-out) both;flex-direction:column;display:flex;overflow-y:auto}.source-detail-header{padding-bottom:var(--sp-sm);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.source-text-pre{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-md);color:var(--text-hi);flex:1;font-size:13px;line-height:1.5;overflow-y:auto}.chat-md{color:inherit;min-width:0;font-size:14px;line-height:1.6}.chat-md h1{border-bottom:1px solid var(--border);margin:.75em 0 .4em;padding-bottom:.25em;font-size:1.25rem}.chat-md h2{margin:.65em 0 .35em;font-size:1.12rem}.chat-md h3{color:var(--accent);margin:.55em 0 .3em;font-size:1rem}.chat-md h4,.chat-md h5,.chat-md h6{margin:.5em 0 .25em;font-size:.95rem}.chat-md p:first-child{margin-top:0}.chat-md p:last-child{margin-bottom:0}.chat-md ul,.chat-md ol{margin:.45em 0 .65em;padding-left:1.25em}.chat-md li{margin:.2em 0}.chat-md blockquote{border-left:3px solid var(--accent);color:var(--text-mid);background:var(--bg-raised);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:.6em 0;padding:.35em .75em}.chat-md hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.chat-md .md-inline-code{background:var(--bg-raised);border:1px solid var(--border);border-radius:4px;padding:.1em .35em;font-size:.9em}.chat-md .md-code-block{border-radius:var(--r-md);background:var(--bg-raised);border:1px solid var(--border);margin:.6em 0;padding:10px 12px;font-size:12.5px;overflow-x:auto}.chat-md__table-wrap{-webkit-overflow-scrolling:touch;margin:.6em 0;overflow-x:auto}.chat-md table{border-collapse:collapse;width:100%;font-size:13px}.chat-md th,.chat-md td{border:1px solid var(--border);text-align:left;padding:6px 10px}.chat-md th{background:var(--bg-raised)}.chat-md .katex-display{padding:.25em 0;overflow:auto hidden}.chat-md .md-wikilink--missing{opacity:.75;border-style:dashed}.chat-md .md-details{margin:.5em 0}.chat-tool-log{background:var(--bg-raised);border:1px solid var(--border);font-family:var(--font-mono,ui-monospace, monospace);color:var(--text-mid);white-space:pre-wrap;word-break:break-word;border-radius:10px;margin:.75em 0 0;padding:10px 12px;font-size:12px;line-height:1.45;overflow-x:auto}.chat-md--fragment .chat-fragment-text{color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13px;line-height:1.55}.chat-action-results{flex-direction:column;gap:10px;margin-top:12px;display:flex}.chat-act{border:1px solid var(--border);background:var(--bg-raised);border-radius:12px;overflow:hidden}.chat-act--ok{border-color:#34a85359}.chat-act--err{background:#d930250f;border-color:#d9302559}.chat-act--banner{color:var(--text);align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.chat-act__head{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:10px 12px 8px;display:flex}.chat-act__icon{width:28px;height:28px;color:var(--accent);background:#4285f41f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-act--err .chat-act__icon{color:#d93025;background:#d930251f}.chat-act__title{color:var(--text-hi);font-size:13px;font-weight:600}.chat-act__sub{color:var(--text-mid);margin-top:2px;font-size:11.5px}.chat-act__body{padding:8px 10px 10px}.chat-act__empty{color:var(--text-mid);margin:0;padding:4px 2px;font-size:12.5px}.chat-act--collapsible>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.chat-act--collapsible>summary::-webkit-details-marker{display:none}.chat-act--collapsible>summary .chat-act__head{border-bottom:none;margin:0}.chat-act--collapsible[open]>summary .chat-act__head{border-bottom:1px solid var(--border)}.chat-act__chevron{color:var(--text-mid);transition:transform var(--dur-fast) var(--ease-out);flex-shrink:0;margin-left:auto}.chat-act--collapsible[open] .chat-act__chevron{transform:rotate(180deg)}.chat-meta-section{border-top:1px dashed var(--border);margin-top:10px}.chat-meta-section__summary{color:var(--text-mid);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:8px 2px;font-size:12px;font-weight:600;list-style:none;display:flex}.chat-meta-section__summary::-webkit-details-marker{display:none}.chat-meta-section__summary:before{content:"▸";transition:transform var(--dur-fast) var(--ease-out);font-size:11px}.chat-meta-section[open]>.chat-meta-section__summary:before{transform:rotate(90deg)}.chat-meta-section__count{color:var(--text-lo);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-pill);text-align:center;min-width:1.4em;padding:1px 7px;font-size:11px;font-weight:600}.chat-meta-section__body{border-top:none;margin-top:0;padding-top:6px}.chat-cal-timeline{flex-direction:column;gap:8px;display:flex}.chat-cal-day__label{color:var(--text-mid);margin-bottom:4px;padding-left:2px;font-size:11px;font-weight:600}.chat-cal-day__list{flex-direction:column;gap:6px;display:flex}.chat-cal-event{background:var(--bg);border-left:3px solid var(--accent);border-radius:10px;grid-template-columns:72px 1fr;gap:10px;padding:8px 10px;display:grid}.chat-cal-event--study{border-left-color:var(--accent2,#673ab7)}.chat-cal-event--class{border-left-color:var(--accent)}.chat-cal-event--task{border-left-color:var(--warn,#f29900)}.chat-cal-event--personal{border-left-color:var(--ok,#188038)}.chat-cal-event--draft{border-style:dashed;border-left-color:var(--warn,#f29900);background:#fbbc0414}.chat-cal-event__time{color:var(--accent);white-space:nowrap;font-size:11.5px;font-weight:600}.chat-cal-event__title{color:var(--text-hi);font-size:13px;font-weight:600;line-height:1.35}.chat-cal-event__meta{color:var(--text-mid);margin-top:2px;font-size:11px}.chat-note-hits{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chat-note-hit{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.chat-note-hit__top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.chat-note-hit__title{color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.chat-note-hit__title:hover{text-decoration:underline}.chat-note-hit__score{color:var(--ok,#188038);background:#34a8531f;border-radius:999px;flex-shrink:0;padding:2px 6px;font-size:10.5px;font-weight:600}.chat-note-hit__snippet{color:var(--text-mid);margin:6px 0 0;font-size:12px;line-height:1.45}.chat-grade-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;display:grid}.chat-grade-chip{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.chat-grade-chip__subj{color:var(--text-mid);font-size:11.5px;line-height:1.3}.chat-grade-chip__mark{color:var(--text-hi);font-size:18px;font-weight:700}.chat-grade-chip__type{color:var(--text-lo);font-size:10px}.chat-stat-pill{color:var(--text);background:#4285f41a;border-radius:10px;margin-bottom:8px;padding:8px 12px;font-size:13px}.chat-gradebook__head{color:var(--text-mid);flex-direction:column;gap:2px;margin-bottom:10px;font-size:12.5px;display:flex}.chat-gradebook__sem-title{color:var(--text-lo);margin:8px 0 4px;font-size:11px;font-weight:600}.chat-grades-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.chat-grades-list li{background:var(--bg);border-radius:8px;justify-content:space-between;gap:8px;padding:5px 8px;font-size:12px;display:flex}.chat-grade-mark{color:var(--accent);font-weight:700}.chat-sync-stats{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chat-sync-stats li{background:var(--bg);border-radius:8px;justify-content:space-between;padding:6px 10px;font-size:12.5px;display:flex}.chat-act__meta{color:var(--text-mid);margin:0;font-size:12px}.chat-att-week,.chat-sch-week{flex-direction:column;gap:10px;display:flex}.chat-att-day__date,.chat-sch-day__head{color:var(--text-mid);gap:8px;margin-bottom:4px;font-size:11.5px;font-weight:600;display:flex}.chat-att-day__list,.chat-sch-day__lessons,.chat-sch-search{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.chat-att-row,.chat-sch-lesson,.chat-sch-search li{background:var(--bg);border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:grid}.chat-sch-lesson{grid-template-rows:auto auto;grid-template-columns:64px 1fr}.chat-sch-lesson__time{color:var(--accent);font-size:11px;font-weight:600}.chat-sch-lesson__title{color:var(--text-hi);grid-column:2;font-weight:600}.chat-sch-lesson__room{color:var(--text-mid);grid-column:2;font-size:11px}.chat-att-row__mark--ok{color:var(--ok,#188038);font-weight:600}.chat-att-row__mark--miss{color:#d93025;font-weight:600}.chat-cw-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chat-cw-item{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.chat-cw-item__title{color:var(--text-hi);font-size:13px;font-weight:600}.chat-cw-item__meta{color:var(--text-mid);margin-top:2px;font-size:11px}.chat-cw-item__preview{color:var(--text-mid);margin:6px 0 0;font-size:12px;line-height:1.4}.chat-mood-list{flex-direction:column;gap:6px;display:flex}.chat-mood-row{grid-template-columns:72px 1fr 36px;align-items:center;gap:8px;font-size:12px;display:grid}.chat-mood-row__bar-wrap{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.chat-mood-row__bar{background:linear-gradient(90deg,#4285f4,#34a853);border-radius:999px;height:100%}.chat-mood-row__val{text-align:right;color:var(--text-hi);font-weight:600}.chat-gloss-terms{flex-wrap:wrap;gap:6px;display:flex}.chat-gloss-term{color:#188038;background:#34a8531f;border:1px solid #34a85340;border-radius:999px;padding:4px 10px;font-size:12px}.chat-gloss-term--more{background:var(--bg);color:var(--text-mid);border-color:var(--border)}.calendar-page-container{gap:var(--sp-md);flex-direction:column;display:flex}.calendar-grid-wrapper{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-surface);overflow-x:auto}.calendar-weekly-grid{grid-template-columns:repeat(7,minmax(120px,1fr));min-width:860px;display:grid}.calendar-day-column{gap:var(--sp-xs);min-height:420px;padding:var(--sp-sm);border-right:1px solid var(--border);transition:background var(--dur-fast) var(--ease-out);flex-direction:column;display:flex}.calendar-day-column:last-child{border-right:none}.calendar-day-column.today{background:var(--accent-dim)}.calendar-day-column.today .day-header-num{background:var(--accent);color:#0a0c10}.calendar-day-column.today .day-header-name{color:var(--accent)}.day-header{text-align:center;padding-bottom:var(--sp-xs);border-bottom:1px solid var(--border);flex-direction:column;align-items:center;margin-bottom:3px;display:flex}.day-header__text{flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.day-header__meta{flex-direction:column;align-items:center;gap:4px;display:flex}.day-header-sub{color:var(--text-lo);text-transform:capitalize;font-size:.72rem;font-weight:500;display:none}.day-header-count{border-radius:var(--r-pill);background:var(--bg-raised);color:var(--text-mid);padding:2px 8px;font-size:.68rem;font-weight:700;display:none}.day-events-empty{color:var(--text-lo);text-align:center;border:1px dashed var(--border);border-radius:var(--r-sm);background:var(--bg-raised);margin:0;padding:8px 10px;font-size:.78rem;display:none}.day-header-name{text-transform:uppercase;letter-spacing:.06em;color:var(--text-mid);font-size:11px;font-weight:700}.day-header-name--full,.day-header-date,.day-header-events{display:none}.day-header-num{font-size:16px;font-weight:700;font-family:var(--font-display);width:30px;height:30px;color:var(--text-hi);transition:all var(--dur-fast) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;margin-top:3px;display:inline-flex}.day-events-list{flex-direction:column;flex:1;gap:5px;display:flex}.event-card{border-radius:var(--r-sm);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:1px solid #0000;padding:8px 10px;font-size:11.5px;line-height:1.35}.event-card.approved{background:rgba(var(--accent2-rgb), .08);border-color:rgba(var(--accent2-rgb), .2);border-left-width:3px;border-left-color:var(--accent2)}.event-card.approved.study{background:var(--accent-dim);border-color:rgba(var(--accent-rgb), .2);border-left-color:var(--accent)}.event-card.approved.personal{border-color:#3ecf8e33;border-left-color:var(--ok);background:#3ecf8e14}.event-card.approved.class{background:rgba(var(--accent2-rgb), .1);border-color:rgba(var(--accent2-rgb), .22);border-left-color:var(--accent2)}.event-card.approved.task{border-color:#f5a62338;border-left-color:var(--warn);background:#f5a62314}.event-card-title{color:var(--text-hi);font-weight:600}.event-card-time{color:var(--text-mid);margin-top:2px;font-size:10.5px}.event-card.draft{background:#f5a6230a;border:1px dashed #f5a62359;flex-direction:column;gap:5px;display:flex}.event-card-draft-header{color:var(--warn);font-size:11px;font-weight:600}.event-card-draft-desc{color:var(--text-lo);font-size:10px}.event-card-draft-footer{justify-content:space-between;align-items:center;display:flex}.event-card-draft-approve-btn{background:var(--accent);color:#0a0c10;border-radius:var(--r-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border:none;align-items:center;gap:2px;padding:3px 7px;font-size:10px;font-weight:700;display:inline-flex}.event-card-draft-approve-btn:hover{filter:brightness(1.1)}.event-card__row{justify-content:space-between;align-items:flex-start;gap:4px;display:flex}.event-card__actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.event-card__edit{color:var(--text-lo);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.event-card__edit:hover{color:var(--accent)}.event-card__delete{color:var(--text-lo);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.event-card__delete:hover{color:var(--danger,#d93025)}.event-card--compact{padding:4px 6px;font-size:10.5px}.event-card-draft-time{color:var(--warn);font-size:10.5px;font-weight:600}.event-reminder{position:relative}.event-reminder__toggle{color:var(--text-lo);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px;transition:color .15s,background .15s;display:flex}.event-reminder__toggle:hover{color:var(--accent,#6750a4);background:#6750a414}.event-reminder__toggle--active{color:var(--accent,#6750a4)}.event-reminder__menu{z-index:50;background:var(--surface-2,#fff);border:1px solid var(--border,#00000014);border-radius:10px;min-width:180px;padding:8px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000001f}.event-reminder__menu-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-lo);padding:0 4px 6px;font-size:10px;font-weight:600}.event-reminder__scheduled{color:var(--text-mid);background:#6750a414;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:6px 8px;font-size:11px;display:flex}.event-reminder__cancel{color:var(--danger,#d93025);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:2px;padding:2px 6px;font-size:10px;display:inline-flex}.event-reminder__cancel:hover{background:#d9302514}.event-reminder__option{text-align:left;width:100%;color:var(--text-hi);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 8px;font-size:12px;display:block}.event-reminder__option:hover{background:var(--surface-3,#0000000a)}.cal-page-header{flex-direction:column;align-items:stretch;gap:12px}.cal-page-header__top{justify-content:space-between;align-items:center;gap:var(--sp-sm);display:flex}.cal-page-header__label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-mid);font-size:11px;font-weight:600}.cal-page-header__nav{justify-content:space-between;align-items:center;gap:var(--sp-sm);background:var(--bg-raised);border-radius:var(--r-md);padding:6px 4px;display:flex}.cal-header-actions{align-items:center;gap:var(--sp-xs);flex-wrap:wrap;display:flex}.cal-today-btn{height:34px;padding:0 14px;font-size:13px;font-weight:500}.cal-period-title{color:var(--text-hi);text-align:center;min-width:0;font-size:1.05rem;font-weight:600;line-height:1.3;font-family:var(--font-display);flex:1;margin:0}.btn-icon{width:36px;height:36px;color:var(--text-mid);cursor:pointer;transition:background var(--dur-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover{background:var(--bg-raised);color:var(--text-hi)}.cal-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-md);flex-wrap:wrap;display:flex}.cal-toolbar__actions{align-items:center;gap:var(--sp-xs);flex-wrap:wrap;display:flex}.cal-toolbar__secondary{align-items:center;gap:var(--sp-xs);flex-wrap:wrap;flex:1;justify-content:flex-end;min-width:0;display:flex}.cal-toolbar__btn-group{align-items:center;gap:var(--sp-xs);display:flex}.cal-toolbar__action{min-width:0}.cal-plan-select{height:36px;padding:6px 12px;font-size:.85rem}.cal-planning{margin-bottom:var(--sp-md);border-left:4px solid var(--accent);background:var(--bg-surface);transition:all var(--dur-mid) var(--ease-out);padding:0;overflow:hidden}.cal-planning.card:hover{border-color:var(--border);box-shadow:none}.cal-planning--open{border-color:var(--border-mid);box-shadow:var(--shadow-md)}.cal-planning__toggle{justify-content:space-between;align-items:center;gap:var(--sp-md);width:100%;padding:var(--sp-md) var(--sp-lg);color:var(--text-hi);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-family:inherit;display:flex}.cal-planning__toggle:hover{background:var(--bg-raised)}.cal-planning__toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cal-planning__toggle-main{align-items:center;gap:var(--sp-md);flex:1;min-width:0;display:flex}.cal-planning__icon{border-radius:var(--r-md);background:linear-gradient(135deg, rgba(var(--accent-rgb), .15) 0%, rgba(var(--accent2-rgb), .15) 100%);width:38px;height:38px;color:var(--accent);box-shadow:0 2px 8px rgba(var(--accent-rgb), .08);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.cal-planning__toggle-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.cal-planning__toggle-title{font-size:14px;font-weight:600;font-family:var(--font-display);color:var(--text-hi)}.cal-planning__toggle-sub{color:var(--text-mid);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.cal-planning__toggle-meta{align-items:center;gap:var(--sp-sm);color:var(--text-mid);flex-shrink:0;font-size:12px;display:inline-flex}.cal-planning__badge{border-radius:var(--r-pill);background:var(--bg-raised);border:1px solid var(--border);min-width:22px;height:22px;color:var(--text-mid);justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.cal-planning__badge--active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.cal-planning__status{white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}.cal-planning__chevron{color:var(--text-lo);transition:transform var(--dur-fast) var(--ease-out)}.cal-planning__chevron--open{transform:rotate(180deg)}.cal-planning__spin{animation:.8s linear infinite cal-planning-spin}@keyframes cal-planning-spin{to{transform:rotate(360deg)}}.cal-planning__body{padding:var(--sp-lg);border-top:1px solid var(--border);gap:var(--sp-lg);background:var(--bg-overlay);flex-direction:column;display:flex}.cal-planning__loading{justify-content:center;align-items:center;gap:var(--sp-sm);padding:var(--sp-xl) var(--sp-md);color:var(--text-mid);font-size:13px;display:flex}.cal-planning__section{padding:var(--sp-lg);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);box-shadow:0 1px 3px #00000003}.cal-planning__section-head{align-items:flex-start;gap:var(--sp-sm);margin-bottom:var(--sp-md);color:var(--accent);display:flex}.cal-planning__section-title{color:var(--text-hi);font-size:13.5px;font-weight:600;font-family:var(--font-display);margin:0}.cal-planning__section-desc{color:var(--text-lo);margin:4px 0 0;font-size:12px;line-height:1.45}.cal-planning__row{gap:var(--sp-sm);align-items:stretch;display:flex}.cal-planning__select{flex:1;min-width:0;height:42px}.cal-planning__action-btn{white-space:nowrap;justify-content:center;align-items:center;gap:6px;min-height:42px;padding-inline:14px;text-decoration:none;display:inline-flex}.cal-planning__approach-preview{align-items:center;gap:var(--sp-sm);margin-top:var(--sp-md);border-radius:var(--r-md);background:var(--bg-raised);border:1px solid var(--border);color:var(--text-hi);min-width:0;padding:12px 14px;font-size:13px;display:flex}.cal-planning__approach-preview>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cal-planning__approach-tag{border-radius:var(--r-pill);background:var(--accent-dim);color:var(--accent);flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:600}.cal-planning__search{align-items:center;gap:var(--sp-sm);margin-bottom:var(--sp-md);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);min-height:42px;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);padding:0 14px;display:flex}.cal-planning__search:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .12)}.cal-planning__search input{min-height:40px;box-shadow:none;color:var(--text-hi);background:0 0;border:none;padding:10px 0}.cal-planning__search input:focus{box-shadow:none}.cal-planning__notes{scrollbar-width:thin;flex-direction:column;gap:6px;max-height:min(280px,42vh);padding-right:2px;display:flex;overflow-y:auto}.cal-planning__empty{padding:var(--sp-lg) var(--sp-sm);text-align:center;color:var(--text-mid);margin:0;font-size:13px;line-height:1.45}.cal-planning__note{align-items:center;gap:var(--sp-sm);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;text-align:left;width:100%;transition:all var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent;padding:10px 14px;font-family:inherit;display:flex}.cal-planning__note:hover{border-color:var(--border-mid);background:var(--bg-raised);transform:translateY(-1px)}.cal-planning__note:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cal-planning__note--selected{border-color:var(--accent);background:var(--accent-dim)}.cal-planning__check{border:2px solid var(--border-mid);background:var(--bg-surface);color:#0000;width:20px;height:20px;transition:all var(--dur-fast) var(--ease-out);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.cal-planning__check--on{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.cal-planning__note-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cal-planning__note-title{color:var(--text-hi);font-size:14px;font-weight:500;line-height:1.35}.cal-planning__note--selected .cal-planning__note-title{color:var(--accent);font-weight:600}.cal-planning__note-meta{color:var(--text-mid);font-size:12px}.calendar-day-column.calendar-day-column--selected{background:var(--accent-dim);box-shadow:inset 0 0 0 2px var(--accent)}.cal-month__cell.cal-month__cell--selected{box-shadow:inset 0 0 0 2px var(--accent);z-index:2;background:var(--accent-dim)!important}.cal-toolbar__action.btn-secondary{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.cal-toolbar__action.btn-secondary:hover:not(:disabled){background:var(--accent);color:var(--accent-contrast);box-shadow:0 2px 10px rgba(var(--accent-rgb), .2)}.cal-view-tabs{background:var(--bg-raised);border-radius:var(--r-full,999px);border:1px solid var(--border);padding:3px;display:inline-flex}.cal-view-tabs__btn{border-radius:var(--r-full,999px);color:var(--text-mid);cursor:pointer;transition:all var(--dur-fast);background:0 0;border:none;padding:6px 16px;font-size:.875rem;font-weight:500}.cal-view-tabs__btn--active{background:var(--bg-surface);color:var(--accent);box-shadow:var(--shadow-sm)}.cal-view-tabs__btn:hover:not(.cal-view-tabs__btn--active){color:var(--text-hi)}.cal-loading{justify-content:center;align-items:center;min-height:320px;display:flex}.cal-drop-target{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-dim)!important}.cal-month{min-width:720px}.cal-month__weekdays{border-bottom:1px solid var(--border);background:var(--bg-raised);grid-template-columns:repeat(7,1fr);display:grid}.cal-month__weekday{text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--text-mid);padding:10px 8px;font-size:11px;font-weight:600}.cal-month__grid{flex-direction:column;display:flex}.cal-month__row{flex:1;grid-template-columns:repeat(7,1fr);min-height:72px;display:grid}.cal-month__cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-surface);min-height:72px;transition:background var(--dur-fast);flex-direction:column;gap:4px;padding:6px 8px;display:flex;position:relative}.cal-month__cell--interactive{cursor:pointer}.cal-month__cell--interactive:hover:not(.cal-month__cell--outside){background:var(--bg-raised)}.cal-month__cell--interactive:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.cal-month__cell:nth-child(7n){border-right:none}.cal-month__cell--outside{background:var(--bg-raised);opacity:.72}.cal-month__cell--today{background:var(--accent-dim)}.cal-month__day-num{width:28px;height:28px;color:var(--text-hi);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-display);transition:background var(--dur-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-self:flex-end;align-items:center;display:inline-flex}.cal-month__day-num:hover{background:var(--bg-raised)}.cal-month__day-num--today{background:var(--accent);color:#fff}.cal-month__day-num--today:hover{filter:brightness(1.05)}.cal-month__day-num--muted{color:var(--text-lo)}.cal-month__indicators{pointer-events:none;flex-wrap:wrap;align-items:center;gap:4px;margin-top:auto;padding-top:2px;display:flex}.cal-month-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 0 1px #0000000f}.cal-month-dot--study{background:var(--accent)}.cal-month-dot--class{background:var(--accent2)}.cal-month-dot--task{background:var(--warn)}.cal-month-dot--personal{background:var(--ok)}.cal-month-dot--draft{border:2px dashed var(--accent);width:6px;height:6px;box-shadow:none;background:0 0}.cal-month__indicators-more{color:var(--text-mid);font-size:10px;font-weight:700;line-height:1}.cal-day-modal__header{flex-direction:column;gap:4px;display:flex}.cal-day-modal__close{display:none}.cal-day-modal__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-mid);margin-bottom:4px;font-size:11px;font-weight:600}.cal-day-modal__title{text-transform:capitalize;line-height:1.25}.cal-day-modal__meta{color:var(--text-mid);margin:6px 0 0;font-size:13px}.cal-day-modal__list{flex-direction:column;gap:10px;max-height:none;padding-right:0;display:flex;overflow:visible}.cal-day-modal__empty{text-align:center;color:var(--text-mid);background:var(--bg-raised);border-radius:var(--r-lg);border:1px dashed var(--border);margin:0;padding:28px 12px;font-size:14px}.cal-day-modal__actions{gap:var(--sp-sm);padding-top:var(--sp-md);margin-top:var(--sp-xs);border-top:1px solid var(--border);background:var(--bg-surface);flex-wrap:wrap;justify-content:flex-end;display:flex;position:sticky;bottom:0}.cal-event-form{gap:var(--sp-md);flex-direction:column;display:flex}.cal-event-form__title{color:var(--text-hi);margin:0;font-size:1.15rem;font-weight:700;line-height:1.3}.cal-event-form__datetime{gap:var(--sp-md);grid-template-columns:1fr 1fr;display:grid}.cal-event-form__textarea{resize:vertical;min-height:88px}.cal-event-form__select{width:100%}.cal-event-form__actions{gap:var(--sp-sm);padding-top:var(--sp-sm);margin-top:var(--sp-xs);border-top:1px solid var(--border);background:var(--bg-surface);flex-wrap:wrap;justify-content:flex-end;display:flex;position:sticky;bottom:0}@media (width<=639px){.cal-event-form__datetime{grid-template-columns:1fr}.cal-event-form__actions{flex-direction:column-reverse}.cal-event-form__actions .btn{justify-content:center;width:100%;min-height:44px}.cal-day-modal__actions{flex-direction:column-reverse}.cal-day-modal__actions .btn{justify-content:center;width:100%;min-height:44px}}.cal-month__events{display:none}.calendar-form-grid{gap:var(--sp-md);grid-template-columns:1fr 1fr;display:grid}.tabs-bar{gap:var(--sp-xs);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-pill);width:fit-content;padding:4px;display:flex}.tabs-bar--full{width:fit-content}.tab-button{color:var(--text-mid);border-radius:var(--r-pill);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.tab-button:hover{color:var(--text-hi);background:var(--accent-dim)}.tab-button.active{background:var(--accent);color:#0a0c10;box-shadow:0 2px 8px rgba(var(--accent-rgb), .25)}.filter-section{gap:var(--sp-sm);align-items:center;display:flex}.filter-label{color:var(--text-mid);white-space:nowrap;font-size:12px;font-weight:600}.table-card{border-radius:var(--r-lg);padding:0;overflow:hidden}.material-table-wrapper{width:100%;overflow-x:auto}.material-table{border-collapse:collapse;text-align:left;width:100%}.material-table th{padding:12px var(--sp-lg);color:var(--text-mid);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--bg-raised);white-space:nowrap;font-size:12px;font-weight:600}.material-table td{padding:11px var(--sp-lg);border-bottom:1px solid var(--border);vertical-align:middle;font-size:13.5px}.table-row{transition:background var(--dur-fast) var(--ease-out)}.table-row:last-child td{border-bottom:none}.badge{border-radius:var(--r-sm);white-space:nowrap;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.badge-success{color:var(--ok);background:#3ecf8e1f}.badge-info{background:var(--accent-dim);color:var(--accent)}.badge-warning{color:var(--warn);background:#f5a6231f}.badge-danger{color:var(--danger);background:#f060601f}.notes-page-layout{gap:var(--sp-md);grid-template-columns:290px 1fr;height:calc(100vh - 96px);display:grid;overflow:hidden}.notes-sidebar{gap:var(--sp-sm);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);height:100%;padding:var(--sp-md);flex-direction:column;display:flex;overflow:hidden}.notes-sidebar-header{padding-bottom:var(--sp-sm);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.notes-sidebar-header h3{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:16px;font-weight:700;overflow:hidden}.notes-sidebar-header__actions{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.notes-sidebar-header__tools{align-items:center;gap:4px;display:flex}.notes-sidebar-toggle{flex-shrink:0}.notes-sidebar-rail{padding-top:var(--sp-sm);flex-direction:column;flex:1;align-items:center;gap:8px;display:none}.notes-sidebar-rail-btn{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);width:40px;height:40px;color:var(--text-mid);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;display:flex;position:relative}.notes-sidebar-rail-btn:hover{background:var(--accent-dim);border-color:rgba(var(--accent-rgb), .25);color:var(--accent)}.notes-sidebar-rail-badge{border-radius:var(--r-pill);background:var(--accent);color:#fff;text-align:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.notes-sidebar-rail-active{width:40px;height:40px;margin-top:auto;margin-bottom:var(--sp-xs);border-radius:var(--r-md);background:var(--accent-mid);color:var(--accent);border:1px solid rgba(var(--accent-rgb), .25);justify-content:center;align-items:center;display:flex}.notes-list{flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.note-item{padding:var(--sp-sm) var(--sp-sm);border-radius:var(--r-md);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border:1px solid #0000}.note-item:hover{background:var(--accent-dim);border-color:rgba(var(--accent-rgb), .1)}.note-item.active{background:var(--accent-mid);border-color:rgba(var(--accent-rgb), .3)}.note-item-title{color:var(--text-hi);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.note-item.active .note-item-title{color:var(--accent)}.note-item-meta{gap:var(--sp-sm);color:var(--text-lo);margin-top:4px;font-size:11px;display:flex}.note-item-meta-item{align-items:center;gap:3px;display:flex}.notes-content-area{gap:var(--sp-md);flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}@media (width>=769px){.main-content:has(.notes-page-layout){padding-left:var(--sp-md);padding-right:var(--sp-md)}.notes-page-layout{gap:var(--sp-sm);transition:grid-template-columns .2s var(--ease-out);grid-template-columns:280px minmax(0,1fr)}.notes-page-layout.notes-sidebar-collapsed{grid-template-columns:52px minmax(0,1fr)}.notes-sidebar-collapsed .notes-sidebar{padding:var(--sp-sm) 6px;align-items:center}.notes-sidebar-collapsed .notes-sidebar-header{padding-bottom:var(--sp-xs);border-bottom:none;justify-content:center}.notes-sidebar-collapsed .notes-sidebar-rail{display:flex}.notes-sidebar{padding:var(--sp-sm) var(--sp-md)}.notes-content-area{gap:var(--sp-sm)}.note-text-card{padding:var(--sp-md) var(--sp-md)}.note-form{padding:var(--sp-md)}.note-backlinks-details .note-backlinks__body{gap:var(--sp-sm);grid-template-columns:1fr 1fr}.note-backlinks-details{margin-bottom:var(--sp-sm);padding-bottom:var(--sp-sm)}.note-editor-panes--split{grid-template-columns:minmax(0,7fr) minmax(0,3fr)}}.note-form{gap:var(--sp-sm);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);height:100%;padding:var(--sp-sm) var(--sp-md);flex-direction:column;display:flex}.note-form-toolbar{flex-shrink:0;align-items:center;gap:8px;min-width:0;display:flex}.note-form-title-input{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised);min-width:0;height:36px;color:var(--text-hi);transition:border-color var(--dur-fast), box-shadow var(--dur-fast);flex:1;padding:0 12px;font-family:inherit;font-size:14px;font-weight:600}.note-form-title-input::placeholder{color:var(--text-lo);font-weight:500}.note-form-title-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim);outline:none}.note-form-meta-btn{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised);height:36px;color:var(--text-mid);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);flex-shrink:0;align-items:center;gap:4px;padding:0 10px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.note-form-meta-btn:hover{border-color:var(--border-mid);color:var(--text-hi)}.note-form-meta-btn.is-active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.note-form-toolbar__actions{flex-shrink:0;gap:6px;display:flex}.note-form-toolbar-btn{justify-content:center;align-items:center;gap:6px;height:36px;font-size:13px;display:inline-flex;padding:0 12px!important}.note-form-back{flex-shrink:0}.note-form-field--context{width:100%}.note-form-context-chips{flex-wrap:wrap;gap:8px;display:flex}.note-form-context-chip{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-raised);color:var(--text-mid);cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.note-form-context-chip:hover{border-color:var(--border-mid);color:var(--text-hi)}.note-form-context-chip.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);font-weight:600}.note-form-meta-row{gap:var(--sp-md);grid-template-columns:1fr 1fr;display:grid}.note-form-field--type:only-child{grid-column:1/-1}.note-form-meta-panel{flex-direction:column;flex-shrink:0;display:flex}.note-form-meta-panel.is-open{padding:var(--sp-sm) var(--sp-md);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised)}.note-form-meta-panel__body{gap:var(--sp-sm);flex-direction:column;display:flex}.note-form-toggle-row{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.note-form-toggle-row__text{flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.note-form-toggle-row__icon{color:var(--accent);flex-shrink:0;margin-top:2px}.note-form-toggle-row__title{color:var(--text-hi);font-size:13px;font-weight:600;line-height:1.3;display:block}.note-form-toggle-row__hint{color:var(--text-lo);margin-top:2px;font-size:11px;line-height:1.35;display:block}.note-form-toggle-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.note-form-toggle-switch{border-radius:var(--r-pill);background:var(--border-mid);width:44px;height:26px;transition:background var(--dur-fast);flex-shrink:0;position:relative}.note-form-toggle-switch:after{content:"";width:20px;height:20px;transition:transform var(--dur-fast);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.note-form-toggle-input:checked+.note-form-toggle-switch{background:var(--accent)}.note-form-toggle-input:checked+.note-form-toggle-switch:after{transform:translate(18px)}.note-form-toggle-input:focus-visible+.note-form-toggle-switch{outline:2px solid var(--accent);outline-offset:2px}@media (width>=769px){.note-form-meta-panel.is-open{padding:var(--sp-sm) var(--sp-md)}.note-form-meta-row{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:end}.note-form-field--context .note-form-context-chips{flex-wrap:nowrap}}.note-form-input{padding:8px 16px}.note-form-editor-wrap{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.note-viewer-layout{gap:var(--sp-sm);flex-direction:column;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}@media (width>=769px){.note-viewer-layout--toc{align-items:stretch;gap:var(--sp-sm);flex-direction:row}.note-viewer-layout--toc .note-text-card{flex:auto;min-width:0}}.markdown-toc{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;min-height:0;display:flex;overflow:hidden}@media (width>=769px){.markdown-toc{flex:0 0 240px;max-width:280px}}@media (width<=768px){.markdown-toc{z-index:40;border-radius:var(--r-lg) 0 0 var(--r-lg);width:min(88vw,300px);box-shadow:var(--shadow-lg,-4px 0 24px #0000001f);position:fixed;top:0;bottom:0;right:0}}.markdown-toc__header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.markdown-toc__title{color:var(--text-hi);font-size:13px;font-weight:700}.markdown-toc__list{flex:1;min-height:0;margin:0;padding:8px 0;list-style:none;overflow-y:auto}.markdown-toc__item{margin:0}.markdown-toc__item--h2{padding-left:12px}.markdown-toc__item--h3{padding-left:22px}.markdown-toc__link{text-align:left;width:100%;color:var(--text-mid);cursor:pointer;transition:color var(--dur-fast), background var(--dur-fast);background:0 0;border:none;padding:6px 12px;font-family:inherit;font-size:12px;line-height:1.35;display:block}.markdown-toc__link:hover{color:var(--accent);background:var(--accent-dim)}.markdown-toc__item--h1 .markdown-toc__link{color:var(--text-hi);font-weight:600}.note-text-header__actions .btn.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.md-preview--stale{opacity:.72;pointer-events:none;transition:opacity .15s}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4,.md-preview h5,.md-preview h6{scroll-margin-top:12px}.note-text-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);min-height:0;padding:var(--sp-lg);flex-direction:column;flex:auto;display:flex;overflow:hidden}@media (width>=769px){.note-viewer-layout:has(.note-audio-panel) .note-text-card{flex:68%;min-height:0;max-height:70%}}.note-text-header{border-bottom:1px solid var(--border);padding-bottom:var(--sp-md);margin-bottom:var(--sp-md);gap:var(--sp-sm);flex-direction:column;flex-shrink:0;display:flex}.note-text-header__top{flex-wrap:wrap;align-items:flex-start;gap:10px;min-width:0;display:flex}.note-text-header__title{flex:100%;min-width:0;margin:0;font-size:18px;font-weight:700;line-height:1.3}@media (width>=769px){.note-text-card .note-text-header__top{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 16px;display:grid}.note-text-card .note-text-header__title{flex:unset;min-width:0}.note-text-card .note-text-header__actions.desktop-only{justify-self:end;margin-left:0}}.note-text-header__actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.note-text-header__actions--compact{display:none}.btn-danger-soft{color:#ef4444;background:#ef44441a;border-color:#ef444433}.btn-danger-soft:hover{color:#dc2626;background:#ef444429}.note-text-header-meta{color:var(--text-mid);flex-wrap:wrap;gap:8px 12px;font-size:12px;display:flex}.note-body{color:var(--text-hi);flex:1;padding-right:4px;font-size:14px;line-height:1.7;overflow-y:auto}.md-preview{color:var(--text-hi);font-size:14.5px;line-height:1.75}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4{font-family:var(--font-display);color:var(--text-hi);margin:1.1em 0 .45em;line-height:1.25}.md-preview h1{border-bottom:1px solid var(--border);padding-bottom:.35em;font-size:1.65rem}.md-preview h2{font-size:1.35rem}.md-preview h3{color:var(--accent);font-size:1.12rem}.md-preview p{margin:.65em 0}.md-preview ul,.md-preview ol{margin:.5em 0 .8em;padding-left:1.35em}.md-preview li{margin:.25em 0}.md-preview blockquote{border-left:3px solid var(--accent2);background:var(--bg-raised);color:var(--text-mid);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:.8em 0;padding:.5em .9em}.md-preview hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}.md-preview a{color:var(--accent);text-decoration:underline}.md-preview .md-wikilink{border-radius:var(--r-pill);border:1px solid rgba(var(--accent-rgb), .35);background:var(--accent-dim);color:var(--accent);cursor:pointer;margin:0 1px;padding:0 6px;font-family:inherit;font-size:.92em;font-weight:600;display:inline}.md-preview .md-wikilink:hover{background:var(--accent-mid)}.md-preview .md-anchor-link{color:var(--accent);font-weight:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-family:inherit;text-decoration:underline;display:inline}.md-preview .md-anchor-link:hover{opacity:.85}.md-preview .md-inline-code{background:var(--bg-raised);border:1px solid var(--border);border-radius:4px;padding:.12em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.md-preview .md-code-block{border-radius:var(--r-md);background:var(--bg-raised);border:1px solid var(--border);margin:.8em 0;padding:12px 14px;font-size:13px;overflow-x:auto}.md-preview .md-mermaid{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);text-align:center;margin:.9em 0;padding:12px;overflow-x:auto}.md-preview .md-mermaid svg{max-width:100%;height:auto}.md-preview .md-mermaid--loading{color:var(--text-mid);text-align:left;font-size:13px}.md-preview .md-mermaid--error .md-mermaid__error{color:var(--danger,#c62828);margin:0 0 8px;font-size:13px}.md-preview table{border-collapse:collapse;width:100%;margin:.8em 0;font-size:13px}.md-preview th,.md-preview td{border:1px solid var(--border);padding:6px 10px}.md-preview th{background:var(--bg-raised);text-align:left}.md-details{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);margin:1em 0;overflow:hidden}.md-details__summary{cursor:pointer;color:var(--text-hi);-webkit-user-select:none;user-select:none;padding:11px 14px;font-size:.92rem;font-weight:600;list-style:none}.md-details__summary::-webkit-details-marker{display:none}.md-details__summary:before{content:"▸";color:var(--accent);transition:transform var(--dur-fast) var(--ease-out);margin-right:8px;display:inline-block}.md-details[open] .md-details__summary:before{transform:rotate(90deg)}.md-details__body{border-top:1px solid var(--border);color:var(--text-mid);padding:4px 14px 14px;font-size:.9rem}.md-details__body p{margin:.45em 0}.note-editor{gap:var(--sp-sm);flex-direction:column;flex:1;min-height:0;display:flex}.note-editor-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-sm);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);flex-wrap:wrap;padding:6px 8px;display:flex}.note-editor-tools{flex-wrap:wrap;gap:2px;display:flex}.note-editor-tool{border-radius:var(--r-sm);width:34px;height:34px;color:var(--text-mid);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.note-editor-tool:hover{background:var(--accent-dim);color:var(--accent)}.note-editor-modes{gap:4px;display:flex}.note-editor-mode{border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text-mid);cursor:pointer;background:0 0;align-items:center;gap:5px;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.note-editor-mode.active{background:var(--accent-dim);border-color:rgba(var(--accent-rgb), .35);color:var(--accent)}.note-editor-panes{gap:var(--sp-sm);flex:1;min-height:280px;display:grid;overflow:hidden}.note-editor-panes--edit,.note-editor-panes--preview{grid-template-columns:1fr}.note-editor-panes--split{grid-template-columns:1fr 1fr}.note-editor-textarea{resize:none;height:100%;min-height:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.6}.note-editor-preview{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-md);background:var(--bg-base);overflow-y:auto}.note-editor-preview-empty{color:var(--text-lo);margin:0;font-size:13px}.note-editor-footer{color:var(--text-lo);flex-wrap:wrap;gap:12px;font-size:11.5px;display:flex}.note-editor-hint{margin-left:auto}.note-editor-tool.active{background:var(--accent-dim);color:var(--accent)}.formula-modal{z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#20212494;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}@media (width>=640px){.formula-modal{padding:var(--sp-md);align-items:center}}.formula-modal__sheet{overscroll-behavior:contain;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-width:min(560px,100vw - 24px);max-height:min(92dvh,100%);box-shadow:var(--shadow-lg);padding:var(--sp-md) var(--sp-md) calc(var(--sp-lg) + env(safe-area-inset-bottom,0px));animation:slideUp var(--dur-mid) var(--ease-out);position:relative;overflow-y:auto}@media (width>=640px){.formula-modal__sheet{border-radius:var(--r-lg);max-height:min(88vh,720px);animation:scaleUp var(--dur-mid) var(--ease-spring)}}.formula-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--sp-sm);margin-bottom:var(--sp-md);padding-bottom:var(--sp-sm);border-bottom:1px solid var(--border);display:flex}.formula-modal__title-wrap{align-items:center;gap:10px;min-width:0;display:flex}.formula-modal__icon{color:var(--accent);flex-shrink:0}.formula-modal__title{color:var(--text-hi);margin:0;font-size:17px;font-weight:600;line-height:1.25}.formula-modal__subtitle{color:var(--text-lo);margin:2px 0 0;font-size:12px}.formula-modal__close{background:var(--bg-raised);width:36px;height:36px;color:var(--text-mid);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.formula-modal__close:hover{background:var(--accent-dim);color:var(--accent)}.formula-modal__body{gap:var(--sp-sm);flex-direction:column;display:flex}.formula-modal__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-lo);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.formula-modal__label--inline{margin-bottom:6px}.formula-insert-modes{gap:6px;display:flex}.formula-insert-mode{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised);color:var(--text-mid);cursor:pointer;flex:1;padding:8px 10px;font-family:inherit;font-size:12px;font-weight:500}.formula-insert-mode.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.formula-insert-input{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-base);width:100%;min-height:96px;color:var(--text-hi);resize:vertical;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.5}.formula-insert-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.formula-insert-quick{flex-direction:column;gap:4px;display:flex}.formula-insert-quick-grid{flex-wrap:wrap;gap:6px;display:flex}.formula-insert-chip{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised);min-width:36px;color:var(--text-hi);cursor:pointer;padding:6px 10px;font-family:inherit;font-size:13px}.formula-insert-chip:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.formula-insert-preview{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-base);min-height:72px;padding:14px 16px}.formula-insert-preview-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-lo);margin-bottom:8px;font-size:10px;display:block}.formula-insert-preview-empty,.formula-insert-error{color:var(--text-lo);margin:0;font-size:13px}.formula-insert-error{color:var(--danger)}.formula-insert-render{color:var(--text-hi);font-size:1.15em;overflow-x:auto}.formula-insert-render--block{text-align:center;padding:8px 0}.formula-modal__actions{gap:var(--sp-sm);margin-top:var(--sp-xs);display:flex}.formula-modal__cancel{flex:none;min-width:96px}.formula-insert-submit{flex:1}.formula-modal__actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.formula-modal__hint{text-align:center;color:var(--text-lo);margin:0;font-size:11px}.md-preview .katex{font-size:1.05em}.md-preview .katex-error{color:var(--text-muted);white-space:normal;word-break:break-word;font-size:.92em}.md-preview .katex-display{margin:.75em 0;overflow:auto hidden}@media (width<=768px){.main-content:has(.notes-page-layout.view-detail .note-form){flex-direction:column;display:flex;overflow:hidden}.notes-page-layout.view-detail .notes-content-area{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.note-form{border-radius:var(--r-md);box-sizing:border-box;background:0 0;border:none;flex:1;gap:0;width:100%;max-width:100%;min-height:0;padding:0;overflow:hidden}.note-form-toolbar{z-index:5;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;gap:6px;min-width:0;margin:0;padding:6px 8px;position:sticky;top:0}.note-form-title-input{flex:calc(100% - 88px);min-width:0;height:34px;padding:0 10px;font-size:16px}.note-form-meta-btn{height:34px;padding:0 8px}.note-form-meta-btn__label{display:none}.note-form-back{justify-content:center;width:34px;min-width:34px;height:34px;border-radius:var(--r-sm)!important;padding:0!important}.note-form-toolbar-btn{border-radius:var(--r-sm);width:34px;min-width:34px;height:34px;padding:0!important}.note-form-toolbar-btn .desktop-only{display:none}.note-form-meta-panel.is-open{margin:0 8px 8px;padding:10px}.note-form-meta-panel__body{gap:10px}.note-form-toggle-row{padding:8px 10px}.note-form-toggle-row__hint{font-size:10px}.note-form-context-chip{padding:7px 12px;font-size:12px}.note-form-meta-row{grid-template-columns:1fr;gap:8px}.note-form-field--type:only-child{grid-column:auto}.note-form .note-form-input{min-height:36px;padding:6px 10px}.note-form .note-form-input .input-field{padding:0;font-size:16px}.note-form-editor-wrap{flex-direction:column;flex:1;min-height:0;padding:0 8px 4px;display:flex;overflow:hidden}.note-editor{flex:1;gap:6px;min-height:0}.note-editor-toolbar{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised);flex-direction:row;flex-shrink:0;align-items:center;gap:4px;padding:4px}.note-editor-tools{-webkit-overflow-scrolling:touch;scrollbar-width:none;background:0 0;border:none;border-radius:0;flex-wrap:nowrap;flex:1;gap:2px;min-width:0;padding:0 2px;overflow-x:auto}.note-editor-tools::-webkit-scrollbar{display:none}.note-editor-tool{border-radius:6px;flex-shrink:0;width:30px;height:30px}.note-editor-tool svg{width:14px;height:14px}.note-editor-modes{flex-shrink:0;gap:2px;display:flex}.note-editor-mode{border-radius:6px;justify-content:center;width:30px;height:30px;min-height:30px;padding:0}.note-editor-mode--split,.note-editor-mode-label{display:none}.note-editor-mode svg{width:14px;height:14px}.note-editor-panes{flex-direction:column;flex:1;min-height:0;display:flex}.note-editor-panes--edit,.note-editor-panes--preview{grid-template-columns:1fr}.note-editor-textarea{border-radius:var(--r-sm);resize:none;flex:1;height:auto;padding:10px;font-size:16px;line-height:1.55;min-height:0!important}.note-editor-preview{border-radius:var(--r-sm);flex:1;min-height:0;padding:10px;font-size:14px}.note-editor-footer{color:var(--text-lo);flex-shrink:0;gap:10px;padding-top:0;font-size:10px}.note-editor-hint{display:none}}.note-backlinks-details{margin-bottom:var(--sp-md);padding-bottom:var(--sp-md);border-bottom:1px solid var(--border)}.note-backlinks-details__summary{cursor:pointer;color:var(--text-mid);text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:11px;font-weight:700;list-style:none;display:none}.note-backlinks-details__summary::-webkit-details-marker{display:none}.note-backlinks-details__summary:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--text-lo);width:0;height:0;transition:transform var(--dur-fast);margin-left:auto}.note-backlinks-details[open] .note-backlinks-details__summary:after{transform:rotate(180deg)}.note-backlinks__body{gap:var(--sp-md);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.note-backlinks h4{color:var(--text-mid);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;margin:0 0 8px;font-size:12px;font-weight:700;display:flex}.note-backlinks__list{flex-wrap:wrap;gap:6px;display:flex}.note-backlinks__item{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-raised);color:var(--accent);cursor:pointer;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:600}.note-backlinks__item:hover{background:var(--accent-dim)}.note-backlinks__item--ghost{opacity:.55;cursor:default;color:var(--text-mid)}.note-graph{height:100%;min-height:420px;padding:var(--sp-lg);gap:var(--sp-sm);flex-direction:column;display:flex}.note-graph__header{justify-content:space-between;align-items:flex-start;gap:var(--sp-md);flex-wrap:wrap;display:flex}.note-graph__header h3{margin:0;font-size:18px}.note-graph__stats{color:var(--text-mid);margin:4px 0 0;font-size:12px}.note-graph__controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.note-graph__search{min-width:180px;max-width:240px;padding:8px 12px}.note-graph__legend{color:var(--text-mid);flex-wrap:wrap;gap:12px;font-size:11.5px;display:flex}.note-graph__legend i{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.note-graph__hint{color:var(--text-lo);margin-left:auto}.note-graph__canvas-wrap{border:1px solid var(--border);border-radius:var(--r-md);background:radial-gradient(circle at center, var(--bg-raised) 0%, var(--bg-base) 70%);flex:1;min-height:360px;position:relative;overflow:hidden}.note-graph__canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.note-graph__canvas:active{cursor:grabbing}.note-graph__unresolved{color:var(--text-mid);padding-top:4px;font-size:12px}.notes-sidebar-tabs{gap:4px;padding:0 12px 8px;display:flex}.notes-sidebar-tab{border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text-mid);cursor:pointer;background:0 0;flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 8px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.notes-sidebar-tab.active{background:var(--accent-dim);color:var(--accent);border-color:rgba(var(--accent-rgb), .3)}.notes-context-filter{flex-wrap:wrap;gap:4px;padding:0 12px 8px;display:flex}.notes-context-chip{border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text-mid);cursor:pointer;background:0 0;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:600}.notes-context-chip.active{background:var(--accent-dim);color:var(--accent)}.note-item-meta-item--truncate{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.notes-empty-card{justify-content:center;align-items:center;gap:var(--sp-md);height:100%;color:var(--text-mid);text-align:center;flex-direction:column;display:flex}.note-audio-panel{gap:var(--sp-xs);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;flex:none;min-height:0;padding:8px 12px;display:flex;overflow:hidden}@media (width>=769px){.note-audio-panel--expanded{flex:0 32%;max-height:32%}}.note-audio-panel__bar{flex-shrink:0;align-items:center;gap:10px;min-height:36px;display:flex}.note-audio-panel__play{width:34px;height:34px}.note-audio-panel__meta{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.note-audio-panel__label{color:var(--text-hi);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex;overflow:hidden}.note-audio-panel__label svg{color:var(--accent);flex-shrink:0}.note-audio-panel__time-value{color:var(--text-mid);font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:11px;display:inline-flex}.note-audio-panel__toggle{flex-shrink:0;padding:6px 10px;font-size:12px}.note-audio-panel__transcript{border-top:1px solid var(--border);flex:auto;min-height:0;margin-top:4px;padding-top:6px;overflow-y:auto}.note-audio-panel__transcript.transcript-list{gap:4px;margin-top:4px}.note-audio-panel__transcript .transcript-block{padding:6px 10px}.note-audio-panel__empty{padding-top:var(--sp-xs);color:var(--text-mid);margin:0;font-size:13px}.audio-player-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);height:100%;padding:var(--sp-lg);flex-direction:column;display:flex;overflow:hidden}.audio-controls{padding:var(--sp-md);background:var(--accent-dim);border-radius:var(--r-md);border:1px solid rgba(var(--accent-rgb), .15);align-items:center;gap:var(--sp-md);margin-top:var(--sp-sm);flex-shrink:0;display:flex}.audio-play-btn{background:var(--accent);color:#0a0c10;cursor:pointer;width:40px;height:40px;transition:transform var(--dur-fast) var(--ease-spring);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.audio-play-btn:hover{transform:scale(1.1)}.transcript-list{gap:var(--sp-xs);margin-top:var(--sp-sm);flex-direction:column;flex:1;padding-right:4px;display:flex;overflow-y:auto}.transcript-block{padding:9px var(--sp-md);border-radius:var(--r-md);cursor:pointer;background:var(--bg-raised);border:1px solid var(--border);transition:all var(--dur-fast) var(--ease-out);border-left:3px solid #0000}.transcript-block:hover{background:var(--accent-dim);border-color:rgba(var(--accent-rgb), .15)}.transcript-block.active{background:var(--accent-mid);border-color:rgba(var(--accent-rgb), .25);border-left-color:var(--accent)}.transcript-block-header{color:var(--accent);justify-content:space-between;margin-bottom:4px;font-size:11px;display:flex}.transcript-block-speaker{align-items:center;gap:3px;font-weight:700;display:flex}.transcript-block-time{align-items:center;gap:3px;display:flex}.transcript-block-text{color:var(--text-mid);font-size:13px;line-height:1.4}.transcript-block.active .transcript-block-text{color:var(--text-hi);font-weight:500}.bottom-nav{height:calc(62px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-surface);border-top:1px solid var(--border);z-index:999;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);justify-content:space-around;align-items:center;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #3c40431a}.light-theme .bottom-nav{-webkit-backdrop-filter:blur(20px)saturate(1.8);background:#fffffff2;box-shadow:0 -2px 16px #3c404314}.dark-theme .bottom-nav{-webkit-backdrop-filter:blur(20px)saturate(1.5);background:#292a2df2}.bottom-nav-item{color:var(--text-mid);-webkit-tap-highlight-color:transparent;cursor:pointer;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;padding:4px 2px;font-size:10px;font-weight:600;text-decoration:none;display:flex;position:relative}.bottom-nav-item:before{content:"";background:var(--accent-dim);width:64px;height:32px;transition:transform var(--dur-mid) var(--ease-spring), background var(--dur-fast) var(--ease-out), opacity var(--dur-fast);pointer-events:none;z-index:0;opacity:0;border-radius:16px;position:absolute;top:4px;left:50%;transform:translate(-50%)scaleX(0)}.bottom-nav-item.active:before{opacity:1;transform:translate(-50%)scaleX(1)}.bottom-nav-item svg{z-index:1;transition:transform var(--dur-mid) var(--ease-spring), color var(--dur-fast) var(--ease-out);flex-shrink:0;position:relative}.bottom-nav-item span{z-index:1;text-overflow:ellipsis;white-space:nowrap;max-width:100%;transition:color var(--dur-fast) var(--ease-out);line-height:1.1;position:relative;overflow:hidden}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item.active svg{color:var(--accent);filter:drop-shadow(0 2px 4px rgba(var(--accent-rgb), .35));transform:translateY(-1px)scale(1.08)}.bottom-nav-item:hover:not(.active){color:var(--text-hi)}.bottom-nav-item:active svg{transform:scale(.9)}.bottom-nav-item--btn{cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:10px;font-weight:600}.nav-more-sheet{width:100%;margin:0;padding:0}.md-modal__body:has(.nav-more-sheet){gap:var(--sp-sm)}.nav-more-sheet__header{margin-bottom:var(--sp-sm);justify-content:space-between;align-items:center;display:flex}.nav-more-sheet__header h2{margin:0;font-size:1.125rem;font-weight:600;line-height:1.3}.nav-more-sheet__close{color:var(--text-mid);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;padding:6px}.nav-more-sheet__close:hover{color:var(--text-hi);background:var(--bg-raised)}.nav-more-sheet__list{gap:var(--sp-xs);flex-direction:column;display:flex}.nav-more-sheet__item{align-items:center;gap:var(--sp-md);padding:12px var(--sp-md);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-raised);color:var(--text-hi);transition:border-color var(--dur-fast), background var(--dur-fast);text-decoration:none;display:flex}.nav-more-sheet__item:hover,.nav-more-sheet__item.active{border-color:var(--accent);background:var(--accent-dim)}.nav-more-sheet__icon{border-radius:var(--r-md);background:var(--bg-surface);width:40px;height:40px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.nav-more-sheet__text{flex-direction:column;gap:2px;min-width:0;display:flex}.nav-more-sheet__label{font-size:14px;font-weight:600}.nav-more-sheet__desc{color:var(--text-mid);font-size:12px}.nav-more-sheet__logout{width:100%;margin-top:var(--sp-md);border-radius:var(--r-md);color:var(--danger);cursor:pointer;background:#f0606014;border:1px solid #f0606040;justify-content:center;align-items:center;gap:8px;padding:12px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.nav-more-sheet__logout:hover{background:#f0606024}.telegram-webapp body{background:var(--tg-theme-bg-color,var(--bg-base));color:var(--tg-theme-text-color,var(--text-hi));overscroll-behavior:none}.telegram-webapp .main-content{padding-top:max(var(--sp-md), env(safe-area-inset-top,0px))}.telegram-webapp .bottom-nav{padding-bottom:env(safe-area-inset-bottom,0px);bottom:0}.login-page{width:100vw;min-height:100vh;padding:var(--sp-md);animation:fadeIn var(--dur-slow) var(--ease-decel);background:var(--bg-base);background-image:radial-gradient(ellipse at 15% 40%, rgba(var(--accent-rgb), .1) 0%, transparent 55%), radial-gradient(ellipse at 85% 15%, rgba(var(--accent-rgb), .07) 0%, transparent 55%), radial-gradient(ellipse at 50% 85%, rgba(var(--accent2-rgb), .06) 0%, transparent 55%), linear-gradient(rgba(var(--accent-rgb), .025) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--accent-rgb), .025) 1px, transparent 1px);animation:loginBgBreath 10s ease-in-out infinite alternate, fadeIn var(--dur-slow) var(--ease-decel) both;background-size:100% 100%,100% 100%,100% 100%,44px 44px,44px 44px;justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:420px;padding:var(--sp-xl) var(--sp-xl);border-radius:var(--r-xl);border:1px solid rgba(var(--accent-rgb), .15);background:var(--bg-surface);text-align:center;box-shadow:var(--shadow-xl);gap:var(--sp-lg);animation:loginCardAppear .55s var(--ease-spring2) both;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);flex-direction:column;display:flex}.login-header{flex-direction:column;align-items:center;gap:6px;display:flex}.login-logo{align-items:center;gap:var(--sp-sm);display:flex}.login-logo .app-logo{animation:logoReveal .7s var(--ease-spring) .1s both}.login-logo span{font-size:22px;font-weight:700;font-family:var(--font-display);animation:fadeSlideRight .5s var(--ease-decel) .3s both}.login-subtitle{color:var(--text-mid);animation:fadeIn .4s var(--ease-decel) .4s both;font-size:14px;line-height:1.4}.login-status{align-items:center;gap:var(--sp-md);padding:var(--sp-lg) 0;flex-direction:column;display:flex}.spinner{color:var(--accent)}.login-instruction{gap:var(--sp-md);flex-direction:column;display:flex}.lock-illustration{justify-content:center;align-items:center;margin-bottom:4px;display:flex;position:relative}.lock-circle{background:var(--accent-dim);border:1px solid rgba(var(--accent-rgb), .25);width:60px;height:60px;color:var(--accent);z-index:2;border-radius:50%;justify-content:center;align-items:center;display:flex}.pulse-ring{border:1px solid rgba(var(--accent-rgb), .15);width:72px;height:72px;animation:ripple 2s infinite var(--ease-out);z-index:1;border-radius:50%;position:absolute}.steps-container{gap:var(--sp-sm);text-align:left;flex-direction:column;display:flex}.step-item{align-items:center;gap:var(--sp-sm);border:1px solid var(--border);padding:10px var(--sp-md);border-radius:var(--r-md);transition:all var(--dur-mid) var(--ease-decel);animation:staggerFadeIn var(--dur-mid) var(--ease-decel) both;display:flex}.step-item:first-child{animation-delay:.15s}.step-item:nth-child(2){animation-delay:.25s}.step-item:nth-child(3){animation-delay:.35s}.step-item:hover{background:var(--accent-dim);border-color:rgba(var(--accent-rgb), .25);box-shadow:var(--shadow-sm);transform:translate(4px)}.step-number{border:1.5px solid var(--border-mid);width:24px;height:24px;color:var(--text-mid);transition:all var(--dur-fast) var(--ease-spring);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.step-item:hover .step-number{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);transform:scale(1.1)}.step-text{color:var(--text-hi);font-size:13px;line-height:1.4}.code-badge{background:rgba(var(--accent-rgb), .1);border:1px solid rgba(var(--accent-rgb), .2);color:var(--accent);border-radius:5px;padding:1px 5px;font-family:monospace;font-weight:700}.bot-status-badge{color:var(--text-mid);justify-content:center;align-items:center;gap:6px;font-size:12px;display:flex}.status-dot{background:var(--ok);border-radius:50%;width:7px;height:7px}.status-dot.pulse{animation:1.2s infinite alternate dotPulse}.dev-bypass-button{color:var(--accent);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border-radius:var(--r-pill);background:0 0;border:none;width:100%;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600}.dev-bypass-button:hover{background:var(--accent-dim)}.login-error-content{align-items:center;gap:var(--sp-md);flex-direction:column;display:flex}.error-icon{color:var(--danger);animation:shake .5s var(--ease-out)}.error-message{color:var(--text-hi);padding:var(--sp-sm) var(--sp-md);border-radius:var(--r-md);background:#f060600f;border:1px solid #f0606033;width:100%;font-size:13px;line-height:1.5}.retry-button{background:var(--accent);color:#0a0c10;border-radius:var(--r-pill);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border:none;padding:10px 24px;font-size:13px;font-weight:700}.retry-button:hover{filter:brightness(1.08)}.mobile-only{display:none!important}.desktop-only{display:inline-flex}.text-muted{color:var(--text-mid)}.text-accent{color:var(--accent)}.text-small{font-size:12px}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-gap-sm{align-items:center;gap:var(--sp-xs);display:flex}.flex-gap-md{align-items:center;gap:var(--sp-sm);display:flex}@media (width<=1024px){.sidebar{width:68px;padding:var(--sp-md) var(--sp-xs);gap:var(--sp-sm)}.logo-text,.nav-item a span,.nav-logout-btn span,.network-status span,.nav-section-label{display:none}.logo-container{margin-bottom:var(--sp-md);justify-content:center;padding:0}.nav-item a,.nav-logout-btn{border-radius:var(--r-md);justify-content:center;padding:10px}.network-status{justify-content:center;padding:7px}.main-content{padding:var(--sp-lg)}}@media (width<=768px){.mobile-only{display:inline-flex!important}.desktop-only,.sidebar{display:none!important}.bottom-nav{display:flex!important}.theme-toggle-fab{display:none}.main-content{max-height:var(--app-height,100dvh);-webkit-overflow-scrolling:touch;padding:var(--sp-md) var(--sp-sm) calc(64px + env(safe-area-inset-bottom,0px))!important;height:var(--app-height,100dvh)!important}.page-container{gap:var(--sp-md);max-width:100%}.page-header{align-items:stretch;gap:var(--sp-md);background:var(--bg-surface);border-bottom:none;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);flex-direction:column;margin-bottom:2px;padding:14px 16px}.page-header--compact{gap:var(--sp-sm);padding:12px 16px}.page-header-left{flex:1;min-width:0}.page-header-left h1,.page-header h1{letter-spacing:-.01em;font-size:1.2rem;line-height:1.3}.page-header-left p,.page-header-sub{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.header-actions{gap:var(--sp-sm);flex-wrap:wrap;justify-content:flex-start;width:100%}.header-actions .btn{flex:0 auto;min-width:auto}.btn-icon-text .btn-label{display:none}.btn-icon-text{justify-content:center;min-width:44px;padding:10px}.stats-grid{gap:var(--sp-sm);grid-template-columns:repeat(3,1fr)}.stats-grid--4{grid-template-columns:repeat(2,1fr)}.dashboard-widgets{grid-template-columns:1fr}.dash-quick-links{gap:6px}.dash-quick-link{padding:7px 12px;font-size:12px}.stats-grid--compact .stat-card{padding:var(--sp-sm) var(--sp-md)}.stat-value{font-size:1.25rem}.stat-label{font-size:11px}.dashboard-main-grid{grid-template-columns:1fr}.card{padding:var(--sp-md);border-radius:var(--r-md)}.main-content:has(.chat-page-layout){flex-direction:column;display:flex;overflow:hidden;padding-top:var(--sp-sm)!important}.chat-page-layout,.chat-page-layout.with-sidebar{flex:1;height:100%;min-height:0;max-height:100%;grid-template-columns:1fr!important}.chat-sessions-panel--desktop{display:none!important}.chat-sessions-toggle{display:inline-flex}.chat-sessions-backdrop{z-index:240;background:#00000073;display:block;position:fixed;inset:0}.chat-sessions-panel--drawer{z-index:241;border-radius:0 var(--r-xl) var(--r-xl) 0;width:min(300px,88vw);box-shadow:var(--shadow-lg,0 12px 40px #0003);display:flex;position:fixed;top:0;bottom:0;left:0}.chat-clear-btn__label{display:none}.chat-container{border-radius:var(--r-md);min-height:0}.chat-header{gap:10px;padding:12px 14px}.chat-context-chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.chat-context-chips::-webkit-scrollbar{display:none}.chat-context-chip{flex-shrink:0;padding:8px 14px}.chat-filter-group--subject{flex-direction:column;align-items:stretch;gap:6px}.chat-filter-group--subject .chat-filter-label{min-width:0}.chat-subject-select{width:100%;height:44px;font-size:16px}.messages-list{padding:var(--sp-sm) var(--sp-md)}.chat-input-bar{margin:0 var(--sp-md) var(--sp-sm);padding-left:var(--sp-md);z-index:50;background:var(--bg-raised);position:sticky;bottom:0}.chat-input-error{margin:0 var(--sp-md) var(--sp-xs)}.chat-input-bar input{min-width:0;font-size:16px}.source-detail-panel{inset:0 0 calc(56px + env(safe-area-inset-bottom,0px)) 0;z-index:1000;border-radius:var(--r-xl) var(--r-xl) 0 0;animation:slideUp var(--dur-mid) var(--ease-out) both;position:fixed}.cal-toolbar{align-items:stretch;gap:var(--sp-sm);flex-direction:column}.cal-view-tabs{width:100%}.cal-view-tabs button{flex:1}.cal-toolbar__secondary{flex-direction:column;align-items:stretch;gap:8px;width:100%}.cal-plan-select{box-sizing:border-box;width:100%;max-width:100%}.cal-toolbar__btn-group{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.cal-toolbar__action{justify-content:center;width:100%;min-height:44px;padding:8px 10px;font-size:13px}.cal-toolbar__action-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cal-planning__toggle{padding:var(--sp-md);align-items:flex-start}.cal-planning__toggle-meta{flex-direction:column;align-items:flex-end;gap:4px}.cal-planning__status{display:none}.cal-planning__toggle-sub{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cal-planning__body{padding:0 var(--sp-md) var(--sp-md)}.cal-planning__row{flex-direction:column}.cal-planning__action-btn{width:100%;min-height:44px}.cal-planning__notes{max-height:min(240px,38vh)}.calendar-grid-wrapper{background:0 0;border:none;border-radius:0;overflow:visible}.calendar-weekly-grid{gap:10px;min-width:100%;padding:2px 0 8px;grid-template-columns:1fr!important}.calendar-day-column{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);min-height:auto;box-shadow:var(--shadow-sm);padding:0;overflow:hidden}.calendar-day-column:last-child{border-bottom:1px solid var(--border)}.calendar-day-column.today{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim), var(--shadow-sm)}.calendar-day-column.today .day-header{background:linear-gradient(135deg, var(--accent-dim) 0%, rgba(var(--accent-rgb), .06) 100%);border-bottom-color:rgba(var(--accent-rgb), .15)}.calendar-day-column--empty{opacity:.92}.calendar-day-column--empty .day-header{border-bottom:none;margin-bottom:0}.calendar-day-column--empty .day-events-list{padding:0 12px 12px}.calendar-day-column--empty .day-events-empty{background:0 0;border-style:solid;padding:6px 10px;font-size:.75rem;display:block}.day-header{text-align:left;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:0;padding:12px 14px;display:flex}.day-header__text{flex:1;align-items:flex-start;min-width:0}.day-header__meta{flex-direction:row-reverse;flex-shrink:0;align-items:center;gap:8px}.day-header-sub{color:var(--text-mid);text-transform:none;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:.82rem;line-height:1.35;display:flex}.day-header-name--short{display:none}.day-header-name--full{letter-spacing:0;text-transform:capitalize;color:var(--text-hi);font-size:1.05rem;font-weight:700;line-height:1.2;display:block}.calendar-day-column.today .day-header-name--full{color:var(--accent)}.day-header-date{text-transform:capitalize;display:inline}.day-header-events{border-radius:var(--r-pill);background:var(--bg-raised);color:var(--text-mid);align-items:center;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.calendar-day-column.today .day-header-events{background:rgba(var(--accent-rgb), .12);color:var(--accent)}.day-header-count,.day-header-num,.day-header__meta{display:none}.day-events-list{gap:8px;padding:10px 12px 12px}.event-card{border-radius:var(--r-md);border-left-width:4px;padding:12px 12px 11px;font-size:.84rem;line-height:1.4}.event-card:hover{box-shadow:none;transform:none}.event-card-title{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.88rem;line-height:1.35;display:-webkit-box;overflow:hidden}.event-card-time{border-radius:var(--r-pill);font-variant-numeric:tabular-nums;background:var(--bg-raised);color:var(--text-mid);align-items:center;margin-top:8px;padding:4px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.calendar-day-column.today .event-card-time{background:rgba(var(--accent-rgb), .08);color:var(--accent)}.event-card__delete{justify-content:center;min-width:36px;min-height:36px;margin:-6px -4px -6px 0}.calendar-form-grid{grid-template-columns:1fr}.cal-month{min-width:0;overflow-x:auto}.cal-month__row{min-height:56px}.cal-month__cell{min-height:56px;padding:4px 6px}.cal-month-dot{width:6px;height:6px}.cal-page-header__nav{padding:4px 2px}.cal-period-title{font-size:.98rem}.cal-today-btn{height:32px;padding:0 12px;font-size:12px}.notes-sidebar-header,.note-text-header,.note-graph__header{margin:0 0 var(--sp-sm);border-bottom:1px solid var(--border);background:0 0;border-radius:0;padding:10px 0 12px}.note-text-header__top{gap:8px}.note-text-header__title{font-size:1.05rem;line-height:1.35}.note-text-back{flex-shrink:0;justify-content:center;width:36px;min-width:36px;height:36px;border-radius:var(--r-sm)!important;padding:0!important}.note-text-header__actions--compact{display:flex}.note-text-header__actions--compact .btn-icon{border-radius:var(--r-sm);width:36px;min-width:36px;height:36px;padding:0}.note-text-header-meta{gap:6px}.note-text-header-meta span{border-radius:var(--r-pill);background:var(--bg-raised);border:1px solid var(--border);align-items:center;padding:4px 10px;line-height:1.3;display:inline-flex}.note-graph__header h3{font-size:1rem}.cal-nav-btn{min-width:44px;min-height:44px}.tabs-bar{border-radius:var(--r-md);width:100%}.tabs-bar--full{width:100%}.tab-button{flex:1;justify-content:center;padding:10px 8px;font-size:12px}.filter-section{flex-direction:column;align-items:flex-start}.filter-section select{width:100%}.material-table th,.material-table td{padding:9px var(--sp-md);font-size:12.5px}.material-table th:nth-child(3),.material-table td:nth-child(3),.material-table th:nth-child(4),.material-table td:nth-child(4),.material-table th:nth-child(6),.material-table td:nth-child(6){display:none}.cw-subjects-grid,.cw-skeleton-grid,.subjects-grid,.skeleton-grid{grid-template-columns:1fr!important}.notes-page-layout{flex:1;height:auto;min-height:0;overflow:hidden;grid-template-columns:1fr!important}.notes-page-layout.view-list .notes-content-area,.notes-page-layout.view-detail .notes-sidebar{display:none!important}.note-viewer-layout{height:auto;overflow-y:auto}.note-viewer-layout:has(.note-audio-panel) .note-text-card{flex:none;max-height:none}.note-text-card{flex:none;height:auto;min-height:0}.note-audio-panel{max-height:none}.note-audio-panel--expanded{flex:none;max-height:none}.note-audio-panel__transcript{max-height:35vh}.audio-player-card{height:auto}.note-graph__hint{display:none}.modal-card{padding:var(--sp-lg);border-radius:var(--r-xl);max-height:calc(var(--app-height,100dvh) - 48px);overflow-y:auto}input,select,textarea{font-size:16px!important}}@media (width<=480px){.main-content{padding-left:var(--sp-sm)!important;padding-right:var(--sp-sm)!important}.stats-grid{grid-template-columns:1fr 1fr}.stats-grid--compact{grid-template-columns:repeat(3,1fr)}.page-header-left h1,.page-header h1{font-size:1.125rem}.page-header{padding:12px 14px}.bottom-nav-item span{font-size:9px}.bottom-nav-item svg{width:22px;height:22px}.cal-month__row,.cal-month__cell{min-height:48px}.cal-month__indicators{gap:3px}.note-text-header__title{font-size:1rem}.note-form-back,.note-form-toolbar-btn,.note-text-back,.note-text-header__actions--compact .btn-icon{width:32px;min-width:32px;height:32px}.note-editor-tool,.note-editor-mode{width:28px;height:28px;min-height:28px}.note-editor-tool svg,.note-editor-mode svg{width:13px;height:13px}.note-form-editor-wrap{padding:0 6px 4px}.note-editor-footer{gap:8px;font-size:9px}.cal-toolbar__action-label{display:none}.cal-toolbar__action{padding:8px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pageEnter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes staggerFadeIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}@keyframes modalEnter{0%{opacity:0;transform:scale(.88)translateY(12px)}60%{opacity:1;transform:scale(1.02)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes loginCardAppear{0%{opacity:0;transform:translateY(28px)scale(.95)}60%{opacity:1;transform:translateY(-3px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideRight{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes logoAppear{0%{opacity:0;transform:scale(.6)rotate(-15deg)}60%{opacity:1;transform:scale(1.12)rotate(4deg)}80%{transform:scale(.96)rotate(-1deg)}to{transform:scale(1)rotate(0)}}@keyframes logoReveal{0%{opacity:0;filter:blur(6px);transform:scale(.4)rotate(-20deg)}60%{opacity:1;filter:blur();transform:scale(1.1)rotate(5deg)}80%{transform:scale(.97)rotate(-1deg)}to{transform:scale(1)rotate(0)}}@keyframes logoGlow{0%{box-shadow:0 0 8px rgba(var(--accent-rgb), .2)}to{box-shadow:0 0 24px rgba(var(--accent-rgb), .55)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dotPulse{0%{opacity:.5;transform:scale(.85)}to{opacity:1;transform:scale(1.15)}}@keyframes ripple{0%{opacity:.9;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.14)}28%{transform:scale(1)}42%{transform:scale(1.1)}70%{transform:scale(1)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes glow{0%,to{box-shadow:0 0 6px rgba(var(--accent-rgb), .25)}50%{box-shadow:0 0 22px rgba(var(--accent-rgb), .55)}}@keyframes loginBgBreath{0%{background-position:0 0,100% 100%,50%,0 0,0 0}to{background-position:15% 10%,85% 90%,60% 40%,0 0,0 0}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.5)}55%{opacity:1;transform:scale(1.06)}75%{transform:scale(.95)}to{transform:scale(1)}}@keyframes checkmark{0%{stroke-dashoffset:50px;opacity:0}to{stroke-dashoffset:0;opacity:1}}.animate-spin{animation:1s linear infinite spin}.animate-float{animation:3s ease-in-out infinite float}.animate-heartbeat{animation:1.4s ease-in-out infinite heartbeat}.animate-glow{animation:2s ease-in-out infinite glow}.animate-fadeIn{animation:staggerFadeIn var(--dur-mid) var(--ease-decel) both}.interaction-card:hover{transform:translateY(-3px);border-color:var(--accent)!important;box-shadow:var(--shadow-md)!important}.message-link{color:var(--accent);transition:color var(--dur-fast) var(--ease-out);font-weight:500;text-decoration:none}.message-link:hover{color:#174ea6;text-decoration:underline}.md-modal{z-index:1100;background:#2021248c;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}@media (width>=640px){.md-modal{padding:var(--sp-md);align-items:center}}.md-modal__sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg-surface);border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-width:480px;max-height:min(92dvh,100%);box-shadow:var(--shadow-lg);padding:var(--sp-md) var(--sp-md) calc(var(--sp-md) + env(safe-area-inset-bottom,0px));animation:slideUp var(--dur-mid) var(--ease-out);position:relative;overflow-y:auto}@media (width>=640px){.md-modal__sheet{border-radius:var(--r-lg);max-height:min(88vh,720px);padding-bottom:var(--sp-lg);animation:scaleUp var(--dur-mid) var(--ease-spring)}}.md-modal__header{margin-bottom:var(--sp-sm);padding-right:44px}.md-modal__body{gap:var(--sp-md);flex-direction:column;min-width:0;display:flex}.md-modal__close{background:var(--bg-raised);width:36px;height:36px;color:var(--text-mid);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}.md-input{border:1px solid var(--border);border-radius:var(--r-md);width:100%;font:inherit;background:var(--bg-surface);color:var(--text-hi);padding:12px 14px;font-size:14px}.md-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.md-empty-state{text-align:center;padding:var(--sp-xl);color:var(--text-mid)}.md-empty-state__title{color:var(--text-hi);margin-bottom:var(--sp-xs);font-size:1rem;font-weight:500}.md-empty-state__hint{font-size:.875rem;line-height:1.5}.interaction-card{transition:transform var(--dur-mid) var(--ease-decel), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-mid) var(--ease-decel)!important}.interaction-card:hover{border-color:var(--accent)!important;box-shadow:var(--shadow-lg)!important;transform:translateY(-4px)!important}.md-modal__sheet{animation:slideUp var(--dur-slow) var(--ease-spring)!important}@media (width>=640px){.md-modal__sheet{animation:modalEnter var(--dur-slow) var(--ease-spring2)!important}}.md-modal__close{transition:background var(--dur-fast), transform var(--dur-fast) var(--ease-spring)}.md-modal__close:hover{background:var(--accent-dim);color:var(--accent);transform:scale(1.1)rotate(90deg)}.theme-toggle-fab{animation:fadeIn .5s .3s var(--ease-decel) both;transition:transform var(--dur-mid) var(--ease-spring), border-color var(--dur-fast), color var(--dur-fast), box-shadow var(--dur-mid) var(--ease-decel)!important}.theme-toggle-fab:hover{border-color:var(--accent)!important;color:var(--accent)!important;box-shadow:0 4px 16px rgba(var(--accent-rgb), .3)!important;transform:scale(1.12)rotate(30deg)!important}.stats-grid>*{animation:staggerFadeIn var(--dur-mid) var(--ease-decel) both}.stats-grid>:first-child{animation-delay:0s}.stats-grid>:nth-child(2){animation-delay:60ms}.stats-grid>:nth-child(3){animation-delay:.12s}.stats-grid>:nth-child(4){animation-delay:.18s}.dashboard-widgets>*{animation:staggerFadeIn var(--dur-slow) var(--ease-decel) both}.dashboard-widgets>:first-child{animation-delay:60ms}.dashboard-widgets>:nth-child(2){animation-delay:.12s}.dashboard-widgets>:nth-child(3){animation-delay:.18s}.dashboard-widgets>:nth-child(4){animation-delay:.24s}.source-detail-panel{animation:slideInRight var(--dur-slow) var(--ease-spring) both!important}.message{animation:staggerFadeIn var(--dur-mid) var(--ease-decel) both!important}.message-user{border-radius:var(--r-lg) var(--r-lg) 4px var(--r-lg)!important}.chat-input-bar{transition:border-color var(--dur-fast), box-shadow var(--dur-mid) var(--ease-decel), background var(--dur-fast)!important}.chat-input-bar:focus-within{box-shadow:0 0 0 3px rgba(var(--accent-rgb), .14)!important}.tab-button{position:relative;overflow:hidden;transition:all var(--dur-mid) var(--ease-decel)!important}.tab-button.active{box-shadow:0 3px 10px rgba(var(--accent-rgb), .3)!important}.cal-view-tabs__btn{transition:all var(--dur-mid) var(--ease-decel)!important}.event-card{transition:transform var(--dur-mid) var(--ease-decel), box-shadow var(--dur-mid) var(--ease-decel), border-color var(--dur-fast)!important}.event-card:hover{box-shadow:var(--shadow-md)!important;transform:translateY(-3px)scale(1.01)!important}.note-item{transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out)!important}.nav-more-sheet__item{transition:background var(--dur-mid) var(--ease-decel), transform var(--dur-mid) var(--ease-spring), border-color var(--dur-fast)!important}.nav-more-sheet__item:hover{transform:translate(4px)!important}.table-row{animation:staggerFadeIn var(--dur-mid) var(--ease-decel) both}.table-row:first-child{animation-delay:30ms}.table-row:nth-child(2){animation-delay:60ms}.table-row:nth-child(3){animation-delay:90ms}.table-row:nth-child(4){animation-delay:.12s}.table-row:nth-child(5){animation-delay:.15s}.table-row:hover{background:var(--accent-dim)!important}.network-status{transition:all var(--dur-mid) var(--ease-decel)!important}.network-status.online{animation:fadeIn .4s var(--ease-decel) both}.network-status.offline{animation:shake .5s var(--ease-spring) both}.md-spinner{animation:.75s cubic-bezier(.4,0,.6,1) infinite spin!important}.nav-logout-btn{transition:all var(--dur-mid) var(--ease-decel)!important}.nav-logout-btn:hover{transform:translate(2px)}.material-input:focus,.material-textarea:focus,.material-select:focus,.md-input:focus{box-shadow:0 0 0 3px rgba(var(--accent-rgb), .15), 0 2px 8px rgba(var(--accent-rgb), .08)!important;transition:all var(--dur-mid) var(--ease-decel)!important}.source-tag{transition:all var(--dur-mid) var(--ease-spring)!important}.source-tag:hover{box-shadow:var(--shadow-sm)!important;transform:translateY(-2px)scale(1.04)!important}.glass{background:var(--bg-overlay)!important;-webkit-backdrop-filter:blur(12px)saturate(1.5)!important}.page-container>*{animation:staggerFadeIn var(--dur-mid) var(--ease-decel) both}.page-container>:first-child{animation-delay:0s}.page-container>:nth-child(2){animation-delay:50ms}.page-container>:nth-child(3){animation-delay:.1s}.page-container>:nth-child(4){animation-delay:.15s}.page-container>:nth-child(5){animation-delay:.2s}.page-container>:nth-child(6){animation-delay:.25s}.nav-links .nav-item{animation:staggerFadeIn .35s var(--ease-decel) both}.nav-links .nav-item:first-child{animation-delay:80ms}.nav-links .nav-item:nth-child(2){animation-delay:.12s}.nav-links .nav-item:nth-child(3){animation-delay:.16s}.nav-links .nav-item:nth-child(4){animation-delay:.2s}.nav-links .nav-item:nth-child(5){animation-delay:.24s}.nav-links .nav-item:nth-child(6){animation-delay:.28s}.nav-links .nav-item:nth-child(7){animation-delay:.32s}.nav-section-label{animation:fadeSlideRight .4s var(--ease-decel) both}.dark-theme .login-page{background-image:radial-gradient(ellipse at 15% 40%, rgba(var(--accent-rgb), .14) 0%, transparent 55%), radial-gradient(ellipse at 85% 15%, rgba(var(--accent-rgb), .1) 0%, transparent 55%), radial-gradient(ellipse at 50% 85%, rgba(var(--accent2-rgb), .08) 0%, transparent 55%), linear-gradient(rgba(var(--accent-rgb), .04) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--accent-rgb), .04) 1px, transparent 1px)!important}@media (width<=768px){.main-content{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))!important}.chat-page-layout,.notes-page-layout{height:calc(100dvh - 80px)!important}}@media (width>=769px) and (width<=1024px){.dashboard-main-grid{grid-template-columns:1fr!important}.dashboard-widgets{grid-template-columns:1fr 1fr!important}.stats-grid--4{grid-template-columns:repeat(2,1fr)!important}.note-text-card{padding:var(--sp-sm) var(--sp-md)}.note-text-header{padding-bottom:var(--sp-xs);margin-bottom:var(--sp-xs);gap:6px}.note-text-card .note-text-header__top{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.note-text-header__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.25;display:-webkit-box;overflow:hidden}.note-text-card .note-text-header__actions.desktop-only{display:none!important}.note-text-card .note-text-header__actions--compact{gap:4px;display:flex!important}.note-text-card .note-text-header__actions--compact .btn-icon{border-radius:var(--r-sm);width:32px;min-width:32px;height:32px;padding:0}.note-text-header-meta{gap:4px 6px;font-size:11px}.note-text-header-meta span{border-radius:var(--r-pill);background:var(--bg-raised);border:1px solid var(--border);align-items:center;padding:2px 8px;line-height:1.25;display:inline-flex}.note-backlinks-details{margin-bottom:var(--sp-xs);padding-bottom:var(--sp-xs)}.note-backlinks-details__summary{padding:4px 0;display:flex}.note-backlinks-details:not([open]) .note-backlinks__body{display:none}.note-backlinks-details[open] .note-backlinks__body{gap:var(--sp-xs);grid-template-columns:1fr;margin-top:6px;display:grid}.note-backlinks h4{margin:0 0 4px;font-size:10px}.note-backlinks__item{padding:3px 8px;font-size:11px}.note-backlinks__list{gap:4px}}@media (width>=1025px){.note-backlinks-details__summary{display:none}.note-backlinks-details .note-backlinks__body{display:grid!important}}@media (width>=1440px){.main-content{padding:var(--sp-xl) calc(var(--sp-xl) * 2)!important}.page-container{max-width:1400px!important}}@media (width<=360px){.bottom-nav-item:before{width:52px!important;height:28px!important}.bottom-nav-item span{font-size:8px!important}.stat-value{font-size:22px!important}.page-header-left h1,.page-header h1{font-size:1rem!important}.login-card{padding:var(--sp-lg)!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-toast{background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:var(--r-pill);box-shadow:var(--shadow-xl);z-index:2001;animation:slideUp .35s var(--ease-spring) both;color:var(--text-hi);white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(12px);padding:10px 24px;font-size:13px;font-weight:500;position:fixed;bottom:88px;left:50%;transform:translate(-50%)}.cw-skeleton-card{background:linear-gradient(90deg, var(--bg-raised) 0%, var(--bg-surface) 40%, var(--bg-raised) 80%);border-radius:var(--r-md);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer!important}.mood-history-item{transition:transform var(--dur-mid) var(--ease-spring), box-shadow var(--dur-mid) var(--ease-decel)!important}.mood-history-item:hover{box-shadow:var(--shadow-sm)!important;transform:translate(4px)!important}.nav-more-sheet__icon{transition:transform var(--dur-mid) var(--ease-spring)!important}.nav-more-sheet__item:hover .nav-more-sheet__icon{transform:scale(1.15)rotate(-5deg)!important}.nav-more-sheet__item.active{border-left:3px solid var(--accent)!important;background:var(--accent-dim)!important}.nav-more-sheet__logout{transition:all var(--dur-mid) var(--ease-decel)!important}.nav-more-sheet__logout:hover{color:var(--danger)!important;background:#d9302514!important}.cw-subject-card{cursor:pointer;transition:transform var(--dur-mid) var(--ease-spring), box-shadow var(--dur-mid) var(--ease-decel), border-color var(--dur-fast)!important}.gb-semester-card:hover{border-color:var(--accent)!important;box-shadow:0 4px 16px rgba(var(--accent-rgb), .2)!important}.gb-semester-card__number{transition:transform var(--dur-mid) var(--ease-spring)!important}.gb-semester-card:hover .gb-semester-card__number{transform:scale(1.12)!important}.cw-search:focus-within{box-shadow:0 0 0 3px rgba(var(--accent-rgb), .15)!important;border-color:var(--accent)!important}.cw-search__input:focus{outline:none!important}.dash-quick-link{position:relative;overflow:hidden;transition:all var(--dur-mid) var(--ease-spring)!important}.dash-quick-link:after{content:"";background:radial-gradient(circle at 50% 50%, rgba(var(--accent-rgb), .12) 0%, transparent 70%);opacity:0;transition:opacity var(--dur-fast);pointer-events:none;position:absolute;inset:0}.dash-quick-link:hover{box-shadow:var(--shadow-md)!important;border-color:rgba(var(--accent-rgb), .3)!important;transform:translateY(-2px)!important}.dash-quick-link:hover:after{opacity:1}.dash-assignment-item{transition:background var(--dur-fast), border-color var(--dur-fast), transform var(--dur-mid) var(--ease-spring)!important}.dash-assignment-item:hover{background:var(--bg-raised)!important;border-color:var(--border-mid)!important;transform:translate(4px)!important}.dash-grade-item{transition:background var(--dur-fast), border-color var(--dur-fast), transform var(--dur-mid) var(--ease-spring)!important}.dash-grade-item:hover{background:var(--bg-raised)!important;border-color:var(--border-mid)!important;transform:translate(4px)!important}.message-user{box-shadow:0 2px 8px #1a73e840!important}.message-ai{border-left:3px solid rgba(var(--accent-rgb), .3)!important}.chat-session-item{transition:all var(--dur-mid) var(--ease-decel)!important}.chat-session-item:hover{transform:translate(3px)!important}.chat-session-item.active{border-left:3px solid var(--accent)!important}.chat-context-chip{transition:all var(--dur-mid) var(--ease-spring)!important}.chat-context-chip:hover{transform:translateY(-1px)!important}.chat-context-chip.active{box-shadow:0 2px 8px rgba(var(--accent-rgb), .25)!important}.profile-hero:before{content:"";background:radial-gradient(circle, rgba(var(--accent-rgb), .14) 0%, transparent 70%);pointer-events:none;z-index:0;width:130px;height:130px;position:absolute;top:-40px;right:-40px}.profile-link-row{border-radius:var(--r-md);margin:0 calc(-1 * var(--sp-sm));transition:all var(--dur-mid) var(--ease-decel)!important;padding:10px var(--sp-sm)!important}.profile-link-row:hover{transform:translate(3px);background:var(--accent-dim)!important}.profile-logout{color:var(--danger)!important;transition:all var(--dur-mid) var(--ease-decel)!important;border-color:#d9302533!important}.mood-chart-dot{transition:r .15s var(--ease-spring), filter .15s;cursor:pointer}.mood-chart-dot:hover{filter:drop-shadow(0 0 6px rgba(var(--accent-rgb), .5))}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}.attendance-panel{gap:var(--sp-md);flex-direction:column;display:flex}.attendance-panel__toolbar{margin-bottom:var(--sp-xs)}.attendance-panel__body{gap:var(--sp-md);flex-direction:column;display:flex}.attendance-panel__loading{padding:var(--sp-xl);justify-content:center;display:flex}.panel__error{padding:var(--sp-sm) var(--sp-md);border-radius:var(--r-md);color:var(--danger);background:#d9302514;font-size:.9rem}.att-semester-view-tabs{border-radius:var(--r-pill);background:var(--bg-raised);border:1px solid var(--border);gap:4px;width:fit-content;padding:4px;display:inline-flex}.att-semester-view-tabs__btn{border-radius:var(--r-pill);font:inherit;color:var(--text-mid);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast);background:0 0;border:none;padding:8px 20px;font-size:.875rem;font-weight:500}.att-semester-view-tabs__btn--active{background:var(--bg-surface);color:var(--accent);box-shadow:var(--shadow-sm)}.week-toolbar{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:8px 12px;display:flex}.week-toolbar__nav{width:36px;height:36px;color:var(--text-mid);cursor:pointer;transition:background var(--dur-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.week-toolbar__nav:hover{background:var(--accent-dim);color:var(--accent)}.week-toolbar__center{border-radius:var(--r-sm);font:inherit;color:var(--text-hi);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:.9rem;font-weight:500;display:flex}.week-toolbar__center:hover{background:var(--bg-raised)}.att-subject-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);width:100%;box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;transition:box-shadow var(--dur-fast), transform var(--dur-fast);align-items:stretch;gap:12px;padding:12px 14px;display:flex}.att-subject-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.att-subject-card__accent{border-radius:4px;flex-shrink:0;width:4px}.att-subject-card__main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.att-subject-card__name{color:var(--text-hi);font-size:.9rem;font-weight:600;line-height:1.35}.att-subject-card__type{color:var(--accent);font-size:.78rem;font-weight:500}.att-subject-card__meta{color:var(--text-mid);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:.78rem;display:flex}.att-subject-card__time{color:var(--text-mid);font-size:.75rem}.att-subject-card__marks{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.att-mark-badge{color:#fff;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.7rem;font-weight:700;display:flex}.att-day{margin-bottom:var(--sp-md)}.attendance-week{gap:var(--sp-md);flex-direction:column;display:flex}.att-day--today .att-day__header{color:var(--accent)}.att-day__header{margin-bottom:var(--sp-sm);padding-bottom:var(--sp-xs);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.att-day__date{font-size:.9rem;font-weight:600}.att-day__count{color:var(--text-mid);font-size:.78rem}.att-day__list{flex-direction:column;gap:8px;list-style:none;display:flex}.att-stats{background:var(--bg-raised);border-radius:var(--r-md);border:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.att-stats__group-title{color:var(--text-mid);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.att-stats__chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.att-stats__chip{border-radius:var(--r-pill);background:var(--bg-surface);border:1px solid;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;display:inline-flex}.att-stats__dot{border-radius:50%;width:8px;height:8px}.att-legend{color:var(--text-mid);flex-wrap:wrap;gap:10px 16px;padding:10px 0;font-size:.75rem;display:flex}.att-legend__item{align-items:center;gap:6px;display:inline-flex}.att-legend__swatch{border-radius:3px;width:12px;height:12px}.attendance-panel__summary{gap:var(--sp-sm);flex-direction:column;display:flex}@media (width>=769px){.attendance-panel__toolbar .week-toolbar{max-width:520px}.attendance-panel__summary{align-items:stretch;gap:var(--sp-md);flex-direction:row}.attendance-panel__summary .att-stats{flex:320px;margin-bottom:0}.attendance-panel__summary .att-legend{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);flex:240px;align-self:stretch;margin:0;padding:12px 14px}.attendance-panel__summary:has(.att-stats) .att-legend{flex:240px}.attendance-panel__summary:not(:has(.att-stats)) .att-legend{flex:100%}.att-stats{gap:var(--sp-md);flex-flow:wrap}.att-stats__group{flex:200px;min-width:0}.attendance-week{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start;display:grid}.att-day{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);margin-bottom:0;overflow:hidden}.att-day--today{outline:2px solid var(--accent);outline-offset:-2px}.att-day__header{background:var(--bg-raised);border-bottom:1px solid var(--border);margin-bottom:0;padding:10px 14px}.att-day--today .att-day__header{background:var(--accent-dim)}.att-day__list{padding:10px}.att-subject-card{padding:10px 12px}.att-subject-card__name{font-size:.88rem}}.att-semester__intro{color:var(--text-mid);margin:0;font-size:.82rem;line-height:1.5}.att-semester__load-btn{width:100%;margin-top:var(--sp-sm)}.att-semester__progress-wrap{padding:var(--sp-md) 0;flex-direction:column;align-items:center;gap:10px;display:flex}.att-semester__progress-bar{background:var(--bg-raised);border-radius:3px;width:100%;height:6px;overflow:hidden}.att-semester__progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .2s;display:block}.att-semester__progress-text{color:var(--text-mid);margin:0;font-size:.85rem}.att-semester__summary{color:var(--text-mid);justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.att-semester-grid{flex-direction:column;gap:14px;display:flex}.att-semester-week__label{color:var(--text-mid);margin:0 0 6px;font-size:.75rem;font-weight:600}.att-semester-week__cells{flex-wrap:wrap;gap:4px;display:flex}.att-semester-cell{cursor:pointer;border:none;border-radius:4px;width:16px;height:16px;padding:0;transition:transform .1s;position:relative;box-shadow:0 0 0 1px #0000000f}.att-semester-cell:active{transform:scale(1.15)}.att-semester-cell__head-dot{border-radius:50%;width:5px;height:5px;position:absolute;top:-2px;right:-2px;box-shadow:0 0 0 1px #fff}.att-semester-stats__title{margin-bottom:4px;font-size:1rem;font-weight:600}.att-semester-stats__subtitle{color:var(--text-mid);margin-bottom:var(--sp-md);font-size:.82rem}.att-semester-stats__cards{gap:var(--sp-sm);margin-bottom:var(--sp-md);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.att-semester-stats__card{padding:var(--sp-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);text-align:center}.att-semester-stats__value{color:var(--accent);font-size:1.75rem;font-weight:700;line-height:1.2;display:block}.att-semester-stats__label{margin-top:4px;font-size:.82rem;font-weight:600;display:block}.att-semester-stats__hint{color:var(--text-mid);font-size:.72rem;display:block}.att-semester-stats__bar{border-radius:5px;height:10px;margin:8px 0;display:flex;overflow:hidden}.att-semester-stats__bar-segment{min-width:2px;height:100%}.att-semester-stats__bar-legend{color:var(--text-mid);flex-wrap:wrap;gap:8px 16px;font-size:.75rem;list-style:none;display:flex}.att-semester-stats__legend-dot{border-radius:2px;width:8px;height:8px;margin-right:4px;display:inline-block}.att-modal__title{margin:0;font-size:1.1rem;font-weight:600}.att-modal__type{color:var(--text-mid);margin:4px 0 0;font-size:.85rem}.att-modal__marks{gap:var(--sp-sm);margin-bottom:var(--sp-md);grid-template-columns:1fr 1fr;display:grid}.att-modal__mark{padding:var(--sp-sm);border-radius:var(--r-md);text-align:center;border:2px solid}.att-modal__mark-role{color:var(--text-mid);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;display:block}.att-modal__mark-value{margin-top:4px;font-size:1rem;font-weight:700;display:block}.att-modal__details{gap:var(--sp-sm);display:grid}.att-modal__details dt{color:var(--text-mid);text-transform:uppercase;font-size:.72rem}.att-modal__details dd{margin:2px 0 0;font-size:.9rem;font-weight:500}.cw-page__header{gap:var(--sp-sm);flex-wrap:wrap}.cw-page__refresh{flex-shrink:0}.cw-search{align-items:center;gap:var(--sp-sm);margin-bottom:var(--sp-md);padding:0 var(--sp-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);min-height:48px;box-shadow:var(--shadow-sm);display:flex}.cw-search__icon{color:var(--text-mid);flex-shrink:0}.cw-search__input{min-width:0;color:var(--text-hi);font:inherit;padding:var(--sp-sm) 0;background:0 0;border:none;outline:none;flex:1;font-size:15px}.cw-search__input::placeholder{color:var(--text-lo)}.cw-page .cw-subject-card{background:linear-gradient(145deg, var(--bg-surface) 0%, #0d94880d 100%)}.cw-page .cw-subject-card:hover{background:linear-gradient(145deg, var(--bg-surface) 0%, #0d948817 100%)}.gb-book .cw-subject-card:not(.gb-semester-card){background:linear-gradient(145deg, var(--bg-surface) 0%, #6366f10d 100%)}.gb-book .cw-subject-card:not(.gb-semester-card):hover{background:linear-gradient(145deg, var(--bg-surface) 0%, #6366f117 100%)}.cw-subjects-grid{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:stretch;margin:0;padding:0;list-style:none;display:grid}.cw-subjects-grid>li{min-width:0;display:flex}.cw-subject-card{text-align:left;width:100%;min-height:100%;padding:var(--sp-md) var(--sp-md) var(--sp-sm);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--dur-fast), transform var(--dur-fast), border-color var(--dur-fast);gap:var(--sp-sm);font:inherit;color:inherit;flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.cw-subject-card:before{content:"";background:var(--accent);border-radius:var(--r-lg) 0 0 var(--r-lg);opacity:.85;width:4px;position:absolute;top:0;bottom:0;left:0}.cw-page .cw-subject-card:before{background:linear-gradient(#0d9488 0%,#14b8a6 100%)}.gb-book .cw-subject-card:not(.gb-semester-card):before{background:linear-gradient(#6366f1 0%,#818cf8 100%)}.cw-subject-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-mid);transform:translateY(-2px)}.cw-subject-card:hover:before{opacity:1}.cw-subject-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cw-subject-card__top{justify-content:space-between;align-items:center;gap:var(--sp-sm);display:flex}.cw-subject-card__icon{background:linear-gradient(135deg, rgba(var(--accent-rgb), .18) 0%, rgba(var(--accent-rgb), .06) 100%);width:40px;height:40px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 1px #ffffff14}.cw-page .cw-subject-card__icon{color:#0d9488;background:linear-gradient(135deg,#0d948833 0%,#0d94880f 100%)}.gb-book .cw-subject-card:not(.gb-semester-card) .cw-subject-card__icon{color:#6366f1;background:linear-gradient(135deg,#6366f133 0%,#6366f10f 100%)}.cw-subject-card__badge{border-radius:var(--r-pill);background:var(--accent-dim);color:var(--accent);white-space:nowrap;letter-spacing:.01em;flex-shrink:0;padding:5px 11px;font-size:.78rem;font-weight:700}.cw-subject-card__title{color:var(--text-hi);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:auto;margin:0;padding-right:2px;font-size:1.02rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.cw-subject-card__meta{color:var(--text-mid);align-items:flex-start;gap:6px;min-height:calc(1.4em + 2px);margin:0;font-size:.85rem;line-height:1.4;display:flex}.cw-subject-card__meta span{text-overflow:ellipsis;min-width:0;overflow:hidden}.cw-subject-card__footer{padding-top:var(--sp-sm);border-top:1px solid var(--border);color:var(--text-lo);align-items:center;gap:6px;margin-top:auto;font-size:.82rem;display:flex}.cw-subject-card__footer:before{content:"";background:var(--text-lo);opacity:.45;border-radius:50%;flex-shrink:0;width:6px;height:6px}.gb-semester-card__footer:before,.gb-semester-card .cw-subject-card__footer:before{display:none}.cw-empty{text-align:center;padding:var(--sp-xl) var(--sp-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;align-items:center;display:flex}.cw-empty__icon{color:var(--text-mid);margin-bottom:var(--sp-md)}.cw-empty__title{margin:0 0 var(--sp-xs);color:var(--text-hi);font-size:1.1rem}.cw-empty__text{max-width:360px;color:var(--text-mid);margin:0;font-size:.9rem;line-height:1.5}.cw-skeleton-grid{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.cw-skeleton-card{border-radius:var(--r-md);background:linear-gradient(90deg, var(--bg-raised) 25%, var(--bg-surface) 50%, var(--bg-raised) 75%);border:1px solid var(--border);background-size:200% 100%;height:132px;animation:1.2s ease-in-out infinite cwShimmer}@keyframes cwShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.cw-detail__back{margin-bottom:var(--sp-md);align-items:center;gap:4px;display:inline-flex}.cw-detail__hero{padding:var(--sp-md);margin-bottom:var(--sp-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.cw-detail__title{color:var(--text-hi);margin:0;font-size:1.15rem;line-height:1.35}.cw-detail__meta{gap:var(--sp-sm) var(--sp-md);margin-top:var(--sp-sm);color:var(--text-mid);flex-wrap:wrap;font-size:.85rem;display:flex}.cw-detail__meta span{align-items:center;gap:6px;display:inline-flex}.cw-messages{gap:var(--sp-md);flex-direction:column;display:flex}.cw-message{padding:var(--sp-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.cw-message__meta{gap:var(--sp-sm) var(--sp-md);margin-bottom:var(--sp-sm);padding-bottom:var(--sp-sm);border-bottom:1px solid var(--border);color:var(--text-mid);flex-wrap:wrap;justify-content:space-between;font-size:.82rem;display:flex}.cw-message__date,.cw-message__author{align-items:center;gap:6px;display:inline-flex}.cw-message__body{white-space:pre-wrap;color:var(--text-hi);overflow-wrap:anywhere;font-size:.95rem;line-height:1.6}.cw-files{margin-top:var(--sp-md);padding-top:var(--sp-sm);border-top:1px solid var(--border)}.cw-files__title{color:var(--text-mid);margin-bottom:var(--sp-sm);align-items:center;gap:6px;font-size:.88rem;font-weight:600;display:flex}.cw-files__list{gap:var(--sp-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cw-file-row{gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-sm);flex-direction:column;display:flex}.cw-file-row__name{color:var(--text-hi);word-break:break-word;font-size:.88rem;line-height:1.4}.cw-file-row__actions{gap:var(--sp-xs);flex-wrap:wrap;display:flex}.cw-file-row__btn{flex:auto;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:8px 12px;font-size:.82rem;display:inline-flex}.cw-inline-icon{vertical-align:middle;margin-left:2px;display:inline}@media (width>=640px){.cw-file-row{flex-direction:row;justify-content:space-between;align-items:center}.cw-file-row__actions{flex-wrap:nowrap;flex-shrink:0}.cw-file-row__btn{flex:none;min-height:36px}}.gb-subject-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);margin-bottom:8px;overflow:hidden}.gb-subject-row__header{width:100%;font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-fast);background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.gb-subject-row__header:hover{background:var(--bg-raised)}.gb-semester-picker{border-radius:var(--r-md);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:6px;padding:10px;display:flex}.gb-semester-picker__btn{border-radius:var(--r-sm);background:var(--bg-raised);width:44px;min-width:44px;max-width:44px;height:44px;color:var(--text-hi);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border:2px solid #0000;flex:0 0 44px;font-size:.95rem;font-weight:700}.gb-semester-picker__btn:hover{border-color:var(--accent)}.gb-semester-picker__btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.gb-subject-row__name{flex:1;font-size:.9rem;font-weight:600}.gb-subject-row__mark{border-radius:var(--r-pill);padding:4px 12px;font-size:.85rem;font-weight:700}.gb-subject-row__details{color:var(--text-mid);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;padding:0 16px 12px;font-size:.82rem;display:grid}.gb-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-mid);margin:var(--sp-md) 0 var(--sp-sm);padding-bottom:var(--sp-xs);border-bottom:1px solid var(--border);font-size:.78rem;font-weight:700}.gb-book{gap:var(--sp-md);flex-direction:column;width:100%;display:flex}.gb-stats-row{margin:0}.gb-semester-card__icon{color:#1a73e8;background:#1a73e81a}.gb-semesters-grid{gap:var(--sp-lg);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.gb-semester-card{padding:var(--sp-lg) var(--sp-md) var(--sp-md);gap:var(--sp-sm);background:linear-gradient(145deg, var(--bg-surface) 0%, #1a73e80f 55%, #6366f10a 100%);border-left:none;min-height:168px}.gb-semester-card:before{background:linear-gradient(#1a73e8 0%,#6366f1 100%);width:5px}.gb-semester-card:hover{background:linear-gradient(145deg, var(--bg-surface) 0%, #1a73e81a 55%, #6366f112 100%)}.gb-semester-card__header{justify-content:space-between;align-items:center;gap:var(--sp-sm);display:flex}.gb-semester-card__number{color:#1a73e8;font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:2.5rem;font-weight:800;line-height:1}.gb-semester-card__badge{padding:6px 12px;font-size:.875rem}.gb-semester-card__title{-webkit-line-clamp:1;min-height:auto;font-size:1.2rem;font-weight:700}.gb-semester-card__avg{flex-direction:column;gap:4px;min-height:auto;margin:0;display:flex}.gb-semester-card__avg-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-mid);font-size:.8rem;font-weight:600}.gb-semester-card__avg-value{color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700;line-height:1.2}.gb-semester-card__footer{gap:var(--sp-sm);color:var(--text-mid);flex-wrap:wrap;font-size:.95rem;font-weight:600;display:flex}.gb-semester-card__footer span{border-radius:var(--r-pill);background:#1a73e814;border:1px solid #1a73e81f;padding:4px 10px}.gb-semester-hero__sub{margin:var(--sp-xs) 0 0;color:var(--text-mid);font-size:.88rem}.gb-detail__top{justify-content:space-between;align-items:flex-start;gap:var(--sp-md);display:flex}.gb-mark-badge--lg{border-radius:var(--r-pill);flex-shrink:0;padding:6px 14px;font-size:.85rem;font-weight:700}.gb-detail-grid{gap:var(--sp-sm);padding:var(--sp-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:0;display:grid}.gb-detail-grid__item{padding:var(--sp-sm) var(--sp-md);background:var(--bg-raised);border-radius:var(--r-sm);margin:0}.gb-detail-grid__item--wide{grid-column:1/-1}.gb-detail-grid__item dt{text-transform:uppercase;letter-spacing:.04em;color:var(--text-lo);margin:0 0 4px;font-size:.72rem;font-weight:600}.gb-detail-grid__item dd{color:var(--text-hi);margin:0;font-size:.92rem;line-height:1.4}@media (width>=769px){.gb-semesters-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.gb-semester-card__title{font-size:1.25rem}.gb-semester-card__avg-value{font-size:1.5rem}.gb-semester-card__number{font-size:2.5rem}}@media (width<=768px){.grades-tab-body,.attendance-tab-body{max-width:100%}.att-semester-view-tabs{width:100%;display:flex}.att-semester-view-tabs__btn{text-align:center;flex:1;padding:10px 12px}.week-toolbar{flex-wrap:wrap;padding:10px}.week-toolbar__center{order:-1;width:100%;font-size:.85rem}.att-subject-card{gap:10px;padding:10px 12px}.att-subject-card__title{font-size:.88rem}.att-subject-card__meta{font-size:.75rem}.att-day-grid{gap:var(--sp-sm);grid-template-columns:1fr!important}.att-semester-grid{gap:var(--sp-sm)}.att-semester-week__cells{-webkit-overflow-scrolling:touch;gap:4px;padding-bottom:4px;overflow-x:auto}.att-semester-cell{flex-shrink:0;min-width:28px;min-height:28px}.att-semester-stats__cards{gap:var(--sp-sm);grid-template-columns:1fr 1fr}.gb-semester-picker{gap:8px;padding:12px}.gb-semester-picker__btn{flex:calc(20% - 8px);min-width:40px;max-width:none;height:40px}.gb-subject-row__header{padding:14px 12px}.gb-subject-row__name{font-size:.88rem;line-height:1.3}.gb-subject-row__details{grid-template-columns:1fr;padding:0 12px 14px;font-size:.8rem}.cw-subjects-grid,.cw-skeleton-grid{gap:var(--sp-sm);grid-template-columns:1fr!important}.cw-subject-card{gap:10px;padding:14px 16px}.cw-subject-card:hover{transform:none}.cw-subject-card__title{-webkit-line-clamp:2;font-size:.95rem}.cw-subject-card__icon{width:32px;height:32px}.gb-semester-card{padding:var(--sp-md) var(--sp-md);min-height:160px}.gb-semester-card__number{font-size:2rem}.gb-semester-card__title{font-size:1.1rem}.gb-semester-card__avg-value{font-size:1.25rem}.gb-semester-card__footer{font-size:.9rem}.cw-page__header{align-items:stretch}.cw-page__refresh{align-self:flex-start;width:auto}.cw-detail__title{font-size:1.05rem}.cw-message__meta{flex-direction:column;align-items:flex-start;gap:6px}.cw-file-row__btn-label{display:inline}}@media (width<=480px){.att-semester-stats__cards{grid-template-columns:1fr}.gb-semester-picker__btn{flex:calc(25% - 6px);height:44px}}.gb-detail-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--sp-lg);gap:var(--sp-md);margin-top:var(--sp-md);flex-direction:column;display:flex;position:relative;overflow:hidden}.gb-detail-card:before{content:"";background:linear-gradient(90deg, var(--accent) 0%, var(--accent2) 100%);height:4px;position:absolute;top:0;left:0;right:0}.gb-detail-card__header{justify-content:space-between;align-items:flex-start;gap:var(--sp-md);border-bottom:1px solid var(--border);padding-bottom:var(--sp-md);display:flex}.gb-detail-card__title-section{flex-direction:column;gap:6px;min-width:0;display:flex}.gb-detail-card__work-type{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-dim);border-radius:var(--r-pill);align-self:flex-start;padding:3px 8px;font-size:.72rem;font-weight:700}.gb-detail-card__title{color:var(--text-hi);margin:0;font-size:1.35rem;font-weight:700;line-height:1.3}.gb-detail-card__score-section{flex-shrink:0}.gb-rating-gauge{justify-content:center;align-items:center;width:72px;height:72px;display:flex;position:relative}.gb-rating-gauge__svg{width:100%;height:100%;transform:rotate(-90deg)}.gb-rating-gauge__bg{fill:none;stroke:var(--bg-raised);stroke-width:2.8px}.gb-rating-gauge__fill{fill:none;stroke-width:2.8px;stroke-linecap:round;transition:stroke-dasharray var(--dur-slow) var(--ease-out)}.gb-rating-gauge__content{flex-direction:column;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute}.gb-rating-gauge__val{color:var(--text-hi);font-size:1.15rem;font-weight:700}.gb-rating-gauge__label{color:var(--text-lo);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:.58rem;font-weight:500}.gb-grade-oval{flex-direction:column;align-items:center;gap:4px;display:flex}.gb-grade-oval__sub{color:var(--text-lo);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:600}.gb-detail-card__metrics{gap:var(--sp-md);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.gb-metric-item{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);align-items:center;gap:12px;padding:12px 16px;display:flex}.gb-metric-item:hover{box-shadow:var(--shadow-sm);border-color:var(--border-mid);transform:translateY(-1px)}.gb-metric-item--full{grid-column:1/-1}.gb-metric-item__icon-wrap{border-radius:var(--r-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.gb-metric-item__body{flex-direction:column;gap:2px;min-width:0;display:flex}.gb-metric-item__label{color:var(--text-lo);font-size:.72rem;font-weight:500}.gb-metric-item__value{color:var(--text-hi);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;overflow:hidden}.gb-metric-item__value--lecturer{white-space:normal;line-height:1.3}.sch-panel{gap:var(--sp-md);flex-direction:column;width:100%;display:flex}.sch-panel__header-row{justify-content:space-between;align-items:center;gap:var(--sp-sm);flex-wrap:wrap;display:flex}.sch-panel__current{border-radius:var(--r-pill);background:var(--accent-dim);color:var(--accent);align-items:center;gap:8px;max-width:100%;padding:8px 12px;font-size:.85rem;font-weight:600;display:inline-flex}.sch-panel__current span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sch-toolbar{align-items:stretch;gap:var(--sp-sm);display:flex}.sch-toolbar .week-toolbar{flex:1;min-width:0}.sch-toolbar__search{flex-shrink:0;min-width:44px;padding:0 12px}.sch-subgroup{gap:var(--sp-sm);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);flex-direction:column;padding:12px 14px;display:flex}.sch-subgroup--compact{box-shadow:none;background:0 0;border:none;padding:0}.sch-subgroup--compact .sch-subgroup__buttons{width:100%}.sch-subgroup__label{color:var(--text-mid);font-size:.82rem;font-weight:600}.sch-subgroup__buttons{flex-wrap:wrap;gap:6px;display:flex}.sch-subgroup__btn{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-surface);min-width:88px;color:var(--text-mid);font:inherit;cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);flex:1 1 0;font-size:.82rem;font-weight:600}.sch-subgroup__btn:hover{border-color:var(--accent);color:var(--accent)}.sch-subgroup__btn--active{background:var(--accent);border-color:var(--accent);color:#fff}.sch-week{gap:var(--sp-md);flex-direction:column;display:flex}.sch-week-block{gap:var(--sp-sm);flex-direction:column;display:flex}.sch-week-block--primary{margin-bottom:var(--sp-md)}.sch-week-block__title{color:var(--text-hi);margin:0;font-size:.95rem;font-weight:700}.sch-week-block__title--primary{padding-bottom:var(--sp-xs);border-bottom:2px solid var(--accent);font-size:1.05rem}.sch-week-block__title--link{justify-content:space-between;align-items:center;gap:var(--sp-sm);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);width:100%;box-shadow:var(--shadow-sm);cursor:pointer;font:inherit;text-align:left;transition:border-color var(--dur-fast), background var(--dur-fast);padding:12px 14px;display:flex}.sch-week-block__title--link:has(+.sch-week-compact){border-radius:var(--r-md) var(--r-md) 0 0;box-shadow:none;border-bottom:none}.sch-week-block__title--link:hover{border-color:var(--accent);background:var(--bg-raised)}.sch-week-block__meta{color:var(--text-mid);flex-shrink:0;font-size:.78rem;font-weight:600}.sch-week-block__empty{color:var(--text-lo);border:1px dashed var(--border);border-radius:var(--r-md);margin:0;padding:10px 14px;font-size:.85rem}.sch-weeks-list{gap:var(--sp-md);padding-top:var(--sp-md);border-top:1px solid var(--border);flex-direction:column;display:flex}.sch-weeks-list__heading{text-transform:uppercase;letter-spacing:.05em;color:var(--text-mid);margin:0;font-size:.78rem;font-weight:700}.sch-week-compact{border:1px solid var(--border);border-radius:0 0 var(--r-md) var(--r-md);background:var(--bg-raised);border-top:none;flex-direction:column;gap:10px;margin-top:-1px;padding:0 14px 14px;display:flex}.sch-week-block__title--link+.sch-week-compact,.sch-week-block__title--link+.sch-week-block__empty{margin-top:-1px}.sch-week-compact__day{border-top:1px solid var(--border);padding-top:10px}.sch-week-compact__day:first-child{border-top:none;padding-top:0}.sch-week-compact__day-head{justify-content:space-between;align-items:center;gap:var(--sp-sm);margin-bottom:6px;display:flex}.sch-week-compact__day-title{color:var(--text-hi);font-size:.82rem;font-weight:700}.sch-week-compact__day-badge{color:var(--text-lo);font-size:.72rem}.sch-week-compact__lessons{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sch-week-compact__lesson{grid-template-columns:72px 1fr;gap:4px 8px;font-size:.8rem;line-height:1.35;display:grid}.sch-week-compact__time{color:var(--text-mid);font-variant-numeric:tabular-nums}.sch-week-compact__discipline{color:var(--text-hi);font-weight:500}.sch-week-compact__room{color:var(--text-lo);grid-column:2;font-size:.75rem}.sch-day{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);overflow:hidden}.sch-day--today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim)}.sch-day__header{justify-content:space-between;align-items:center;gap:var(--sp-sm);background:var(--bg-raised);border-bottom:1px solid var(--border);padding:10px 14px;display:flex}.sch-day--today .sch-day__header{background:var(--accent-dim)}.sch-day__title{color:var(--text-hi);margin:0;font-size:.95rem;font-weight:700}.sch-day__badge{border-radius:var(--r-pill);background:var(--accent-dim);color:var(--accent);padding:4px 10px;font-size:.72rem;font-weight:600}.sch-day__lessons{flex-direction:column;gap:8px;padding:10px;display:flex}.sch-lesson{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised);overflow:hidden}.sch-lesson__head{color:inherit;background:0 0;border:none;justify-content:space-between;align-items:stretch;display:flex}.sch-lesson__top{flex-wrap:wrap;align-items:flex-start;gap:6px;margin-bottom:8px;display:flex}.sch-lesson__title{color:var(--text-hi);flex:180px;margin:0;font-size:.9rem;font-weight:700;line-height:1.35}.sch-lesson__type{border-radius:var(--r-pill);background:var(--accent-dim);color:var(--accent);white-space:nowrap;padding:3px 8px;font-size:.68rem;font-weight:600}.sch-lesson__row{color:var(--text-mid);align-items:center;gap:6px;margin-bottom:4px;font-size:.8rem;display:flex}.sch-lesson__lecturer{color:var(--text-hi);margin:8px 0 0;font-size:.78rem;font-weight:500}.sch-lesson__extra{border-top:1px dashed var(--border);color:var(--text-mid);padding:0 12px 12px;font-size:.8rem}.sch-lesson__extra p{margin:8px 0 0}.sch-lesson__label{min-width:72px;color:var(--accent);margin-right:6px;font-weight:600;display:inline-block}.sch-search{gap:var(--sp-sm);flex-direction:column;display:flex}.sch-search__input{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);width:100%;color:var(--text-hi);font:inherit;outline:none;padding:12px 14px;font-size:16px}.sch-search__input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.sch-search__list{flex-direction:column;gap:8px;max-height:50vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.sch-search__item{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);overflow:hidden}.sch-search__item-main{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;padding:12px 14px}.sch-search__item-main:hover{background:var(--bg-raised)}.sch-search__item-title{color:var(--text-hi);align-items:center;gap:6px;margin-bottom:4px;font-weight:700;display:flex}.sch-search__item-desc{color:var(--text-mid);font-size:.82rem;line-height:1.4}.sch-search__apply{gap:var(--sp-sm);flex-direction:column;padding:0 12px 12px;display:flex}.sch-search__subgroup{border-radius:var(--r-sm);background:var(--bg-raised);border:1px solid var(--border);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.sch-search__subgroup-label{color:var(--text-mid);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.sch-search__actions{gap:8px;display:flex}.sch-search__actions .btn{flex:1}@media (width>=769px){.sch-week--primary{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;display:grid}}.sch-exclusions{gap:var(--sp-sm);padding:var(--sp-md);border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface-2);flex-direction:column;display:flex}.sch-exclusions__head{color:var(--text-secondary);align-items:flex-start;gap:10px;display:flex}.sch-exclusions__title{color:var(--text);margin:0;font-size:.9rem;font-weight:600}.sch-exclusions__hint{color:var(--text-secondary);margin:4px 0 0;font-size:.78rem;line-height:1.35}.sch-exclusions__list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sch-exclusions__chip{border-radius:var(--r-pill);background:var(--surface-3);align-items:center;gap:4px;padding:4px 6px 4px 10px;font-size:.82rem;display:inline-flex}.sch-exclusions__chip-remove{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.sch-exclusions__chip-remove:hover{background:var(--surface-1);color:var(--text)}.sch-exclusions__add{gap:8px;display:flex}.sch-exclusions__input{flex:1;min-width:0}.sch-exclusions__suggestions{flex-wrap:wrap;gap:8px;display:flex}.sch-exclusions__suggestion{border:1px dashed var(--border);border-radius:var(--r-pill);color:var(--text-secondary);cursor:pointer;background:0 0;padding:4px 10px;font-size:.78rem}.sch-exclusions__suggestion:hover{border-color:var(--accent);color:var(--accent)}.sch-lesson__status-badge{border-radius:var(--r-pill);align-items:center;gap:4px;padding:3px 8px;font-size:.72rem;font-weight:600;line-height:1;display:inline-flex}.sch-lesson__status-badge svg{flex-shrink:0}.sch-lesson__status-badge--in-calendar{background:var(--accent2-dim);color:var(--ok)}.sch-lesson__status-badge--subgroup{background:var(--bg-raised);color:var(--text-mid);border:1px solid var(--border)}.sch-lesson__status-badge--excluded{color:var(--danger);background:#d9302514}.sch-lesson__status-badge--missing{color:var(--warn);background:#ea860014}.sch-lesson--excluded-discipline{opacity:.75;background:var(--bg-base);border-style:dashed}.sch-lesson--excluded-subgroup{opacity:.6;background:var(--bg-base);border-color:var(--border)}.sch-lesson__actions{border-top:1px dashed var(--border);justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;display:flex}.sch-lesson__btn{border-radius:var(--r-pill);cursor:pointer;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-mid);transition:all var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:6px;width:100%;padding:8px 14px;font-size:.78rem;font-weight:600;display:inline-flex}@media (width>=480px){.sch-lesson__btn{width:auto}}.sch-lesson__btn:hover{background:var(--bg-raised);color:var(--text-hi);border-color:var(--border-mid)}.sch-lesson__btn--danger{color:var(--danger);border-color:#d930254d}.sch-lesson__btn--danger:hover{border-color:var(--danger);color:var(--danger);background:#d9302514}.sch-lesson__btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.sch-lesson__btn--primary:hover{background:var(--accent);opacity:.9;color:#fff}.sch-lesson__chevron-btn{width:24px;height:24px;color:var(--text-lo);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-top:4px;display:inline-flex}.sch-lesson__chevron-btn:hover{background:var(--bg-raised);color:var(--text-hi)}.sch-controls-row{justify-content:space-between;align-items:center;gap:var(--sp-sm);margin-top:4px;display:flex}.sch-toggle{cursor:pointer;color:var(--text-mid);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:.8rem;display:inline-flex}.sch-toggle input{opacity:0;width:0;height:0;position:absolute}.sch-toggle__slider{background-color:var(--border);border-radius:var(--r-pill);width:34px;height:20px;transition:background-color var(--dur-fast);display:inline-block;position:relative}.sch-toggle__slider:before{content:"";width:14px;height:14px;transition:transform var(--dur-fast);background-color:#fff;border-radius:50%;position:absolute;bottom:3px;left:3px}.sch-toggle input:checked+.sch-toggle__slider{background-color:var(--accent)}.sch-toggle input:checked+.sch-toggle__slider:before{transform:translate(14px)}.sch-toggle__label{font-weight:500}.sch-lesson__info-area{cursor:pointer;flex:1;padding:12px}.sch-lesson__info-area:hover{background:var(--bg-overlay)}.sch-lesson__side-area{border-left:1px solid var(--border);flex-direction:column;justify-content:space-between;align-items:flex-end;gap:6px;min-width:125px;padding:12px;display:flex}.flashcards-page{gap:var(--sp-lg);max-width:560px;padding-bottom:calc(var(--sp-xl) + env(safe-area-inset-bottom,0px));flex-direction:column;margin:0 auto;display:flex}.fc-page{max-width:none}.fc-page__header{margin-bottom:0}.fc-page .fc-stats{max-width:720px}.fc-session-wrap{gap:var(--sp-md);flex-direction:column;width:100%;max-width:560px;margin:0 auto;display:flex}.fc-page .cw-subject-card{background:linear-gradient(145deg, var(--bg-surface) 0%, #6366f10d 100%)}.fc-page .cw-subject-card:hover{background:linear-gradient(145deg, var(--bg-surface) 0%, #6366f117 100%)}.fc-page .cw-subject-card:before{background:linear-gradient(#6366f1 0%,#818cf8 100%)}.fc-page .cw-subject-card__icon{color:#6366f1;background:linear-gradient(135deg,#6366f133 0%,#6366f10f 100%)}.fc-subject-item{position:relative}.fc-subject-done{z-index:2;border:1px solid var(--border);background:var(--bg-surface);width:34px;height:34px;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-sm);transition:color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast), transform var(--dur-fast);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:10px}.fc-subject-done:hover{color:#16a34a;background:#16a34a14;border-color:#16a34a59;transform:scale(1.04)}.fc-subject-done.is-done{color:#16a34a;background:#16a34a1f;border-color:#16a34a73}.fc-subject-card--done{opacity:.82}.fc-subject-card--done:before{background:linear-gradient(#16a34a 0%,#22c55e 100%)!important}.fc-subject-card__badge--done{color:#15803d;background:#16a34a1f}.fc-completed-toggle{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.875rem;text-decoration:underline}.fc-completed-toggle:hover{opacity:.85}.fc-completed-section{gap:var(--sp-sm);margin-top:var(--sp-md);flex-direction:column;display:flex}.fc-completed-section__title{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:.875rem;font-weight:600}.fc-hero__actions{flex-shrink:0;gap:8px;display:flex}.fc-stats{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.fc-stat{border-radius:var(--r-lg);background:var(--bg-surface);border:1px solid var(--border);flex-direction:column;gap:2px;padding:12px 10px;display:flex;position:relative;overflow:hidden}.fc-stat:before{content:"";background:var(--border);border-radius:3px 0 0 3px;width:3px;position:absolute;inset:0 auto 0 0}.fc-stat--due:before{background:var(--accent)}.fc-stat--new:before{background:var(--accent2,#43a047)}.fc-stat--learned:before{background:#7e57c2}.fc-stat__row{justify-content:space-between;align-items:center;gap:4px;display:flex}.fc-stat__value{color:var(--text-hi);font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:700;line-height:1.1}.fc-stat--due .fc-stat__value{color:var(--accent)}.fc-stat--new .fc-stat__value{color:var(--accent2,#43a047)}.fc-stat--learned .fc-stat__value{color:#7e57c2}.fc-stat__icon{color:var(--text-mid);opacity:.7}.fc-stat--due .fc-stat__icon{color:var(--accent);opacity:1}.fc-stat--new .fc-stat__icon{color:var(--accent2,#43a047);opacity:1}.fc-stat__label{color:var(--text-mid);font-size:.6875rem;font-weight:500;line-height:1.2}.fc-session{gap:var(--sp-md);flex-direction:column;display:flex}.fc-progress{flex-direction:column;gap:8px;display:flex}.fc-progress__track{background:var(--bg-raised);border-radius:999px;height:6px;overflow:hidden}.fc-progress__fill{border-radius:inherit;background:linear-gradient(90deg, var(--accent), #6366f1);height:100%;transition:width .35s var(--ease-out)}.fc-progress__meta{color:var(--text-mid);justify-content:space-between;align-items:center;gap:8px;font-size:.8125rem;display:flex}.fc-progress__count{color:var(--text-hi);font-variant-numeric:tabular-nums;font-weight:600}.fc-progress__badges{align-items:center;gap:8px;display:flex}.fc-badge{background:var(--bg-raised);color:var(--text-mid);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:.6875rem;font-weight:600}.fc-badge--due{background:var(--accent-dim);color:var(--accent);border-color:#0000}.fc-badge--new{background:var(--accent2-dim,#43a0471a);color:var(--accent2,#43a047);border-color:#0000}.fc-card{gap:var(--sp-sm);min-height:220px;max-height:min(58vh,520px);padding:var(--sp-lg) var(--sp-lg) var(--sp-md);border-radius:var(--r-xl);background:linear-gradient(165deg, var(--bg-surface) 0%, var(--bg-raised) 100%);border:1px solid var(--border);flex-direction:column;display:flex;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f}.fc-card--back{border-color:rgba(var(--accent-rgb), .35);box-shadow:0 1px 2px #0000000a, 0 8px 28px rgba(var(--accent-rgb), .12)}.fc-card__label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-mid);background:var(--bg-raised);border-radius:999px;flex-shrink:0;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;font-size:.6875rem;font-weight:700;display:inline-flex}.fc-card--back .fc-card__label{color:var(--accent);background:var(--accent-dim)}.fc-card__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding-right:4px;overflow-y:auto}.fc-card__body::-webkit-scrollbar{width:6px}.fc-card__body::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.fc-card__md{font-size:.9375rem;line-height:1.6}.fc-card__md h1,.fc-card__md h2,.fc-card__md h3{margin-top:.35em;font-size:1.05rem}.fc-card__md p:first-child,.fc-card__md ul:first-child,.fc-card__md ol:first-child{margin-top:0}.fc-card__flip{border:1px dashed var(--border);border-radius:var(--r-md);cursor:pointer;color:var(--text-mid);transition:border-color var(--dur-fast), background var(--dur-fast), color var(--dur-fast);background:0 0;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;gap:6px;margin-top:auto;padding:10px 12px;font-family:inherit;font-size:.75rem;display:inline-flex}.fc-card__flip:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.fc-card__flip kbd{border:1px solid var(--border);background:var(--bg-surface);border-radius:4px;padding:2px 6px;font-family:inherit;font-size:.6875rem}.fc-meta{justify-content:space-between;align-items:center;gap:var(--sp-sm);color:var(--text-mid);padding:0 4px;font-size:.8125rem;display:flex}.fc-meta__source{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fc-meta__link{color:var(--accent);flex-shrink:0;align-items:center;gap:2px;font-weight:500;text-decoration:none;display:inline-flex}.fc-meta__link:hover{text-decoration:underline}.fc-rating{animation:fc-fade-in .25s var(--ease-out);flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:4px;padding-top:8px;display:grid}@keyframes fc-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fc-rate{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;transition:transform var(--dur-fast), border-color var(--dur-fast), box-shadow var(--dur-fast), background var(--dur-fast);flex-direction:column;align-items:center;gap:4px;padding:12px 6px;font-family:inherit;display:flex}.fc-rate:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.fc-rate:active:not(:disabled){transform:translateY(0)}.fc-rate:disabled{opacity:.55;cursor:not-allowed}.fc-rate__icon{border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.fc-rate__label{color:var(--text-hi);font-size:.8125rem;font-weight:600}.fc-rate__sub{color:var(--text-mid);font-size:.625rem}.fc-rate--again .fc-rate__icon{color:#e53935;background:#e539351f}.fc-rate--again:hover:not(:disabled){background:#e539350f;border-color:#e53935}.fc-rate--hard .fc-rate__icon{color:#fb8c00;background:#fb8c001f}.fc-rate--hard:hover:not(:disabled){background:#fb8c000f;border-color:#fb8c00}.fc-rate--good .fc-rate__icon{background:var(--accent-dim);color:var(--accent)}.fc-rate--good:hover:not(:disabled){border-color:var(--accent);background:var(--accent-dim)}.fc-rate--easy .fc-rate__icon{color:#43a047;background:#43a0471f}.fc-rate--easy:hover:not(:disabled){background:#43a0470f;border-color:#43a047}.fc-panel{text-align:center;align-items:center;gap:var(--sp-md);padding:var(--sp-xl) var(--sp-lg);border-radius:var(--r-xl);background:var(--bg-surface);border:1px solid var(--border);flex-direction:column;display:flex}.fc-panel__icon{background:var(--accent-dim);width:56px;height:56px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:flex}.fc-panel__icon--success{background:var(--accent2-dim,#43a0471f);color:var(--accent2,#43a047)}.fc-panel__title{color:var(--text-hi);margin:0;font-size:1.0625rem;font-weight:600}.fc-panel__hint{color:var(--text-mid);max-width:360px;margin:0;font-size:.8125rem;line-height:1.5}.fc-panel__hint code{background:var(--bg-raised);border-radius:4px;padding:2px 6px;font-size:.75rem}.fc-loading{justify-content:center;align-items:center;gap:var(--sp-md);min-height:240px;color:var(--text-mid);flex-direction:column;font-size:.875rem;display:flex}@media (width<=768px){.fc-stats{grid-template-columns:repeat(2,1fr)}.fc-rating{z-index:2;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom, transparent, var(--bg-base) 24%);grid-template-columns:repeat(2,1fr);position:sticky;bottom:0}.fc-card{max-height:min(52vh,440px)}.fc-card__md{font-size:.9rem}.fc-hero__title{font-size:1.2rem}}@media (prefers-reduced-motion:reduce){.fc-progress__fill,.fc-rate,.fc-rating{transition:none;animation:none}}.profile-page{gap:var(--sp-md);flex-direction:column;display:flex}.profile-hero{align-items:center;gap:var(--sp-md);padding:var(--sp-lg);display:flex}.profile-hero__avatar{background:linear-gradient(135deg, var(--accent), var(--accent-2,#6366f1));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:1.5rem;font-weight:700;display:flex;overflow:hidden}.profile-hero__avatar img{object-fit:cover;width:100%;height:100%}.profile-hero__name{color:var(--text-hi);margin:0;font-size:1.25rem;font-weight:700}.profile-hero__group{color:var(--accent);margin:4px 0 0;font-size:.9375rem;font-weight:600}.profile-hero__spec{color:var(--text-mid);margin:4px 0 0;font-size:.8125rem;line-height:1.4}.profile-section-title{margin:0 0 var(--sp-sm);color:var(--text-hi);align-items:center;gap:8px;font-size:.875rem;font-weight:600;display:flex}.profile-section-title--plain{padding:0 var(--sp-xs)}.profile-info,.profile-account{padding:var(--sp-md) var(--sp-lg)}.profile-dl{grid-template-columns:minmax(120px,38%) 1fr;gap:8px 12px;margin:0;display:grid}.profile-dl dt{color:var(--text-mid);margin:0;font-size:.8125rem}.profile-dl dd{color:var(--text-hi);margin:0;font-size:.875rem;font-weight:500}.profile-hint{margin:var(--sp-sm) 0 0;color:var(--text-mid);font-size:.8125rem;line-height:1.45}.profile-stats{gap:var(--sp-sm);flex-direction:column;display:flex}.profile-stats__grid{gap:var(--sp-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.profile-stat{padding:var(--sp-md);align-items:center;gap:10px;min-height:72px;display:flex}.profile-stat--link{color:inherit;text-decoration:none;transition:border-color .15s,transform .15s}.profile-stat--link:hover{border-color:var(--accent);transform:translateY(-1px)}.profile-stat__icon{background:var(--surface-2,#6366f11f);width:36px;height:36px;color:var(--accent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.profile-stat__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.profile-stat__value{color:var(--text-hi);font-size:1.125rem;font-weight:700}.profile-stat__label{color:var(--text-mid);font-size:.75rem}.profile-stat__chevron{color:var(--text-low);flex-shrink:0}.profile-links{margin-top:var(--sp-md);padding-top:var(--sp-md);border-top:1px solid var(--border);flex-direction:column;gap:4px;display:flex}.profile-link-row{color:var(--text-hi);align-items:center;gap:10px;padding:10px 0;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.profile-link-row span{flex:1}.profile-link-row svg:last-child{color:var(--text-low)}.profile-logout{width:100%;margin-top:var(--sp-md);justify-content:center}.profile-alert{padding:var(--sp-md);color:var(--text-mid)}@media (width>=768px){.profile-stats__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-hero__avatar{width:88px;height:88px;font-size:1.75rem}}.profile-hero{position:relative;overflow:hidden;background:linear-gradient(135deg, rgba(var(--accent-rgb), .08) 0%, #34a8530f 100%)!important;border-color:rgba(var(--accent-rgb), .15)!important}.profile-hero:before{content:"";background:radial-gradient(circle, rgba(var(--accent-rgb),.12) 0%, transparent 70%);pointer-events:none;width:120px;height:120px;position:absolute;top:-40px;right:-40px}.profile-hero__avatar{animation:logoAppear .6s var(--ease-spring) both}.profile-hero__name{animation:fadeSlideRight .4s .1s var(--ease-decel) both}.profile-hero__group{animation:fadeSlideRight .4s .2s var(--ease-decel) both}.profile-hero__spec{animation:fadeSlideRight .4s .25s var(--ease-decel) both}.profile-stat{transition:transform var(--dur-mid) var(--ease-spring), box-shadow var(--dur-mid) var(--ease-decel), border-color var(--dur-fast)!important}.profile-stat:hover{box-shadow:var(--shadow-md)!important;border-color:rgba(var(--accent-rgb),.25)!important;transform:translateY(-3px)!important}.profile-stat--link:hover .profile-stat__chevron{transform:translate(4px)}.profile-stat__chevron{transition:transform var(--dur-mid) var(--ease-spring)}.profile-link-row{transition:all var(--dur-mid) var(--ease-decel)!important}.profile-link-row:hover{transform:translate(4px);background:var(--accent-dim)!important;border-color:rgba(var(--accent-rgb),.2)!important}.profile-logout{width:100%;margin-top:var(--sp-sm);justify-content:center;color:var(--danger)!important;transition:all var(--dur-mid) var(--ease-decel)!important;border-color:#d9302533!important}.profile-logout:hover{background:#d9302514!important;box-shadow:0 2px 8px #d9302526!important}.profile-stats__grid>*{animation:staggerFadeIn var(--dur-mid) var(--ease-decel) both}.profile-stats__grid>:first-child{animation-delay:40ms}.profile-stats__grid>:nth-child(2){animation-delay:80ms}.profile-stats__grid>:nth-child(3){animation-delay:.12s}.profile-stats__grid>:nth-child(4){animation-delay:.16s}.profile-stats__grid>:nth-child(5){animation-delay:.2s}.profile-stats__grid>:nth-child(6){animation-delay:.24s}.profile-stats__grid>:nth-child(7){animation-delay:.28s}.profile-stats__grid>:nth-child(8){animation-delay:.32s}.profile-settings{padding:var(--sp-md) var(--sp-lg)}.profile-settings.has-open-dropdown{z-index:20;position:relative}.profile-settings__row{justify-content:space-between;align-items:center;gap:var(--sp-md);margin-top:var(--sp-sm);display:flex}.profile-settings__row label{color:var(--text-mid);font-size:.875rem;font-weight:500}.theme-selector-container{width:auto;min-width:175px;position:relative}.theme-selector-trigger{background-color:var(--bg-raised);width:100%;color:var(--text-hi);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);-webkit-user-select:none;user-select:none;outline:none;justify-content:space-between;align-items:center;padding:8px 12px;font-family:inherit;font-size:.875rem;font-weight:500;display:flex}.theme-selector-trigger:hover{background-color:var(--bg-surface);border-color:var(--border-mid)}.theme-selector-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .15)}.theme-selector-trigger__content{align-items:center;gap:var(--sp-sm);display:flex}.theme-selector-trigger .chevron-down{transition:transform var(--dur-fast) var(--ease-out);color:var(--text-lo);margin-left:8px}.theme-selector-container.is-open .theme-selector-trigger .chevron-down{transform:rotate(180deg)}.theme-color-bubbles{align-items:center;gap:4px;display:flex}.theme-color-bubble{border:1px solid #00000026;border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block;box-shadow:0 1px 2px #0000000d}:root.dark-theme .theme-color-bubble{border-color:#ffffff26}.theme-selector-dropdown{z-index:1000;background-color:var(--bg-overlay);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--r-lg);min-width:210px;box-shadow:var(--shadow-lg);transform-origin:100% 0;animation:themeDropdownIn var(--dur-fast) var(--ease-out);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}@keyframes themeDropdownIn{0%{opacity:0;transform:scale(.95)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.theme-selector-option{border-radius:var(--r-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);text-align:left;width:100%;color:var(--text-hi);background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 10px;font-family:inherit;font-size:.875rem;display:flex}.theme-selector-option:hover{background-color:var(--bg-raised)}.theme-selector-option.is-selected{background-color:var(--accent-dim);color:var(--accent);font-weight:600}.theme-selector-option__left{align-items:center;gap:var(--sp-sm);display:flex}.theme-selector-option .check-icon{color:var(--accent);margin-left:8px}
