:root{--brand:#1261a6;--brand2:#0d477d;--accent:#f08a24;--green:#16865c;--red:#c83f45;--bg:#f4f6f8;--card:#fff;--text:#1e2a35;--muted:#687582;--line:#dce3e9;--safe:env(safe-area-inset-bottom,0px);font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{font-size:16px;letter-spacing:0}button,input,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}#app{min-height:100vh;padding-bottom:calc(76px + var(--safe))}.shell{max-width:1180px;margin:auto}.page{padding:0 16px 24px}.topbar{height:58px;background:var(--brand);color:#fff;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;padding:0 8px;position:sticky;top:0;z-index:20}.topbar h1{font-size:18px;text-align:center;margin:0;font-weight:700}.icon-btn{width:40px;height:40px;border:0;background:transparent;color:inherit;font-size:25px;border-radius:6px}.icon-btn:active{background:rgba(255,255,255,.14)}.home-head{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;padding:24px 20px 28px}.brand-row{display:flex;align-items:center;gap:14px}.brand-avatar{width:64px;height:64px;border-radius:8px;background:#fff;object-fit:cover;border:2px solid rgba(255,255,255,.8)}.brand-title{font-size:27px;font-weight:800;margin:0 0 4px}.brand-sub{margin:0;opacity:.86;font-size:14px}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.22);margin-top:20px;border-radius:6px;overflow:hidden}.summary div{background:rgba(0,0,0,.08);text-align:center;padding:11px 4px}.summary strong{display:block;font-size:20px}.summary span{font-size:12px;opacity:.85}.section-title{display:flex;justify-content:space-between;align-items:center;margin:22px 0 12px}.section-title h2{font-size:18px;margin:0}.section-title span{font-size:13px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.exam-card,.subject-card,.paper-row,.record-row,.panel{background:var(--card);border:1px solid var(--line);border-radius:7px}.exam-card{padding:16px;text-align:left;min-height:130px;position:relative;overflow:hidden}.exam-card.active{border-left:4px solid var(--brand)}.exam-card.disabled{opacity:.66}.exam-card h3{margin:9px 0 6px;font-size:17px}.exam-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.exam-icon,.subject-icon{display:grid;place-items:center;color:#fff;background:var(--brand);font-weight:800}.exam-icon{width:38px;height:38px;border-radius:6px}.soon{position:absolute;right:10px;top:10px;font-size:11px;color:var(--muted);background:#eef1f4;padding:3px 6px;border-radius:4px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quick{border:1px solid var(--line);background:var(--card);padding:13px 4px;border-radius:6px;color:var(--text);font-weight:650}.quick b{display:block;color:var(--brand);font-size:21px;margin-bottom:5px}.hero{background:#eaf3fb;border-bottom:1px solid #cee0ef;padding:19px 16px}.hero h2{margin:0 0 6px;font-size:22px}.hero p{margin:0;color:var(--muted);font-size:14px}.subject-list{display:grid;gap:12px;margin-top:16px}.subject-card{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:15px}.subject-icon{width:48px;height:48px;border-radius:6px}.subject-icon.orange{background:#c96520}.subject-icon.green{background:#197b59}.subject-card h3{margin:0 0 4px;font-size:17px}.subject-card p{margin:0;color:var(--muted);font-size:13px}.chev{font-size:22px;color:#96a1aa}.action-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}.btn{border:0;border-radius:6px;padding:12px 15px;font-weight:700;background:#e7edf2;color:#263440}.btn.primary{background:var(--brand);color:#fff}.btn.orange{background:var(--accent);color:#fff}.btn.outline{background:#fff;border:1px solid var(--brand);color:var(--brand)}.btn.danger{background:#fff0f0;color:var(--red);border:1px solid #f0c8cb}.btn:disabled{opacity:.45;cursor:default}.group-title{font-size:15px;color:var(--brand);padding:16px 2px 7px;font-weight:750}.paper-row,.record-row{width:100%;display:flex;text-align:left;align-items:center;justify-content:space-between;padding:14px;margin-bottom:9px;border-radius:6px}.paper-row h3,.record-row h3{font-size:15px;margin:0 0 4px}.paper-row p,.record-row p{font-size:12px;color:var(--muted);margin:0}.progress{width:84px;height:6px;background:#e8edf1;border-radius:4px;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;background:var(--green)}.practice-layout{display:block}.question-panel{padding:16px 0 145px}.q-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-bottom:12px}.q-stem{font-size:18px;line-height:1.72;font-weight:650;white-space:pre-wrap}.options{display:grid;gap:11px;margin-top:18px}.option{border:1px solid var(--line);background:var(--card);border-radius:7px;padding:13px;display:grid;grid-template-columns:30px 1fr;gap:9px;text-align:left;line-height:1.55;color:var(--text)}.option .letter{width:27px;height:27px;border:1px solid #a9b5bf;border-radius:50%;display:grid;place-items:center;font-weight:700}.option.selected{border-color:var(--brand);background:#eef6fd}.option.selected .letter{background:var(--brand);border-color:var(--brand);color:#fff}.option.correct{border-color:var(--green);background:#edf9f4}.option.correct .letter{background:var(--green);border-color:var(--green);color:#fff}.option.wrong{border-color:var(--red);background:#fff0f1}.option.wrong .letter{background:var(--red);border-color:var(--red);color:#fff}.answer-box{margin-top:18px;background:#fff;border-left:4px solid var(--green);padding:15px;border-radius:4px;line-height:1.7}.answer-box h3{font-size:16px;margin:0 0 8px}.answer-box p{margin:6px 0;white-space:pre-wrap}.result-ok{color:var(--green)}.result-bad{color:var(--red)}.practice-actions{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.97);border-top:1px solid var(--line);padding:10px 12px calc(10px + var(--safe));display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:9px;z-index:40}.fav-line{display:flex;justify-content:flex-end;margin-top:10px}.link-btn{border:0;background:transparent;color:var(--brand);padding:7px;font-weight:650}.subjective{width:100%;min-height:140px;border:1px solid var(--line);border-radius:6px;padding:12px;resize:vertical;background:#fff;color:var(--text)}.answer-card{display:none}.answer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.answer-grid button{aspect-ratio:1;border:1px solid var(--line);background:#fff;border-radius:4px}.answer-grid button.done{background:#dff4ea;border-color:#86c6aa}.answer-grid button.wrong{background:#ffe1e3;border-color:#dfa3a7}.answer-grid button.current{outline:2px solid var(--brand)}.searchbox{display:flex;gap:8px;margin:16px 0}.searchbox input{min-width:0;flex:1;border:1px solid #bac6cf;border-radius:6px;padding:11px 12px;background:#fff}.empty{text-align:center;color:var(--muted);padding:60px 20px}.settings .panel{padding:4px 16px;margin-top:14px}.setting-row{min-height:58px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px}.setting-row:last-child{border-bottom:0}.setting-row small{display:block;color:var(--muted);margin-top:3px}.switch{width:48px;height:28px;border:0;background:#b7c1c8;border-radius:14px;padding:3px}.switch i{display:block;width:22px;height:22px;background:#fff;border-radius:50%;transition:.2s}.switch.on{background:var(--brand)}.switch.on i{transform:translateX(20px)}.tabbar{position:fixed;left:0;right:0;bottom:0;height:calc(66px + var(--safe));padding-bottom:var(--safe);display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line);z-index:30}.tabbar button{border:0;background:transparent;color:#54616d;font-size:13px;font-weight:750;padding:7px 2px 5px}.tabbar b{font-size:21px;display:block;margin-bottom:2px}.tabbar button.active{color:var(--brand)}.toast{position:fixed;z-index:100;left:50%;bottom:110px;transform:translate(-50%,20px);background:#1e2933;color:#fff;padding:10px 16px;border-radius:6px;opacity:0;pointer-events:none;transition:.2s;max-width:80%;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.loading{display:grid;place-items:center;min-height:100vh;color:var(--muted)}
body.large{font-size:18px}body.large .q-stem{font-size:20px}body.dark{--bg:#15191d;--card:#20262b;--text:#edf1f4;--muted:#aab3ba;--line:#394148;color-scheme:dark}body.dark .hero{background:#172a3a;border-color:#29475f}body.dark .btn.outline,body.dark .option,body.dark .answer-grid button,body.dark .searchbox input,body.dark .subjective{background:var(--card)}body.dark .tabbar,body.dark .practice-actions{background:#20262b}body.dark .soon{background:#30383f}
@media(min-width:700px){.grid{grid-template-columns:repeat(3,1fr)}.page{padding-left:24px;padding-right:24px}.quick-grid{gap:12px}}
@media(min-width:900px){#app{padding-bottom:30px}.tabbar{position:sticky;top:0;bottom:auto;height:58px;padding:0;max-width:1180px;margin:auto;border:1px solid var(--line);border-top:0}.tabbar button b{display:inline;margin-right:7px;font-size:17px}.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.question-panel{padding-bottom:90px}.answer-card{display:block;position:sticky;top:74px;background:var(--card);border:1px solid var(--line);border-radius:7px;padding:16px;margin-top:16px;max-height:calc(100vh - 90px);overflow:auto}.answer-card h3{margin:0 0 12px}.practice-actions{left:50%;right:auto;width:min(760px,calc(100% - 340px));transform:translateX(-66%);bottom:16px;border:1px solid var(--line);border-radius:7px;padding:10px}.home-head{border-radius:0 0 8px 8px}}
/* notch-safe mobile controls */
.topbar{height:calc(58px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}
.resume-btn{width:100%;margin:16px 0 2px;display:flex;justify-content:space-between;align-items:center}.resume-btn span{font-size:13px;font-weight:600;opacity:.9}
.answer-card-head{display:flex;align-items:center;justify-content:space-between}.answer-card-head h3{margin:0 0 12px}.sheet-close{display:none;color:var(--text);font-size:22px}
@media(max-width:899px){.answer-card{display:none}.answer-card.open{display:block;position:fixed;top:calc(58px + env(safe-area-inset-top,0px));right:0;bottom:0;width:min(86vw,340px);z-index:50;margin:0;padding:16px;background:var(--card);border-left:1px solid var(--line);border-radius:0;overflow:auto;box-shadow:-8px 0 24px rgba(0,0,0,.18)}.answer-card.open .sheet-close{display:block}}
@media(min-width:900px){
  #app{padding-bottom:24px}
  body:has(.tabbar) #app{padding-top:58px}
  .tabbar{position:fixed;top:0;bottom:auto;left:50%;transform:translateX(-50%);width:min(1180px,100%);height:58px;padding:0 18px;background:var(--card);border:0;border-bottom:1px solid var(--line);box-shadow:0 2px 8px rgba(24,42,58,.06);z-index:60}
  .tabbar button{font-size:14px}
  .home-head{display:flex;align-items:center;justify-content:space-between;gap:36px;padding:26px 32px}
  .home-head .brand-row{flex:1}
  .home-head .brand-avatar{width:72px;height:72px}
  .home-head .summary{width:min(460px,44%);margin:0}
  .page{padding:0 32px 36px}
  .section-title{margin-top:28px}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .exam-card{min-height:150px;padding:19px}
  .quick-grid{gap:14px}
  .practice-layout{grid-template-columns:minmax(0,1fr) 300px;gap:24px}
  .question-panel{min-width:0;padding:18px 0 104px}
  .answer-card{margin-top:18px;top:76px;padding:18px}
  .practice-actions{left:max(32px,calc((100vw - 1180px)/2 + 32px));right:calc(max(32px,calc((100vw - 1180px)/2 + 32px)) + 324px);width:auto;transform:none;bottom:18px;padding:11px;background:var(--card);box-shadow:0 4px 18px rgba(24,42,58,.12)}
  .topbar{padding-left:18px;padding-right:18px}
  .hero{padding:24px 32px}
}
@media(min-width:1400px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page{padding-left:40px;padding-right:40px}.practice-actions{left:max(40px,calc((100vw - 1180px)/2 + 40px));right:calc(max(40px,calc((100vw - 1180px)/2 + 40px)) + 324px)}}
@media(min-width:1100px){
  body{background:#f1f3f6}
  #app{min-height:100vh;padding:0 24px 36px}
  .pc-header{height:72px;margin:0 -24px;padding:0 max(24px,calc((100vw - 1780px)/2 + 24px));display:flex;align-items:center;gap:34px;background:var(--brand2);color:#fff;box-shadow:0 2px 8px rgba(15,44,72,.18);position:sticky;top:0;z-index:70}
  .pc-brand,.pc-user,.pc-nav button{border:0;color:inherit;background:transparent}
  .pc-brand{display:flex;align-items:center;gap:12px;flex:none;padding:0;font-size:22px;font-weight:800;white-space:nowrap}
  .pc-brand img{width:38px;height:38px;object-fit:cover;border:2px solid rgba(255,255,255,.75);border-radius:50%}
  .pc-nav{display:flex;align-items:stretch;justify-content:space-between;gap:clamp(10px,2vw,34px);height:100%;flex:1;min-width:0}
  .pc-nav button{position:relative;padding:0 4px;font-size:15px;font-weight:700;white-space:nowrap;opacity:.92}
  .pc-nav button:hover,.pc-nav button.active{opacity:1;background:rgba(255,255,255,.07)}
  .pc-nav button.active:after{content:"";position:absolute;left:4px;right:4px;bottom:0;height:3px;background:#24b8bd;border-radius:3px 3px 0 0}
  .pc-user{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:13px;padding:0}
  .pc-user img{width:38px;height:38px;object-fit:cover;border-radius:50%;border:2px solid rgba(255,255,255,.72)}
  .pc-layout{max-width:1780px;margin:22px auto 0;display:grid;grid-template-columns:minmax(210px,.78fr) minmax(0,3.25fr);gap:20px;align-items:start}
  .pc-layout.has-rail{grid-template-columns:minmax(210px,.78fr) minmax(0,3.25fr) minmax(260px,.9fr)}
  .pc-sidebar,.pc-right{background:var(--card);border:1px solid var(--line);border-radius:7px;min-width:0}
  .pc-sidebar{position:sticky;top:92px;min-height:calc(100vh - 116px);max-height:calc(100vh - 116px);padding:20px 0 24px;overflow-y:auto;overflow-x:hidden}
  .pc-sidebar h2{font-size:20px;margin:0;padding:0 20px 18px;border-bottom:1px solid var(--line)}
  .pc-exam-group{height:54px;width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;color:var(--text);padding:0 18px;text-align:left;font-weight:700;font-size:15px}
  .pc-exam-group.active{margin-top:12px;background:var(--brand);color:#fff;border-left:4px solid #24b8bd;padding-left:14px}
  .pc-exam-group .chev{margin-left:auto;color:inherit}
  .pc-exam-group.muted{border-top:1px solid var(--line);margin-top:8px;color:var(--muted)}
  .pc-exam-list{padding:8px 10px 12px}
  .pc-category-section+.pc-category-section{border-top:1px solid var(--line);padding-top:8px}
  .pc-category-section+.pc-category-section .pc-exam-group.muted{border-top:0;margin-top:0}
  .pc-exam-item{width:100%;min-height:43px;display:flex;align-items:center;gap:10px;border:0;border-radius:5px;background:transparent;color:var(--text);padding:7px 9px 7px 18px;text-align:left;font-size:14px}
  .pc-exam-item:hover{background:#eef5fa}
  .pc-exam-item.selected{background:#20afb2;color:#fff}
  .pc-exam-icon{width:23px;height:23px;border:1px solid currentColor;border-radius:5px;display:grid;place-items:center;font-size:11px;flex:none}
  .pc-main{min-width:0}
  .pc-main>.shell{max-width:none}
  .pc-crumb{min-height:52px;display:flex;align-items:center;gap:12px;padding:0 22px;background:var(--card);border:1px solid var(--line);border-radius:7px 7px 0 0;color:var(--muted);font-size:14px}
  .pc-crumb span{color:var(--brand);font-size:20px}
  .pc-course-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;background:var(--card);border:1px solid var(--line);border-top:0}
  .pc-course-head h1{margin:0 0 8px;font-size:25px}
  .pc-course-head p{margin:0;color:var(--muted);font-size:14px}
  .pc-status{flex:none;border-radius:5px;padding:9px 13px;color:var(--green);background:#e8f7f1;font-weight:700;font-size:14px}
  .pc-section{margin-top:12px;padding:17px 16px 16px;background:var(--card);border:1px solid var(--line);border-radius:7px}
  .pc-section h2{font-size:17px;margin:0 0 13px}
  .pc-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .pc-overview>div{min-height:88px;display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:6px;box-shadow:0 2px 5px rgba(28,53,78,.04)}
  .pc-overview .subject-icon{width:48px;height:48px;border-radius:7px;flex:none}
  .pc-overview small,.pc-subject small,.pc-task small{font-size:12px;color:var(--muted);font-weight:500}
  .pc-overview strong{display:block;margin-top:5px;font-size:21px}
  .pc-overview strong small{display:inline}
  .pc-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .pc-subject{min-width:0;min-height:77px;display:grid;grid-template-columns:42px minmax(0,1fr) auto 14px;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--text);text-align:left;box-shadow:0 2px 5px rgba(28,53,78,.04)}
  .pc-subject:hover,.pc-recommend:hover{border-color:var(--brand)}
  .pc-subject .subject-icon{width:42px;height:42px;border-radius:6px}
  .pc-subject strong{display:block;white-space:normal;line-height:1.4;font-size:14px}
  .pc-subject small{display:block;margin-top:3px}
  .pc-subject>b{font-size:17px;white-space:nowrap}
  .pc-subject>b small{display:inline}
  .pc-subject>i{font-style:normal;color:var(--muted);font-size:19px}
  .pc-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}
  .pc-actions .btn{padding:10px 14px}
  .pc-task{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:5px 4px 1px}
  .pc-task>div:not(.pc-task-progress){display:grid;gap:4px}
  .pc-task strong{font-size:18px}
  .pc-task-progress{grid-column:1/-1;height:8px;background:#e9edf1;border-radius:8px;overflow:hidden;margin-top:4px}
  .pc-task-progress i,.pc-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),#24b8bd);border-radius:inherit}
  .pc-ability{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .pc-ability>div{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:6px}
  .pc-ability b{color:var(--green)}
  .pc-ability .pc-progress{grid-column:1/-1}
  .pc-progress{height:7px;background:#e9edf1;border-radius:8px;overflow:hidden}
  .pc-right{position:sticky;top:92px;overflow:hidden}
  .pc-rail-section{padding:17px 16px;border-bottom:1px solid var(--line)}
  .pc-rail-section:last-child{border-bottom:0}
  .pc-rail-section h2{display:flex;align-items:center;gap:9px;font-size:16px;margin:0 0 15px}
  .pc-heading-icon{color:var(--brand);font-size:20px}
  .pc-today{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:3px 0 14px}
  .pc-today>div{display:grid;gap:5px}
  .pc-today>div+div{border-left:1px solid var(--line);padding-left:14px}
  .pc-today span,.pc-mini-stats span{font-size:13px;color:var(--muted)}
  .pc-today strong{font-size:22px}
  .pc-today small{font-size:12px;font-weight:500}
  .pc-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .pc-mini-stats>div{display:grid;gap:5px;padding:10px;border:1px solid var(--line);border-radius:5px}
  .pc-mini-stats b{font-size:16px}
  .pc-skill{margin-top:12px}
  .pc-skill>div:first-child{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:13px}
  .pc-skill b{color:var(--green)}
  .pc-recommend{width:100%;display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:9px;padding:10px 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left;font-size:13px}
  .pc-recommend .exam-icon{width:30px;height:30px;border-radius:5px;font-size:13px}
  .pc-recommend small{display:block;margin-top:4px;color:var(--muted);font-size:11px}
  .pc-recommend>b{color:var(--muted);font-size:18px}
}
@media(min-width:1100px) and (max-width:1399px){.pc-header{gap:20px}.pc-brand{font-size:19px}.pc-nav{gap:9px}.pc-nav button{font-size:13px}.pc-user span:nth-child(2){display:none}.pc-layout{grid-template-columns:minmax(190px,.72fr) minmax(0,2.9fr);gap:14px}.pc-layout.has-rail{grid-template-columns:minmax(190px,.72fr) minmax(0,2.9fr) minmax(230px,.85fr)}.pc-subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pc-overview>div{gap:9px;padding:10px}.pc-overview .subject-icon{width:40px;height:40px}}
@media(min-width:1400px){
  .pc-subject-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .pc-subject{grid-template-columns:38px minmax(0,1fr) auto;gap:9px;padding:10px}
  .pc-subject .subject-icon{width:38px;height:42px}
  .pc-subject>i{display:none}
  .pc-subject>b{grid-column:2;grid-row:2;font-size:16px}
  .pc-subject>span:nth-child(2){grid-column:2;grid-row:1}
  .pc-subject>span:nth-child(2) small{display:none}
  .pc-task>div:not(.pc-task-progress){grid-template-columns:32px 1fr;align-items:center}
  .pc-task>div:not(.pc-task-progress):before{grid-column:1;grid-row:1 / span 2;width:30px;height:30px;display:grid;place-items:center;border-radius:5px;background:#e5f3fb;color:var(--brand);font-size:17px}
  .pc-task>div:nth-child(1):before{content:'▤'}
  .pc-task>div:nth-child(2):before{content:'✓';color:var(--green);background:#e7f5ef}
  .pc-task>div:nth-child(3):before{content:'◉';color:var(--accent);background:#fff3e6}
  .pc-ability>div{grid-template-columns:32px 1fr auto;align-items:center}
  .pc-ability>div:before{grid-column:1;grid-row:1;width:30px;height:30px;display:grid;place-items:center;border-radius:5px;background:#e5f3fb;color:var(--brand);content:'▤'}
  .pc-ability>div:nth-child(2):before{background:#e8f7f1;color:var(--green);content:'▣'}
  .pc-ability>div:nth-child(3):before{background:#fff3e6;color:var(--accent);content:'▧'}
  .pc-ability>div>span{grid-column:2}
  .pc-ability>div>b{grid-column:3}
  .pc-ability .pc-progress{grid-column:1/-1}
}
.pc-line-chart{display:block;width:100%;height:auto;padding:8px 0 0;overflow:visible}
.chart-grid{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}
.chart-area{fill:rgba(18,97,166,.12)}
.chart-line{fill:none;stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.chart-point{fill:var(--card);stroke:var(--brand);stroke-width:2}
.pc-chart-days{display:flex;justify-content:space-between;margin:0 4px;color:var(--muted);font-size:10px}
.pc-chart-note{margin:8px 0 0;color:var(--muted);font-size:11px}
.pc-donut-wrap{display:grid;place-items:center;padding:7px 0 12px}
.pc-donut{width:142px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative}
.pc-donut:before{content:"";position:absolute;inset:18px;border-radius:50%;background:var(--card)}
.pc-donut>div{position:relative;display:grid;text-align:center;gap:3px}
.pc-donut strong{font-size:22px}.pc-donut small{font-size:11px;color:var(--muted)}
.pc-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px 6px;font-size:11px;color:var(--muted)}
.pc-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.pc-legend i{width:8px;height:8px;border-radius:50%;background:var(--brand)}
.pc-legend .legend-1{background:var(--accent)}.pc-legend .legend-2{background:var(--green)}
.pc-exam-notice{display:grid;gap:9px;padding:13px 12px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--text);text-decoration:none;transition:border-color .18s,box-shadow .18s;min-height:144px}
.pc-exam-notice:hover{border-color:var(--brand);box-shadow:0 3px 10px rgba(18,97,166,.09)}
.pc-notice-tag{justify-self:start;padding:3px 7px;border-radius:4px;background:#e8f2fa;color:var(--brand);font-size:11px;font-weight:750}
.pc-exam-notice strong{font-size:15px}
.pc-exam-notice p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}
.pc-notice-link{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:7px;border-top:1px solid var(--line);color:var(--brand);font-size:12px;font-weight:700}
.pc-notice-link b{font-size:17px}
.pc-notice-dots{display:flex;justify-content:center;gap:6px;padding-top:10px}
.pc-notice-dots i{width:6px;height:6px;border-radius:50%;background:#c8d2db;transition:width .2s,background .2s}
.pc-notice-dots i.active{width:18px;border-radius:5px;background:var(--brand)}
.exam-category{margin:0 0 12px}
.exam-category-heading{width:100%;border:0;background:transparent;color:var(--text);padding:0 2px;cursor:pointer;text-align:left}
.exam-category-heading span{font-weight:650}
.exam-category-body[hidden],.pc-category-body[hidden]{display:none}
.exam-subcategory-title{font-size:15px;margin:14px 0 9px;color:var(--brand)}
.pc-subcategory-label{padding:7px 4px 2px;color:var(--muted);font-size:11px;font-weight:700}
.finance-ticker-wrap{margin:10px 10px 7px}
.finance-ticker{width:100%;display:grid;gap:5px;padding:11px 12px;border:1px solid #cfe0ef;border-left:3px solid var(--brand);border-radius:5px;background:#f4f8fb;color:var(--text);text-align:left}
.finance-ticker>span{font-size:10px;color:var(--brand);font-weight:750}
.finance-ticker>span i{font-style:normal;color:var(--muted);font-weight:500}
.finance-ticker strong{font-size:14px}
.finance-ticker small{font-size:11px;color:var(--muted);line-height:1.45}
.finance-ticker-dots{display:flex;justify-content:center;gap:5px;padding-top:7px}
.finance-ticker-dots i{width:5px;height:5px;border-radius:50%;background:#c4d0da}
.finance-ticker-dots i.active{width:15px;border-radius:5px;background:var(--brand)}
body.dark .finance-ticker{background:var(--card);border-color:var(--line)}
@media(min-width:1100px){
  .pc-sidebar{padding:16px 0 20px}
  .pc-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 18px 16px;border-bottom:1px solid var(--line)}
  .pc-sidebar-head>div>span{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em}
  .pc-sidebar-head h2{border:0;margin:3px 0 0;padding:0;font-size:20px}
  .pc-sidebar-head>b{display:grid;place-items:center;min-width:28px;height:24px;padding:0 7px;border-radius:12px;background:#e8f2fa;color:var(--brand);font-size:12px}
  .pc-category-section{padding:8px 10px 10px}
  .pc-category-section+.pc-category-section{border-top:1px solid var(--line);padding-top:12px}
  .pc-exam-group{height:40px;border-radius:6px;padding:0 9px;gap:9px;font-size:14px}
  .pc-exam-group.active{margin-top:0;border-left:0;padding-left:9px;background:#eaf4fb;color:var(--brand)}
  .pc-exam-group.muted{border:0;margin-top:0;color:var(--text)}
  .pc-category-mark{width:9px;height:9px;border-radius:50%;background:#3289bf;box-shadow:0 0 0 4px #e6f2f9;flex:none}
  .pc-category-section.finance .pc-category-mark{background:#d58a32;box-shadow:0 0 0 4px #fff2e3}
  .pc-category-section.social .pc-category-mark{background:#3a9a78;box-shadow:0 0 0 4px #e7f5ef}
  .pc-category-count{margin-left:auto;color:var(--muted);font-size:11px;font-weight:600}
  .pc-exam-list{padding:4px 0 2px}
  .pc-subcategory-label{padding:10px 8px 4px;color:var(--brand);font-size:11px;font-weight:800}
  .pc-exam-item{min-height:40px;gap:9px;border-radius:6px;padding:6px 8px}
  .pc-exam-item:hover{background:#f1f6f9}
  .pc-exam-item.selected{background:#168fb0;color:#fff;box-shadow:0 3px 8px rgba(22,143,176,.18)}
  .pc-exam-mark{width:36px;height:25px;display:grid;place-items:center;border-radius:7px;background:#eaf4fb;color:#17618d;font-size:11px;font-weight:800;line-height:1;flex:none}
  .pc-exam-mark.finance{background:#fff2e3;color:#a85d16}
  .pc-exam-mark.social{background:#e7f5ef;color:#28775b}
  .pc-exam-mark.other{background:#edf0f3;color:#56626d}
  .pc-exam-item.selected .pc-exam-mark{background:rgba(255,255,255,.2);color:#fff}
  .pc-exam-copy{min-width:0;display:grid;gap:2px;line-height:1.25}
  .pc-exam-copy strong{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pc-exam-copy small{font-size:10px;color:var(--muted)}
  .pc-exam-item.selected .pc-exam-copy small{color:rgba(255,255,255,.78)}
  .pc-exam-item.is-soon{opacity:.68}
  .pc-exam-arrow{margin-left:auto;color:var(--muted);font-size:17px;line-height:1}
  .pc-exam-item.selected .pc-exam-arrow{color:#fff}
  .pc-exam-icon{display:none}
}
body.dark .pc-sidebar-head>b{background:#243d50;color:#8ed9ec}
body.dark .pc-exam-group.active{background:#203d4e}
body.dark .pc-exam-item:hover{background:#27343d}
body.dark .pc-exam-mark{background:#243d50;color:#8ed9ec}
body.dark .pc-exam-mark.finance{background:#493720;color:#f0bd7c}
body.dark .pc-exam-mark.social{background:#24473b;color:#9ed9bc}
body.dark .pc-chart-point{fill:var(--card)}
