:root{--bg:#edf4f7;--card:rgba(255,255,255,.78);--solid:rgba(255,255,255,.94);--text:#20313a;--muted:#60727c;--line:#d9e4e8;--primary:#2374d8;--success:#198754;--amber:#a36b16;--purple:#7653a6;--danger:#c14b53;--selected:#eaf3ff;--correct:#e4f6e9;--wrong:#fde9e9;--overlay:rgba(255,255,255,.57);--shadow:0 10px 34px rgba(36,56,67,.10)}
@media(prefers-color-scheme:dark){:root{--bg:#080e13;--card:rgba(16,22,28,.80);--solid:rgba(19,27,34,.96);--text:#f1f4f8;--muted:#a3b0bc;--line:#2b3540;--primary:#61a0ff;--success:#68d291;--amber:#e2ad50;--purple:#ae91de;--danger:#ef7980;--selected:#142f49;--correct:#123725;--wrong:#411d21;--overlay:rgba(0,0,0,.58);--shadow:0 10px 34px rgba(0,0,0,.35)}}
*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;font-family:"Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;color:var(--text);background:var(--bg)}
.bg{position:fixed;inset:0;z-index:0;background:var(--bg);overflow:hidden;pointer-events:none}.wallpaper-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity .18s ease}.wallpaper-image.loaded{opacity:1}.wallpaper-overlay{position:absolute;inset:0;background:var(--overlay)}
button,input,select,textarea{font:inherit}button{border:0;border-radius:12px;background:var(--primary);color:white;padding:9px 14px;cursor:pointer;font-weight:700}button:disabled{opacity:.5;cursor:not-allowed}.ghost{background:var(--solid);border:1px solid var(--line);color:var(--text)}.secondary{background:#60727c}.success{background:var(--success)}.amber{background:var(--amber)}.purple{background:var(--purple)}.danger{background:var(--danger)}input,select,textarea{border:1px solid var(--line);background:var(--solid);color:var(--text);border-radius:11px;padding:10px 12px;width:100%}textarea{min-height:220px;resize:vertical;line-height:1.7}
.hidden{display:none!important}
.login-wrap{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center;padding:18px}.login-card{width:min(430px,96vw);background:var(--card);border:1px solid var(--line);border-radius:26px;padding:30px 30px 26px;box-shadow:var(--shadow);backdrop-filter:blur(13px)}.login-title{font-size:29px;font-weight:900;margin:0 0 6px}.login-sub{color:var(--muted);line-height:1.6;margin-bottom:24px}.field{margin:11px 0}.field label{display:block;color:var(--muted);font-size:13px;font-weight:700;margin-bottom:6px}.login-btn{width:100%;margin-top:14px;padding:12px}.login-tip{margin-top:16px;color:var(--muted);font-size:12px;line-height:1.6}
.app{position:relative;z-index:1;max-width:1240px;height:100vh;margin:0 auto;padding:10px 14px;display:flex;flex-direction:column;overflow:hidden}.header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:9px 14px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.brand h1{margin:0;font-size:21px}.brand small{color:var(--muted);font-size:12px}.header-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.user-tag{color:var(--muted);font-size:13px;margin-right:5px}
.home{display:grid;grid-template-columns:minmax(360px,1fr) 306px;gap:10px;margin-top:10px;flex:1;min-height:0}.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:var(--shadow);backdrop-filter:blur(10px);display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel-title{font-size:17px;font-weight:700;margin:0 0 8px}.study-stats{display:flex;gap:8px;margin:0 0 9px}.study-stat{flex:1;border:1px solid var(--line);background:var(--solid);border-radius:12px;padding:8px 11px}.study-stat strong{display:block;font-size:22px;line-height:1.1;color:var(--primary)}.study-stat span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.bank-filterbar{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:8px;margin-bottom:8px}.bank-filterbar .search{margin-bottom:0}.subject-filter{font-weight:700}.search{margin-bottom:8px}.bank-list{flex:1;min-height:0;overflow:auto;padding-right:3px}.category{margin:8px 0 4px;color:var(--muted);font-size:12px;font-weight:700}.bank{display:flex;align-items:center;gap:9px;padding:9px;border-radius:12px;cursor:pointer;border:1px solid transparent}.bank:hover{background:var(--selected);border-color:var(--line)}.bank-info{min-width:0;flex:1}.bank-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-path{font-size:11px;color:var(--muted);margin-top:2px}.badge{font-size:11px;padding:3px 7px;border-radius:999px;background:var(--selected);color:var(--primary);white-space:nowrap}.side p{color:var(--muted);line-height:1.48;margin:5px 0;font-size:13px}.drop-note{border:1px dashed var(--line);border-radius:13px;padding:10px;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.55}
.quiz{display:none;flex:1;min-height:0;margin-top:10px;flex-direction:column}.quiz.active{display:flex}.quiz-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px}.progress{font-size:12px;color:var(--muted)}.quiz-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:var(--shadow);backdrop-filter:blur(10px);display:flex;flex-direction:column;flex:1;min-height:0}.quiz-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.type{font-size:13px;font-weight:700;color:var(--primary)}.type.multi{color:var(--amber)}.question-tools{display:flex;align-items:center;gap:8px}.attempt-badge{position:relative;background:var(--solid);border:1px solid var(--line);border-radius:999px;padding:7px 11px;color:var(--muted);font-size:12px}.attempt-badge.done{background:var(--selected);color:var(--primary)}.attempt-history{display:none;position:absolute;right:0;top:calc(100% + 7px);width:334px;border-radius:13px;background:var(--solid);border:1px solid var(--line);padding:10px 12px;box-shadow:var(--shadow);z-index:10}.attempt-badge:hover .attempt-history{display:block}.attempt-history-title{font-weight:700;color:var(--muted);font-size:12px;margin-bottom:6px}.attempt-locked{font-size:12px;color:var(--muted);line-height:1.7}.attempt-history ul{list-style:none;margin:0;padding:0;max-height:185px;overflow:auto}.attempt-history li{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:12px}.attempt-history li:last-child{border-bottom:0}.attempt-time{color:var(--muted)}.attempt-choice{color:var(--text)}.ok{grid-row:1/3;grid-column:2;color:var(--success);font-weight:700}.no{grid-row:1/3;grid-column:2;color:var(--danger);font-weight:700}
.quiz-content{display:flex;gap:10px;flex:1;min-height:0;margin-top:8px}.question-column{display:flex;flex-direction:column;min-width:0;flex:1;min-height:0}.question-area{flex:1;min-height:0;overflow:auto;padding-right:4px}.question{font-size:18px;font-weight:700;line-height:1.47;margin:0 0 10px;white-space:pre-wrap}.options{display:flex;flex-direction:column;gap:7px;align-items:flex-start}.option{max-width:100%;width:fit-content;background:var(--solid);border:1px solid var(--line);border-radius:12px;padding:9px 12px;line-height:1.45;cursor:pointer;overflow-wrap:anywhere}.option.selected{background:var(--selected);border-color:var(--primary)}.option.correct{background:var(--correct);border-color:var(--success)}.option.wrong{background:var(--wrong);border-color:var(--danger)}.option-index{display:inline-block;width:28px;font-weight:700}.actions{display:flex;justify-content:flex-start;gap:8px;border-top:1px solid var(--line);padding-top:9px;margin-top:9px}.result{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;flex:0 0 min(405px,39%);overflow:auto;min-height:0;padding:18px;border-radius:13px;background:var(--card);border:1px dashed var(--line)}.result.active{display:block;text-align:left;justify-content:flex-start;background:var(--solid);border-style:solid;padding:12px}.result-status{font-weight:700;line-height:1.55;margin-bottom:9px}.good{color:var(--success)}.bad{color:var(--danger)}.result-text{white-space:pre-wrap;line-height:1.65}.thinking-title{font-size:17px;color:var(--primary);font-weight:700;margin-bottom:10px}.thinking-text{color:var(--muted);line-height:1.75;font-size:14px}
.modal-mask{display:none;position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.48);align-items:center;justify-content:center;padding:18px}.modal-mask.active{display:flex}.modal{background:var(--solid);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:21px;max-height:88vh;overflow:auto;padding:18px;width:min(760px,96vw)}.modal h2{margin:0 0 12px}.modal-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-titlebar h2{margin:0}.modal-titlebar .close-top{flex:0 0 auto}.modal-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.modal-row>*{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}.notice{white-space:pre-wrap;line-height:1.72;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:14px}.invite-reveal{padding:12px 14px}.invite-reveal-title{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:8px}.invite-code{font-family:ui-monospace,Consolas,"Courier New",monospace;font-size:24px;font-weight:800;letter-spacing:2px;color:var(--primary);background:var(--solid);border:1px dashed var(--line);border-radius:12px;padding:11px 10px;text-align:center;user-select:all;overflow-wrap:anywhere}.invite-meta{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.6}.invite-url{font-size:14px;letter-spacing:0;text-align:left;line-height:1.45;color:var(--text)}.invite-actions{margin-top:10px;flex-wrap:wrap}
.admin-tabs{display:flex;gap:7px;margin-bottom:12px}.admin-body{display:none}.admin-body.active{display:block}.admin-list{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px;margin-top:10px}.admin-line{display:flex;justify-content:space-between;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line);font-size:13px}.admin-line>span:last-child{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.admin-line:last-child{border:0}.warn{color:var(--amber);font-size:12px;white-space:pre-wrap;line-height:1.6;margin-top:8px}
.mobile-nav,.mobile-review-actions{display:none}.category-row{display:block}.bank-group{display:block}
.history-sheet-mask{display:none;position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.5);align-items:flex-end;justify-content:center}.history-sheet-mask.active{display:flex}.history-sheet{background:var(--solid);border-radius:22px 22px 0 0;border:1px solid var(--line);width:100%;max-height:min(68vh,560px);overflow:hidden;padding:10px 15px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -14px 42px rgba(0,0,0,.22)}.sheet-grip{height:5px;width:46px;margin:0 auto 13px;border-radius:999px;background:var(--line)}.sheet-title{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:800;font-size:17px;margin-bottom:11px}.sheet-content{max-height:calc(68vh - 88px);overflow:auto}.sheet-note{padding:16px 12px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);font-size:14px;line-height:1.7}.sheet-record{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:12px 3px;border-bottom:1px dashed var(--line);font-size:14px}.sheet-record:last-child{border-bottom:0}.sheet-record .sheet-time{color:var(--muted);font-size:12px}.sheet-record .sheet-choice{font-weight:700}.sheet-record .sheet-status{grid-row:1 / 3;grid-column:2;align-self:center;font-weight:800}.sheet-record .sheet-status.good{color:var(--success)}.sheet-record .sheet-status.bad{color:var(--danger)}
.milestone{display:none;position:fixed;inset:0;z-index:60;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,rgba(49,185,132,.28),rgba(4,8,14,.95) 56%,#020509);color:#fff}.milestone.active{display:flex}.celebrate{width:min(690px,92vw);border-radius:31px;padding:43px 35px;text-align:center;background:linear-gradient(135deg,rgba(11,31,35,.86),rgba(15,25,45,.84));border:1px solid rgba(255,255,255,.22);box-shadow:0 26px 90px rgba(0,0,0,.5)}.crown{font-size:52px;color:#ffe184}.celebrate h2{font-size:38px;margin:13px 0 8px}.count{font-size:21px;color:#ffe184;font-weight:700}.message{line-height:1.76;color:rgba(255,255,255,.88);margin:16px auto 25px;max-width:520px}.toast{position:fixed;left:50%;bottom:18px;z-index:80;transform:translateX(-50%) translateY(20px);opacity:0;background:var(--text);color:var(--bg);padding:10px 16px;border-radius:999px;transition:.18s}.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:700px){
html,body{height:auto;min-height:100%;overflow:auto}.app{height:auto;min-height:100dvh;overflow:visible;padding:8px 8px calc(72px + env(safe-area-inset-bottom))}.app.quiz-mode{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
.header{flex-direction:row;align-items:center;gap:7px;padding:9px 11px;border-radius:15px}.brand h1{font-size:18px}.brand small{display:none}.header-actions{margin-left:auto}.header-actions .ghost,#adminBtn{display:none}.user-tag{display:none}.header-actions .secondary{font-size:12px;padding:7px 10px}.app.quiz-mode .header{display:none}
.home{display:block;margin-top:8px}.panel{padding:11px;border-radius:16px;max-height:none}.home .panel{min-height:calc(100dvh - 86px)}.side{display:none}.mobile-leaderboard{display:block;margin-top:14px}.leaderboard-row{grid-template-columns:28px 1fr auto;padding:10px 7px}.leader-score{font-size:11px}.study-stat{padding:9px 11px}.study-stat strong{font-size:25px}.bank-filterbar{grid-template-columns:1fr;gap:7px;margin:3px 0 8px}.bank-filterbar .search{padding:12px;margin:0}.bank-list{max-height:none;overflow:visible}.category-row{display:flex;align-items:center;justify-content:space-between;margin:8px 0 5px;padding:10px 11px;border-radius:12px;background:var(--solid);border:1px solid var(--line);cursor:pointer}.category{margin:0;font-size:14px;color:var(--text)}.category-arrow{display:block;color:var(--muted);font-weight:800;transition:transform .16s}.category-row.open .category-arrow{transform:rotate(180deg)}.bank-group{display:none;margin-bottom:5px}.bank-group.open{display:block}.bank{padding:13px 12px;margin-bottom:5px;background:var(--card);border:1px solid var(--line);border-radius:13px}.bank-name{font-size:15px}.bank-path{font-size:12px}
.mobile-nav{position:fixed;display:flex;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));height:56px;z-index:20;border:1px solid var(--line);border-radius:19px;background:var(--solid);box-shadow:var(--shadow);padding:5px;gap:5px}.mobile-nav button{flex:1;background:transparent;color:var(--muted);padding:4px;border-radius:14px;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.mobile-nav button strong{font-size:17px;line-height:17px}.mobile-nav button.active{color:var(--primary);background:var(--selected)}.app.quiz-mode .mobile-nav{display:none}
.quiz{margin-top:0;min-height:calc(100dvh - 16px)}.quiz-top{padding:2px 1px 7px;margin:0}.quiz-top .ghost:last-child{display:none}.progress{font-size:12px;text-align:right}.quiz-card{border-radius:16px;padding:10px;min-height:0;overflow:visible}.quiz-head{align-items:flex-start;margin-bottom:6px}.question-tools{gap:0}.attempt-badge{padding:8px 10px;font-size:12px;cursor:pointer;max-width:215px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attempt-history{display:none!important}#aiBtn{display:none}
.quiz-content{display:flex;flex-direction:column;overflow:visible;gap:10px;margin-top:5px}.question-column{display:block;min-height:0}.question-area{overflow:visible;padding:0 0 74px}.question{font-size:17px;line-height:1.55;margin:3px 0 13px}.options{gap:9px;align-items:stretch}.option{width:100%;min-height:50px;border-radius:14px;padding:13px 12px;font-size:15px;line-height:1.48;display:flex;align-items:flex-start}.option-index{flex:0 0 31px;width:31px}
.actions{position:fixed;display:flex;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:18;margin:0;padding:7px;border:1px solid var(--line);border-radius:17px;background:var(--solid);box-shadow:var(--shadow);gap:6px}.actions button{flex:1;min-height:47px;padding:8px 5px;border-radius:12px;font-size:14px}
.result{display:none;min-height:0;max-height:none;overflow:visible;padding:13px;border-radius:14px;flex:0 0 auto}.result.active{display:block}.result-status{font-size:14px}.result-text{font-size:14px;line-height:1.72}
.mobile-review-actions.active{display:flex;gap:8px;margin:0 0 5px}.mobile-review-actions button{flex:1;min-height:47px}
.modal-mask{padding:12px;align-items:flex-end}.modal{border-radius:22px 22px 16px 16px;width:100%;max-height:88dvh;padding:16px}.admin-tabs{overflow-x:auto}.modal-row>*{flex-basis:100%}.celebrate{width:calc(100vw - 22px);padding:34px 19px;border-radius:25px}.celebrate h2{font-size:29px}.count{font-size:18px}.message{font-size:15px}
}
@media(min-width:701px) and (max-width:900px){html,body{height:auto;overflow:auto}.app{height:auto;min-height:100vh;overflow:visible;padding:8px}.header{flex-direction:column;align-items:flex-start;gap:9px}.home{display:block}.panel{margin-top:8px;max-height:none}.bank-list{max-height:54vh}.side{display:none}.quiz{min-height:calc(100vh - 90px)}.quiz-content{display:flex;flex-direction:column;overflow:auto}.question-area{overflow:visible}.result{flex:0 0 auto;min-height:116px;max-height:40vh}.actions{position:sticky;bottom:0;background:var(--card);border-radius:13px;padding:9px;z-index:3}.attempt-history{width:min(330px,86vw)}}

.full-width-top{width:100%;margin-top:9px}.compact-modal{width:min(480px,96vw)}.settings-note{color:var(--muted);line-height:1.6}.top-gap-12{margin-top:12px}.top-gap-10{margin-top:10px}.top-gap-9{margin-top:9px}.muted-inline{color:var(--muted)}.result-text-muted{color:var(--muted)}

.profile-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:14px}.profile-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-label{font-size:12px;color:var(--muted);margin-bottom:4px}.profile-nickname{font-size:24px;font-weight:800;color:var(--primary)}.point-pill{background:var(--selected);color:var(--primary);font-weight:800;border-radius:999px;padding:8px 13px}.profile-stats{color:var(--muted);font-size:13px;margin-top:9px}.profile-actions{justify-content:flex-start}.nickname-candidate{background:var(--solid);border:1px dashed var(--line);border-radius:13px;padding:12px;margin-top:11px}.nickname-candidate strong{font-size:20px;color:var(--primary)}.settings-section{margin:15px 0 8px}.leaderboard-title{margin-top:20px}.leaderboard-list{margin-top:9px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.leaderboard-row{display:grid;grid-template-columns:30px 1fr auto;gap:6px;align-items:center;padding:9px 9px;border-bottom:1px solid var(--line);font-size:13px}.leaderboard-row:last-child{border-bottom:0}.leaderboard-row.mine{background:var(--selected)}.leaderboard-row .rank{font-weight:800;color:var(--primary);text-align:center}.leader-name{font-weight:700}.leader-score{color:var(--muted);font-size:12px}.leaderboard-row.compact{grid-template-columns:28px minmax(0,1fr);padding:7px 8px}.leaderboard-row.compact .leader-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-rank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}.home-rank-card{min-width:0}.home-rank-title{font-size:12px;font-weight:800;color:var(--muted);margin:0 0 6px 2px}.home-rank-grid .leaderboard-list{margin-top:0}.home-rank-grid .drop-note{margin-top:0;font-size:11px;padding:8px}
.mobile-leaderboard{display:none}.invite-admin-line{align-items:flex-start}

