:root{--bg:#0b0d0c;--bg2:#121614;--line:#26302a;--sage:#9cb38f;--sage-d:#6f8566;--gold:#e4c56a;--cream:#efe8d6;--mute:#a8a493;--warn:#d9a35b;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--ar:"Amiri Quran","Noto Naskh Arabic","Scheherazade New",serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--cream);font:16px/1.55 var(--sans);-webkit-text-size-adjust:100%;margin:0}a{color:var(--sage)}a:hover{color:var(--gold)}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--serif);letter-spacing:.01em;margin:0 0 .4em;font-weight:600;line-height:1.2}h1{font-size:1.9rem}h2{font-size:1.4rem}h3{font-size:1.1rem}.ar{font-family:var(--ar);direction:rtl}.emblem{line-height:0;display:inline-block}.emblem svg{width:100%;height:100%}.wrap{max-width:860px;margin:0 auto;padding:0 16px}.top{z-index:20;border-bottom:1px solid var(--line);background:#0b0d0cf5;position:sticky;top:0}.top .wrap{align-items:center;gap:10px;height:56px;display:flex}.brand{color:var(--cream);align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brand b{font-family:var(--serif);white-space:nowrap;font-size:1.05rem}.brand .ar{color:var(--sage);font-size:1.05rem}.top nav{gap:4px;margin-left:auto;display:flex}.top nav a,.linkbtn{color:var(--cream);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 10px;font-size:.92rem;text-decoration:none}.top nav a.on,.top nav a:hover{color:var(--gold)}main{padding:20px 0 64px}.btn{border:1px solid var(--sage);background:var(--sage);color:#0b0d0c;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--gold);border-color:var(--gold);color:#0b0d0c}.btn.ghost{color:var(--sage);background:0 0}.btn.ghost:hover{color:var(--gold);border-color:var(--gold);background:0 0}.btn:disabled{opacity:.5;cursor:default}.field{margin:0 0 14px;display:block}.field span{color:var(--mute);margin-bottom:4px;font-size:.85rem;display:block}.field input,.field select,.field textarea{background:var(--bg2);border:1px solid var(--line);border-radius:6px;width:100%;padding:10px 12px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--sage-d);border-color:var(--sage-d)}.note{color:var(--mute);font-size:.9rem}.err{color:#f0a48a;font-size:.92rem}.okmsg{color:var(--sage)}.panel{border:1px solid var(--line);background:var(--bg2);border-radius:10px;padding:18px}.rule{border:0;border-top:1px solid var(--line);margin:24px 0}.hero{text-align:center;border-bottom:1px solid var(--line);background-position:50%;background-size:cover;padding:34px 0 26px;position:relative}.hero.withbg:before{content:"";background:#0b0d0cb8;position:absolute;inset:0}.hero>*{position:relative}.hero h1{margin-top:12px;font-size:2rem}.hero .tag{color:var(--mute);max-width:34em;margin:0 auto}.motto{color:var(--gold);font-family:var(--serif);letter-spacing:.14em;text-transform:uppercase;justify-content:center;align-items:baseline;gap:14px;margin-top:16px;font-size:.82rem;display:flex}.motto .ar{letter-spacing:0;text-transform:none;font-size:1.25rem}.welcome{max-width:38em;color:var(--cream);margin:22px auto 0;font-size:.98rem}.fade-in{animation:.6s ease-out both fin}@keyframes fin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.fade-in{animation:none}}.halls{border-top:1px solid var(--line);margin:8px 0 0;padding:0;list-style:none}.halls li{border-bottom:1px solid var(--line)}.hall{color:var(--cream);grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:14px 4px;text-decoration:none;display:grid}.hall .num{font-family:var(--serif);color:var(--sage-d);font-size:.9rem}.hall h3{margin:0;font-size:1.08rem}.hall p{color:var(--mute);margin:2px 0 0;font-size:.88rem}.hall .ar{color:var(--sage);font-size:1.2rem}.hall:hover h3{color:var(--gold)}.state{letter-spacing:.08em;text-transform:uppercase;color:var(--warn);vertical-align:middle;font-size:.72rem;font-family:var(--sans);border:1px solid #5a4a2c;border-radius:4px;margin-left:8px;padding:1px 6px}.state.live{color:var(--sage);border-color:var(--sage-d)}.review{color:var(--warn);border:1px dashed #6b5733;border-radius:4px;padding:1px 7px;font-size:.75rem;display:inline-block}.review.ok{color:var(--sage);border-color:var(--sage-d);border-style:solid}.building{text-align:center;padding:40px 10px}.building .emblem{opacity:.85}.building ol{text-align:left;max-width:26em;color:var(--mute);margin:20px auto}.surahs{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.surahs a{border-bottom:1px solid var(--line);color:var(--cream);grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:11px 4px;text-decoration:none;display:grid}.surahs .n{font-family:var(--serif);color:var(--sage-d)}.surahs .m{color:var(--mute);font-size:.84rem}.surahs .ar{color:var(--sage);font-size:1.35rem}.search{gap:8px;margin:0 0 16px;display:flex}.search input{background:var(--bg2);border:1px solid var(--line);border-radius:6px;flex:1;padding:10px 12px}.shead{text-align:center;border-bottom:1px solid var(--line);padding:10px 0 18px}.shead .ar{color:var(--sage);font-size:2.2rem}.bism{text-align:center;color:var(--cream);margin:18px 0 6px;font-size:1.7rem}.ayah{border-bottom:1px solid var(--line);padding:18px 0}.ayah .a{text-align:right;font-size:1.7rem;line-height:2.25}.ayah .t{color:var(--mute);margin:8px 0 4px;font-size:.92rem;font-style:italic}.ayah .t u{border-bottom:1px solid var(--sage-d);text-decoration:none}.ayah .t b{font-weight:600}.ayah .e{margin:4px 0}.ayah .tools{align-items:center;gap:6px;margin-top:6px;display:flex}.ayah .ref{font-family:var(--serif);color:var(--gold);margin-right:auto;font-size:.85rem}.ayah.hl{background:linear-gradient(90deg,#9cb38f17,#0000)}.small{padding:5px 10px;font-size:.84rem}.tafsir{border-left:3px solid var(--sage-d);background:#0f1311;margin-top:10px;padding:14px;font-size:.95rem}.tafsir h1,.tafsir h2{color:var(--gold);font-size:1rem;font-family:var(--serif)}.tafsir p{margin:.5em 0}.toggles{color:var(--mute);flex-wrap:wrap;gap:12px;margin:12px 0;font-size:.88rem;display:flex}.toggles label{align-items:center;gap:6px;display:flex}.attrib{color:var(--mute);margin-top:24px;font-size:.78rem}.pager{justify-content:space-between;margin-top:20px;display:flex}.chat{flex-direction:column;gap:10px;min-height:40vh;display:flex}.msg{white-space:pre-wrap;border-radius:10px;max-width:88%;padding:10px 14px}.msg.me{border:1px solid var(--sage-d);background:#1f2a22;align-self:flex-end}.msg.him{background:var(--bg2);border:1px solid var(--line);align-self:flex-start}.composer{background:var(--bg);gap:8px;padding:10px 0;display:flex;position:sticky;bottom:0}.composer textarea{background:var(--bg2);border:1px solid var(--line);resize:none;border-radius:6px;flex:1;padding:10px}.belly{border:2px solid var(--sage-d);background:#0f1311 50%/cover no-repeat;border-radius:50%;flex:none;width:64px;height:64px}table.roll{border-collapse:collapse;width:100%;font-size:.88rem}table.roll th,table.roll td{text-align:left;border-bottom:1px solid var(--line);padding:7px 6px}table.roll th{color:var(--mute);font-weight:500}.scrollx{overflow-x:auto}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--mute);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px}.tabs button.on{color:var(--gold);border-color:var(--gold)}.foot{border-top:1px solid var(--line);color:var(--mute);text-align:center;padding:18px 0 28px;font-size:.82rem}.foot a{color:var(--mute)}details summary{cursor:pointer;color:var(--sage)}@media (max-width:520px){.brand b{display:none}h1{font-size:1.6rem}.hero h1{font-size:1.65rem}.ayah .a{font-size:1.55rem}.top nav a{padding:6px 7px}}.ayah{content-visibility:auto;contain-intrinsic-size:auto 220px}.tafsir .ar{font-size:1.3rem;line-height:2}.ayah{scroll-margin-top:64px}.keys{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.keys button{background:var(--bg2);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:12px 0;font-size:1rem}.keys button:active{background:#1f2a22}.plot{aspect-ratio:1;border:1px solid var(--line);touch-action:manipulation;background:#0f1311;border-radius:8px;width:100%;max-width:520px;margin:10px auto;display:block}.sliders{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px 14px;margin:8px 0;display:grid}.sliders label{color:var(--mute);flex-direction:column;font-size:.85rem;display:flex}.sliders input{width:100%;accent-color:var(--sage)}.search input{min-width:0}.search.wrap{flex-wrap:wrap}.search.wrap input{flex:100%}.search.wrap select{flex:1;padding:9px}.cite{border-left:3px solid var(--gold);background:#0f1311;margin:10px 0;padding:10px 14px}.cite div{margin:0}.heirs{grid-template-columns:1fr;gap:6px;margin:10px 0;display:grid}@media (min-width:640px){.heirs{grid-template-columns:1fr 1fr}}.heir{border:1px solid #2a312d;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.step{align-items:center;gap:6px;display:flex}.step button{width:36px;height:36px;color:inherit;background:#141a17;border:1px solid #3a443e;border-radius:8px;font-size:1.2rem}.step b{text-align:center;min-width:1.4em}.shares{border-collapse:collapse;width:100%}.shares td,.shares th{text-align:left;vertical-align:top;border-bottom:1px solid #2a312d;padding:6px 4px}details.fq{background:#0f1311;border:1px solid #2a312d;border-radius:12px;margin:8px 0}details.fq>summary{cursor:pointer;justify-content:space-between;gap:8px;padding:12px 14px;font-weight:600;list-style:none;display:flex}details.fq>summary:after{content:"+";color:var(--gold)}details.fq[open]>summary:after{content:"–"}details.fq>summary::-webkit-details-marker{display:none}details.fq>:not(summary){margin-left:14px;margin-right:14px}details.fq>:last-child{margin-bottom:12px}.lab{letter-spacing:.06em;text-transform:uppercase;color:var(--sage);margin-top:8px;font-size:.78rem}.mz{border-left:3px solid #33403a;margin:8px 0;padding-left:10px}.mz.shafii{border-color:var(--gold)}ol.steps li{margin:6px 0}.tabs{flex-wrap:wrap}.pillars{grid-template-columns:repeat(5,1fr);align-items:end;gap:6px;margin:18px 0 6px;display:grid}.pillar{color:inherit;flex-direction:column;align-items:center;min-width:0;padding:0;text-decoration:none;display:flex}.pillar svg{width:100%;height:auto;display:block}.pillar b{text-align:center;margin-top:4px;font-size:.74rem;line-height:1.15}.pillar .ar{color:var(--gold);font-size:.95rem}.pillar:active svg,.pillar:focus-visible svg{filter:brightness(1.25)}.tabs a.tabbtn{color:var(--mute);white-space:nowrap;border-bottom:2px solid #0000;padding:8px 10px;text-decoration:none}.tabs a.tabbtn.on{color:var(--gold);border-color:var(--gold)}.ft-wrap{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;margin:12px -4px;overflow-x:auto}.ft{color:#2b3a32;border:2px solid #b8923a;border-radius:14px;min-width:340px;max-width:460px;margin:0 auto;position:relative;box-shadow:inset 0 0 0 5px #f7f0df,inset 0 0 0 6px #d7c49a}.ft-lines{width:100%;height:100%;position:absolute;inset:0}.ft-card{box-sizing:border-box;text-align:center;background:#fffaf0;border:1.5px solid #d7c49a;border-radius:10px;padding:8px 9px;position:absolute;box-shadow:0 1px #e8dcbf}.ft-name{color:#1f4d3a;font-family:Georgia,Times New Roman,serif;font-size:.86rem;font-weight:700;line-height:1.2}.ft-line{color:#5d5236;margin-top:3px;font-size:.72rem;line-height:1.25}.ft-spouse{text-align:center;color:#8a6d2a;font-size:.7rem;font-style:italic;position:absolute}.ft-ghateem{text-align:center;width:78%;position:absolute;transform:translate(-50%)}.ft-portrait{background:#fffaf0;border:3px solid #b8923a;border-radius:50%;width:112px;height:112px;margin:0 auto;overflow:hidden;box-shadow:0 0 0 4px #fffaf0,0 0 0 5px #d7c49a}.ft-portrait img,.ft-portrait svg{object-fit:cover;width:100%;height:100%;display:block}.ft-gname{color:#1f4d3a;margin-top:8px;font-family:Georgia,serif;font-size:1.15rem;font-weight:700}.ft-her{color:#8a6d2a;letter-spacing:.02em;margin-top:2px;font-size:.78rem}.ft-corner{border:2px solid #b8923a;width:26px;height:26px;position:absolute}.ft-corner.tl{border-bottom:0;border-right:0;top:6px;left:6px}.ft-corner.br{border-top:0;border-left:0;bottom:6px;right:6px}.ft-legend{color:var(--mute);text-align:center;margin:6px 8px;font-size:.74rem}.era{border-left:2px solid #33403a;margin-left:8px;padding-left:14px}.entry{margin:14px 0;position:relative}.entry:before{content:"";background:var(--gold);border-radius:50%;width:12px;height:12px;position:absolute;top:6px;left:-21px}.yr{color:var(--gold);letter-spacing:.04em;font-size:.78rem}.src{font-size:.78rem}.src a{word-break:break-word}.conflict{border:1px dashed #b8923a;border-radius:10px;margin:8px 0;padding:8px 10px}.fhid{z-index:40;border:1px solid var(--gold);color:var(--gold);background:#122019;border-radius:999px;align-items:center;gap:6px;padding:9px 13px;font-size:.85rem;text-decoration:none;display:flex;position:fixed;bottom:14px;right:12px;box-shadow:0 4px 14px #00000080}.fhid b{font-weight:600}.fhid.float{animation:2.5s ease-in-out 4 fhfloat}@keyframes fhfloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.fhid.float{animation:none}}main{padding-bottom:64px}.capslist{margin:6px 0;padding-left:18px}.capslist li{margin:4px 0}.linkish{color:var(--gold);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0;text-decoration:underline}.explain .msg{max-width:100%}.ayah.playing{border-left:3px solid var(--gold);background:linear-gradient(90deg,#e4c56a21,#0000);padding-left:8px}.qplayer{z-index:45;border:1px solid var(--gold);background:#122019;border-radius:10px;align-items:center;gap:6px;max-width:520px;margin:0 auto;padding:8px 10px;display:flex;position:fixed;bottom:10px;left:8px;right:8px}.qplayer span{color:var(--gold);flex:1;font-size:.85rem}.recite select{width:100%}.datebar{color:var(--mute);text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;padding:4px 8px;font-size:.78rem;overflow:hidden}.datebar b{color:var(--gold);font-weight:500}.datebar .ar{font-size:.9rem}.tablewrap{-webkit-overflow-scrolling:touch;margin:8px 0;overflow-x:auto}table.month{border-collapse:collapse;width:100%;min-width:520px;font-size:.78rem}table.month th,table.month td{border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;padding:5px 4px}table.month th{color:var(--gold);background:var(--bg);font-weight:500;position:sticky;top:0}table.month tr.today td{color:var(--cream);background:#e4c56a24;font-weight:600}table.month tr.fri td:first-child{color:var(--sage)}.ptimes tr.next td{color:var(--gold)}.chips{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.chip{background:var(--bg2);border:1px solid var(--line);color:var(--cream);cursor:pointer;border-radius:999px;padding:6px 11px;font-size:.85rem}.duaitem{border-bottom:1px dashed var(--line);margin:8px 0;padding-bottom:6px}.duaitem .ar{text-align:right;font-size:1.35rem;line-height:2.1}.duaitem .tr{color:var(--mute);margin:4px 0}h3.duach{color:var(--gold);margin:14px 0 4px;font-size:1rem}.quick{flex-wrap:wrap;justify-content:center;gap:6px;margin:14px 0;display:flex}.hd{max-width:44em}.hd-crumb{margin:0 0 8px}.hd-meta{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 12px;display:flex}.hd-sum{font-family:var(--serif);color:var(--cream);border-left:3px solid var(--sage-d);padding-left:12px;font-size:1.08rem}.hd-body p,.hd-body li{font-family:var(--serif);font-size:1.04rem;line-height:1.72}.hd-body p{margin:0 0 1em}.hd-h2{border-top:1px solid var(--line);color:var(--gold);margin-top:1.6em;padding-top:.6em;scroll-margin-top:70px}.hd-h3{color:var(--sage);margin-top:1.2em;scroll-margin-top:70px}.hd-toc ol{margin:6px 0 10px;padding-left:22px}.hd-toc li{margin:3px 0}.hd-ul{padding-left:22px}.hd-ul li{margin:4px 0}.hd-box{border:1px solid var(--line);background:var(--bg2);border-radius:10px;margin:14px 0;padding:12px 14px}.hd-box p:last-child{margin-bottom:0}.hd-box.dispute{border:1px dashed #b8923a}.hd-box.lesson{border-color:var(--sage-d)}.hd-box-t{color:var(--gold);font-family:var(--sans);letter-spacing:.03em;margin-bottom:6px;font-size:.85rem;display:block}.hd-table{margin:12px 0;overflow-x:auto}.hd-table table{border-collapse:collapse;width:100%;font-size:.92rem}.hd-table th,.hd-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}.hd-table th{color:var(--gold);font-weight:600}.hd-tl{margin:14px 0}.hd-tl-t{color:var(--gold);margin-bottom:6px;font-weight:600}.hd-tl .entry div:not(.yr){font-family:var(--serif)}.hd-src{margin-top:2em;font-size:.9rem}.hd-src li{word-break:break-word;margin:4px 0}.hd-nav{justify-content:space-between;gap:12px;margin-top:20px;font-size:.92rem;display:flex}.hd-search{margin:10px 0}.hd-res ul{padding:0;list-style:none}.hd-res li{border-bottom:1px solid var(--line);margin:10px 0;padding-bottom:8px}.hd-views{margin:12px 0}.motto .tr{text-transform:none;letter-spacing:.02em;text-align:center;font-size:.95rem}.hall .hd-ar{color:var(--sage);text-align:left;direction:rtl;unicode-bidi:plaintext;margin-top:2px;font-size:1rem}.grades{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.grade{border:1px solid var(--line);color:var(--mute);border-radius:999px;padding:2px 8px;font-size:.75rem}.grade b{color:var(--cream);font-weight:600}.grade.good b{color:#9cb38f}.grade.weak b{color:#e08f7a}.unityline{max-width:520px;color:var(--gold);margin:14px auto 0;font-size:.9rem}.unityline .ar{color:var(--gold);font-size:1.45rem;line-height:2}.unity{margin:22px 0}.ucard{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:14px}.ucard .lab{letter-spacing:.08em;text-transform:uppercase;color:var(--sage);margin-bottom:6px;font-size:.75rem}.ucard .ar{text-align:right;font-size:1.3rem;line-height:2.1}.ucard p{margin:6px 0}.ucard .src{color:var(--gold);font-size:.82rem}.ucard.featured{border-color:var(--gold);background:linear-gradient(#e4c56a14,#0000);margin-bottom:12px}.utrack{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;padding-bottom:6px;display:flex;overflow-x:auto}.utrack .ucard{scroll-snap-align:start;flex:0 0 88%;max-height:430px;overflow:auto}.unav{justify-content:center;align-items:center;gap:12px;margin:6px 0;display:flex}.ftree ul{border-left:1px dashed var(--line);margin:4px 0;padding-left:16px;list-style:none}.ftree>ul{border:0;padding-left:0}.fp{padding:6px 0}.fpa{margin-top:4px}.fpa select{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:4px;font-size:.8rem}.fpath{font-family:var(--serif);color:var(--cream);font-size:1.15rem}.badge{color:var(--gold);font-size:.75rem}.badge.ok{color:var(--sage)}.zbadge{border:1px solid var(--gold);color:var(--gold);border-radius:999px;padding:3px 10px;text-decoration:none;display:inline-block}.cats li{margin:4px 0}.edulock{text-align:center;border-color:var(--sage-d)}.edulock .btn{margin:4px}.code{letter-spacing:.06em;color:var(--gold);font-family:ui-monospace,Menlo,monospace;font-weight:600}.kpis{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0;display:grid}.kpi{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 12px}.kpi b{color:var(--gold);font-size:1.35rem;font-family:var(--serif);display:block}.kpi span{color:var(--mute);font-size:.82rem}.cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.pill{border:1px solid var(--line);color:var(--mute);border-radius:999px;padding:2px 9px;font-size:.78rem;display:inline-block}.pill.ok{color:#0b0d0c;background:var(--sage);border-color:var(--sage)}.pill.warn{color:var(--warn);border-color:var(--warn)}.pill.gold{color:var(--gold);border-color:var(--gold)}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.row>.field{flex:1;min-width:140px}.choice{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 16px;display:grid}.choice button{text-align:left;border:1px solid var(--line);background:var(--bg2);cursor:pointer;border-radius:10px;padding:12px}.choice button b{font-family:var(--serif);display:block}.choice button span{color:var(--mute);font-size:.82rem}.choice button.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.radios{flex-wrap:wrap;gap:8px;display:flex}.radios label{border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.9rem}.radios label.on{border-color:var(--sage);color:var(--sage)}.radios input{display:none}.discover-card{border:1px solid var(--gold);background:linear-gradient(135deg,#e4c56a14,#9cb38f0f);border-radius:12px;padding:16px}.dsteps{flex-wrap:wrap;gap:6px;margin:10px 0 18px;display:flex}.dsteps button{border:1px solid var(--line);background:var(--bg2);cursor:pointer;border-radius:50%;width:30px;height:30px;font-size:.8rem}.dsteps button.on{border-color:var(--gold);color:var(--gold)}.dsteps button.done{background:var(--sage-d);color:#0b0d0c}.dstep h2{align-items:center;gap:10px;display:flex}.dstep .dicon{font-size:1.8rem;line-height:1}.quote{border-left:3px solid var(--sage);background:var(--bg2);border-radius:0 8px 8px 0;margin:14px 0;padding:8px 14px}.quote .ar{color:var(--cream);font-size:1.35rem;line-height:2}.quote .en{margin:6px 0}.quote .ref{color:var(--gold);font-size:.82rem}body.wide .wrap{max-width:1280px}.narrow{max-width:760px;margin:0 auto}.sm{font-size:.82rem}.note.sm{font-size:.8rem}label.sm{color:var(--mute);flex-direction:column;gap:2px;display:flex}label.sm>span{font-size:.75rem}label.sm input,label.sm select,.row.tight input,.row.tight select,.bar select,.bar input,.tabed input,.arow input,.figed input,.figed select,.blk input,.blk select,.blk textarea,.modal input,.modal select,.modal textarea,.rfield textarea,.composer textarea,.qcard .ans,.report input{background:var(--bg);border:1px solid var(--line);color:var(--cream);border-radius:5px;padding:5px 7px}.chk{cursor:pointer;color:var(--cream);align-items:center;gap:5px;flex-direction:row!important;display:inline-flex!important}.row.tight{align-items:flex-end;gap:6px}.btn.small{padding:5px 10px;font-size:.82rem}.ic{border:1px solid var(--line);color:var(--mute);cursor:pointer;background:0 0;border-radius:5px;width:26px;height:26px;padding:0;font-size:.85rem;line-height:1}.ic:hover{color:var(--gold);border-color:var(--gold)}.x{color:var(--mute)}.modal-back{z-index:60;background:#000000a8;justify-content:center;align-items:flex-start;padding:4vh 10px;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:var(--bg2);border:1px solid var(--line);border-radius:12px;width:100%;max-width:560px;padding:18px}.modal.wide{max-width:920px}.mathquick{flex-wrap:wrap;gap:4px;margin:8px 0;display:flex}.mathquick button{background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:5px;min-width:34px;padding:4px 8px}.rfield{margin:6px 0 10px}.rfield textarea{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:.88rem}.rlabel{color:var(--mute);margin-bottom:3px;font-size:.8rem;display:block}.rtools{flex-wrap:wrap;gap:3px;margin-bottom:3px;display:flex}.rtools button{background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:4px;padding:2px 8px;font-size:.85rem}.rtools button:hover{border-color:var(--gold)}.rprev{color:#111;background:#fff;border-radius:6px;margin-top:4px;padding:6px 10px;font-size:.92rem}.rprev.memo{color:#0b4f9c}.tickok{color:var(--sage)}.tickbad{color:#f0a48a}.badtick{color:#f0a48a;cursor:pointer;border:1px solid #f0a48a;border-radius:999px;margin:2px 6px 2px 0;padding:1px 8px;font-size:.78rem;display:inline-block}.builder .bbar{z-index:10;margin-bottom:12px;padding:10px 12px;position:sticky;top:56px}.title-in{flex:1;min-width:200px;font-size:1rem;font-weight:600}.builder-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (max-width:1000px){.builder-cols{grid-template-columns:1fr}}.pv-sticky{background:#3a3f3b;border-radius:10px;max-height:calc(100vh - 160px);padding:10px;position:sticky;top:150px;overflow:auto}.qpanel{margin-bottom:12px;padding:12px}.qtitle{flex:1}.blk{border:1px solid var(--line);background:var(--bg);border-radius:8px;margin:6px 0}.blk.bad{border-color:#f0a48a}.blkhead{cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}.blkhead .kind{color:var(--gold);min-width:44px;font-size:.85rem;font-weight:700}.blkhead .sum{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.9rem;overflow:hidden}.blkbtns{gap:3px;display:flex}.blkbody{border-top:1px dashed var(--line);padding:8px 10px 10px}.blk.item{margin-left:0}.blk.text .kind,.blk.break .kind,.blk.figure .kind,.blk.table .kind{color:var(--mute)}.addrow{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.addrow button{border:1px dashed var(--line);color:var(--sage);cursor:pointer;background:0 0;border-radius:5px;padding:3px 8px;font-size:.8rem}.addrow button:hover{border-color:var(--gold);color:var(--gold)}.tabed table{border-collapse:collapse}.tabed td{padding:2px}.tabed input{width:80px}.figed{border:1px solid var(--line);border-radius:8px;margin:6px 0;padding:10px}.figed-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}@media (max-width:700px){.figed-grid{grid-template-columns:1fr}}.figprev,.qfig{text-align:center;color:#111;background:#fff;border-radius:8px;padding:8px}.qfig{max-width:100%;margin:6px 0;display:inline-block}.qfig svg,.figprev svg{max-width:100%;height:auto}.geotools{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.geotools button{background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:5px;padding:4px 9px;font-size:.82rem}.geotools button.on{border-color:var(--gold);color:var(--gold)}.geocanvas{cursor:crosshair;touch-action:none;background:#fff;border-radius:8px;width:100%;max-height:420px}.banklist{flex-direction:column;gap:6px;max-height:60vh;margin:8px 0;display:flex;overflow:auto}.banklist.short{max-height:340px}.bankrow{border:1px solid var(--line);background:var(--bg);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.bankrow>div{flex:1;min-width:0}.bankrow.pick{cursor:pointer;justify-content:flex-start}.bankrow.on{border-color:var(--gold)}.bankrow.off,tr.off{opacity:.55}.chip.on{border-color:var(--gold);color:var(--gold)}.chip.wk{color:#f0c49a;border-color:#c98b5a;text-decoration:none}.memo-blue{color:#8fc0ff;margin:4px 0}.memo-blue .katex{color:#8fc0ff}table.mark td{vertical-align:top}img.work{border:1px solid var(--line);border-radius:6px;max-width:220px;max-height:300px}.works{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}.kgrid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:12px 0;display:grid}.kcard{border:1px solid var(--line);background:var(--bg2);border-radius:12px;align-items:center;gap:12px;padding:14px;display:flex}.kcard b{font-size:1.15rem;font-family:var(--serif)}.kcard.flame{background:linear-gradient(135deg,#e48c3c1a,#0000);border-color:#7a5a2c}.kcard .fl{line-height:1;transition:font-size .4s}.kcard.today{border-color:var(--sage-d)}.kcard.today .btn{margin-top:8px}.badge-knight{filter:drop-shadow(0 0 4px var(--sage))}.badge-champion{filter:drop-shadow(0 0 6px var(--gold))}.badge-squire{opacity:.7}.bar{background:var(--bg);border:1px solid var(--line);border-radius:99px;height:8px;margin:5px 0;overflow:hidden}.bar i{background:var(--sage);height:100%;display:block}.bar i.get{background:var(--gold)}.kgbox{margin:4px 0}.kg{grid-template-columns:62px 1fr 44px auto;align-items:center;gap:8px;font-size:.9rem;display:grid}.credit{color:var(--mute);opacity:.75;margin:6px 0 0;font-size:.72rem;font-style:italic}.cols2{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:14px;display:grid}.cols2 .panel{margin-bottom:14px}@media (max-width:900px){.cols2{grid-template-columns:1fr}}.work-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.radar{width:100%;max-width:520px;margin:0 auto;display:block}.radar .ring{fill:none;stroke:var(--line)}.radar .spoke{stroke:var(--line)}.radar .goal{fill:none;stroke:#7a5a2c;stroke-dasharray:3 3}.radar .me{fill:#9cb38f40;stroke:var(--sage);stroke-width:2px}.radar circle.okp{fill:var(--sage)}.radar circle.wk{fill:#e08a5a}.radar text{fill:var(--cream);font-size:9.5px}.radar text.wk{fill:#f0c49a}.cd{border-bottom:1px solid var(--line);padding:8px 0}.cdn{text-align:center;border:1px solid var(--gold);border-radius:10px;min-width:56px;padding:4px}.cdn b{color:var(--gold);font-size:1.4rem;font-family:var(--serif);line-height:1.1;display:block}.cdn span{color:var(--mute);font-size:.7rem}ol.plan{margin:8px 0 4px;padding-left:20px;font-size:.9rem}ol.plan li{margin:3px 0}ol.plan li.today{color:var(--gold)}ol.plan .d{min-width:92px;color:var(--mute);display:inline-block}.wkt{color:#f0c49a}.notes{border-color:var(--gold);margin-bottom:12px}.qcard{border:1px solid var(--line);background:var(--bg2);border-radius:12px;margin:12px 0;padding:14px}.qcard.right{border-color:var(--sage)}.qcard.wrong{border-color:#c98b5a}.qcard.part{border-color:var(--gold)}.qmeta{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.qmeta .r{margin-left:auto}.qprompt{margin:6px 0 10px;font-size:1.02rem}.qprompt .katex{font-size:1.06em}.opts{flex-direction:column;gap:6px;display:flex}.opt{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.opt.on{border-color:var(--sage)}.opt.rightopt{border-color:var(--sage);background:#9cb38f1f}.opt.wrongopt{border-color:#c98b5a}.qcard .ans{width:100%;max-width:340px;padding:8px 10px;font-size:1rem}.qres{border-top:1px dashed var(--line);margin-top:10px;padding-top:8px}.verdict{margin-bottom:4px;font-weight:600}.why{margin-top:6px}.done-box{border-color:var(--sage);align-items:center;gap:14px;margin:10px 0;display:flex}.done-box .fl{font-size:44px}.buddy{flex-direction:column;gap:6px;display:flex}.bmsgs{flex-direction:column;gap:6px;max-height:340px;display:flex;overflow:auto}.buddy .composer{background:0 0;padding:4px 0 0;position:static}.buddy-float{z-index:50;background:var(--bg2);border:1px solid var(--gold);border-radius:12px;width:min(380px,100vw - 24px);padding:12px;position:fixed;bottom:12px;right:12px;box-shadow:0 6px 30px #00000080}.timer{z-index:9;border:1px solid var(--sage);font-variant-numeric:tabular-nums;background:#122019;border-radius:8px;margin:6px 0;padding:4px 12px;font-weight:600;display:inline-block;position:sticky;top:60px}.timer.low{color:#f0a48a;border-color:#f0a48a}.exam-cols{grid-template-columns:minmax(0,1.5fr) minmax(260px,.6fr);align-items:start;gap:14px;margin-top:10px;display:grid}@media (max-width:900px){.exam-cols{grid-template-columns:1fr}}.exam-cols .paper-print{background:#3a3f3b;border-radius:10px;padding:10px}.answer-sheet{max-height:calc(100vh - 90px);position:sticky;top:70px;overflow:auto}.arow{grid-template-columns:52px 1fr 52px;align-items:center;gap:6px;margin:4px 0;display:grid}.arow input{width:100%}.report{max-width:900px;margin:0 auto}.rep-head{border-bottom:2px solid var(--sage-d);align-items:center;gap:14px;margin:14px 0;padding-bottom:10px;display:flex}.rep-sub{border-bottom:1px solid var(--line);margin:16px 0;padding-bottom:10px}@media print{.noprint{display:none!important}body:has(.report) .top{display:none!important}body:has(.report) .foot{display:none!important}body:has(.report) .datebar{display:none!important}body:has(.report) .fhid{display:none!important}body:has(.report){color:#111;background:#fff}body:has(.report) .note{color:#444}body:has(.report) .kpi span{color:#444}:is(body:has(.report) .kpi,body:has(.report) .bar){background:#fff;border-color:#bbb}body:has(.report) .kpi b{color:#3f7a4c}}.calgrid{border-collapse:separate;border-spacing:4px;table-layout:fixed;width:100%;margin-top:8px}.calgrid th{color:var(--mute);font-size:.75rem;font-weight:500}.cday{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:100%;min-height:52px;padding:4px 0;display:flex}.cday b{font-size:1rem}.cday b small{color:var(--gold);font-size:.7rem;font-weight:500}.cday span{color:var(--sage);font-size:.68rem}.cday:hover:not(:disabled){border-color:var(--gold)}.cday.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.cday.off,.cday.none{opacity:.35;cursor:default}.cday.off span,.cday.none span{color:var(--mute)}.cday.full{opacity:.6;cursor:default;border-style:dashed}.cday.full span{color:#f0a48a}.subj-mark{border:1px solid var(--sage);width:34px;height:34px;color:var(--sage);vertical-align:middle;background:var(--bg2);border-radius:9px;justify-content:center;align-items:center;margin-right:8px;font-size:1.15rem;display:none}.guide-body h3{color:var(--gold);margin:1.2em 0 .4em;font-size:1.1rem}.guide-body p{margin:.5em 0;line-height:1.65}.guide-body ul{margin:.4em 0 .8em 1.2em;line-height:1.6}.guide-body .katex{font-size:1.05em}.guide-cols{grid-template-columns:minmax(200px,280px) 1fr;align-items:start;gap:16px;display:grid}.guide-toc{flex-direction:column;gap:4px;display:flex;position:sticky;top:70px}.guide-toc button{text-align:left;background:var(--bg2);border:1px solid var(--line);color:var(--cream);cursor:pointer;font:inherit;border-radius:10px;gap:8px;padding:8px 10px;display:flex}.guide-toc button span{color:var(--gold);min-width:1.4em;font-weight:700}.guide-toc button.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.guide-art{min-height:300px}@media (max-width:760px){.guide-cols{grid-template-columns:1fr}.guide-toc{position:static}}.tb-list{gap:8px;display:grid}.tb-row{text-align:left;cursor:pointer;color:var(--cream);font:inherit;align-items:center;gap:12px;width:100%;display:flex}.tb-row b{flex:1}.tb-src{white-space:pre-wrap;background:var(--bg);border:1px solid var(--line);border-radius:8px;max-height:280px;padding:10px;font-size:.85rem;overflow:auto}.tb-out{border-collapse:collapse;width:100%;margin:10px 0}.tb-out td,.tb-out th{border-bottom:1px solid var(--line);vertical-align:top;text-align:left;padding:4px}.tb-out input:not([type=number]),.tb-out select,.tb-out textarea{width:100%}.tb-out .nowrap{white-space:nowrap}.tb-guide{border-top:1px solid var(--line);padding:10px 0}.tb-split{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tb-split textarea{width:100%;font-family:ui-monospace,monospace;font-size:.85rem}.tb-prev{border:1px solid var(--line);background:var(--bg2);border-radius:8px;max-height:560px;padding:10px;overflow:auto}@media (max-width:900px){.tb-split{grid-template-columns:1fr}}button.linkish{color:var(--gold);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.tb-book input,.tb-book select,.tb-book textarea{background:var(--bg);color:var(--cream);border:1px solid var(--line);font:inherit;border-radius:6px;padding:5px 7px}.tb-book textarea{font-family:ui-monospace,Menlo,monospace;font-size:.85rem;line-height:1.5}.tb-book input:focus,.tb-book select:focus,.tb-book textarea:focus{outline:2px solid var(--gold);outline-offset:0}.lab-gal{grid-template-columns:230px 1fr;align-items:start;gap:16px;margin-top:10px;display:grid}.lab-nav{border:1px solid var(--line);background:linear-gradient(#ffffff0a,#ffffff04);border-radius:14px;flex-direction:column;gap:2px;max-height:calc(100vh - 90px);padding:8px;display:flex;position:sticky;top:68px;overflow:auto}.lab-nav h4{font:600 .7rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:10px 6px 4px}.lab-nav button{all:unset;cursor:pointer;color:var(--cream);border-radius:9px;align-items:center;gap:9px;padding:7px 9px;font-size:.88rem;display:flex}.lab-nav button i{text-align:center;opacity:.9;width:22px;font-style:normal}.lab-nav button:hover{background:#ffffff0d}.lab-nav button.on{background:color-mix(in srgb,var(--sage) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sage) 55%,transparent)}.lab-pick{display:none}@media (max-width:860px){.lab-gal{grid-template-columns:1fr}.lab-nav{display:none}.lab-pick{background:var(--bg2);border:1px solid var(--line);width:100%;color:var(--cream);border-radius:10px;padding:10px;display:block}}.lab-box{border:1px solid var(--line);background:linear-gradient(#ffffff09,#ffffff03);border-radius:16px;overflow:hidden}.lab-head{padding:14px 18px 6px}.lab-head h3{margin:0 0 4px;font-size:1.25rem}.lab-head p{color:var(--mute);max-width:75ch;margin:0;font-size:.92rem}.lab-body{grid-template-columns:minmax(0,1fr) 270px;gap:14px;padding:10px 14px 14px;display:grid}@media (max-width:1100px){.lab-body{grid-template-columns:1fr}}.lab-main{flex-direction:column;gap:10px;min-width:0;display:flex}.lab-stage{background:#070b14;border-radius:12px;width:100%;overflow:hidden;box-shadow:0 0 0 1px #ffffff12,0 10px 30px #00000059}.lab-stage canvas{width:100%;display:block}.lab-ctl{background:#00000038;border:1px solid #ffffff0f;border-radius:12px;flex-direction:column;align-self:start;gap:12px;padding:12px;display:flex}.lab-ctl h5{font:600 .7rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:4px 0 -4px}.lab-foot{color:var(--mute);padding:0 18px 14px;font-size:.88rem}.lk-sl{--lk:var(--sage);flex-direction:column;gap:5px;display:flex}.lk-sl .lk-l{color:var(--mute);justify-content:space-between;font-size:.84rem;display:flex}.lk-sl .lk-l b{color:var(--lk);font:600 .84rem ui-monospace,Menlo,monospace}.lk-sl .lk-l i{opacity:.75;margin-left:3px;font-style:normal}.lk-sl small{color:var(--mute);font-size:.75rem}.lk-sl input[type=range]{appearance:none;background:linear-gradient(90deg,var(--lk) var(--p),#ffffff1f var(--p));border-radius:6px;outline:none;width:100%;height:6px;margin:4px 0}.lk-sl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--lk);width:17px;height:17px;box-shadow:0 0 0 4px color-mix(in srgb,var(--lk) 25%,transparent);cursor:grab;background:#fff;border-radius:50%}.lk-sl input[type=range]::-moz-range-thumb{border:3px solid var(--lk);cursor:grab;background:#fff;border-radius:50%;width:13px;height:13px}.lk-seg{background:#ffffff0d;border:1px solid #ffffff0f;border-radius:10px;flex-wrap:wrap;gap:3px;padding:3px;display:flex}.lk-seg button{all:unset;cursor:pointer;text-align:center;color:var(--mute);white-space:nowrap;border-radius:7px;flex:auto;padding:6px 9px;font-size:.82rem}.lk-seg button.on{background:var(--sage);color:var(--bg);font-weight:600}.lk-seg.sm button{padding:4px 7px;font-size:.78rem}.lk-ck{cursor:pointer;align-items:center;gap:8px;font-size:.86rem;display:flex}.lk-ck input{accent-color:var(--sage);width:16px;height:16px}.lk-btn{all:unset;cursor:pointer;text-align:center;background:#ffffff12;border:1px solid #ffffff1a;border-radius:9px;padding:8px 12px;font-size:.86rem;font-weight:600}.lk-btn:hover{background:#ffffff1f}.lk-btn.on,.lk-btn.go{background:var(--sage);color:var(--bg);border-color:#0000}.lk-row{flex-wrap:wrap;gap:6px;display:flex}.lk-row>*{flex:1}.lk-ro{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.lk-ro div{--lk:var(--gold);border:1px solid #ffffff0f;border-left:3px solid var(--lk);background:#ffffff0a;border-radius:10px;padding:8px 10px}.lk-ro span{letter-spacing:.04em;color:var(--mute);text-transform:uppercase;font-size:.72rem;display:block}.lk-ro b{color:var(--cream);font:600 1rem ui-monospace,Menlo,monospace}.lk-ro i{color:var(--mute);font-size:.8rem;font-style:normal}.lk-eq{background:#ffffff0a;border-radius:10px;padding:8px 10px;font-size:.95rem;overflow-x:auto}.lk-in{width:100%;color:var(--cream);background:#0000004d;border:1px solid #ffffff1f;border-radius:9px;padding:8px 10px;font:500 .9rem ui-monospace,Menlo,monospace}.lk-in:focus{outline:2px solid var(--sage)}.lk-ro div.wide{grid-column:1/-1}.lk-ro div.wide b{margin-top:2px;font:500 .93rem/1.5 Inter,system-ui,sans-serif;display:block}.lk-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:2px 0 -4px;font-size:.72rem;font-weight:700}.lk-err{color:#ff8a9e;font-size:.84rem}.lk-ok{color:#6fe39a;font-size:.84rem}.lk-tbl{border-collapse:collapse;width:100%;font:500 .82rem ui-monospace,Menlo,monospace}.lk-big{white-space:nowrap;background:#ffffff0d;border-radius:10px;padding:10px 12px;font:600 1.15rem ui-monospace,Menlo,monospace;overflow-x:auto}.lk-tbl{border-collapse:collapse;width:100%;font-size:.85rem}.lk-tbl td,.lk-tbl th{text-align:left;border-bottom:1px solid #ffffff12;padding:4px 6px}.lk-tbl th{color:var(--mute);font-weight:600}.lk-steps{flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:.85rem;display:flex}.lk-steps li{cursor:pointer;color:var(--mute);border-radius:6px;padding:4px 6px}.lk-steps li.done{color:var(--cream)}.lk-steps li.on{color:var(--cream);background:color-mix(in srgb,var(--sage) 22%,transparent)}
