:root{--bg:#f4f7f8;--paper:#fff;--paper-2:#f8fafb;--ink:#152630;--muted:#73818a;--line:#e5ebee;--navy:#10242f;--navy-2:#183744;--cyan:#65cfda;--cyan-soft:#e5f8fa;--mint:#dff6ee;--violet:#efeaff;--amber:#fff2d8;--shadow:0 12px 36px rgba(24,47,58,.06);--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:-.04em}h1{font-size:32px;margin:6px 0 8px}h2{font-size:25px;margin-bottom:8px}h3{font-size:17px;margin-bottom:4px}.muted{color:var(--muted)}.hidden{display:none!important}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.17em;color:#68aeb7}.btn{border:0;border-radius:11px;padding:12px 17px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:13px;transition:.18s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--navy);color:#fff;box-shadow:0 6px 14px rgba(16,36,47,.12)}.btn-primary:hover{background:#1c3e4d}.btn-primary span{font-size:18px;color:var(--cyan)}.btn-soft{background:var(--cyan-soft);color:#21616b}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn-wide{width:100%}.text-btn,.link-btn{border:0;background:transparent;color:#287985;font-weight:700;padding:4px}.text-btn:hover,.link-btn:hover{text-decoration:underline}.icon-btn{width:34px;height:34px;border:1px solid var(--line);background:var(--paper);border-radius:10px;color:var(--ink);font-size:18px;display:inline-grid;place-items:center}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.mini-pill{border:1px solid var(--line);background:#f8fbfc;color:#6b7d85;padding:6px 9px;border-radius:999px;font-size:9px;letter-spacing:.12em;font-weight:800}.toast{position:fixed;z-index:99;right:22px;top:18px;max-width:340px;background:var(--navy);color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);opacity:0;transform:translateY(-10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}
/* auth */.auth-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--paper)}.auth-art{background:var(--navy);color:#fff;min-height:100vh;padding:42px 7vw;position:relative;overflow:hidden;display:flex;flex-direction:column}.brand-lockup,.side-brand{display:flex;align-items:center;gap:12px}.brand-mark{width:48px;height:48px;border:1px solid rgba(113,221,230,.55);border-radius:15px;display:grid;place-items:center;color:var(--cyan);font:800 37px 'Plus Jakarta Sans';line-height:1}.brand-name{font:800 18px 'Plus Jakarta Sans';letter-spacing:.16em}.brand-sub{font-size:9px;letter-spacing:.28em;color:#8ebac0;margin-top:3px}.auth-copy{margin-top:16vh;position:relative;z-index:2;max-width:520px}.auth-copy .eyebrow{color:var(--cyan)}.auth-copy h1{font-size:clamp(42px,5vw,67px);line-height:1.08;margin:16px 0}.auth-copy h1 em{font-style:normal;color:var(--cyan)}.auth-copy p{color:#b3c3ca;font-size:16px;line-height:1.7;max-width:420px}.auth-orbit{position:absolute;width:330px;height:330px;border:1px solid rgba(112,214,224,.17);border-radius:50%;right:4vw;bottom:12%;display:grid;place-items:center}.auth-orbit:before,.auth-orbit:after{content:'';position:absolute;border:1px solid rgba(112,214,224,.14);border-radius:50%;inset:35px}.auth-orbit:after{inset:75px}.orbit-core{width:112px;height:112px;border-radius:50%;background:#183c48;border:1px solid rgba(112,214,224,.6);box-shadow:0 0 50px rgba(100,205,216,.13);display:grid;place-items:center;font:800 50px 'Plus Jakarta Sans';color:var(--cyan)}.orbit-core span{font-size:11px;color:#fff;margin-left:-18px;margin-top:33px}.orbit-chip{position:absolute;border:1px solid rgba(130,221,229,.4);background:#173641;color:#b8eef0;border-radius:30px;padding:8px 13px;font-size:9px;letter-spacing:.16em;font-weight:800}.chip-one{top:28px;left:48px}.chip-two{right:8px;top:148px}.chip-three{bottom:24px;left:82px}.auth-foot{margin-top:auto;color:#71919a;font-size:11px;letter-spacing:.08em}.auth-panel{padding:42px 9vw;display:flex;flex-direction:column;justify-content:center;position:relative}.auth-panel-top{position:absolute;top:45px;left:9vw;right:9vw;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.12em}.auth-card{width:min(420px,100%);margin:auto}.auth-card h2{font-size:30px}.auth-card>p{margin-bottom:28px}.form-stack{display:grid;gap:15px}.form-stack label,.form-grid label,.inline-form label,.sleep-field{display:grid;gap:7px;color:#53636c;font-size:12px;font-weight:700}.form-stack input,.form-grid input,.form-grid select,.form-grid textarea,.inline-form input,.inline-form select,.inline-form textarea,.form-stack select,.form-stack textarea,.date-field,.filter-select{width:100%;border:1px solid var(--line);background:#fbfcfd;border-radius:10px;padding:11px 12px;outline:none;color:var(--ink);font-size:13px;min-width:0}.form-stack input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.inline-form input:focus,.inline-form select:focus,.form-stack textarea:focus{border-color:#76cbd3;box-shadow:0 0 0 3px rgba(101,207,218,.12)}.auth-links{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:11px;color:var(--muted);gap:10px}.auth-note{margin-top:16px;font-size:11px;line-height:1.6;color:#8a969d}.auth-panel .link-btn{font-size:11px}
/* app shell */.app-shell{min-height:100vh}.sidebar{width:248px;background:var(--navy);color:#fff;position:fixed;inset:0 auto 0 0;padding:28px 18px 18px;display:flex;flex-direction:column;z-index:20}.side-brand{padding:0 10px 38px}.brand-mark.small{width:38px;height:38px;border-radius:12px;font-size:29px}.sidebar .brand-name{font-size:15px}.sidebar .brand-sub{font-size:8px}.side-label{font-size:9px;letter-spacing:.19em;color:#66818b;font-weight:800;padding:0 12px 12px}.main-nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#9db1b9;text-align:left;padding:12px;border-radius:10px;display:flex;align-items:center;gap:13px;font-size:12px;font-weight:600;transition:.15s}.nav-item:hover{background:#17333f;color:#fff}.nav-item.active{background:#1c3b48;color:#fff;box-shadow:inset 3px 0 var(--cyan)}.nav-icon{width:19px;text-align:center;font-size:17px;color:#80cbd3}.sidebar-bottom{margin-top:auto}.side-quote{background:#17333f;padding:15px;border-radius:13px;margin:0 2px 17px}.side-quote>span{font:800 25px Georgia;color:var(--cyan)}.side-quote p{color:#9eb5bd;font-size:10px;line-height:1.6;margin:0}.profile-mini{display:flex;align-items:center;gap:10px;border-top:1px solid #29424c;padding:16px 4px 0}.avatar,.top-avatar{width:34px;height:34px;border-radius:11px;background:#d9f6f4;color:#15515a;display:grid;place-items:center;font-weight:800}.profile-text{display:grid;gap:2px;min-width:0;flex:1}.profile-text strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-text span{font-size:9px;color:#7e9da6}.profile-mini .icon-btn{background:transparent;color:#9cb0b7;border-color:#38515b}.main-area{margin-left:248px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:68px;background:rgba(255,255,255,.84);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;position:sticky;top:0;z-index:12}.breadcrumb{display:flex;align-items:center;gap:12px;font-size:11px;color:#9aa6ab;letter-spacing:.04em}.breadcrumb b{color:#c1cbd0}.breadcrumb strong{color:var(--ink)}.top-actions{display:flex;align-items:center;gap:14px}.date-chip{font-size:10px;color:#7d8b91;background:#f3f7f8;padding:8px 11px;border-radius:8px}.top-avatar{border-radius:50%;width:32px;height:32px}.mobile-menu{display:none}.content-wrap{padding:30px 36px 45px;max-width:1500px;width:100%;margin:0 auto;flex:1}.view{display:none;animation:fadeIn .22s ease}.view.active{display:block}@keyframes fadeIn{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:23px}.page-heading h1{font-size:29px}.page-heading p{font-size:12px;margin-bottom:0}.wave{color:#4fb6c1;font-size:21px}.hero-banner{background:linear-gradient(110deg,#142e3a,#1d4653);border-radius:20px;color:#fff;padding:28px 34px;display:flex;justify-content:space-between;align-items:center;min-height:190px;position:relative;overflow:hidden;margin-bottom:20px}.banner-tag{font-size:9px;letter-spacing:.18em;font-weight:800;color:#84d5db}.hero-banner h2{font-size:31px;margin:12px 0 7px}.hero-banner h2 em{font-style:normal;color:#84dce1}.hero-banner p{color:#b2c9ce;font-size:12px;margin:0}.banner-graphic{width:210px;height:150px;position:relative;flex:0 0 210px}.banner-ring{position:absolute;border:1px solid rgba(132,220,225,.3);border-radius:50%;transform:rotate(-24deg)}.ring-a{width:180px;height:120px;top:15px;left:20px}.ring-b{width:145px;height:145px;top:0;left:36px}.banner-stamp{position:absolute;width:78px;height:78px;border-radius:50%;background:#71d2d8;color:#12313b;left:71px;top:34px;display:grid;place-content:center;text-align:center;font:800 27px 'Plus Jakarta Sans';box-shadow:0 0 0 10px rgba(113,210,216,.12)}.banner-stamp span{font:800 8px 'DM Sans';letter-spacing:.18em}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat-card,.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{padding:17px 18px}.stat-head{display:flex;align-items:center;justify-content:space-between;color:#8c989e;font-size:9px;letter-spacing:.14em;font-weight:800}.stat-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:16px}.stat-icon.cyan{background:var(--cyan-soft);color:#348d96}.stat-icon.mint{background:var(--mint);color:#399779}.stat-icon.violet{background:var(--violet);color:#8772bf}.stat-icon.amber{background:var(--amber);color:#bd8833}.stat-value{font:800 25px 'Plus Jakarta Sans';margin:12px 0 4px;letter-spacing:-.05em}.stat-foot{font-size:10px;color:#98a4a9}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-bottom:16px}.panel{padding:20px;margin-bottom:16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head h3{margin:0 0 4px}.panel-head p{font-size:10px;margin:0}.panel-head .text-btn{font-size:10px}.task-list{display:grid;gap:9px}.empty-state{font-size:11px;color:#9ba7ad;padding:13px 0}.task-item{display:flex;align-items:center;gap:11px;padding:11px 12px;background:#fbfcfd;border:1px solid #edf1f3;border-radius:12px}.task-check{appearance:none;border:1.5px solid #c6d5da;border-radius:7px;width:19px;height:19px;flex:0 0 19px;display:grid;place-items:center;margin:0;cursor:pointer}.task-check:checked{background:#4caf9b;border-color:#4caf9b}.task-check:checked:after{content:'✓';color:#fff;font-size:12px;font-weight:800}.task-content{flex:1;min-width:0}.task-content strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-content small{display:block;color:#93a0a5;font-size:9px;margin-top:4px}.task-time{font-size:9px;color:#71848b;white-space:nowrap}.task-delete{border:0;background:transparent;color:#b1bdc1;font-size:16px}.task-delete:hover{color:#d25e5e}.subject-progress{display:grid;gap:15px}.progress-row{display:grid;grid-template-columns:90px 1fr 30px;align-items:center;gap:10px;font-size:10px}.progress-row strong{font-size:10px}.progress-bar{height:7px;background:#edf2f3;border-radius:20px;overflow:hidden}.progress-bar span{display:block;height:100%;border-radius:20px;background:#62c5ce}.progress-percent{text-align:right;color:#8b999f;font-size:9px}.exam-list{display:grid;gap:8px}.exam-row{display:flex;align-items:center;gap:12px;padding:10px 11px;background:#fbfcfd;border-radius:10px}.exam-mark{width:35px;height:35px;border-radius:10px;background:#fff3de;color:#b9832c;display:grid;place-items:center;font-weight:800}.exam-info{flex:1;min-width:0}.exam-info strong{display:block;font-size:11px}.exam-info small{font-size:9px;color:#94a0a5}.exam-score{font:800 15px 'Plus Jakarta Sans';color:#2d7f78}.app-footer{padding:16px 36px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#a1acb1;font-size:9px;letter-spacing:.06em}
/* planner */.planner-layout{display:grid;grid-template-columns:.86fr 1.14fr;gap:16px;align-items:start}.planner-form-panel,.planner-list-panel{min-height:410px}.step-dot{width:27px;height:27px;border-radius:50%;background:var(--cyan-soft);color:#328893;display:grid;place-items:center;font-size:10px;font-weight:800}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid .span-2{grid-column:span 2}.form-grid label{font-size:10px}.form-grid input,.form-grid select,.form-grid textarea{font-size:11px;padding:10px}.time-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px}.time-pair label{min-width:0}.time-pair input{min-width:0}.date-switch{display:flex;align-items:center;gap:5px}.date-switch input{width:130px;border:1px solid var(--line);border-radius:8px;padding:8px;font-size:10px;color:var(--ink);background:#fbfcfd}.date-switch .icon-btn{width:28px;height:29px}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:5px 0 17px}.week-day{border:1px solid var(--line);background:#fbfcfd;border-radius:9px;padding:8px 3px;text-align:center;color:#859399}.week-day span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.week-day strong{display:block;font-size:12px;margin-top:4px}.week-day.selected{background:var(--navy);border-color:var(--navy);color:#fff}.week-day.selected span{color:#9acfd3}.task-empty{border:1px dashed #d9e2e5;padding:22px;border-radius:12px;text-align:center;color:#9aa7ad;font-size:11px}.task-item.is-complete .task-content strong{text-decoration:line-through;color:#9ba7ad}.task-subject{font-size:8px;color:#398c95;background:#eaf8f9;padding:4px 7px;border-radius:20px;white-space:nowrap}
/* focus */.focus-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.timer-panel{padding:28px;display:flex;flex-direction:column;align-items:center;min-height:470px}.timer-top{width:100%;display:flex;justify-content:space-between;align-items:center}.timer-mode{font-size:9px;color:#89a0a7;letter-spacing:.16em;font-weight:800}.timer-ring{width:270px;height:270px;border-radius:50%;border:8px solid #e5f4f5;box-shadow:inset 0 0 0 1px #d6eef0,0 0 0 10px #f7fbfb;display:grid;place-items:center;margin:35px 0 25px;position:relative}.timer-ring:before{content:'';position:absolute;inset:-8px;border-radius:50%;border:8px solid transparent;border-top-color:#65cbd3;transform:rotate(20deg)}.timer-ring.running:before{animation:spin 8s linear infinite;border-right-color:#65cbd3}@keyframes spin{to{transform:rotate(380deg)}}.timer-inner{text-align:center;display:grid;gap:7px}.timer-inner span{font:800 34px 'Plus Jakarta Sans';letter-spacing:-.06em}.timer-inner small{font-size:10px;color:#98a4a9}.timer-controls{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}.timer-controls .btn{font-size:11px;padding:11px 15px}.timer-hint{font-size:10px;color:#9aa6ab;margin:17px 0 0;text-align:center}.focus-side{min-height:470px}.focus-side .form-stack{margin-bottom:22px}.today-focus{border-top:1px solid var(--line);padding-top:18px}.today-focus>span{font-size:9px;letter-spacing:.14em;font-weight:800}.today-focus>strong{display:block;font:800 26px 'Plus Jakarta Sans';margin:7px 0 14px}.mini-session-list{display:grid;gap:7px;font-size:10px;color:#94a1a6}.mini-session{display:flex;justify-content:space-between;padding:8px 10px;background:#f7fafb;border-radius:9px}
/* chapters */.inline-form{display:grid;grid-template-columns:1fr 1.4fr auto;gap:12px;align-items:end}.inline-form label{font-size:10px}.inline-form input,.inline-form select{font-size:11px;padding:10px}.chapter-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.summary-chip{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px}.summary-chip span{display:block;color:#8e9ba1;font-size:9px;letter-spacing:.1em;font-weight:800}.summary-chip strong{display:block;font:800 22px 'Plus Jakarta Sans';margin-top:7px}.filter-select{width:auto;min-width:135px;padding:8px 10px;font-size:10px}.chapter-list{display:grid;gap:9px}.chapter-row{display:grid;grid-template-columns:minmax(110px,1fr) 1.25fr 100px 30px;align-items:center;gap:12px;padding:12px;background:#fbfcfd;border:1px solid #edf1f3;border-radius:11px}.chapter-row strong{font-size:11px;display:block}.chapter-row small{font-size:9px;color:#9ba7ad}.chapter-row select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;font-size:9px;background:#fff}.confidence{font-size:9px;color:#8b989d}.delete-mini{border:0;background:transparent;color:#a9b5b9;font-size:15px}.revision-tag{font-size:8px;color:#4a8d78;background:#e8f5ef;border-radius:15px;padding:4px 7px;display:inline-block;margin-top:4px}
/* exams */.exam-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.quiz-question-builder{display:grid;gap:12px}.builder-question{padding:12px;background:#f8fafb;border:1px solid var(--line);border-radius:11px}.builder-question-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:800;margin-bottom:8px}.builder-question input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;font-size:10px;margin-bottom:7px}.builder-options{display:grid;grid-template-columns:1fr 1fr;gap:6px}.builder-correct{display:flex;align-items:center;gap:7px;color:#75858c;font-size:9px;margin-top:4px}.builder-correct select{border:1px solid var(--line);border-radius:7px;padding:6px;background:#fff;font-size:9px}.quiz-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quiz-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}.quiz-card strong{font-size:11px;display:block}.quiz-card small{font-size:9px;color:#93a0a5;display:block;margin:5px 0 12px}.quiz-card .btn{font-size:10px;padding:8px 12px}.quiz-modal-card{max-width:650px;max-height:88vh;overflow:auto}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.modal-head h2{font-size:22px}.attempt-question{padding:13px;border:1px solid var(--line);border-radius:11px;margin-bottom:11px}.attempt-question strong{font-size:11px;display:block;margin-bottom:10px}.attempt-option{display:flex;align-items:center;gap:8px;font-size:10px;padding:7px 8px;border-radius:8px;cursor:pointer}.attempt-option:hover{background:#f3f9fa}.quiz-score{padding:20px;background:#eaf8f3;border-radius:13px;color:#286b59;text-align:center;font:800 24px 'Plus Jakarta Sans';margin-top:14px}.quiz-score small{display:block;font:500 11px 'DM Sans';margin-top:5px}
/* groups */.group-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.privacy-note,.gentle-note{font-size:10px;color:#84949a;background:#f7fafb;border-radius:10px;padding:12px;line-height:1.6;margin-top:15px}.group-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.group-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fbfcfd;display:flex;align-items:center;gap:12px}.group-symbol{width:38px;height:38px;border-radius:11px;background:var(--cyan-soft);color:#368992;display:grid;place-items:center;font-size:18px}.group-card-info{flex:1;min-width:0}.group-card-info strong{display:block;font-size:11px}.group-card-info small{color:#98a5aa;font-size:9px}.group-card .btn{font-size:9px;padding:8px 10px}.group-detail-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.group-code{background:#eaf8f9;color:#276d75;padding:10px 13px;border-radius:10px;font:800 14px monospace;letter-spacing:.15em}.member-pills{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.member-pill{background:#f1f6f7;border-radius:20px;padding:7px 10px;font-size:9px;color:#62737a}.submission-form{display:grid;grid-template-columns:1fr 130px auto;gap:9px;align-items:end;margin-top:18px}.submission-form label{display:grid;gap:6px;font-size:9px;color:#77858c}.submission-form input,.submission-form textarea{border:1px solid var(--line);border-radius:8px;padding:9px;font-size:10px}.submission-form textarea{min-height:39px}.submission-list{display:grid;gap:8px;margin-top:12px}.submission-item{padding:11px;background:#fbfcfd;border:1px solid var(--line);border-radius:10px;display:flex;justify-content:space-between;gap:12px}.submission-item strong{font-size:10px}.submission-item p{font-size:10px;color:#75858b;margin:5px 0 0}.submission-item small{font-size:9px;color:#9aa6ab;white-space:nowrap}
/* resources */.resource-form{grid-template-columns:1.1fr .8fr .7fr 1.3fr .7fr auto}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.resource-card{border:1px solid var(--line);border-radius:12px;padding:13px;background:#fbfcfd;min-width:0}.resource-card .resource-type{font-size:8px;letter-spacing:.1em;color:#3b929a;font-weight:800}.resource-card strong{display:block;font-size:11px;margin:7px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-card small{display:block;color:#9aa6ab;font-size:9px}.resource-card a{font-size:9px;color:#277982;display:inline-block;margin-top:11px;font-weight:700;text-decoration:none}.resource-card a:hover{text-decoration:underline}.resource-delete{float:right;border:0;background:transparent;color:#aeb9bd}
/* habits */.habits-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.date-field{width:auto}.habit-form{display:grid;gap:3px}.habit-row{display:flex;align-items:center;justify-content:space-between;padding:14px 2px;border-bottom:1px solid #eef2f3;cursor:pointer}.habit-row strong{display:block;font-size:11px}.habit-row small{display:block;font-size:9px;color:#9aa6ab;margin-top:4px}.habit-row input,.prayer-grid input{width:18px;height:18px;accent-color:#389b89}.sleep-field{margin:12px 0}.sleep-field input{border:1px solid var(--line);padding:10px;border-radius:8px}.habit-form>label:not(.habit-row):not(.sleep-field){font-size:10px;margin:9px 0}.habit-form textarea{border:1px solid var(--line);border-radius:8px;padding:10px}.private-tag{font-size:8px;letter-spacing:.12em;color:#448d7a;background:#e8f6f0;padding:6px 9px;border-radius:20px;font-weight:800}.prayer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.prayer-grid label{display:grid;justify-items:center;gap:12px;background:#f8fafb;border:1px solid var(--line);border-radius:10px;padding:13px 4px;font-size:9px;color:#64747b}.prayer-grid button{grid-column:span 5;margin-top:12px}.gentle-note{margin-top:22px;background:#f8fafb}.fine-print{font-size:9px;color:#a0aaae;line-height:1.6;margin-top:12px}
/* modal */.modal-backdrop{position:fixed;inset:0;background:rgba(8,22,29,.58);z-index:60;display:grid;place-items:center;padding:20px}.modal-card{width:min(440px,100%);background:#fff;border-radius:20px;padding:27px;box-shadow:0 25px 90px rgba(0,0,0,.2);animation:fadeIn .2s ease}.modal-icon{width:43px;height:43px;border-radius:13px;background:#e5f8fa;color:#368b94;display:grid;place-items:center;font-size:21px;margin-bottom:17px}.modal-card h2{font-size:23px}.modal-card>p{font-size:11px;line-height:1.6}.recovery-code{padding:14px;background:#f4f8f9;border:1px dashed #9dcbd0;border-radius:11px;text-align:center;font:800 20px monospace;letter-spacing:.15em;color:#276c75;margin:15px 0}.modal-card>.btn{margin-top:8px}.modal-card .fine-print{text-align:center}
/* dark theme */body.dark{--bg:#101a20;--paper:#17252d;--paper-2:#1c2b33;--ink:#e5eef0;--muted:#98a9ae;--line:#2b3c44;--shadow:0 12px 36px rgba(0,0,0,.12)}body.dark .topbar{background:rgba(23,37,45,.9)}body.dark .date-chip,body.dark .task-item,body.dark .exam-row,body.dark .week-day,body.dark .chapter-row,body.dark .quiz-card,body.dark .group-card,body.dark .resource-card,body.dark .submission-item,body.dark .mini-session,body.dark .summary-chip,body.dark .form-stack input,body.dark .form-grid input,body.dark .form-grid select,body.dark .form-grid textarea,body.dark .inline-form input,body.dark .inline-form select,body.dark .inline-form textarea,body.dark .form-stack select,body.dark .form-stack textarea,body.dark .date-switch input,body.dark .chapter-row select,body.dark .builder-question,body.dark .builder-question input,body.dark .builder-correct select,body.dark .attempt-question,body.dark .attempt-option:hover,body.dark .privacy-note,body.dark .gentle-note,body.dark .prayer-grid label,body.dark .resource-card,body.dark .stat-card,body.dark .panel{background:var(--paper)}body.dark .btn-soft{background:#213c44;color:#a7e6e8}body.dark .progress-bar{background:#2b3d45}body.dark .timer-ring{border-color:#243f46;box-shadow:inset 0 0 0 1px #294e55,0 0 0 10px #18272e}body.dark .timer-ring:before{border-top-color:#65cbd3}body.dark .task-subject{background:#213f46;color:#9fe4e6}body.dark .week-day.selected{background:#2c5965;color:#fff}body.dark .week-day.selected span{color:#b3e9eb}body.dark .habit-row,body.dark .today-focus{border-color:var(--line)}body.dark .filter-select,body.dark .date-field{background:var(--paper);color:var(--ink);border-color:var(--line)}body.dark .text-btn{color:#7dd0d7}
@media(max-width:1150px){.content-wrap{padding:26px 24px 40px}.topbar{padding:0 24px}.stats-grid{grid-template-columns:repeat(2,1fr)}.resource-form{grid-template-columns:repeat(3,1fr)}.resource-form button{align-self:end}.dashboard-grid{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:transform .22s;box-shadow:15px 0 40px rgba(0,0,0,.15)}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.mobile-menu{display:inline-grid}.topbar{gap:12px}.breadcrumb{margin-right:auto}.planner-layout,.focus-layout,.dashboard-grid,.exam-tools-grid,.group-create-grid,.habits-grid{grid-template-columns:1fr}.planner-form-panel{min-height:auto}.auth-screen{grid-template-columns:1fr}.auth-art{min-height:350px;padding:28px 7vw}.auth-copy{margin-top:55px}.auth-copy h1{font-size:42px}.auth-orbit{width:180px;height:180px;right:20px;bottom:14px;opacity:.6}.auth-orbit:before{inset:20px}.auth-orbit:after{inset:42px}.orbit-core{width:66px;height:66px;font-size:29px}.orbit-chip{font-size:7px;padding:5px 8px}.chip-one{top:10px;left:18px}.chip-two{right:0;top:82px}.chip-three{bottom:9px;left:30px}.auth-foot{display:none}.auth-panel{padding:55px 8vw;min-height:520px}.auth-panel-top{top:20px;left:8vw;right:8vw}.banner-graphic{opacity:.55}.chapter-row{grid-template-columns:1fr 1fr 100px 25px}.resource-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){h1{font-size:26px}.content-wrap{padding:22px 14px 30px}.topbar{height:58px;padding:0 14px}.date-chip{display:none}.top-actions{gap:8px}.page-heading{align-items:flex-start}.page-heading>.btn{font-size:10px;padding:10px}.page-heading h1{font-size:25px}.hero-banner{padding:22px;min-height:160px}.hero-banner h2{font-size:25px}.banner-graphic{position:absolute;right:-42px;opacity:.23}.stats-grid{gap:9px}.stat-card{padding:13px}.stat-value{font-size:21px}.stat-head{font-size:8px}.dashboard-grid{gap:0}.panel{padding:15px;margin-bottom:12px}.panel-head{align-items:flex-start}.panel-head p{line-height:1.45}.app-footer{padding:14px;gap:10px;font-size:8px}.form-grid{gap:10px}.date-switch input{width:112px}.week-strip{gap:3px}.week-day{padding:7px 1px}.week-day span{font-size:7px}.week-day strong{font-size:10px}.inline-form{grid-template-columns:1fr}.chapter-summary{gap:7px}.summary-chip{padding:10px}.summary-chip strong{font-size:18px}.chapter-row{grid-template-columns:1fr auto;gap:8px}.chapter-row>div:nth-child(2){grid-column:span 2;grid-row:2}.chapter-row select{grid-column:span 1}.confidence{grid-column:1}.delete-mini{grid-column:2;grid-row:1}.quiz-list,.group-list,.resource-grid{grid-template-columns:1fr}.submission-form{grid-template-columns:1fr}.resource-form{grid-template-columns:1fr}.timer-ring{width:225px;height:225px;margin:30px 0 24px}.timer-inner span{font-size:28px}.timer-controls{gap:6px}.timer-controls .btn{padding:10px}.prayer-grid{grid-template-columns:repeat(3,1fr)}.prayer-grid button{grid-column:span 3}.top-avatar{display:none}.breadcrumb{font-size:10px}.auth-art{min-height:300px}.auth-copy{margin-top:42px}.auth-copy h1{font-size:36px}.auth-copy p{font-size:13px;max-width:280px}.auth-orbit{width:140px;height:140px;right:-13px;bottom:10px}.auth-orbit:before{inset:15px}.auth-orbit:after{inset:32px}.orbit-core{width:55px;height:55px;font-size:24px}.auth-panel{min-height:490px;padding:55px 7vw}.auth-panel-top{left:7vw;right:7vw}.auth-links{flex-wrap:wrap}}

/* SBUSH Studiology 1.3 — calmer, clearer and easier to use */
:root{--radius:20px;--shadow:0 10px 30px rgba(17,43,54,.055)}
body{font-size:15px;line-height:1.55;letter-spacing:0}
h1{font-size:clamp(29px,3vw,38px);line-height:1.14;letter-spacing:-.045em}
h2{font-size:clamp(23px,2.2vw,30px);line-height:1.2}
h3{font-size:17px;letter-spacing:-.025em}
.eyebrow{font-size:10px;letter-spacing:.14em}
.sidebar{width:258px;padding:25px 17px 16px}
.side-brand{padding:0 9px 30px}
.nav-item{font-size:13px;padding:12px 13px;min-height:44px;border-radius:12px}
.side-label{font-size:10px;padding-left:13px}
.profile-text strong{font-size:12px}.profile-text span{font-size:10px}
.main-area{margin-left:258px}
.topbar{height:66px;padding:0 32px}
.breadcrumb{font-size:12px}
.content-wrap{padding:34px 34px 50px;max-width:1440px}
.page-heading{margin-bottom:25px}
.page-heading h1{font-size:clamp(28px,3vw,37px)}
.page-heading p{font-size:14px;line-height:1.6;max-width:760px}
.hero-banner{min-height:174px;padding:28px 32px;margin-bottom:18px;border-radius:22px}
.hero-banner h2{font-size:clamp(26px,2.6vw,34px)}
.hero-banner p{font-size:14px;line-height:1.6}
.banner-tag{font-size:10px}
.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.quick-action{display:flex;align-items:center;gap:12px;min-height:72px;text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:15px;padding:13px 15px;color:var(--ink);box-shadow:var(--shadow);transition:transform .16s,border-color .16s}
.quick-action:hover{transform:translateY(-2px);border-color:#8bcbd0}
.quick-action-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--cyan-soft);color:#267b84;font-size:20px;flex:0 0 38px}
.quick-action strong{display:block;font-size:13px}.quick-action small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.stats-grid{gap:13px;margin-bottom:18px}
.stat-card{padding:17px 18px;border-radius:16px}
.stat-head{font-size:10px;letter-spacing:.09em}
.stat-value{font-size:27px;margin:10px 0 3px}
.stat-foot{font-size:11px}
.panel{padding:21px;border-radius:18px;margin-bottom:16px}
.panel-head{margin-bottom:17px}.panel-head h3{font-size:17px}.panel-head p{font-size:12px;line-height:1.5}
.task-item{padding:12px 13px;border-radius:12px;gap:12px}
.task-content strong{font-size:13px}.task-content small{font-size:11px;line-height:1.45}
.task-time{font-size:11px}
.task-photo-btn{border:1px solid var(--line);background:var(--paper);border-radius:9px;padding:7px 9px;font-size:11px;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;color:var(--muted);cursor:pointer}
.task-proof-thumb img{width:52px;height:42px;object-fit:cover;border-radius:8px;margin-top:7px;border:1px solid var(--line)}
.form-stack label,.form-grid label,.inline-form label,.sleep-field{font-size:13px}
.form-stack input,.form-grid input,.form-grid select,.form-grid textarea,.inline-form input,.inline-form select,.inline-form textarea,.form-stack select,.form-stack textarea,.date-field,.filter-select{font-size:14px;padding:12px 13px;border-radius:11px}
.resource-intro{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px 26px}
.resource-intro h2{margin:7px 0 6px}.resource-intro p{font-size:13px;line-height:1.6;margin-bottom:0;max-width:720px}
.resource-count{min-width:104px;text-align:center;padding:13px 15px;border-radius:15px;background:var(--cyan-soft);color:#246f78}
.resource-count strong{display:block;font:800 27px 'Plus Jakarta Sans'}.resource-count small{font-size:10px;font-weight:700}
.resource-tools{display:flex;gap:11px;margin-bottom:17px}.resource-tools input{flex:1;min-width:0;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);border-radius:11px;padding:12px 14px;font-size:14px}
.resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.resource-card{position:relative;border-radius:15px;padding:16px;background:var(--paper-2);display:flex;flex-direction:column;gap:8px;min-height:210px}
.resource-card strong{font-size:14px;line-height:1.4;white-space:normal;margin:0}
.resource-card p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}
.resource-card .resource-type{font-size:10px;letter-spacing:.04em}
.resource-card small{font-size:11px}
.resource-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.resource-access{font-size:10px;font-weight:800;padding:5px 8px;border-radius:30px;background:#e6f7ee;color:#26764f}
.resource-access.caution{background:#fff2dc;color:#94621b}
.resource-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto}
.resource-tags span{font-size:9px;padding:4px 7px;border-radius:20px;background:var(--paper);color:var(--muted);border:1px solid var(--line)}
.resource-card-foot{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:6px;padding-top:8px;border-top:1px solid var(--line)}
.resource-card-foot small{font-size:9px;color:var(--muted)}
.resource-card a.resource-open{font-size:11px;margin:0;font-weight:800}
.optional-label{color:var(--muted);font-weight:500;font-size:11px}
.ai-welcome{display:flex;align-items:center;gap:18px;padding:22px 24px;background:linear-gradient(110deg,#142e3a,#1b4852);color:#fff}
.ai-welcome p{color:#c6d9dc;max-width:720px;margin:0;font-size:13px;line-height:1.6}
.ai-welcome h2{font-size:23px}.ai-welcome .eyebrow{color:#91e1e1}
.ai-avatar{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#6fd1d5;color:#12323a;font-size:34px;flex:0 0 58px}
.ai-chat-log{min-height:250px;max-height:460px;padding:15px;border-radius:14px;background:var(--paper-2);border:1px solid var(--line);overflow:auto;display:flex;flex-direction:column;gap:10px}
.ai-message{max-width:min(88%,760px);padding:12px 14px;border-radius:14px;font-size:13px;line-height:1.65;white-space:pre-wrap}
.ai-message.assistant{align-self:flex-start;background:var(--paper);border:1px solid var(--line)}
.ai-message.user{align-self:flex-end;background:#dff4f2;color:#17484c}
.ai-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(230px,.75fr);gap:15px}
.ai-side-panel{align-self:start}.ai-side-panel h3{margin-bottom:12px}
.ai-prompt{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);padding:11px 12px;border-radius:10px;margin:7px 0;font-size:12px}
.ai-prompt:hover{border-color:#79c8ce}
.ai-note{margin-top:13px;padding:13px;border-radius:12px;background:var(--cyan-soft);color:#245d65;font-size:12px;line-height:1.6}
.ai-note p{margin:5px 0 0}
.settings-layout{grid-template-columns:1fr 1fr}
.profile-account-id{padding:12px 14px;border-radius:11px;background:var(--paper-2);border:1px solid var(--line)}
.profile-account-id span,.profile-account-id small{display:block;color:var(--muted);font-size:11px}.profile-account-id strong{display:block;margin:4px 0;font-size:14px}
.language-btn{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:8px 11px;color:var(--ink);font-weight:700;font-size:12px}
body.dark .quick-action{background:var(--paper);border-color:var(--line)}
body.dark .quick-action small{color:var(--muted)}
body.dark .quick-action-icon{background:#223d46;color:#8de1e2}
body.dark .resource-card{background:var(--paper-2)}
body.dark .resource-access{background:#203f35;color:#a9e7c6}
body.dark .resource-access.caution{background:#493c28;color:#f1d19a}
body.dark .resource-tags span{background:var(--paper)}
body.dark .ai-message.user{background:#254b4c;color:#d9f5f1}
body.dark .ai-note{background:#203c43;color:#bce5e4}
body.dark .task-photo-btn{background:var(--paper);color:var(--muted);border-color:var(--line)}
@media(max-width:1150px){.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.main-area{margin-left:0}.content-wrap{padding:24px 20px 38px}.topbar{padding:0 20px}.ai-layout{grid-template-columns:1fr}.settings-layout{grid-template-columns:1fr}}
@media(max-width:560px){.quick-actions{grid-template-columns:1fr 1fr;gap:8px}.quick-action{min-height:67px;padding:10px}.quick-action small{font-size:10px}.hero-banner{padding:22px;min-height:155px}.stats-grid{grid-template-columns:repeat(2,1fr)}.resource-intro{align-items:flex-start;padding:19px;flex-direction:column}.resource-count{min-width:0;text-align:left}.resource-tools{flex-direction:column}.resource-grid{grid-template-columns:1fr}.resource-card{min-height:0}.ai-welcome{align-items:flex-start;padding:18px}.ai-avatar{width:46px;height:46px;flex-basis:46px;font-size:27px}.ai-welcome h2{font-size:19px}.ai-chat-log{min-height:190px}.ai-compose-row{grid-template-columns:1fr}.task-photo-btn{font-size:10px;padding:6px 7px}.content-wrap{padding:20px 13px 30px}.topbar{padding:0 12px}}


/* v1.4 — cleaner general-purpose student workspace */
.hero-banner{background:linear-gradient(112deg,#12313d,#1b515b);box-shadow:0 14px 34px rgba(13,47,56,.13)}
.hero-banner .banner-stamp{font-size:48px}.hero-banner .banner-stamp span{font-size:9px;letter-spacing:.18em}
.page-heading .eyebrow{color:#4c9fa4}
.quick-action{min-height:78px}.quick-action strong{font-size:13px}.quick-action small{line-height:1.4}
.task-item{align-items:center}.task-photo-btn input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.resource-open{display:inline-flex;align-items:center;gap:5px;margin-top:4px}
.resource-checked{padding-top:8px;border-top:1px solid var(--line)}
.ai-welcome{border:0;box-shadow:0 12px 30px rgba(20,53,63,.12)}
.ai-chat-panel .fine-print{font-size:11px;line-height:1.55}
.top-actions{gap:10px}
@media(max-width:850px){.sidebar{z-index:20}.content-wrap{max-width:100%}.page-heading{align-items:flex-start;gap:12px}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.hero-banner{min-height:145px}.hero-banner .banner-graphic{opacity:.35}.page-heading h1{font-size:27px}.quick-action{min-height:67px}.quick-action-icon{width:34px;height:34px;flex-basis:34px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.5 — focused chapter selection and exam arena */
.chapter-select{width:100%;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);border-radius:11px;padding:12px 13px;min-height:46px;outline:none}
.chapter-select:focus,.subject-select:focus{border-color:#70cbd2;box-shadow:0 0 0 3px rgba(101,207,218,.13)}
.exam-arena-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:25px 28px;margin:0 0 16px;border:1px solid rgba(103,199,207,.2);border-radius:20px;background:linear-gradient(115deg,#122f3a,#1b4b57);color:#fff;box-shadow:0 15px 34px rgba(16,48,59,.11)}
.exam-arena-hero h2{font-size:clamp(22px,2.5vw,31px);margin:8px 0}.exam-arena-hero p{color:#c2d9dc;font-size:12px;line-height:1.65;max-width:690px;margin:0}.exam-arena-hero .eyebrow{color:#84dce0}
.exam-hero-mark{flex:0 0 112px;min-height:98px;display:grid;align-content:center;justify-items:center;border:1px solid rgba(255,255,255,.18);border-radius:15px;background:rgba(255,255,255,.07)}.exam-hero-mark strong{font:800 30px 'Plus Jakarta Sans';color:#89e2e3}.exam-hero-mark span{font-size:8px;letter-spacing:.13em;color:#c3dadd;font-weight:800;margin-top:3px}
.exam-builder-panel{padding:23px}.exam-builder-form{display:grid;gap:18px}.exam-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.exam-config-grid label{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:800}.exam-config-grid select{min-width:0;width:100%;height:45px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);border-radius:10px;padding:0 11px;font-size:12px;outline:none}.exam-config-grid select:focus{border-color:#70cbd2;box-shadow:0 0 0 3px rgba(101,207,218,.12)}
.chapter-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:3px}.chapter-picker-head strong,.chapter-picker-head small{display:block}.chapter-picker-head strong{font-size:13px}.chapter-picker-head small{font-size:10px;color:var(--muted);margin-top:4px}.chapter-picker-actions{display:flex;gap:12px;flex-shrink:0}.chapter-picker-actions .text-btn{font-size:10px}
.exam-chapter-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:240px;overflow:auto;padding:3px 4px 5px 0;scrollbar-width:thin}.chapter-pick{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2);color:var(--ink);font-size:10px;line-height:1.35;cursor:pointer;transition:border-color .15s,background .15s}.chapter-pick:hover{border-color:#79cbd2}.chapter-pick:has(input:checked){border-color:#6bbfc8;background:var(--cyan-soft)}.chapter-pick input{width:15px;height:15px;flex:0 0 15px;accent-color:#2995a1;margin:0}.chapter-pick-index{font-size:9px;font-weight:800;color:#6e9fa5;min-width:18px}.chapter-pick span:last-child{min-width:0}
.exam-bank-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:11px;background:var(--paper-2);border:1px solid var(--line);font-size:11px;color:var(--ink)}.exam-bank-summary #exam-available-count{font-weight:800}.exam-bank-note{font-size:9px;color:var(--muted);text-align:right}.exam-start-btn{min-height:47px}.exam-start-btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.25)}
.external-result-details{padding:0;overflow:hidden}.external-result-details summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;cursor:pointer}.external-result-details summary::-webkit-details-marker{display:none}.external-result-details summary strong,.external-result-details summary small{display:block}.external-result-details summary strong{font-size:12px}.external-result-details summary small{font-size:10px;color:var(--muted);margin-top:4px}.details-chevron{font-size:19px;color:var(--muted);transition:transform .15s}.external-result-details[open] .details-chevron{transform:rotate(45deg)}.details-form{padding:0 20px 20px}
.quiz-list{grid-template-columns:repeat(2,minmax(0,1fr))}.quiz-card{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.quiz-card strong{font-size:12px}.quiz-card small{flex:1;min-width:120px;margin:0}.quiz-card .btn{white-space:nowrap}
.quiz-modal-card{width:min(760px,100%);max-height:90vh;overflow:auto;padding:24px}.quiz-modal-actions{display:flex;align-items:center;gap:10px}.quiz-countdown{font:800 17px 'Plus Jakarta Sans';padding:8px 12px;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-variant-numeric:tabular-nums}.quiz-countdown.time-warning{color:#bd5a42;border-color:#e8b5a9;background:#fff4ef}.attempt-question{padding:18px;margin-bottom:12px;background:var(--paper-2);border:1px solid var(--line);border-radius:14px}.attempt-question strong{font-size:13px;line-height:1.6}.attempt-question-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.06em}.attempt-question-meta small{font-size:9px;letter-spacing:0}.attempt-option{font-size:12px;padding:10px 11px;margin:3px 0;border:1px solid transparent}.attempt-option:hover{background:var(--paper);border-color:var(--line)}.attempt-option input{accent-color:#2e9ba5}
.quiz-review{display:grid;gap:10px;margin-top:17px}.quiz-review h3{margin:0 0 3px}.answer-review{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2)}.answer-review.is-correct{border-left:4px solid #42a77c}.answer-review.is-wrong{border-left:4px solid #d47a62}.answer-review-head{display:flex;justify-content:space-between;gap:10px}.answer-review-head strong{font-size:11px}.answer-review-head small{font-size:9px;color:var(--muted)}.answer-review p{font-size:12px;line-height:1.55;margin:8px 0}.answer-review-answers{display:grid;gap:4px;font-size:10px;color:var(--muted)}.answer-explanation{display:block;margin-top:9px;padding-top:9px;border-top:1px solid var(--line);font-size:11px;line-height:1.55;color:var(--ink)}
body.dark .chapter-pick{background:var(--paper-2)}body.dark .chapter-pick:has(input:checked){background:#203f46;border-color:#478d94}body.dark .exam-bank-summary{background:var(--paper-2)}body.dark .quiz-countdown{background:var(--paper-2)}body.dark .attempt-question{background:var(--paper-2)}body.dark .attempt-option:hover{background:#253b44;border-color:#35545f}body.dark .quiz-score{background:#203d36;color:#b6e9d4}
@media(max-width:1050px){.exam-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-chapter-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.exam-arena-hero{padding:19px;align-items:flex-start}.exam-hero-mark{flex-basis:82px;min-height:78px}.exam-hero-mark strong{font-size:24px}.exam-hero-mark span{font-size:7px}.exam-builder-panel{padding:16px}.exam-config-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.exam-chapter-options{grid-template-columns:1fr 1fr;max-height:280px}.chapter-picker-head{align-items:flex-start;flex-direction:column}.exam-bank-summary{align-items:flex-start;flex-direction:column}.exam-bank-note{text-align:left}.quiz-list{grid-template-columns:1fr}.quiz-modal-card{padding:16px}.quiz-modal-actions{align-items:flex-start}.attempt-question{padding:13px}.answer-review-answers{font-size:9px}}

/* v1.5 — simpler exam builder and chapter availability */
.exam-arena-hero-compact{padding:20px 24px;margin-bottom:14px;min-height:125px}
.exam-arena-hero-compact h2{font-size:clamp(20px,2.1vw,27px);margin:5px 0 6px}
.exam-arena-hero-compact p{font-size:12px;max-width:640px}
.exam-arena-hero-compact .exam-hero-mark{min-height:78px;flex-basis:100px}
.exam-arena-hero-compact .exam-hero-mark strong{font-size:25px}
.exam-builder-panel{padding:20px}
.exam-builder-form{gap:14px}
.exam-config-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.exam-config-grid label{font-size:11px;gap:6px}
.exam-config-grid select{height:43px;font-size:12px}
.exam-chapter-search{width:100%;min-height:42px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2);color:var(--ink);outline:none;font:500 12px 'DM Sans',sans-serif}
.exam-chapter-search:focus{border-color:#70cbd2;box-shadow:0 0 0 3px rgba(101,207,218,.12)}
.exam-chapter-options{grid-template-columns:repeat(3,minmax(0,1fr));max-height:215px;gap:7px}
.chapter-pick[hidden]{display:none!important}
.chapter-pick-copy{display:grid;min-width:0;gap:3px;flex:1}
.chapter-pick-name{font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.chapter-pick-count{font-size:8px;line-height:1.2;color:var(--muted);font-weight:700}
.chapter-pick-count.has-questions{color:#2d9a78}
.chapter-pick-count.no-questions{color:#9aa6ab}
.exam-bank-summary>div{display:grid;gap:4px}
.exam-availability-subtext{display:block;font-size:9px;color:var(--muted);font-weight:500}
.exam-honesty-note{font-size:9px;line-height:1.5;color:var(--muted);margin:-5px 0 0}
.exam-secondary-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:14px;align-items:start}
.exam-secondary-grid>.panel{margin-bottom:14px;min-width:0}
.exam-secondary-grid .external-result-details{height:fit-content}
.exam-secondary-grid .quiz-list{grid-template-columns:1fr}
.exam-secondary-grid .panel-head{margin-bottom:8px}
#task-form .form-grid label>span{display:block;margin-bottom:3px}
@media(max-width:1100px){.exam-secondary-grid{grid-template-columns:1fr}.exam-chapter-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.exam-arena-hero-compact{padding:17px;gap:12px}.exam-arena-hero-compact .exam-hero-mark{flex-basis:78px;min-height:70px}.exam-arena-hero-compact .exam-hero-mark strong{font-size:21px}.exam-chapter-options{grid-template-columns:1fr 1fr;max-height:260px}.chapter-pick{padding:7px 8px;gap:6px}.chapter-pick-name{font-size:9px}.chapter-pick-count{font-size:7px}.exam-config-grid{grid-template-columns:1fr 1fr}.exam-builder-panel{padding:15px}}


/* v1.5.1 exam polish */
.exam-hero-mark{padding:12px;gap:4px;text-align:center}
.exam-coverage-meta{display:block;max-width:145px;margin-top:7px;font-size:8px;line-height:1.45;color:#c6e1e2;text-align:center}
.chapter-pick-copy{display:grid;gap:4px;min-width:0;flex:1}
.chapter-pick-name{font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.chapter-pick-count{font-size:8px;line-height:1.25;font-weight:700;color:var(--muted)}
.chapter-pick-count.has-questions{color:#2e9b77}
.chapter-pick-count.no-questions{color:#9a8d80}
.chapter-pick-unavailable{opacity:.57;cursor:not-allowed;background:var(--paper-2)}
.chapter-pick-unavailable:hover{border-color:var(--line)}
.chapter-pick-unavailable input{cursor:not-allowed}
.exam-chapter-search{width:100%;min-height:42px;border:1px solid var(--line);border-radius:11px;background:var(--paper-2);color:var(--ink);padding:0 13px;font:500 12px 'DM Sans';outline:none}
.exam-chapter-search:focus{border-color:#70cbd2;box-shadow:0 0 0 3px rgba(101,207,218,.13)}
.exam-honesty-note{font-size:10px;line-height:1.55;color:var(--muted);margin:0}
.exam-secondary-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:15px;margin:15px 0}
.exam-secondary-grid>.panel{margin:0;min-width:0}
@media(max-width:850px){.exam-secondary-grid{grid-template-columns:1fr}}

/* v1.7 Exam Arena: source transparency, mistake review and question navigation */
.exam-mistakes-panel{margin:18px 0}.mistake-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:13px}.mistake-summary strong{color:var(--text);font-size:15px}.mistake-summary small{font-size:11px;color:var(--muted)}
.exam-source-notice{padding:10px 12px;margin:0 0 12px;background:var(--surface-soft,rgba(120,130,140,.08));border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:12px;line-height:1.55}.source-chapter-counts{color:var(--accent)!important;font-weight:600}.board-source-card{min-height:148px;display:flex;flex-direction:column;gap:7px}.board-source-card em{margin-top:auto}.board-source-card small{line-height:1.45}.chapter-pick-unavailable{opacity:.95}.chapter-pick-count.no-questions{color:#a77a35}.chapter-pick-count.has-questions{color:var(--success,#249a71)}
.quiz-question-nav{display:flex;flex-wrap:wrap;gap:7px;padding:4px 0 14px;margin-bottom:8px;border-bottom:1px solid var(--line)}.quiz-nav-dot{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);font-weight:700;cursor:pointer}.quiz-nav-dot.is-answered{background:var(--success,#239b73);border-color:var(--success,#239b73);color:white}.attempt-question{scroll-margin-top:18px}
@media(max-width:650px){.exam-mistakes-panel .panel-head{align-items:flex-start;flex-direction:column}.exam-mistakes-panel .panel-head .btn{width:100%}.board-source-grid{grid-template-columns:1fr}.quiz-modal-card{max-height:94vh;overflow:auto}.quiz-question-nav{position:sticky;top:0;background:var(--surface);z-index:2}}

.exam-bank-status{margin:10px 0 16px;padding:11px 14px;border:1px solid var(--line);border-radius:13px;background:var(--paper-2);color:var(--muted);font-size:12px;line-height:1.65}


.exam-blueprint-note{margin:0 0 16px;padding:12px 14px;border:1px solid var(--line,rgba(128,128,128,.25));border-left:3px solid var(--accent,#6a7cff);border-radius:12px;color:var(--muted,#667085);font-size:.9rem;line-height:1.55;background:rgba(128,128,128,.045)}
.exam-blueprint-note.is-active{color:var(--text,#172033);background:rgba(128,128,128,.075)}


/* v2.1.2 — transparent question provenance and source controls */
.exam-source-mode-row{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:12px;align-items:end;margin:12px 0 15px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2)}
.exam-source-mode-row label{display:grid;gap:6px;font-size:11px;font-weight:800;color:var(--muted)}
.exam-source-mode-row select{width:100%;min-height:39px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);font:600 12px 'DM Sans',sans-serif}
.exam-source-mode-row small{font-size:10px;line-height:1.5;color:var(--muted);padding-bottom:3px}
.question-source-block{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin:0 0 10px}
.question-source-badges{display:flex;flex-wrap:wrap;gap:5px}
.question-source-badge,.source-type-chip{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border-radius:999px;font-size:9px;line-height:1.25;font-weight:900;letter-spacing:.035em;border:1px solid transparent}
.source-board,.source-type-chip-board{background:#fff0db;color:#88500a;border-color:#eacb9b}
.source-important{background:#e7f6eb;color:#216846;border-color:#b8dfc5}
.source-pattern{background:#e6f0ff;color:#315a95;border-color:#bfd2f0}
.source-original{background:#eef0f2;color:#58636a;border-color:#d2d8dc}
.question-source-note{font-size:9px;line-height:1.45;color:var(--muted);max-width:100%}
.question-source-link{font-size:9px;font-weight:800;color:var(--accent,#49b9c4);text-decoration:underline;text-underline-offset:2px}
.board-source-card{padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--paper-2)}
.source-type-chip{align-self:flex-start;background:#eef0f2;color:#58636a;border-color:#d2d8dc}
.source-type-chip-board{background:#fff0db;color:#88500a;border-color:#eacb9b}
.board-reference-card{border-color:#c69a58}
.answer-review .question-source-block{margin-top:4px}
body.dark .source-board,body.dark .source-type-chip-board{background:#49391f;color:#ffd18a;border-color:#735a32}
body.dark .source-important{background:#1c3f31;color:#aee9c3;border-color:#35634b}
body.dark .source-pattern{background:#203751;color:#b8d5ff;border-color:#355779}
body.dark .source-original,body.dark .source-type-chip{background:#29373e;color:#c1cdd1;border-color:#43545d}
@media(max-width:650px){.exam-source-mode-row{grid-template-columns:1fr}.exam-source-mode-row small{font-size:9px}}

.exam-source-legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:10px 0 15px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2)}
.exam-source-legend>strong{font-size:10px;color:var(--muted);margin-right:3px}
.exam-source-legend .question-source-badge{font-size:9px}


/* v2.2.0 — dedicated past-board question exam centre */
.board-exam-center{margin:0 0 18px;padding:20px;border:1px solid rgba(96,207,217,.24);background:linear-gradient(145deg,var(--paper),var(--paper-2))}
.board-local-total{display:grid;place-items:center;min-width:58px;min-height:58px;border-radius:15px;background:rgba(91,208,220,.13);color:#65d6e0;font-size:23px;font-weight:900}
.board-exam-warning{margin:8px 0 15px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:var(--paper-2);color:var(--muted);font-size:11px;line-height:1.65}
.board-exam-config{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;align-items:end}
.board-exam-config label{display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:800}
.board-exam-config select{min-width:0;width:100%;height:42px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);border-radius:10px;padding:0 10px;font-size:11px}
.board-exam-config .btn{min-height:42px;grid-column:span 3}
.board-exam-groups{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.board-exam-group-chip{padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2);color:var(--muted);font-size:9px}
.board-exam-group-chip strong{color:var(--ink);margin-right:5px}
@media(max-width:650px){.board-exam-center{padding:15px}.board-exam-config{grid-template-columns:repeat(2,minmax(0,1fr))}.board-exam-config .btn{grid-column:span 2}}

/* v2.4.1 — keep every exam workflow before optional external references */
.exam-external-resources{display:grid;gap:14px;margin:24px 0 8px;padding-top:20px;border-top:1px solid var(--line)}
.exam-external-heading{padding:4px 2px 2px}
.exam-external-heading h2{margin:5px 0 6px;color:var(--ink);font-size:clamp(19px,2.3vw,25px);letter-spacing:-.035em}
.exam-external-heading p{max-width:780px;margin:0;font-size:11px;line-height:1.65}
.board-archive-panel{padding:18px}
.board-archive-panel .board-archive-library{margin:0;padding:0;border:0}
@media(max-width:650px){.exam-external-resources{margin-top:18px;padding-top:15px}.board-archive-panel{padding:14px}}

/* v2.3.0 — external past-board archive library */
.board-archive-library{margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}
.board-archive-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.board-archive-head strong{font-size:14px;color:var(--ink)}
.board-archive-head p{max-width:780px;margin:5px 0 0;font-size:11px;line-height:1.55}
.board-archive-count{display:grid;place-items:center;min-width:38px;height:34px;padding:0 8px;border-radius:10px;background:rgba(91,208,220,.12);color:#65d6e0;font-weight:900}
.board-archive-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}
.board-archive-filters label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:800}
.board-archive-filters select{min-width:0;width:100%;height:39px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);border-radius:9px;padding:0 9px;font-size:11px}
.board-archive-summary{margin:8px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2);color:var(--muted);font-size:11px;line-height:1.55}
.board-archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:560px;overflow:auto;padding-right:3px}
.archive-library-card{min-height:172px}
@media(max-width:900px){.board-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.board-archive-filters{grid-template-columns:1fr}.board-archive-grid{grid-template-columns:1fr}.board-archive-head{align-items:center}}