.reauth-mask{z-index:42}.reauth-mask .warn{min-height:20px;margin-top:10px}

/* online-0.1.22 subject modules, random practice and personal wrong-book */
.subject-module-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:10px 0 12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--solid)}
.subject-module-title{font-size:20px;font-weight:800;color:var(--primary);margin-bottom:3px}.random-controls{display:flex;align-items:center;gap:8px}.random-controls select{min-width:110px}.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:2px 1px 1px}.subject-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 15px;border:1px solid var(--line);border-radius:16px;background:var(--solid);cursor:pointer;transition:.16s}.subject-card:hover{border-color:var(--primary);transform:translateY(-1px)}.subject-card-title{font-size:18px;font-weight:800;color:var(--text)}.subject-card-meta{font-size:12px;color:var(--muted);margin-top:5px}.subject-card-arrow{font-size:22px;color:var(--primary);font-weight:800}.wrongbook-bank{border-color:rgba(232,164,38,.38);background:rgba(232,164,38,.08)}.wrongbook-bank .bank-name{color:var(--amber);font-weight:800}.question-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.question-heading .question{flex:1}.difficulty-tag{flex:0 0 auto;border-radius:999px;padding:5px 11px;margin-top:3px;font-size:12px;font-weight:800;white-space:nowrap}.difficulty-tag.easy{background:rgba(49,185,132,.15);color:var(--success)}.difficulty-tag.hard{background:rgba(224,79,79,.14);color:var(--danger)}.question-origin{font-size:12px;color:var(--muted);margin-top:6px}.question-tools #markQuestionBtn.marked{border-color:rgba(232,164,38,.5);color:var(--amber);background:rgba(232,164,38,.1)}
@media(max-width:700px){.subject-module-header{grid-template-columns:1fr;gap:9px}.subject-module-header #backSubjectsBtn{justify-self:start}.random-controls{width:100%}.random-controls select,.random-controls button{flex:1}.subject-grid{grid-template-columns:1fr}.subject-card{padding:15px 13px}.question-heading{gap:7px}.difficulty-tag{font-size:11px;padding:4px 8px}.quiz-head{gap:7px}.question-tools{flex-wrap:wrap;justify-content:flex-end}}

/* online-0.1.22 final learning preferences and release reset */
.setting-toggle{display:flex;align-items:center;gap:8px;margin:9px 0;color:var(--text);font-size:13px}.setting-toggle input{width:auto;flex:0 0 auto;accent-color:var(--primary)}.compact-section{font-size:15px;margin-top:14px}.subject-map{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px;background:var(--solid);border:1px solid var(--line);border-radius:12px;overflow:hidden}.subject-map th,.subject-map td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}.subject-map th{color:var(--muted);font-weight:700}.subject-map tr:last-child td{border-bottom:0}.danger-note{border-color:rgba(193,75,83,.45);color:var(--text);background:rgba(193,75,83,.06)}

