:root{--bg:#0a0a0f;--surface:rgba(21,21,27,.6);--surface2:#1c1c26;--border:#2a2a38;--text:#e8e8f0;--text-muted:#848497;--text-dim:#4c4c55;--accent:#c8b8ff;--grid-line:rgba(200,184,255,.03);--link:#b8860b;--link-hover:#49371b;--link-active:#daa520}html.light{--bg:#f4f4f8;--surface:hsla(0,0%,100%,.7);--surface2:#eeeef4;--border:#d0d0e0;--text:#1a1a2e;--text-muted:#6b6b85;--text-dim:#a0a0b8;--accent:#6d4fc2;--grid-line:rgba(100,80,180,.05);--link:#3874c8;--link-hover:#143c75;--link-active:#082040}*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;transition:background .25s ease,color .25s ease}body:before{content:"";inset:0;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:40px 40px;z-index:-1}#seaBackground,body:before{position:fixed;pointer-events:none}#seaBackground{left:0;right:0;bottom:0;height:0;height:100vh;overflow:hidden;z-index:0;background:radial-gradient(circle at top,rgba(30,70,116,.26),transparent 38%);transition:height .25s ease;opacity:.8}#seaBackground canvas{width:100%!important;height:100%!important}.sidebar-quick-count{margin-bottom:10px}.sidebar-quick-count strong{display:block;color:var(--text-muted);font-size:12px}.sidebar-quick-count span{display:block;font-weight:600;color:var(--accent);margin-top:4px}a:link{transition:color .2s linear}a:link,a:visited{color:var(--link)}a:hover,a:link,a:visited{background-color:transparent;text-decoration:none}a:hover{color:var(--link-hover)}a:active{color:var(--link-active);background-color:transparent;text-decoration:underline}.top-bar{background:rgba(220,15,15,.848);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:8px 20px;font-weight:500;justify-content:space-between}.top-bar-close{background:transparent;border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer}.top-bar a{color:#a799ff}.top-bar a:hover{color:#48167d}.page-layout{position:relative;z-index:1;display:grid;grid-template-columns:220px 1fr 220px;grid-template-areas:"left main right";gap:0;max-width:1440px;margin:0 auto;align-items:start;padding:40px 20px 80px}.sidebar{position:sticky;top:40px;padding:0 20px}.sidebar-left{grid-area:left}.sidebar-right{grid-area:right}.sidebar-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:16px}.sidebar-panel-label{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;display:flex;align-items:center;gap:8px}.sidebar-panel-label:after{content:"";flex:1;height:1px;background:var(--border)}.sidebar-section{margin-bottom:14px}.sidebar-section:last-child{margin-bottom:0}.sidebar-section-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.sidebar-section-label{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap;padding:2px 6px;border:1px solid transparent;border-radius:4px}.sidebar-section-line{flex:1;height:1px;background:var(--border)}.sidebar-text{font-size:12px;color:var(--text-muted);line-height:1.6}.sidebar-text p{margin-bottom:6px}.sidebar-text p:last-child{margin-bottom:0}.sidebar-tag{font-family:DM Mono,monospace;font-size:10px;padding:3px 8px;border-radius:4px;border:1px solid var(--border);color:var(--text-muted);display:inline-block;margin:2px 2px 2px 0}.container{grid-area:main;position:relative;z-index:1;padding:0 24px}@media (max-width:1100px){.page-layout{grid-template-columns:1fr;grid-template-areas:"main";padding:40px 20px 80px}.sidebar{display:none}.container{padding:0}}header{margin-bottom:16px}.header-top{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:8px}.tag-header{color:var(--accent);margin-bottom:12px}.tag,.tag-header{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;padding:4px 10px;border:1px solid rgba(200,184,255,.3);border-radius:4px;display:inline-block}.tag{color:#fff;background:#24135d}h1{font-family:DM Mono,monospace;font-size:clamp(26px,5vw,42px);font-weight:700;letter-spacing:-.02em;line-height:1.1}h1 span{color:var(--accent)}.live-clock{font-family:DM Mono,monospace;font-size:13px;color:var(--text-muted);text-align:right}.live-clock .time{font-size:20px;color:var(--accent);display:block;margin-top:2px}.legend{gap:20px;flex-wrap:wrap;margin-bottom:28px}.legend,.legend-item{display:flex;align-items:center}.legend-item{gap:8px;font-size:12px;color:var(--text-muted)}.legend-swatch{width:32px;height:7px;border-radius:4px}.legend-dot{width:10px;height:10px;border-radius:50%;border:2px solid;flex-shrink:0}.controls{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:16px}.controls-label{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}.controls-topbar{display:flex;align-items:center;justify-content:end;margin-bottom:10px;gap:10px;flex-wrap:wrap}.controls-settings-box{display:grid;grid-template-columns:auto auto auto;gap:16px;align-items:flex-start}.controls-column{display:flex;flex-direction:column;gap:10px}@media (min-width:768px){.flattened-column{flex-direction:row;flex-wrap:wrap;gap:20px;justify-content:flex-start}}.controls-column-left,.controls-column-middle{justify-content:flex-start}.controls-column-right{display:flex;flex-direction:row;gap:8px;justify-content:flex-end;flex-wrap:wrap;align-items:flex-start}.controls-setting{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted);cursor:pointer}.controls-setting span:first-child{font-family:DM Sans,sans-serif;font-size:13px;color:var(--text-muted);transition:color .18s ease}.controls-setting span:first-child:has(~.switch input:checked+.slider){color:var(--accent)}.controls-topbar-left{display:flex;align-items:center;justify-self:start;gap:10px;margin-right:auto}.controls-topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filter-count{font-size:12px;color:var(--text-muted);white-space:nowrap;opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .22s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.filter-count strong{color:var(--accent);font-family:DM Mono,monospace}.filter-count.visible{opacity:1;transform:translateX(0);pointer-events:auto}.btn,.filter-btn{font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;padding:4px 10px;border-radius:20px;border:1px solid var(--border);background:hsla(0,0%,42%,.095);color:var(--text-muted);cursor:pointer;transition:all .18s ease;white-space:nowrap;display:flex;align-items:center;gap:4px}@media (hover:hover) and (pointer:fine){.filter-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);transform:translateY(-1px);transition:transform .18s ease}}.filter-btn.active{background:rgba(200,184,255,.12);border-color:var(--accent);color:var(--accent)}.shortcut-label{font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:2px 5px;margin-left:4px;opacity:.7;transition:opacity .18s ease,background .18s ease,border-color .18s ease;display:inline-flex;align-items:center;justify-content:center;min-width:18px;text-align:center}.shortcut-label:has(+.switch input:checked+.slider){opacity:1;color:var(--accent);border-color:var(--accent);background:rgba(200,184,255,.06)}.category-label-btn.cat-active .shortcut-label{opacity:1;color:var(--accent);border-color:var(--accent);background:rgba(200,184,255,.06)}.filter-btn:hover:not(:disabled) .shortcut-label{opacity:1;color:var(--text-muted);border-color:var(--accent)}.filter-btn.active .shortcut-label{opacity:1;color:var(--accent);border-color:var(--accent);background:rgba(200,184,255,.06)}@media (hover:none) and (pointer:coarse){.shortcut-label{display:none}}.filter-grid{gap:6px}.filter-category{margin-bottom:10px}.category-header{margin-bottom:6px}.category-label-btn{font-size:8px;padding:2px 4px}.filter-collapse-btn{display:flex;width:32px;height:32px;padding:0;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text-muted);cursor:pointer;align-items:center;justify-content:center;transition:all .18s ease;font-size:14px}@media (hover:hover) and (pointer:fine){.filter-collapse-btn:hover{border-color:var(--accent);color:var(--accent)}}.btn{font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:hsla(0,0%,42%,.095);color:var(--text-muted);cursor:pointer;transition:all .18s ease;white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:6px}#calbtn.active:before,#compactbtn.active:before,.btn.active:before{opacity:1}@media (hover:hover) and (pointer:fine){.btn:hover{border-color:var(--accent);color:var(--accent)}}.btn.active{background:rgba(200,184,255,.12);border-color:var(--accent);color:var(--accent)}.filter-category{margin-bottom:14px}.filter-category:last-child{margin-bottom:0}.category-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.category-label-btn{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);background:none;border:1px solid transparent;border-radius:4px;padding:2px 6px;cursor:pointer;transition:all .18s ease;white-space:nowrap}@media (hover:hover) and (pointer:fine){.category-label-btn:hover{color:var(--accent);border-color:rgba(200,184,255,.3)}}.category-label-btn.cat-active{color:var(--accent);border-color:rgba(200,184,255,.35);background:rgba(200,184,255,.06)}.category-line{flex:1;height:1px;background:var(--border)}.filter-grid{display:flex;flex-wrap:wrap;gap:8px}.clear-btn-wrap{overflow:hidden;height:0;will-change:height;margin-top:0}.filter-btn.red-btn{border-color:rgba(239,68,68,.4);color:#fca5a5;background:rgba(239,68,68,.08);transform:translateY(5px);opacity:0;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .38s cubic-bezier(.34,1.4,.64,1),opacity .28s ease}.clear-btn-wrap.open .filter-btn.red-btn{transform:translateY(0);opacity:1}@media (hover:hover) and (pointer:fine){.filter-btn.red-btn:hover{border-color:#ef4444;color:#fecaca;background:rgba(239,68,68,.18)}}.exam-list{display:flex;flex-direction:column;gap:10px}.exam-card{position:relative;background:var(--surface);border:1px solid var(--border);border-left-width:3px;border-radius:10px;padding:16px 20px;transition:transform .15s;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (hover:hover) and (pointer:fine){.exam-card:hover{transform:translateX(5px)}}.exam-card .status-badge.over{position:absolute;top:12px;right:14px;z-index:10}body.compact .exam-card .status-badge.over{top:8px;right:10px}.exam-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}.exam-subject{font-weight:600;font-size:15px}.exam-component{font-size:12px;color:var(--text-muted);margin-top:2px;display:block}.exam-title-block{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.status-badge{font-family:DM Mono,monospace;font-size:11px;font-weight:700;letter-spacing:.08em;padding:4px 10px;border-radius:6px;white-space:nowrap;flex-shrink:0}.status-badge.inprogress{background:rgba(168,85,247,.18);color:#d8b4fe;border:1px solid rgba(168,85,247,.4);animation:none}.status-badge.over{background:rgba(59,130,246,.12);color:#93c5fd;border:1px solid rgba(59,130,246,.3)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.count-info-extra{color:var(--text-muted);font-weight:700}.exam-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:14px}.badge{font-family:DM Mono,monospace;font-size:10px;padding:3px 8px;border-radius:4px;border:1px solid var(--border);color:var(--text-muted)}.countdown-block{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.countdown-timer{font-family:DM Mono,monospace;font-size:13px;letter-spacing:.04em;color:var(--text);white-space:nowrap;min-width:200px}.countdown-timer.dim{color:var(--text-muted)}.progress-wrap{flex:1;min-width:100px;height:6px;background:var(--surface2);border-radius:3px;overflow:hidden}.progress-bar{height:100%;border-radius:3px}.section-divider{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);display:flex;align-items:center;gap:12px;margin:24px 0 12px}.section-divider:after{content:"";flex:1;height:1px;background:var(--border)}.half-term-divider{color:#4ade80;letter-spacing:.12em}.half-term-divider:after{background:rgba(74,222,128,.25)}.count-info{font-size:12px;color:var(--text-muted);margin-bottom:12px}.count-info strong{color:var(--accent);font-family:DM Mono,monospace}.count-info .count-info-extra{color:var(--text-muted);font-weight:700}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted);font-size:14px;display:none}body.compact .exam-list{gap:4px}body.compact .exam-card{padding:8px 14px 9px;border-radius:7px;display:grid;grid-template-columns:minmax(0,1fr) 180px;grid-template-rows:auto;-moz-column-gap:20px;column-gap:20px;align-items:center}body.compact .exam-top{grid-column:1;grid-row:1;margin-bottom:0;align-items:baseline;flex-wrap:nowrap;gap:0}body.compact .exam-subject{font-size:13px;line-height:1.2}body.compact .exam-component{display:block;font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 15px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 15px),transparent)}body.compact .exam-component:before{content:none}body.compact .exam-title-block{white-space:nowrap;width:100%}body.compact .exam-meta{display:none}body.compact .countdown-block{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:4px;min-width:170px;padding-top:2px;height:100%}body.compact .countdown-timer{font-size:11px;line-height:1.2;min-width:unset;text-align:right;width:100%}body.compact .progress-wrap{width:100%;height:4px;min-width:unset;flex:none;margin:5.5px 0}body.compact .status-badge{font-size:9px;padding:2px 7px;border-radius:4px}body.compact .half-term-divider,body.compact .section-divider{margin:10px 0 5px}body.progress .empty-state,body.progress .exam-list{display:none}.progress-tracker{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:40px;margin:0 auto;animation:slideIn .3s ease}.progress-header{text-align:center;margin-bottom:30px}.progress-header h2{font-family:DM Mono,monospace;font-size:24px;color:var(--text);letter-spacing:.05em}.progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:40px}.stat-box{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:16px;text-align:center}.stat-label{font-size:12px;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;display:block}.stat-value{font-family:DM Mono,monospace;font-size:20px;font-weight:700;color:var(--accent)}.progress-circles-row{display:flex;gap:40px;justify-content:center;align-items:flex-start;flex-wrap:wrap;margin-bottom:40px}.progress-circle-wrap{display:flex;flex-direction:column;align-items:center;gap:10px}.progress-circle-caption{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);text-align:center}.progress-circle-container{position:relative;width:200px;height:200px;margin:0}.progress-circle{width:100%;height:100%;transform:rotate(-90deg)}.progress-bg{fill:none;stroke:rgba(200,184,255,.1);stroke-width:8}.circle-fill{fill:none;stroke-width:8;stroke-linecap:round;stroke-dasharray:595.9;stroke-dashoffset:595.9;transition:stroke-dashoffset .6s ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.progress-text-percent{display:block;font-family:DM Sans,DM Mono,monospace;font-size:27px;font-weight:700;line-height:1}.progress-text-label{display:block;font-size:12px;color:var(--text-muted);margin-top:4px;letter-spacing:.05em}.progress-circle-wrap{transition:transform .2s ease}.progress-circle-wrap:hover{transform:scale(1.04)}.progress-circle-container{transition:box-shadow .3s ease}.sea-effect-enabled .progress-circle-wrap.circle-selected .progress-circle{filter:drop-shadow(0 0 3px rgba(255,255,255,.5));outline:2px solid hsla(0,0%,100%,.45);outline-offset:4px;border-radius:50%}html.light.sea-effect-enabled .progress-circle-wrap.circle-selected .progress-circle{filter:drop-shadow(0 0 3px rgba(0,0,0,.3));outline:2px solid rgba(0,0,0,.25)}@media (max-width:768px){.progress-circles-row{flex-direction:column;gap:18px;align-items:stretch}.progress-circle-wrap{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;width:100%;gap:14px;padding:8px 0;min-width:0}.progress-circle-container{position:relative;display:flex;align-items:center;gap:30px;width:auto;height:auto;min-width:0}.progress-circle{width:80px;height:80px;flex:none}.progress-text{position:static;transform:none;text-align:left;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1;min-width:0;margin:0;padding-right:0}.progress-text-percent{font-size:22px}.progress-text-label{font-size:12px;margin-top:6px}}.progress-milestone{background:rgba(168,85,247,.1);border:2px solid var(--accent);border-radius:10px;padding:16px;text-align:center;margin-bottom:30px;animation:milestonePopIn .5s cubic-bezier(.34,1.56,.64,1)}.milestone-icon{display:inline-block;font-size:32px;margin-right:8px;animation:milestoneJiggle .6s ease infinite}.milestone-text{font-family:DM Mono,monospace;font-size:14px;color:var(--accent);font-weight:600;letter-spacing:.05em}@keyframes milestonePopIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes milestoneJiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.progress-subjects{border-top:1px solid var(--border);padding-top:20px}.subjects-header{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:12px}.subjects-list{display:flex;flex-direction:column;gap:10px}.subject-progress-item{display:flex;align-items:center;gap:12px}.subject-progress-bar-track{flex:1;height:6px;background:rgba(200,184,255,.1);border-radius:3px;overflow:hidden;position:relative;display:flex}.subject-progress-fill{height:100%;transition:width .4s ease;flex-shrink:0}.exam-fill{background:#a855f7}.cw-fill{background:#6d28d9}.subject-progress-label{width:130px;flex-shrink:0;font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subject-progress-count{width:36px;flex-shrink:0;text-align:right;font-family:DM Sans,monospace;font-size:11px;color:var(--accent)}html.light .progress-tracker{background:var(--surface);border-color:var(--border)}html.light .stat-box{background:var(--surface2);border-color:var(--border)}html.light .progress-milestone{background:rgba(109,79,194,.08);border-color:var(--accent)}body.cal .exam-list{gap:0}.buttonsDiv{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}#monthBackBtn,#monthFwdBtn{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:7px 18px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:all .18s ease}@media (hover:hover) and (pointer:fine){#monthBackBtn:hover,#monthFwdBtn:hover{border-color:var(--accent);color:var(--accent);background:rgba(200,184,255,.07)}}#calendar{width:100%;border-collapse:collapse;table-layout:fixed;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:visible;animation:slideIn .3s ease}#calendar thead tr th,#calendar tr:first-child th{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);padding:12px 4px;text-align:center;border-bottom:1px solid var(--border);background:var(--surface);font-weight:400}#calendar tr{animation:slideIn .3s ease}#calendar td,#calendar tr:first-child th:nth-child(6),#calendar tr:first-child th:nth-child(7){color:var(--text-dim)}#calendar td{vertical-align:top;padding:10px 8px 8px;border:1px solid var(--border);min-height:90px;font-family:DM Mono,monospace;font-size:11px;transition:background .15s;position:relative;overflow:visible}#calendar td.curMonth{color:var(--text-muted);background:var(--surface)}#calendar td.nextMonth{color:var(--text-dim);background:rgba(0,0,0,.15)}#calendar td:not(.curMonth):not(.nextMonth){background:rgba(0,0,0,.2)}#calendar td:nth-child(6),#calendar td:nth-child(7){background:rgba(0,0,0,.12)}html.light #calendar td.nextMonth{background:#f0f0f6}html.light #calendar td:not(.curMonth):not(.nextMonth){background:#e8e8f0}html.light #calendar td:nth-child(6),html.light #calendar td:nth-child(7){background:#ebebf2}#calendar td.today{background:rgba(200,184,255,.06);border-color:rgba(200,184,255,.25)}html.light #calendar td.today{background:#f3e8ff;border-color:#d8b4fe}#calendar td.today:after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.8}.cal-exam{display:flex;flex-direction:column;margin-top:5px;padding:4px 6px;border-radius:4px;border-left:2px solid var(--accent);background:rgba(200,184,255,.07);gap:1px;cursor:default;transition:background .15s}html.light .cal-exam{background:#ede9f6}.cal-exam.other-exam{border-left:none;background:rgba(107,107,127,.08);opacity:.8}html.light .cal-exam.other-exam{background:rgba(107,107,127,.1)}@media (hover:hover) and (pointer:fine){.cal-exam:hover{background:rgba(200,184,255,.13)}html.light .cal-exam:hover{background:#ddd4f0}}.cal-exam-subject{font-size:10px;font-weight:600;color:var(--text)}.cal-exam-component,.cal-exam-subject{font-family:DM Sans,sans-serif;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-exam-component{font-size:9px;font-weight:400;color:var(--text-muted)}.cal-exam{position:relative}.cal-exam.open{z-index:200}@media (hover:hover) and (pointer:fine){.cal-exam:hover{z-index:200}}.cal-exam-tooltip{display:none;position:absolute;z-index:200;left:0;top:calc(100% + 6px);min-width:280px;max-width:340px;background:var(--surface);border:1px solid var(--border);border-left-width:3px;border-radius:10px;padding:14px 16px;box-shadow:0 8px 32px rgba(0,0,0,.5);pointer-events:none;font-family:DM Sans,sans-serif;font-size:14px;color:var(--text);backdrop-filter:blur(10px)}.cal-exam.flip-up .cal-exam-tooltip{top:auto;bottom:calc(100% + 6px)}.cal-exam.flip-left .cal-exam-tooltip{left:auto;right:0}@media (hover:hover) and (pointer:fine){.cal-exam:hover .cal-exam-tooltip{display:block}}.cal-exam.open .cal-exam-tooltip{display:block}.cal-tooltip-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}.cal-tooltip-title-block{display:flex;flex-direction:column;gap:2px;min-width:0}@media (max-width:700px){#calendar tr:first-child th{font-size:7px;padding:8px 2px;letter-spacing:0}#calendar td{padding:6px 4px 4px;font-size:10px}.cal-exam-subject{font-size:9px}.cal-exam-component{display:none}}.multi-calendar-wrapper{display:flex;flex-direction:column;gap:0;margin-bottom:20px;border:1px solid var(--border)}.continuous-calendar,.multi-calendar-wrapper{width:100%;overflow:visible;border-radius:10px}.continuous-calendar{border-collapse:collapse;table-layout:fixed;background:var(--surface);animation:slideIn .3s ease}.continuous-calendar thead tr:first-child :first-child{border-top-left-radius:10px}.continuous-calendar thead tr:first-child :last-child{border-top-right-radius:10px}.continuous-calendar tbody tr:last-child :first-child{border-bottom-left-radius:10px}.continuous-calendar tbody tr:last-child :last-child{border-bottom-right-radius:10px}.continuous-calendar td.cal-month-col,.continuous-calendar th.cal-month-col{width:42px;min-width:42px;max-width:42px;padding:6px 2px 0;border:none;border-right:1px solid var(--border);background:var(--surface2);vertical-align:top;text-align:center;font-family:DM Mono,monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:600;white-space:nowrap}.continuous-calendar thead tr th{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);padding:12px 4px;text-align:center;border-bottom:1px solid var(--border);background:var(--surface);font-weight:400}.continuous-calendar thead tr th:nth-child(7),.continuous-calendar thead tr th:nth-child(8){color:var(--text-dim)}.continuous-calendar tbody td{vertical-align:top;padding:8px 6px 6px;border:1px solid var(--border);min-height:70px;font-family:DM Mono,monospace;font-size:11px;color:var(--text-dim);transition:background .15s;position:relative;overflow:visible}.continuous-calendar tbody td.curMonth{color:var(--text-muted);background:var(--surface)}.continuous-calendar tbody td.empty{background:rgba(0,0,0,.15)}.continuous-calendar tbody td:nth-child(7),.continuous-calendar tbody td:nth-child(8){background:rgba(0,0,0,.1)}html.light .continuous-calendar tbody td.empty{background:#ebebf2}html.light .continuous-calendar tbody td:nth-child(7),html.light .continuous-calendar tbody td:nth-child(8){background:#f0f0f6}html.light .continuous-calendar td.cal-month-col,html.light .continuous-calendar th.cal-month-col{background:var(--surface2)}.continuous-calendar tbody td.today{background:rgba(200,184,255,.06);border-color:rgba(200,184,255,.25)}html.light .continuous-calendar tbody td.today{background:#f3e8ff;border-color:#d8b4fe}.continuous-calendar tbody td.today:after{content:"";position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.8}.continuous-calendar tbody td.cal-month-col.month-border-top,.continuous-calendar tbody td.month-border-top{border-top:2px solid rgba(200,184,255,.5)!important}.continuous-calendar tbody td.month-border-left{border-left:2px solid rgba(200,184,255,.5)!important}@media (max-width:768px){.continuous-calendar td.cal-month-col,.continuous-calendar th.cal-month-col{width:26px;min-width:26px;max-width:26px;font-size:6px;padding:5px 1px 0;letter-spacing:0}.continuous-calendar thead tr th{font-size:7px;padding:8px 2px;letter-spacing:0}.continuous-calendar tbody td{padding:5px 3px 4px;font-size:9px;min-height:52px}}#calendar.hide-weekends td:nth-child(6),#calendar.hide-weekends td:nth-child(7),#calendar.hide-weekends tr:first-child th:nth-child(6),#calendar.hide-weekends tr:first-child th:nth-child(7),.continuous-calendar.hide-weekends tbody td:nth-child(7),.continuous-calendar.hide-weekends tbody td:nth-child(8),.continuous-calendar.hide-weekends thead tr th:nth-child(7),.continuous-calendar.hide-weekends thead tr th:nth-child(8){display:none}body.multical .exam-list{gap:0}.sidebar-sublabel{display:block;font-size:10px;color:var(--text-dim);margin-top:4px;font-family:DM Sans,sans-serif;line-height:1.4}.toggle-mode{display:flex;align-items:start;justify-content:start;margin-bottom:12px}.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch input{opacity:0;width:0;height:0;position:absolute}.slider{position:relative;display:inline-block;width:36px;height:20px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;transition:background .25s ease,border-color .25s ease;flex-shrink:0;font-size:0}.slider:before{content:"";position:absolute;width:13px;height:13px;left:3px;top:50%;transform:translateY(-50%);background:var(--text-muted);border-radius:50%;transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .25s ease}.switch input:checked+.slider{background:rgba(200,184,255,.15);border-color:var(--accent)}.switch input:checked+.slider:before{transform:translate(16px,-50%);background:var(--accent)}.switch input:checked~.switch:after,.switch:has(input:checked):after{color:var(--accent)}#speakingDates{margin-top:0}.speaking-dates-wrapper{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.speaking-dates-header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.speaking-dates-label{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);white-space:nowrap}.speaking-dates-hint{font-size:11px;color:var(--text-dim)}.speaking-dates-grid{display:flex;flex-direction:column;gap:8px}.speaking-date-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.speaking-date-label{font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;color:var(--text-muted);min-width:60px}.speaking-date-input,.speaking-time-input{font-family:DM Mono,monospace;font-size:11px;padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;transition:border-color .18s ease}.speaking-date-input{flex:1;min-width:160px}.speaking-time-input{width:100px;flex:none}.speaking-date-input::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.2);cursor:pointer}html.light .speaking-date-input::-webkit-calendar-picker-indicator{filter:brightness(.8)}.speaking-time-input::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.2);cursor:pointer}html.light .speaking-time-input::-webkit-calendar-picker-indicator{filter:brightness(.8)}.speaking-date-input:focus,.speaking-time-input:focus{outline:none;border-color:var(--accent)}@media (hover:hover) and (pointer:fine){.speaking-date-input:hover,.speaking-time-input:hover{border-color:var(--accent)}}.speaking-date-clear{font-family:DM Sans,sans-serif;font-size:11px;padding:3px 8px;border-radius:20px;border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.07);color:#fca5a5;cursor:pointer;transition:all .18s ease;flex-shrink:0}@media (hover:hover) and (pointer:fine){.speaking-date-clear:hover{border-color:#ef4444;background:rgba(239,68,68,.18);color:#fecaca}}.speaking-badge{font-family:DM Mono,monospace;font-size:9px;padding:2px 6px;border-radius:4px;border:1px solid rgba(200,184,255,.35);background:rgba(200,184,255,.08);color:var(--accent);vertical-align:middle;margin-left:6px}.card-hover-tooltip{display:none}body.hover-cards.compact .exam-card{position:relative;overflow:visible}body.hover-cards.compact .exam-card .card-hover-tooltip{display:none;position:absolute;z-index:300;left:0;top:calc(100% + 6px);min-width:300px;max-width:380px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;box-shadow:0 8px 32px rgba(0,0,0,.5);pointer-events:none;font-family:DM Sans,sans-serif;font-size:14px;color:var(--text)}@media (hover:hover) and (pointer:fine){body.hover-cards.compact .exam-card:hover{z-index:300;transform:translateX(5px)}body.hover-cards.compact .exam-card:hover .card-hover-tooltip{display:block}}body.hover-cards.compact .exam-card.tooltip-flip-up .card-hover-tooltip{top:auto;bottom:calc(100% + 6px)}body.hover-cards.compact .exam-card.tooltip-flip-left .card-hover-tooltip{left:auto;right:0}body.hover-cards:not(.compact):not(.cal) .exam-card{position:relative;overflow:visible}body.hover-cards:not(.compact):not(.cal) .exam-card .card-hover-tooltip{display:none}body.hover-cards.compact .exam-card.other-exam .card-hover-tooltip{background:rgba(28,28,38,.6);backdrop-filter:blur(8px)}html.light body.hover-cards.compact .exam-card.other-exam .card-hover-tooltip{background:hsla(0,0%,100%,.5);backdrop-filter:blur(8px)}.toggle-mode{display:none!important}#sidebarSettingsPanel .sidebar-text{display:flex;align-items:center}.quick-links-menu{display:flex;gap:12px;margin-bottom:16px;transition:all .25s ease;animation:slideIn .3s ease}.quick-links-menu.hidden{display:none}.quick-link-box{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:14px;flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:10px;text-decoration:none;color:var(--text);transition:all .18s ease;cursor:pointer}.quick-link-box:active,.quick-link-box:hover,.quick-link-box:link,.quick-link-box:visited{background-color:var(--surface)}@media (hover:hover) and (pointer:fine){.quick-link-box:hover{background:var(--surface2);border-color:var(--accent);transform:translateY(-2px);transition:transform .18s ease;box-shadow:0 4px 12px rgba(200,184,255,.1)}}.quick-link-box i{font-size:24px;color:var(--accent);flex-shrink:0}.quick-link-icon-img{width:24px;height:24px;-o-object-fit:contain;object-fit:contain;flex-shrink:0;border-radius:4px}.quick-link-content{display:flex;flex-direction:column;gap:2px;min-width:0}.quick-link-title{font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;color:var(--text)}.quick-link-desc{font-family:DM Sans,sans-serif;font-size:11px;color:var(--text-muted);line-height:1.3}.countdowns-menu{display:flex;gap:12px;margin-bottom:16px;transition:all .25s ease;animation:slideIn .3s ease}.countdowns-menu.hidden{display:none}.countdown-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 16px;flex:1;border:1px solid var(--border);border-radius:10px;text-align:center;transition:all .18s ease}.countdown-box,.countdown-box:hover{background:var(--surface)}.countdown-label{font-family:DM Mono,monospace;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.countdown-time{font-family:DM Mono,monospace;font-size:16px;font-weight:400;color:var(--text);line-height:1}.countdown-sublabel{font-family:DM Sans,sans-serif;font-size:10px;color:var(--text-muted)}.countdown-box{cursor:pointer}.countdown-box:hover{background:var(--surface2);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px rgba(200,184,255,.1)}.highlight-flash{animation:highlightFlash .6s ease-out}@keyframes highlightFlash{0%{background-color:rgba(200,184,255,.2);transform:scale(1)}50%{background-color:rgba(200,184,255,.1)}to{background-color:transparent;transform:scale(1)}}@media (max-width:768px){.countdowns-menu,.quick-links-menu{flex-direction:column}.filter-collapse-btn{display:flex}.filter-collapse-btn.collapsed i{transform:rotate(180deg)}#filterCategories.collapsed,#speakingDates.collapsed{display:none}.controls-settings-box{grid-template-columns:1fr;gap:12px}.controls-column-right{justify-content:flex-start}}.assistant{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:16px;animation:slideIn .3s ease;min-height:500px}.assistant-controls{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.assistant-label{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-right:auto}.assistant-button{font-family:DM Sans,sans-serif;font-size:11px;padding:3px 10px;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .18s ease}.assistant-button:hover{border-color:var(--accent);color:var(--accent)}.assistant-tabs{display:flex;gap:4px}.asst-tab{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .18s ease}.asst-tab.active,.asst-tab:hover{border-color:var(--accent);color:var(--accent)}.asst-tab.active{background:rgba(200,184,255,.12)}.asst-pane{display:none}.asst-pane.active{display:block}.asst-section{margin-bottom:14px}.asst-section:last-child{margin-bottom:0}.asst-section-header{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;display:flex;align-items:center;gap:8px}.asst-section-header:after{content:"";flex:1;height:1px;background:var(--border)}.asst-subject-block{background:var(--surface2);border:1px solid var(--border);border-radius:8px;margin-bottom:10px;overflow:hidden}.asst-subject-header{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;gap:8px}.asst-subject-header:hover{background:rgba(200,184,255,.04)}.asst-subject-name{font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;color:var(--text);flex:1;min-width:80px}.asst-priority-row{display:flex;align-items:center;gap:6px;margin-left:auto}.asst-priority-label{font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.asst-input-sm{font-family:DM Mono,monospace;font-size:12px;width:56px;padding:3px 6px;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--text);transition:border-color .15s ease;text-align:center}.asst-input-sm:focus{outline:none;border-color:var(--accent)}.asst-input-sm.asst-grade,.asst-priority-input{width:42px}.asst-subject-chevron{font-size:10px;color:var(--text-dim);transition:transform .2s ease;flex-shrink:0}.asst-subject-block.open .asst-subject-chevron{transform:rotate(180deg)}.asst-subject-body{display:none;padding:0 12px 10px}.asst-subject-block.open .asst-subject-body{display:block}.asst-difficulty-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.asst-difficulty-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.asst-diff-label{font-family:DM Sans,sans-serif;font-size:11px;color:var(--text-muted);flex:1;min-width:140px}.asst-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--border);outline:none;cursor:pointer;flex:1;min-width:60px;max-width:120px;transition:background .15s}.asst-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;-webkit-transition:transform .15s ease,box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease}.asst-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}.asst-slider:hover::-webkit-slider-thumb{transform:scale(1.2);box-shadow:0 0 6px rgba(200,184,255,.5)}.asst-slider-val{font-family:DM Mono,monospace;font-size:11px;color:var(--accent);min-width:16px;text-align:right;flex-shrink:0}.asst-diff-input{font-family:DM Mono,monospace;font-size:12px;width:56px;padding:3px 6px;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--text);text-align:center;transition:border-color .15s ease}.asst-diff-input:focus{outline:none;border-color:var(--accent)}.asst-pp-section{margin-top:8px}.asst-pp-header{font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:6px}.asst-pp-list{display:flex;flex-direction:column;gap:4px}.asst-pp-row{display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap}.asst-pp-row-label{font-family:DM Mono,monospace;font-size:10px;color:var(--text-dim);width:18px;flex-shrink:0}.asst-pp-input{font-family:DM Mono,monospace;font-size:12px;padding:2px 5px;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text);text-align:center;transition:border-color .15s ease}.asst-pp-input:focus{outline:none;border-bottom-color:var(--accent)}.asst-pp-pct{width:50px}.asst-pp-grade{width:36px}.asst-pp-date{width:96px;font-size:11px}.asst-pp-del{margin-left:auto;background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:13px;padding:0 2px;transition:color .15s ease;flex-shrink:0}.asst-pp-del:hover{color:#ef4444}.asst-add-pp{display:flex;align-items:center;gap:5px;margin-top:5px;padding:4px 8px;border:1px dashed var(--border);border-radius:6px;background:none;color:var(--text-dim);font-family:DM Sans,sans-serif;font-size:11px;cursor:pointer;transition:all .15s ease;width:100%;justify-content:center}.asst-add-pp:hover{border-color:var(--accent);color:var(--accent)}.asst-coursework-grid{display:flex;flex-direction:column;gap:8px}.asst-coursework-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.asst-cw-label{font-family:DM Sans,sans-serif;font-size:12px;color:var(--text-muted);flex:1;min-width:120px}.asst-pred-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.asst-pred-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap}.asst-pred-subject{font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;color:var(--text);flex:1;min-width:80px}.asst-pred-val{font-family:DM Mono,monospace;font-size:14px;color:var(--accent)}.asst-pred-grade{font-family:DM Mono,monospace;font-size:13px;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:2px 8px;min-width:28px;text-align:center}.asst-pred-bar-wrap{width:80px;height:4px;background:var(--bg);border-radius:2px;overflow:hidden}.asst-pred-bar{height:100%;border-radius:2px;background:linear-gradient(90deg,#ef4444,#eab308,#22c55e);transition:width .4s ease}.asst-total-box{display:flex;align-items:center;gap:12px;padding:12px 14px;background:rgba(200,184,255,.06);border:1px solid rgba(200,184,255,.25);border-radius:8px;margin-bottom:12px;flex-wrap:wrap}.asst-total-label{font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);flex:1}.asst-total-val{font-family:DM Mono,monospace;font-size:28px;color:var(--accent);line-height:1}.asst-total-pct{font-family:DM Mono,monospace;font-size:14px;color:var(--text-muted)}.asst-priority-box{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:12px}.asst-priority-list-item{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--border)}.asst-priority-list-item:last-child{border-bottom:none}.asst-pri-rank{font-family:DM Mono,monospace;font-size:11px;color:var(--text-dim);width:20px;flex-shrink:0}.asst-pri-subject{font-family:DM Sans,sans-serif;font-size:12px;color:var(--text);flex:1}.asst-pri-score{font-family:DM Mono,monospace;font-size:11px;color:var(--text-muted)}.asst-pri-badge{font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.1em;padding:2px 6px;border-radius:3px;flex-shrink:0}.asst-pri-badge.high{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}.asst-pri-badge.med{background:rgba(234,179,8,.15);color:#eab308;border:1px solid rgba(234,179,8,.3)}.asst-pri-badge.low{background:rgba(34,197,94,.15);color:#22c55e;border:1px solid rgba(34,197,94,.3)}.asst-charts-row{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:12px}.asst-chart-block{flex:1;min-width:180px;display:flex;flex-direction:column;align-items:center;gap:10px}.asst-chart-title{font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.asst-chart-legend{display:flex;flex-direction:column;gap:4px;width:100%}.asst-legend-item{display:flex;align-items:center;gap:6px;font-family:DM Sans,sans-serif;font-size:11px;color:var(--text-muted)}.asst-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.asst-empty{font-family:DM Sans,sans-serif;font-size:12px;color:var(--text-dim);text-align:center;padding:16px 0}.assistant.expanded{position:fixed;inset:20px;z-index:1000;overflow-y:auto;margin-bottom:0}.asst-ai-disclaimer{display:flex;flex-direction:column;gap:10px;padding:14px;background:rgba(200,184,255,.06);border:1px solid rgba(200,184,255,.2);border-radius:8px;font-size:12px;color:var(--text-muted);line-height:1.6}.asst-ai-disclaimer i{color:var(--accent);font-size:14px;align-self:flex-start}.asst-ai-disclaimer-btn{font-family:DM Sans,sans-serif;font-size:12px;padding:5px 14px;border-radius:20px;border:1px solid var(--accent);background:rgba(200,184,255,.1);color:var(--accent);cursor:pointer;align-self:flex-start;transition:all .15s ease}.asst-ai-disclaimer-btn:hover{background:rgba(200,184,255,.2)}.asst-ai-body,.asst-ai-output{display:flex;flex-direction:column;gap:8px}.asst-ai-output{min-height:140px;max-height:280px;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:13px}.asst-ai-placeholder{color:var(--text-dim);font-size:12px;font-style:italic;align-self:center;margin:auto}.asst-ai-msg{padding:6px 10px;border-radius:8px;line-height:1.55;max-width:92%;font-size:12px;word-break:break-word}.asst-ai-msg-user{background:rgba(200,184,255,.12);border:1px solid rgba(200,184,255,.2);color:var(--text);align-self:flex-end}.asst-ai-msg-assistant{background:var(--surface2);border:1px solid var(--border);color:var(--text);align-self:flex-start}.asst-ai-typing{display:flex;align-items:center;gap:4px;padding:8px 12px}.asst-ai-typing span{width:6px;height:6px;border-radius:50%;background:var(--text-dim);animation:asstTyping 1.2s ease-in-out infinite}.asst-ai-typing span:nth-child(2){animation-delay:.2s}.asst-ai-typing span:nth-child(3){animation-delay:.4s}@keyframes asstTyping{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.asst-ai-input-row{display:flex;gap:6px;align-items:flex-end}.asst-ai-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:7px 10px;color:var(--text);font-family:DM Sans,sans-serif;font-size:13px;resize:none;transition:border-color .15s ease;line-height:1.4}.asst-ai-input:focus{outline:none;border-color:var(--accent)}.asst-ai-send{width:32px;height:32px;border-radius:8px;border:1px solid var(--accent);background:rgba(200,184,255,.12);color:var(--accent);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.asst-ai-send:hover{background:rgba(200,184,255,.25)}.asst-ai-send:disabled{opacity:.4;cursor:not-allowed}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--surface);border-radius:8px;border:1px solid var(--border)}::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:8px;border:2px solid var(--surface2);-webkit-transition:background .2s,box-shadow .2s;transition:background .2s,box-shadow .2s}::-webkit-scrollbar-thumb:hover{background:var(--text-dim);box-shadow:0 0 8px rgba(200,184,255,.5)}::-webkit-scrollbar-corner{background:var(--surface)}@media (min-width:768px){.controls-settings-box.expanded .controls-column-right{width:100%;transform:translateX(0);transform-origin:right;z-index:10}}.count-info-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.count-info-row .count-info{flex:1;margin:0}.print-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease;flex-shrink:0}.print-btn:hover{background:var(--border);border-color:var(--accent)}@media print{html.print-force-light,html:not(.light):not(.dark){--bg:#fff;--surface:#fff;--surface2:#f4f4f8;--border:#d0d0e0;--text:#1a1a2e;--text-muted:#6b6b85;--text-dim:#a0a0b8;--accent:#6d4fc2;--grid-line:transparent;--link:#3874c8;--link-hover:#143c75;--link-active:#082040}html.print-force-light .container,html.print-force-light .exam-card,html.print-force-light .exam-list,html.print-force-light body{background:#fff!important;color:#1a1a2e!important}#seaBackground,.controls,.count-info-row .print-btn,.countdowns-menu,.empty-state:not(:only-child),.quick-links-menu,.rev-planner-wrapper,.sidebar,.sidebar-left,.sidebar-right,.top-bar,body:before,header{display:none!important}.page-layout{display:block!important}.container{max-width:100%!important;padding:0!important;margin:0!important}.count-info-row{margin-bottom:12px}.exam-card{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid;box-shadow:none!important;border:1px solid #d0d0e0!important;border-left-width:4px!important;margin-bottom:8px!important;animation:none!important}html.print-force-light .exam-card{background:#fff!important;color:#1a1a2e!important}.card-hover-tooltip,.countdown-block,.progress-wrap{display:none!important}.exam-meta{flex-wrap:wrap}.cal-exam-tooltip,.card-hover-tooltip{display:none!important}.section-divider{-moz-column-break-before:auto;break-before:auto}*,.status-badge{print-color-adjust:exact;-webkit-print-color-adjust:exact}body:before{display:none!important}}#printBtn{color:var(--accent);background:var(--surface)}#printBtn:disabled{color:var(--text-dim)}#popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.92);width:min(90vw,520px);background:rgba(19,19,26,.92);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:14px;padding:28px;color:var(--text);z-index:9;box-shadow:0 20px 60px rgba(0,0,0,.45),0 0 0 1px rgba(200,184,255,.05);animation:popupIn .45s cubic-bezier(.34,1.56,.64,1) forwards}html.light #popup{background:hsla(0,0%,100%,.94);box-shadow:0 20px 60px rgba(0,0,0,.12),0 0 0 1px rgba(109,79,194,.08)}#popup:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(200,184,255,.08),transparent 40%);pointer-events:none}html.light #popup:before{background:linear-gradient(135deg,rgba(109,79,194,.06),transparent 40%)}#popup h2{font-family:DM Mono,monospace;font-size:18px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}#popup p{font-size:14px;line-height:1.7;color:var(--text-muted)}#popup strong{color:var(--text);font-weight:600}#popup .popup-exams{margin-top:16px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:70vh}#popup .popup-exam{padding:10px 12px;border-radius:8px;background:rgba(200,184,255,.06);border:1px solid rgba(200,184,255,.12);font-size:13px;color:var(--text)}html.light #popup .popup-exam{background:rgba(109,79,194,.06);border-color:rgba(109,79,194,.15)}@keyframes popupIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media (max-width:768px){#popup{padding:22px;width:calc(100vw - 32px)}#popup h2{font-size:16px}#popup .popup-exam,#popup p{font-size:13px}}#popupCloseBtn{position:absolute;top:12px;right:12px;width:32px;height:32px;border:1px solid var(--border);border-radius:8px;background:hsla(0,0%,100%,.03);color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease,transform .18s ease}html.light #popupCloseBtn{background:rgba(0,0,0,.03)}@media (hover:hover) and (pointer:fine){#popupCloseBtn:hover{border-color:var(--accent);color:var(--accent);background:rgba(200,184,255,.08);transform:scale(1.08)}html.light #popupCloseBtn:hover{background:rgba(109,79,194,.08)}}#popupCloseBtn:active{transform:scale(.95)}.accent-gradient-text{background:linear-gradient(90deg,var(--accent),#605680,var(--accent));background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 3s linear infinite}@keyframes shine{to{background-position:200%}}