.shell{--side:248px;--rail:340px;grid-template-columns:var(--side) minmax(0, 1fr);background:var(--color-paper);min-height:100svh;font-size:1rem;display:grid}.side{border-right:1px solid var(--color-line);flex-direction:column;gap:24px;height:100svh;padding:24px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.side-brand{letter-spacing:-.02em;align-items:center;gap:10px;padding:0 10px;font-size:1.25rem;font-weight:800;display:flex}.side nav{flex-direction:column;gap:2px;display:flex}.nav-item{min-height:44px;color:var(--color-muted);border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-weight:700;transition:background-color .16s,color .16s;display:flex}.nav-item:hover,.nav-item[aria-current=page]{background:var(--color-ash);color:var(--color-ink)}.side-foot{gap:10px;margin-top:auto;padding:0 4px;display:grid}.account-row{border-radius:12px;align-items:center;gap:10px;padding:8px;font-size:.875rem;display:flex}.account-row:hover{background:var(--color-ash)}.avatar{width:36px;height:36px;color:var(--color-ink);background:#fff3b0;border-radius:999px;flex:none;place-items:center;font-weight:800;display:grid}.topbar,.bottombar{display:none}.canvas{min-width:0;padding:28px clamp(16px,3vw,40px) 96px}.with-rail{grid-template-columns:minmax(0, 1fr) var(--rail);align-items:start;gap:40px;max-width:1120px;margin:0 auto;display:grid}.main-col{min-width:0}.rail{gap:16px;display:grid;position:sticky;top:28px}.page-narrow{max-width:760px;margin:0 auto}.page-wide{max-width:1120px;margin:0 auto}.title-row{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.title-row h1{letter-spacing:-.02em;font-size:1.5rem;font-weight:800;line-height:1.2}.title-row .sub{color:var(--color-muted);margin-top:4px;font-size:.9375rem}.panel{border:1px solid var(--color-line);background:var(--color-paper);border-radius:20px;padding:20px}.panel h2{font-size:1rem;font-weight:800}.panel .meta{color:var(--color-muted);font-size:.875rem}.stats{align-items:center;gap:6px;display:flex}.chip{font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;min-height:36px;padding:0 12px;font-size:.9375rem;font-weight:800;display:inline-flex}.chip-streak{color:var(--color-ink)}.chip-streak.lit svg{color:var(--color-gold);fill:var(--color-yellow)}.chip-streak.out svg{color:#8f8c85}.chip-xp svg{color:var(--color-gold)}.chip-freeze{color:#2f6f9a}.bar{background:var(--color-ash);border-radius:999px;height:14px;position:relative;overflow:hidden}.bar>span{background:var(--color-yellow);transition:width .6s var(--ease-out-strong);border-radius:999px;position:absolute;inset:0 auto 0 0}.bar.done>span{background:var(--color-gold)}.bar-ends{color:var(--color-muted);justify-content:space-between;margin-top:8px;font-size:.8125rem;display:flex}.unit{margin-bottom:56px}.unit-head{border-radius:20px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px 24px;display:grid}.unit-head.u-yellow{background:var(--color-yellow);color:var(--color-ink)}.unit-head.u-gold{background:var(--color-gold);color:var(--color-ink)}.unit-head.u-black{background:var(--color-ink);color:var(--color-paper)}.unit-head.u-white{background:var(--color-ash);color:var(--color-ink)}.unit-head .unit-meta{opacity:.85;font-size:.875rem;font-weight:700}.unit-head h2{letter-spacing:-.02em;margin-top:2px;font-size:1.5rem;font-weight:800;line-height:1.15}.unit-head h2 .tc{opacity:.85;font-weight:500}.unit-head p{margin-top:4px;font-size:.9375rem}.guide-btn{cursor:pointer;min-height:44px;color:inherit;background:0 0;border:2px solid;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-size:.875rem;font-weight:800;transition:background-color .16s;display:inline-flex}.guide-btn:hover{background:#ffffff2e}.u-white .guide-btn:hover,.u-yellow .guide-btn:hover,.u-gold .guide-btn:hover{background:#0000000f}.tips{gap:12px;margin-top:12px;display:grid}.tip{background:var(--color-ash);border-radius:16px;padding:18px 20px}.tip h3{font-weight:800}.tip p{color:var(--color-ink);margin-top:4px;font-size:.9375rem}.tip ul{gap:6px;margin-top:10px;display:grid}.tip li{gap:10px;font-size:.9375rem;display:flex}.tip li b{font-weight:800}.trail{flex-direction:column;align-items:center;gap:18px;padding:32px 0 8px;display:flex;position:relative}.node-wrap{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.node-wrap.open{z-index:10}.node{--fill:var(--color-ash);--lip:#d4d2cc;--ink:#8f8c85;border:0;border-bottom:7px solid var(--lip);background:var(--fill);width:76px;height:70px;color:var(--ink);cursor:pointer;transition:transform .12s var(--ease-out-strong), border-bottom-width .12s var(--ease-out-strong), filter .16s ease;border-radius:999px;place-items:center;display:grid;position:relative}.node:hover{filter:brightness(1.05)}.node:active{border-bottom-width:3px;transform:translateY(4px)}.node.done{--fill:var(--color-gold);--lip:var(--color-gold-lip);--ink:var(--color-ink)}.node.current{--fill:var(--color-yellow);--lip:var(--color-yellow-lip);--ink:var(--color-ink);width:84px;height:78px}.node .glyph{font-family:var(--font-tifinagh);font-size:1.9rem;line-height:1}.node-ring{border:4px solid var(--color-yellow);opacity:.6;pointer-events:none;border-radius:999px;animation:1.8s ease-out infinite ring;position:absolute;inset:-9px}@keyframes ring{0%{opacity:.7;transform:scale(.92)}to{opacity:0;transform:scale(1.18)}}.start-tag{background:var(--color-ink);color:var(--color-yellow);border-radius:12px;margin-bottom:10px;padding:8px 14px;font-size:.875rem;font-weight:800;animation:2.4s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.node-pop{z-index:5;background:var(--color-ink);width:min(320px,86vw);color:var(--color-paper);animation:pop-in .18s var(--ease-out-strong);border-radius:18px;padding:18px;position:absolute;top:calc(100% + 12px);box-shadow:0 12px 32px #0000002e}.node-pop h3{font-size:1.0625rem;font-weight:800}.node-pop p{color:#d9d6cf;margin-top:4px;font-size:.9375rem}.node-pop .words-preview{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.node-pop .words-preview span{background:var(--color-smoke);border-radius:999px;padding:4px 10px;font-size:.875rem}.node-pop .btn{width:100%;margin-top:14px}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:none}}.summit{min-height:220px;color:var(--color-paper);border-radius:20px;align-items:flex-end;margin-top:16px;display:flex;position:relative;overflow:hidden}.summit img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.summit-text{background:var(--color-ink);border-radius:14px;margin:16px;padding:14px 16px;position:relative}.summit-text h2{font-size:1.125rem;font-weight:800}.summit-text p{color:#d9d6cf;font-size:.875rem}.list{display:grid}.row{border-bottom:1px solid #efeeeb;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;min-height:64px;padding:10px 4px;display:grid}.row:last-child{border-bottom:0}.row .w-tc{font-size:1.0625rem;font-weight:800}.row .w-tf{color:var(--color-muted);font-family:var(--font-tifinagh);margin-left:8px;font-size:.9375rem}.row .w-en{color:var(--color-ink);font-size:.9375rem}.row .w-meta{color:var(--color-muted);margin-top:2px;font-size:.8125rem}.row.locked .w-tc,.row.locked .w-en{color:#8f8c85}.strength{align-items:flex-end;gap:3px;display:inline-flex}.strength i{background:var(--color-ash);border-radius:2px;width:6px;display:block}.strength i.on{background:var(--color-gold)}.icon-btn{width:44px;height:44px;color:var(--color-ink);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;transition:background-color .16s;display:inline-grid}.icon-btn:hover{background:var(--color-ash)}.icon-btn:disabled{color:#b5b2ab;cursor:default;background:0 0}.text-btn{color:var(--color-ink);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:.875rem;font-weight:700;text-decoration:underline}.group-title{margin:32px 0 6px;font-size:1rem;font-weight:800}.group-title .tc{color:var(--color-muted);font-weight:500}.seg{background:var(--color-ash);border-radius:999px;padding:4px;display:inline-flex}.seg button{min-height:36px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:.875rem;font-weight:700}.seg button[aria-pressed=true]{background:var(--color-paper);color:var(--color-ink)}.kpis{border:1px solid var(--color-line);border-radius:20px;grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.kpi{padding:18px 20px}.kpi+.kpi{border-left:1px solid var(--color-line)}.kpi dt{color:var(--color-muted);font-size:.875rem}.kpi dd{font-variant-numeric:tabular-nums;margin-top:4px;font-size:1.5rem;font-weight:800}.kpi dd small{color:var(--color-muted);margin-left:4px;font-size:.875rem;font-weight:500}.days{grid-template-columns:repeat(14,minmax(0,1fr));gap:6px;display:grid}.day{aspect-ratio:1;background:var(--color-ash);border-radius:6px}.day.l1{background:#fff1a6}.day.l2{background:#ffe14d}.day.l3{background:var(--color-yellow)}.day.l4{background:var(--color-gold)}.day.today{outline:2px solid var(--color-ink);outline-offset:1px}.field{gap:8px;display:grid}.field label{font-size:.9375rem;font-weight:700}.field input,.field textarea,.field select{border:2px solid var(--color-line);background:var(--color-paper);min-height:48px;color:var(--color-ink);font:inherit;border-radius:14px;padding:10px 14px;transition:border-color .16s}.field textarea{resize:vertical;min-height:112px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--color-ink);outline:none}.field .help{color:var(--color-muted);font-size:.8125rem}.form-error{background:var(--color-wrong-pale);color:var(--color-wrong-ink);border-radius:12px;padding:12px 14px;font-size:.9375rem;font-weight:600}.toggle-row{justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.toggle-row+.toggle-row{border-top:1px solid #efeeeb}.switch{cursor:pointer;background:#cfccc4;border:0;border-radius:999px;flex:none;width:48px;height:28px;transition:background-color .18s;position:relative}.switch:after{content:"";background:var(--color-paper);width:22px;height:22px;transition:transform .22s var(--ease-out-strong);border-radius:999px;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--color-ink)}.switch[aria-checked=true]:after{transform:translate(20px)}.empty{border:2px dashed var(--color-line);color:var(--color-muted);border-radius:16px;padding:20px;font-size:.9375rem}.skel{background:var(--color-ash);border-radius:8px;display:block}.dialog-back{z-index:50;background:#0d0c0a8c;place-items:center;padding:16px;animation:.16s fade;display:grid;position:fixed;inset:0}.dialog{background:var(--color-paper);width:min(480px,100%);max-height:90svh;animation:pop-in .2s var(--ease-out-strong);border-radius:22px;padding:24px;overflow:auto;box-shadow:0 24px 60px #00000040}.dialog h2{font-size:1.25rem;font-weight:800}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.more-back,.more-sheet{animation:none}}.tc{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:inline-flex}.tc-tf{font-family:var(--font-tifinagh);letter-spacing:.04em;line-height:1.25}.tc-ar{color:var(--color-muted);font-weight:700;line-height:1.4}.tc-md .tc-tf{color:var(--color-ink);font-size:1.375rem}.tc-md .tc-ar{font-size:.9375rem}.tc-sm .tc-tf{font-size:1.0625rem}.tc-sm .tc-ar{font-size:.8125rem}.row.locked .tc-tf{color:#8f8c85}.unit-tc{margin-top:4px}.u-black .unit-tc .tc-ar{color:#d9d6cf}.u-yellow .unit-tc .tc-ar,.u-gold .unit-tc .tc-ar{color:var(--color-ink);opacity:.75}.announce{background:var(--color-ink);max-width:1120px;color:var(--color-yellow);border-radius:14px;margin:0 auto 20px;padding:12px 16px;font-size:.9375rem;font-weight:700}.premium-tag{background:var(--color-ink);color:var(--color-yellow);border-radius:999px;margin-inline-start:8px;padding:1px 8px;font-size:.75rem;font-weight:800;display:inline-block}.u-black .premium-tag{background:var(--color-yellow);color:var(--color-ink)}.node.premium{--fill:var(--color-ink);--lip:#000;--ink:var(--color-yellow)}.premium-card{border-color:var(--color-ink)}.plans{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.plan h2{font-size:1.125rem}.plan-price{letter-spacing:-.02em;margin-top:10px;font-size:1.75rem;font-weight:800}.level-head{border-bottom:3px solid var(--color-ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin:8px 0 20px;padding-bottom:10px;display:flex}.level-head h2{letter-spacing:-.01em;font-size:1.25rem;font-weight:800}.level-head p{color:var(--color-muted);font-size:.875rem;font-weight:700}.cert-list{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.cert-row{border:1px solid var(--color-line);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 14px;display:flex}.cert-row strong{font-weight:800;display:block}.cert-row .meta{color:var(--color-muted);font-size:.875rem;display:block}.cert-row .bar{width:min(220px,100%);height:8px;margin-top:6px}.more-back,.more-sheet{display:none}@media (max-width:1100px){.with-rail{grid-template-columns:minmax(0,1fr)}.rail{order:-1;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));position:static}.rail .hide-narrow{display:none}}@media (max-width:900px){.shell{grid-template-columns:minmax(0,1fr);align-content:start}.side{display:none}.topbar{z-index:20;background:var(--color-paper);border-bottom:1px solid var(--color-line);justify-content:space-between;align-items:center;height:56px;padding:0 12px 0 16px;display:flex;position:sticky;top:0}.topbar .side-brand{padding:0;font-size:1.0625rem}.bottombar{z-index:20;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:var(--color-paper);border-top:1px solid var(--color-line);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;position:fixed;inset:auto 0 0}.bottombar a,.bottombar button{min-height:52px;color:var(--color-muted);font:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:12px;align-content:start;justify-items:center;gap:2px;min-width:0;max-width:100%;padding:6px 0 0;font-size:.6875rem;font-weight:700;display:grid;overflow:hidden}.bottombar a[aria-current=page],.bottombar button[aria-current=page],.bottombar button[aria-expanded=true]{color:var(--color-ink);background:var(--color-ash)}.more-back{z-index:18;background:#0d0c0a73;animation:.16s fade;display:block;position:fixed;inset:0}.more-sheet{z-index:19;max-height:calc(100svh - 72px);padding:16px 16px calc(80px + env(safe-area-inset-bottom));background:var(--color-paper);animation:sheet-up .22s var(--ease-out-strong);border-radius:22px 22px 0 0;display:block;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -16px 40px #0000002e}.more-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.more-grid a{background:var(--color-ash);min-width:0;min-height:52px;color:var(--color-ink);border-radius:14px;align-items:center;gap:10px;padding:0 12px;font-size:.9375rem;font-weight:700;display:flex}.more-grid a[aria-current=page]{background:var(--color-yellow)}.more-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}[data-kids="1"] .more-grid a{border-radius:18px;min-height:60px;font-size:1rem}[data-kids="1"] .bottombar button{min-height:60px;font-size:.75rem}.canvas{padding:20px 16px 104px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi+.kpi{border-left:0}.kpi{border-bottom:1px solid var(--color-line)}.kpi:nth-child(2n){border-left:1px solid var(--color-line)}.kpi:last-child{border-bottom:0;grid-column:1/-1}.days{grid-template-columns:repeat(7,minmax(0,1fr))}.unit-head{grid-template-columns:1fr}.unit-head .guide-btn{justify-self:start}}