.import-field{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.import-field input,.import-field select{margin-top:2px;color:var(--text);font-weight:400}.import-report{margin-top:12px}.import-summary{font-size:13px;font-weight:700;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--solid);margin-bottom:8px}.import-result{font-size:12px;line-height:1.6;border-radius:11px;padding:9px 11px;margin:7px 0;border:1px solid var(--line);background:var(--solid)}.import-result.success strong{color:#21835b}.import-result.failure strong{color:#c14b53}.import-result span{color:var(--muted)}

.learning-toolbar{display:flex;align-items:center;gap:10px;margin:10px 0}.learning-toolbar strong{flex:1;font-size:14px}.learning-stats-list{border:1px solid var(--line);border-radius:12px;overflow:auto;max-height:440px}.learning-stat-row{display:grid;grid-template-columns:minmax(150px,1.55fr) 100px 145px 145px 70px;gap:8px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line);font-size:12px;min-width:600px}.learning-stat-row:last-child{border-bottom:0}.learning-stat-head{position:sticky;top:0;background:var(--solid);z-index:1;color:var(--muted);font-weight:700}.learning-name{font-weight:700;line-height:1.45}.learning-no-data{color:var(--muted)}


/* online-0.1.26 verbatim content tags and related-question list */
.tag-search-panel{margin:12px 0 14px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--solid)}.tag-search-title{margin-bottom:4px}.tag-search-note{font-size:12px;color:var(--muted);line-height:1.55;margin-bottom:9px}.tag-search-controls{display:flex;gap:8px;align-items:center}.tag-search-controls .search{flex:1;margin:0}.content-tag-results,.content-tag-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.content-tags-section{border-top:1px dashed var(--line);margin-top:14px;padding-top:11px}.content-tags-title{font-size:12px;color:var(--muted);font-weight:700;margin-bottom:7px}.content-tag-pill{border:1px solid rgba(65,129,216,.26);background:rgba(65,129,216,.08);color:var(--primary);padding:6px 11px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;line-height:1.35}.content-tag-pill:hover{border-color:var(--primary);background:var(--selected)}.tag-result-pill span{font-size:11px;color:var(--muted);margin-left:4px}.tag-pending-note{margin-top:10px;color:var(--muted);font-size:12px;line-height:1.55}
@media(max-width:700px){.tag-search-panel{padding:11px;margin:10px 0 12px}.tag-search-controls{display:grid;grid-template-columns:1fr auto;gap:7px}.tag-search-controls button{min-height:44px}.content-tag-results,.content-tag-list{gap:6px}.content-tag-pill{padding:7px 10px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.content-tags-section{margin-top:12px;padding-top:10px}.learning-stats-list{max-height:58dvh}.learning-stat-row{font-size:12px}.import-field input,.import-field select{min-height:44px}}

.tag-question-modal{width:min(820px,96vw)}.tag-question-list{display:flex;flex-direction:column;gap:9px;margin-top:13px}.tag-question-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:var(--bg);color:var(--text)}.tag-question-card:hover{border-color:var(--primary);background:var(--selected)}.tag-question-title{font-weight:700;line-height:1.5}.tag-question-origin{font-size:12px;color:var(--muted)}.tag-question-options{font-size:13px;color:var(--muted);line-height:1.55;white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){.tag-question-modal{max-height:88dvh}.tag-question-list{gap:8px}.tag-question-card{padding:11px;min-height:54px}.tag-question-title{font-size:14px}.tag-question-options{font-size:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}}
.ai-extra-actions{margin-top:10px;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.check-inline{display:flex;align-items:center;gap:6px;min-height:38px;color:#425466;font-size:14px}
@media(max-width:720px){.ai-extra-actions{justify-content:stretch}.ai-extra-actions button{width:100%}.check-inline{width:100%;justify-content:flex-start}}


/* online-0.1.28 AI live progress and memorize mode */
.ai-batch-progress{margin-top:12px;border:1px solid var(--line);background:var(--solid);border-radius:13px;padding:12px}.ai-batch-progress-head{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:13px;margin-bottom:9px}.ai-batch-progress-track{height:10px;background:rgba(65,129,216,.12);border-radius:999px;overflow:hidden}.ai-batch-progress-bar{height:100%;background:var(--primary);border-radius:999px;transition:width .2s ease}.memorize-panel{border-color:rgba(49,185,132,.35)}.memorize-correct{box-shadow:inset 0 0 0 1px rgba(49,185,132,.34)}
@media(max-width:700px){.ai-batch-progress{padding:10px}.ai-batch-progress-head{font-size:12px;flex-wrap:wrap}.memorize-panel{min-height:120px}}


/* online-0.1.29 retain review content in memorize mode and pin modal close controls */
.modal{position:relative}
.modal-titlebar{position:sticky;top:-18px;z-index:12;margin:-18px -18px 12px;padding:18px 18px 11px;background:var(--solid);border-bottom:1px solid var(--line);border-radius:21px 21px 0 0}
.modal-titlebar .close-top{position:relative;z-index:13;flex:0 0 auto}
.required-titlebar{padding-right:18px}
.history-sheet .sheet-title{position:sticky;top:0;z-index:4;background:var(--solid)}
.memorize-panel .content-tags-section{margin-top:12px}
@media(max-width:700px){.modal-titlebar{top:-16px;margin:-16px -16px 12px;padding:16px 16px 11px;border-radius:22px 22px 0 0}}


/* online-0.1.32 settings-style administrator navigation */
.admin-modal{width:min(1120px,96vw);height:min(780px,90vh);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;padding:18px}
.admin-titlebar{flex:0 0 auto;margin-bottom:0}
.admin-subtitle{margin-top:4px;color:var(--muted);font-size:12px;font-weight:500}
.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:15px;flex:1;min-height:0;margin-top:13px}
.admin-sidebar{min-height:0;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:15px;padding:10px}
.admin-nav-group{margin-bottom:15px}.admin-nav-group:last-child{margin-bottom:0}
.admin-nav-label{padding:3px 9px 7px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em}
.admin-nav-item{display:block;width:100%;margin:2px 0;padding:10px 11px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);text-align:left;font-size:14px;font-weight:650;transition:background .16s,border-color .16s,color .16s}
.admin-nav-item:hover{border-color:var(--line);background:var(--solid)}
.admin-nav-item.active{border-color:rgba(35,116,216,.2);background:var(--selected);color:var(--primary);font-weight:800}
.admin-danger-group{padding-top:9px;border-top:1px solid var(--line)}
.admin-nav-danger{color:var(--danger)}.admin-nav-danger.active{border-color:rgba(193,75,83,.26);background:rgba(193,75,83,.08);color:var(--danger)}
.admin-workspace{min-height:0;display:flex;flex-direction:column;background:var(--solid);border:1px solid var(--line);border-radius:15px;overflow:hidden}
.admin-page-head{flex:0 0 auto;padding:16px 18px 13px;border-bottom:1px solid var(--line);background:var(--solid)}
.admin-page-head h3{font-size:19px;line-height:1.2;margin:0 0 5px}.admin-page-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.admin-panel-scroll{flex:1;min-height:0;overflow:auto;padding:4px 18px 18px}.admin-panel-scroll .admin-body{padding-top:8px}
.admin-panel-scroll .admin-list{max-height:none}
@media(max-width:700px){.admin-modal{height:88dvh;padding:16px}.admin-layout{display:flex;flex-direction:column;gap:10px;margin-top:9px}.admin-sidebar{flex:0 0 auto;display:flex;gap:8px;overflow-x:auto;padding:8px;scrollbar-width:thin}.admin-nav-group{display:flex;gap:5px;align-items:center;flex:0 0 auto;margin:0;padding-right:8px;border-right:1px solid var(--line)}.admin-nav-group:last-child{border-right:0;padding-right:0}.admin-nav-label{display:none}.admin-danger-group{padding-top:0;border-top:0}.admin-nav-item{white-space:nowrap;width:auto;padding:9px 11px;font-size:13px}.admin-workspace{flex:1}.admin-page-head{padding:12px 13px 10px}.admin-page-head h3{font-size:17px}.admin-panel-scroll{padding:3px 12px 14px}}
.compact-select{max-width:118px;padding:7px 9px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--text)}
.import-result.pending{border-left:4px solid #d89a22;background:rgba(216,154,34,.08)}
.choice-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.choice-row label{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.72);border:1px solid rgba(100,116,139,.28);border-radius:12px;padding:9px 12px}.identity-box{border:1px solid rgba(99,102,241,.18);background:rgba(238,242,255,.55);border-radius:16px;padding:12px;margin-top:10px}.subject-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.subject-check-grid label{display:flex;align-items:center;gap:8px;border:1px solid rgba(100,116,139,.22);background:rgba(255,255,255,.72);border-radius:12px;padding:9px 10px}

/* online-0.1.36 app shell layout refactor */
.home-search-hero{margin:12px 0 14px;padding:13px;border:1px solid rgba(35,116,216,.18);border-radius:16px;background:linear-gradient(135deg,rgba(35,116,216,.10),rgba(118,83,166,.08));display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.15fr);gap:12px;align-items:center}
.standalone-page{margin-top:10px;flex:1;min-height:0;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}
.page-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}.page-head h2{font-size:24px;margin:0 0 4px}.page-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.standalone-card{background:var(--solid);box-shadow:none}.rank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rank-grid .leaderboard-list{max-height:calc(100vh - 245px);overflow:auto}.about-page-text{max-width:920px;margin:0 auto;background:var(--solid)}
body.admin-route-active .modal-mask#adminMask{background:transparent;padding:0;position:fixed;inset:0;z-index:20;align-items:stretch;justify-content:center;pointer-events:none}body.admin-route-active #adminMask.active{display:flex}body.admin-route-active #adminMask .admin-modal{width:min(1240px,100vw);height:100vh;max-height:100vh;border-radius:0;border-left:0;border-right:0;pointer-events:auto}body.admin-route-active .app{filter:none}body.admin-route-active .header,body.admin-route-active #home,body.admin-route-active #quiz,body.admin-route-active #tagsPage,body.admin-route-active #rankingPage,body.admin-route-active #aboutPage{visibility:hidden}
@media(max-width:900px){.home-search-hero{grid-template-columns:1fr}.rank-grid{grid-template-columns:1fr}.page-head{flex-direction:column}.rank-grid .leaderboard-list{max-height:none}}
@media(max-width:700px){.header-actions #headerTagsBtn,.header-actions #headerRankingBtn,.header-actions #aboutBtn,.header-actions #settingsBtn,.header-actions #adminBtn{display:none}.mobile-nav{grid-template-columns:repeat(6,1fr)}.standalone-page{margin:8px 0 58px;border-radius:16px;padding:12px}.page-head h2{font-size:21px}.home-search-hero{padding:11px;margin:10px 0}.home-search-hero .tag-search-controls{grid-template-columns:1fr auto}.leaderboard-list{font-size:12px}body.admin-route-active #adminMask .admin-modal{height:100dvh;max-height:100dvh;border-radius:0}}
.compact-answer-input{width:92px;max-width:120px;padding:8px 10px;border-radius:12px;border:1px solid rgba(15,23,42,.16);background:rgba(255,255,255,.92);font-weight:700;text-transform:uppercase;text-align:center;margin-right:8px}.incomplete-question-line strong{display:inline-block;margin:4px 0}.answer-missing-note{color:#92400e;font-weight:700}
.learning-summary-card{border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.46);border-radius:24px;padding:14px;margin:10px 0 14px;box-shadow:0 12px 28px rgba(60,80,120,.08)}
.learning-summary-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.learning-summary-head strong{display:block;font-size:1.05rem}.learning-summary-head span{display:block;color:#667085;font-size:.88rem;margin-top:4px}.learning-stats-expanded{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.learning-stats-expanded .study-stat span{font-size:.78rem}.learning-calendar-card{padding:18px}.learning-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.calendar-week-head,.learning-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-week-head span{text-align:center;color:#667085;font-size:.82rem}.calendar-cell{min-height:64px;border:1px solid rgba(120,137,170,.22);border-radius:16px;background:rgba(255,255,255,.45);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:9px;color:#334155;text-align:left}.calendar-cell.empty{border:0;background:transparent;box-shadow:none}.calendar-cell strong{font-size:.95rem}.calendar-cell span{font-size:.72rem;color:#64748b}.calendar-cell.light{background:rgba(219,234,254,.7)}.calendar-cell.normal{background:rgba(191,219,254,.92)}.calendar-cell.high{background:rgba(96,165,250,.92);color:white}.calendar-cell.high span{color:rgba(255,255,255,.86)}.calendar-cell.active{outline:3px solid rgba(59,130,246,.35);border-color:rgba(59,130,246,.6)}.learning-calendar-detail{margin-top:16px;border-radius:18px;background:rgba(255,255,255,.5);padding:14px}.calendar-detail-title{font-weight:800;margin-bottom:8px;color:#1e293b}.learning-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.learning-overview-card{border:1px solid rgba(120,137,170,.22);border-radius:18px;background:rgba(255,255,255,.45);padding:12px}.learning-overview-card strong{display:block;font-size:1.3rem}.subject-heat-list{display:flex;gap:8px;flex-wrap:wrap}.subject-heat-pill{border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.55);border:1px solid rgba(120,137,170,.22)}
@media(max-width:760px){.learning-stats-expanded{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-week-head,.learning-calendar-grid{gap:5px}.calendar-cell{min-height:52px;border-radius:13px;padding:7px}.learning-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.1.53 Question Header Compact Update */
#headerQuizBackBtn{display:none}
.app.quiz-mode .header{display:flex;margin-bottom:8px}
.app.quiz-mode .header-actions button:not(#headerQuizBackBtn){display:none!important}
.app.quiz-mode #headerQuizBackBtn{display:inline-flex!important;white-space:nowrap}
.app.quiz-mode .header-actions .user-tag{display:inline-flex;max-width:min(46vw,380px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app.quiz-mode .quiz-top.compact-quiz-progress{justify-content:center;margin-bottom:7px;padding:0 2px 6px;border-bottom:1px solid var(--line)}
.app.quiz-mode .quiz-top.compact-quiz-progress .progress{text-align:center;width:100%}
@media(max-width:700px){.app.quiz-mode .header{display:flex!important;position:sticky;top:6px;z-index:11;padding:8px 10px;border-radius:15px;margin-bottom:7px}.app.quiz-mode .brand{display:none}.app.quiz-mode .header-actions{width:100%;margin-left:0;display:flex;justify-content:space-between;align-items:center;gap:8px}.app.quiz-mode .header-actions .user-tag{display:inline-flex!important;max-width:62vw;font-size:12px}.app.quiz-mode #headerQuizBackBtn{font-size:12px;padding:7px 10px}.app.quiz-mode .quiz{min-height:calc(100dvh - 72px)}}

/* online-0.1.53 Question Topbar Breadcrumb Update */
.brand{display:flex;align-items:center;gap:8px;min-width:0}.brand h1{flex:0 0 auto}.quiz-header-progress{display:none;min-width:0;max-width:min(52vw,560px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quiz-return-btn{display:none;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:999px;font-size:18px;font-weight:900;line-height:1}.app.quiz-mode .brand small{display:none}.app.quiz-mode .quiz-return-btn{display:inline-flex!important}.app.quiz-mode .quiz-header-progress{display:inline-block}.app.quiz-mode .header-actions button{display:none!important}.app.quiz-mode .header-actions .user-tag{display:inline-flex;max-width:min(34vw,360px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app.quiz-mode .quiz-top.compact-quiz-progress{display:none!important}.app.quiz-mode .header{gap:12px}.app.quiz-mode .brand{flex:1 1 auto}.app.quiz-mode .header-actions{flex:0 0 auto;margin-left:auto}
@media(max-width:700px){.app.quiz-mode .header{display:flex!important;position:sticky;top:6px;z-index:11;padding:8px 10px;border-radius:15px;margin-bottom:7px}.app.quiz-mode .brand{display:flex!important;flex:1 1 auto;gap:6px}.app.quiz-mode .brand h1{font-size:17px}.app.quiz-mode .quiz-return-btn{width:30px;height:30px;font-size:18px}.app.quiz-mode .quiz-header-progress{max-width:45vw;font-size:11px}.app.quiz-mode .header-actions{width:auto;margin-left:auto}.app.quiz-mode .header-actions .user-tag{display:inline-flex!important;max-width:28vw;font-size:11px}.app.quiz-mode .quiz{min-height:calc(100dvh - 72px)}}

.mistake-reason-picker{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}.mistake-reason-title{font-weight:800;margin-bottom:8px;color:var(--text)}.mistake-reason-options{display:flex;flex-wrap:wrap;gap:8px}.mistake-reason-options button{border:1px solid rgba(214,87,96,.24);background:rgba(214,87,96,.06);color:var(--text);padding:7px 11px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer}.mistake-reason-options button.selected{background:rgba(45,164,113,.12);border-color:rgba(45,164,113,.45);color:var(--success)}.mistake-reason-note{font-size:12px;color:var(--muted);line-height:1.55;margin-top:8px}.mistake-reason-stats{display:flex;flex-direction:column;gap:9px}.mistake-reason-block{border:1px solid rgba(120,137,170,.22);border-radius:14px;background:rgba(255,255,255,.45);padding:10px 12px}.mistake-reason-block-title{font-weight:800;margin-bottom:7px}.mistake-reason-bar{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:12px}.mistake-reason-bar-label{min-width:78px;color:var(--muted);font-weight:700}.mistake-reason-track{flex:1;height:8px;background:rgba(120,137,170,.18);border-radius:999px;overflow:hidden}.mistake-reason-fill{height:100%;background:rgba(65,129,216,.55);border-radius:999px}.mistake-reason-count{min-width:44px;text-align:right;color:var(--muted)}

/* online-0.1.56 Learning Calendar Detail Below Calendar Layout */
.learning-calendar-layout{display:grid;grid-template-columns:minmax(430px,1.05fr) minmax(320px,.95fr);gap:16px;align-items:start}.learning-calendar-main,.learning-calendar-side{min-width:0}.learning-calendar-side{display:flex;flex-direction:column;gap:12px}.learning-calendar-layout .learning-calendar-detail{margin-top:12px;min-height:auto}.mistake-reason-side-card{border-radius:18px;background:rgba(255,255,255,.42);padding:13px;border:1px solid rgba(120,137,170,.18)}.learning-calendar-layout .calendar-cell{min-height:56px}.learning-calendar-layout .mistake-reason-stats{max-height:calc(100vh - 285px);overflow:auto;padding-right:2px}
@media(max-width:980px){.learning-calendar-layout{grid-template-columns:1fr}.learning-calendar-layout .calendar-cell{min-height:52px}.learning-calendar-layout .mistake-reason-stats{max-height:none;overflow:visible}}

/* online-0.1.56: selected day detail is placed below the calendar on desktop. */
.learning-calendar-main .learning-calendar-detail{margin-top:12px}
.learning-calendar-side .learning-calendar-detail{display:none}

/* online-0.1.57 Knowledge Mastery Map */
.mastery-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(120,137,170,.22);background:rgba(255,255,255,.46);border-radius:14px;padding:12px;margin:0 0 8px}.drop-inline{font-size:12px;color:var(--muted);line-height:1.5;margin-top:3px}.mastery-modal{width:min(960px,96vw)}.mastery-list{display:flex;flex-direction:column;gap:7px;max-height:36vh;overflow:auto;padding-right:2px}.mastery-row{display:grid;grid-template-columns:minmax(120px,1fr) 92px 112px 64px;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid rgba(120,137,170,.2);background:rgba(255,255,255,.48);border-radius:13px;padding:10px 12px;color:var(--text)}.mastery-row:hover{border-color:rgba(65,129,216,.45);background:var(--selected)}.mastery-name{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mastery-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800;border:1px solid rgba(120,137,170,.22);white-space:nowrap}.mastery-status.weak{background:rgba(214,87,96,.12);color:#b42318;border-color:rgba(214,87,96,.28)}.mastery-status.review{background:rgba(245,158,11,.13);color:#a15c07;border-color:rgba(245,158,11,.32)}.mastery-status.basic{background:rgba(65,129,216,.12);color:#2259a8;border-color:rgba(65,129,216,.28)}.mastery-status.stable{background:rgba(45,164,113,.13);color:#177245;border-color:rgba(45,164,113,.32)}.mastery-status.none{background:rgba(120,137,170,.1);color:var(--muted)}.mastery-progress,.mastery-score{font-size:12px;color:var(--muted);white-space:nowrap}.mastery-detail-card{border:1px solid rgba(120,137,170,.22);background:rgba(255,255,255,.42);border-radius:16px;padding:13px}.mastery-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.mastery-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.mastery-metric-grid>div{border:1px solid rgba(120,137,170,.18);border-radius:13px;padding:9px;background:rgba(255,255,255,.45)}.mastery-metric-grid span{display:block;color:var(--muted);font-size:12px}.mastery-metric-grid strong{display:block;font-size:18px;margin-top:4px}.mastery-actions{justify-content:flex-start;flex-wrap:wrap}.mastery-admin-list{display:flex;flex-direction:column;gap:10px}.mastery-admin-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(120,137,170,.18);background:rgba(255,255,255,.38);border-radius:13px;padding:10px 11px;margin:7px 0}
@media(max-width:700px){.mastery-entry{align-items:flex-start;flex-direction:column}.mastery-row{grid-template-columns:1fr;gap:5px}.mastery-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mastery-detail-head,.mastery-admin-item{align-items:flex-start;flex-direction:column}}
.exam-plan-card{margin:14px 0;border:1px solid rgba(120,137,170,.18);border-radius:22px;background:rgba(255,255,255,.50);padding:14px;box-shadow:0 14px 32px rgba(30,41,59,.08)}
.exam-plan-head,.exam-schedule-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.exam-plan-head strong,.exam-schedule-head strong{display:block;font-size:1.05rem}.exam-plan-head span,.exam-schedule-head span{display:block;color:#667085;font-size:.86rem;margin-top:4px}.exam-task-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.exam-task-list.compact{gap:5px}.exam-task-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border:1px solid rgba(120,137,170,.16);background:rgba(255,255,255,.46);border-radius:14px;padding:8px 10px}.exam-task-row strong{color:#0f172a}.exam-task-row em{font-style:normal;color:#667085;font-size:.84rem}.exam-plan-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px;align-items:start}.exam-plan-toolbar{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}.exam-plan-item{display:flex;justify-content:space-between;gap:12px;border:1px solid rgba(120,137,170,.18);background:rgba(255,255,255,.46);border-radius:18px;padding:12px;margin-bottom:10px}.exam-plan-item.muted{opacity:.72}.exam-plan-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.exam-plan-schedule{border:1px solid rgba(120,137,170,.18);border-radius:18px;background:rgba(255,255,255,.42);padding:13px;margin-bottom:14px}
@media(max-width:900px){.exam-plan-layout{grid-template-columns:1fr}.exam-plan-item{flex-direction:column}.exam-plan-actions{justify-content:flex-start}.exam-task-row{grid-template-columns:1fr auto}.exam-task-row em{grid-column:1/-1}}
.learning-summary-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:640px){.learning-summary-head{align-items:flex-start}.learning-summary-actions{justify-content:flex-start}}

/* v0.1.59 Exam planner usability fixes */
#examPlansPage{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;padding:0}
#examPlansPage .page-head,#examPlansPage .exam-plan-page-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}
.exam-plan-page-card{margin-top:14px}
.exam-task-row{width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit}
.exam-task-row:hover{border-color:rgba(232,164,38,.45);background:rgba(232,164,38,.08);transform:translateY(-1px)}
.exam-task-row span{min-width:0}.exam-task-row span small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}.exam-task-row span b{font-weight:800}
.home .exam-plan-card{padding:11px;border-radius:18px;margin:10px 0}.home .exam-plan-card .drop-note{padding:7px 9px}.home .exam-task-row{padding:7px 9px}
@media(max-width:700px){#examPlansPage .page-head{border-radius:16px;padding:12px}.exam-task-row span small{font-size:10px}}

/* v0.1.60: keep subject cards reachable before sprint plan on home. */
#homeExamPlanCard{clear:both}
.home #bankList + #homeExamPlanCard{margin-top:16px}
.exam-plan-toolbar .drop-note{max-width:760px}

/* online-0.1.61: keep subject cards visible on the home page even when sprint plans exist */
.home>.panel{overflow:auto;scrollbar-gutter:stable}
.home .bank-list{flex:0 0 auto;min-height:auto;overflow:visible;padding-right:0;margin-bottom:10px}
.home .subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px;margin-bottom:4px}
.home .subject-card{min-height:72px}
.home .exam-plan-card{flex:0 0 auto}

/* v0.1.66: compact cost labels and operations security dashboard */
.cost-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;line-height:1.1}
.btn-cost{font-size:11px;font-weight:500;opacity:.78;line-height:1;white-space:nowrap}
.quiz-head .btn-cost,.mobile-review-actions .btn-cost{font-size:10px;opacity:.72}
.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ops-card{background:rgba(255,255,255,.84);border:1px solid rgba(120,130,150,.20);border-radius:16px;padding:14px;box-shadow:0 10px 26px rgba(40,54,90,.08)}
.ops-card h3{margin:0 0 10px;font-size:16px}
.ops-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ops-wide{grid-column:1/-1}
.ops-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ops-metric{border-radius:14px;background:rgba(248,250,255,.88);padding:10px;text-align:center}
.ops-metric strong{display:block;font-size:22px;line-height:1.1}
.ops-metric span{font-size:12px;color:#667085}
.ops-kv-list{display:grid;gap:8px}
.ops-kv-list>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed rgba(120,130,150,.22)}
.ops-kv-list span{color:#667085}.ops-kv-list strong{text-align:right;font-weight:600;word-break:break-all}
.ops-event-list{display:grid;gap:8px}.ops-event{display:grid;gap:3px;border-radius:12px;padding:10px;background:rgba(255,247,237,.72);border:1px solid rgba(251,146,60,.28)}
.ops-event span,.ops-event small{color:#667085}.ops-event small{font-size:12px}
.ops-check-list{display:grid;gap:10px}.ops-check-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:14px;padding:12px;background:rgba(248,250,255,.78);border:1px solid rgba(120,130,150,.18)}
.ops-check-item p{margin:5px 0;color:#667085}.ops-check-item small{color:#667085}.ops-status{display:inline-flex;margin-left:8px;border-radius:999px;padding:2px 8px;font-size:12px;background:#eef2ff;color:#3949ab}.ops-status.pass{background:#ecfdf3;color:#027a48}.ops-status.warning,.ops-status.manual_required{background:#fff7ed;color:#b45309}.ops-status.failed{background:#fef2f2;color:#b42318}
@media(max-width:700px){.ops-grid{grid-template-columns:1fr}.ops-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-check-item{align-items:flex-start;flex-direction:column}.btn-cost{font-size:10px}}

/* online-0.1.75 import auto-AI opt-in and invite copy buttons */
.admin-user-entry{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;border:1px solid rgba(120,137,170,.22);background:rgba(255,255,255,.58);border-radius:14px;padding:12px 13px;margin:8px 0;color:var(--text)}
.admin-user-entry:hover{border-color:rgba(35,116,216,.42);background:var(--selected)}
.admin-user-entry-meta{font-size:12px;color:var(--muted);line-height:1.5;text-align:right;white-space:nowrap}
.user-detail-modal{width:min(820px,96vw)}
.admin-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-detail-grid>div{border:1px solid rgba(120,137,170,.18);border-radius:13px;padding:10px;background:rgba(255,255,255,.48);min-width:0}
.admin-detail-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
.admin-detail-grid strong{display:block;overflow-wrap:anywhere;color:var(--text)}
.admin-detail-row{align-items:flex-end;margin-top:8px}
.admin-detail-row .import-field{min-width:180px}
.admin-detail-check{margin:0;border:1px solid rgba(120,137,170,.18);border-radius:12px;padding:9px 11px;background:rgba(255,255,255,.46)}
.admin-detail-actions{justify-content:flex-start;flex-wrap:wrap}
@media(max-width:700px){.admin-user-entry{align-items:flex-start;flex-direction:column}.admin-user-entry-meta{text-align:left;white-space:normal}.admin-detail-grid{grid-template-columns:1fr}.user-detail-modal{max-height:88dvh}}

/* online-0.1.79: homepage text personalization */
.home-usage-text{color:var(--muted);line-height:1.55;font-size:13px;white-space:pre-line;margin:5px 0 2px}
#homeUsageTextInput{min-height:150px}
body:not(.quiz-route-active) .brand{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
body:not(.quiz-route-active) .brand h1{line-height:1.12}
body:not(.quiz-route-active) .brand small{display:block;line-height:1.35;max-width:min(62vw,720px)}
.app.quiz-mode .brand{flex-direction:row;align-items:center;gap:8px}
@media(max-width:700px){body:not(.quiz-route-active) .brand small{display:none}.app.quiz-mode .brand{flex-direction:row;align-items:center}}
.home-usage-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.small-inline-btn{padding:8px 14px;font-size:13px;line-height:1.15;border-radius:999px;white-space:nowrap;font-weight:800}.home-usage-head .small-inline-btn{min-height:34px;box-shadow:0 8px 18px rgba(65,129,216,.12)}.provide-bank-modal{width:min(720px,96vw)}.provide-bank-modal .notice{font-size:14px;line-height:1.8}.contribution-block{border:1px solid rgba(120,137,170,.18);border-radius:16px;padding:14px;background:rgba(255,255,255,.34)}.contribution-block textarea,#adminContributionText{min-height:110px;resize:vertical}.contribution-review-line>span:first-child{min-width:0;flex:1}.contribution-review-line .drop-inline{display:inline-block;max-width:100%;word-break:break-word;color:var(--muted)}
@media(max-width:700px){.home-usage-head{align-items:flex-start}.home-usage-head .small-inline-btn{margin-top:-2px;padding:8px 12px;font-size:13px}.provide-bank-modal{width:100%}.contribution-review-line{flex-direction:column;align-items:flex-start}.contribution-review-line>span:last-child{justify-content:flex-start}}


/* online-0.1.86: ICP filing footer */
.site-footer{position:relative;z-index:2;text-align:center;color:var(--muted);font-size:12px;line-height:1.4}
.site-footer a{color:var(--muted);text-decoration:none;padding:4px 8px;border-radius:8px}
.site-footer a:hover,.site-footer a:focus-visible{color:var(--primary);text-decoration:underline;outline:none}
.login-site-footer{position:absolute;left:18px;right:18px;bottom:max(10px,env(safe-area-inset-bottom))}
.app-site-footer{flex:0 0 auto;padding:7px 0 0}
@media(max-width:700px){.login-wrap{padding-bottom:54px}.login-site-footer{bottom:max(9px,env(safe-area-inset-bottom))}.app-site-footer{padding:9px 0 0;margin-bottom:2px}}

/* online-0.1.87: administrator short-link management */
.short-link-form-grid{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(180px,.7fr) minmax(260px,1.6fr) minmax(210px,.8fr);gap:10px;align-items:end}
.short-link-form-grid .import-field{min-width:0}.short-link-target-field{min-width:0}.short-link-target-field input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.short-link-base-field{min-width:min(520px,100%)}
.short-link-form-actions{justify-content:flex-start;flex-wrap:wrap}.short-link-list{margin-top:12px}.short-link-card{border:1px solid rgba(120,137,170,.20);border-radius:16px;background:rgba(255,255,255,.54);padding:12px;margin:9px 0}.short-link-card.disabled{opacity:.74}.short-link-card.expired{border-color:rgba(245,158,11,.34);background:rgba(255,247,237,.58)}.short-link-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.short-link-card-title{min-width:0;flex:1}.short-link-card-title strong{display:block;font-size:15px;overflow-wrap:anywhere}.short-link-code{display:inline-flex;margin-top:5px;padding:3px 8px;border-radius:999px;background:rgba(65,129,216,.10);color:var(--primary);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:800}.short-link-status{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;white-space:nowrap;background:#ecfdf3;color:#027a48}.short-link-status.disabled{background:#f2f4f7;color:#475467}.short-link-status.expired{background:#fff7ed;color:#b45309}.short-link-url,.short-link-target{display:block;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.short-link-url{color:var(--primary);font-weight:700}.short-link-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:12px}.short-link-note{margin-top:8px;padding-top:8px;border-top:1px dashed rgba(120,137,170,.18);white-space:pre-line;color:var(--muted);font-size:12px}.short-link-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.short-link-actions button{padding:7px 10px;font-size:12px}.short-link-search-empty{padding:18px;text-align:center;color:var(--muted)}
@media(max-width:1050px){.short-link-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.short-link-target-field{grid-column:1/-1}}
@media(max-width:700px){.short-link-form-grid{grid-template-columns:1fr}.short-link-target-field{grid-column:auto}.short-link-card-head{flex-direction:column}.short-link-actions{justify-content:flex-start}.short-link-base-field{min-width:0;width:100%}}

/* online-0.1.88: authoritative source explanation re-import */
.source-explanation-card{border:1px solid rgba(72,107,86,.22);border-radius:16px;padding:16px;background:rgba(250,252,249,.72)}
.source-explanation-controls{align-items:flex-end}
.source-explanation-controls .import-field{min-width:min(100%,280px);flex:1}
.source-explanation-actions{justify-content:flex-start}
.source-explanation-report{margin-top:12px;display:grid;gap:10px}
.source-explanation-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.source-explanation-stat{border:1px solid rgba(72,107,86,.16);border-radius:12px;padding:10px;background:rgba(255,255,255,.78)}
.source-explanation-stat strong{display:block;font-size:18px;margin-top:4px}
.source-explanation-warning{border:1px solid rgba(173,112,29,.34);background:rgba(255,246,222,.82);border-radius:12px;padding:10px;line-height:1.65}
.source-explanation-items{max-height:320px;overflow:auto;border:1px solid rgba(72,107,86,.16);border-radius:12px;background:rgba(255,255,255,.72)}
.source-explanation-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(72,107,86,.12)}
.source-explanation-item:last-child{border-bottom:0}
.source-explanation-item-title{font-weight:650;line-height:1.55}
.source-explanation-item-note{font-size:12px;line-height:1.55;color:var(--muted)}
.source-explanation-status{white-space:nowrap;align-self:start;border-radius:999px;padding:3px 8px;font-size:12px;background:rgba(82,112,94,.1)}
.source-explanation-status.update,.source-explanation-status.same{color:#2f6d4d;background:rgba(58,132,88,.12)}
.source-explanation-status.protected{color:#8a5a17;background:rgba(192,128,32,.13)}
.source-explanation-status.unmatched,.source-explanation-status.ambiguous{color:#9b3737;background:rgba(180,60,60,.11)}
.source-explanation-label{display:inline-flex;align-items:center;margin:0 0 8px;padding:3px 9px;border-radius:999px;background:rgba(51,119,82,.12);color:#2d6a49;font-size:12px;font-weight:700;letter-spacing:.02em}
@media(max-width:680px){.source-explanation-card{padding:12px}.source-explanation-item{grid-template-columns:1fr}.source-explanation-status{justify-self:start}}
