.app{--bg:var(--color-paper);--surface:#fff;--sunken:#edede8;--ink:var(--color-ink);--muted:var(--color-muted);--line:var(--color-line);--rule:var(--color-rule);--accent:var(--color-cobalt);--accent-hover:var(--color-cobalt-hover);--accent-soft:#e3e9ff;--gold:var(--color-gold);--seal:var(--color-seal);--warn:var(--color-warn);--bad:var(--color-bad);--track:#e4e4dd;--shadow:0 1px 2px #12141b0d, 0 12px 32px -12px #12141b2e;--ease:var(--ease-standing);--t-fast:var(--duration-fast);--t:var(--duration-base);--t-slow:var(--duration-slow);--head-bg:var(--bg);--head-fg:var(--ink);--head-mute:var(--muted);--head-hi:var(--ink);--head-line:var(--line);background:var(--bg);min-height:100svh;color:var(--ink)}.app h1,.app h2,.app h3{letter-spacing:-.03em;text-wrap:balance;margin:0}.app p{margin:0}.wrap{max-width:1120px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin-inline:auto}.app .pillbtn{background:var(--accent);color:#fff;font:inherit;cursor:pointer;white-space:nowrap;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.app .pillbtn:hover{background:var(--accent-hover)}.app .pillbtn:active{transform:scale(.97)}.app .pillbtn.lg{padding:14px 26px;font-size:17px}.app .pillbtn[disabled]{opacity:.6;cursor:default}.app .pillbtn.ghost{color:var(--accent);background:0 0;padding-inline:4px}.app .pillbtn.ghost:after{content:"›";margin-left:2px;font-size:1.25em;line-height:0}.textlink{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 2px;font-size:14px;text-decoration:none}.textlink:hover{color:var(--ink)}.dangerlink{color:var(--bad);font:inherit;cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:14px;font-weight:500}.dangerlink:hover{text-decoration:underline}.auth-nav .wrap{justify-content:space-between;align-items:center;gap:16px;height:60px;display:flex}.brand{color:var(--ink);letter-spacing:-.03em;font-size:19px;font-weight:700;text-decoration:none}.sup-main{max-width:600px;padding-block:clamp(32px,8vh,88px) 80px}.sup-prog{color:var(--muted);gap:12px;font-size:13px;display:grid}.sup-track{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.sup-track i{background:var(--line);height:3px;transition:background var(--t-slow) var(--ease);border-radius:3px}.sup-track i.on{background:var(--ink)}.sup-step{gap:22px;margin-top:36px;display:grid}.sup-step h1{letter-spacing:-.045em;margin-bottom:10px;font-size:clamp(34px,6vw,52px);font-weight:700;line-height:1}.sup-foot{align-items:center;gap:22px;margin-top:40px;display:flex}.sup-alt{color:var(--muted);margin-top:28px;font-size:14px}.sup-alt a{color:var(--accent);font-weight:500;text-decoration:none}.from-right{animation:m-in-r var(--t-slow) var(--ease) both}.from-left{animation:m-in-l var(--t-slow) var(--ease) both}.enter{animation:m-rise var(--t-slow) var(--ease) both}@keyframes m-in-r{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes m-in-l{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}@keyframes m-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.field{gap:6px;min-width:0;display:grid}.field label{font-size:14px;font-weight:500}.field .opt{color:var(--muted);margin-left:6px;font-weight:400}.field .err{color:var(--bad);font-size:13px}.input{border:1px solid var(--line);background:var(--surface);width:100%;height:52px;color:var(--ink);font:inherit;border-radius:12px;min-width:0;padding:0 16px;font-size:16px}select.input{padding-right:36px}textarea.input{resize:vertical;height:auto;min-height:96px;padding:12px 16px}.input:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #12141b14}.input[aria-invalid=true]{border-color:var(--bad)}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.pnote{color:var(--muted);max-width:40em;font-size:15px;font-style:italic;line-height:1.5}.form-err{color:var(--bad);background:#fbe3df;border-radius:12px;padding:12px 14px;font-size:14px}.cats{gap:8px;display:grid}.cats-h,.cat-row{grid-template-columns:1fr 120px 36px;align-items:center;gap:8px;display:grid}.cats-h{color:var(--muted);font-size:12px;font-weight:500}.cat-row .input{height:46px}.icon-btn{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.icon-btn:hover{background:var(--sunken);color:var(--ink)}.addcat{border:1px solid var(--line);font:inherit;cursor:pointer;color:var(--ink);background:0 0;border-radius:999px;justify-self:start;padding:6px 12px;font-size:13px}.a-head{top:env(safe-area-inset-top,0px);z-index:20;color:var(--head-fg);background:var(--head-bg);border-bottom:1px solid var(--head-line);position:sticky}.a-head .brand{color:var(--head-fg)}.a-head .textlink{color:var(--head-mute)}.a-head .textlink:hover{color:var(--head-fg)}.a-head .wrap{align-items:center;gap:28px;height:60px;display:flex}.tabs{scrollbar-width:none;flex:1;gap:22px;min-width:0;display:flex;overflow-x:auto}.tab{color:var(--head-mute);white-space:nowrap;border-bottom:2px solid #0000;padding:19px 0 17px;font-size:14px;font-weight:500;text-decoration:none}.tab:hover{color:var(--head-fg)}.tab[aria-current=page]{color:var(--head-fg);border-bottom-color:var(--head-hi)}.who{color:var(--head-mute);white-space:nowrap;font-size:13px}.a-main{padding-block:clamp(32px,6vw,64px) 96px}.dsh{gap:clamp(48px,7vw,72px);max-width:720px;margin:0 auto;display:grid}.dsh-meta{color:var(--muted);font-size:14px}.dsh-num{letter-spacing:-.055em;margin-top:12px;font-size:clamp(76px,15vw,132px);font-weight:700;line-height:.92}.dsh-num small{color:var(--muted);letter-spacing:-.01em;margin-left:.35em;font-size:.19em;font-weight:500}.dsh-num.complete{color:var(--seal)}.dbar{background:var(--track);border-radius:6px;height:6px;margin-top:24px;position:relative}.dbar i{background:var(--accent);border-radius:inherit;transition:width .6s var(--ease);position:absolute;inset:0 auto 0 0}.dbar i.done{background:var(--gold)}.dbar .pace{background:var(--ink);opacity:.45;border-radius:1px;width:2px;height:16px;position:absolute;top:-5px}.dbar.thin{height:4px;margin-top:10px}.dsh-status{color:var(--muted);margin-top:18px;font-size:16px}.st{font-weight:600}.st.on-track{color:#1e7a4a}.st.behind,.st.not-met{color:var(--warn)}.st.complete{color:var(--seal)}.dsh-cat{max-width:420px;margin-top:26px}.dsh-cat .lbl{color:var(--muted);justify-content:space-between;gap:12px;font-size:14px;display:flex}.dsh-cat .lbl span:last-child{color:var(--ink);font-weight:500}.dsh-h{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.dsh-h h2{letter-spacing:-.035em;font-size:clamp(22px,3vw,28px);font-weight:700}.dsh-empty{border-top:1px solid var(--line);color:var(--muted);justify-items:start;gap:18px;padding-top:28px;font-size:16px;display:grid}.pg{gap:28px;max-width:720px;margin:0 auto;display:grid}.page-h{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.page-h h1{letter-spacing:-.04em;font-size:clamp(30px,4vw,40px);font-weight:700}.page-h p{color:var(--muted);margin-top:4px}.seg{background:var(--track);border-radius:999px;grid-template-columns:1fr 1fr;justify-self:start;padding:3px;display:inline-grid;position:relative}.seg .thumb{background:var(--surface);width:calc(50% - 3px);transition:transform var(--t-slow) var(--ease);border-radius:999px;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 1px 2px #12141b1f,0 2px 8px #12141b0f}.seg[data-on=all] .thumb{transform:translate(100%)}.seg a{z-index:1;color:var(--muted);text-align:center;transition:color var(--t) var(--ease);border-radius:999px;padding:8px 20px;font-size:14px;font-weight:500;text-decoration:none;position:relative}.seg a[aria-current=page]{color:var(--ink)}.alist{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.aitem{border-bottom:1px solid var(--rule);grid-template-columns:96px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:16px 0;display:grid}.aitem .d{color:var(--muted);font-size:13px}.aitem .t{overflow-wrap:anywhere;font-weight:500}.aitem .s{color:var(--muted);margin-top:2px;font-size:13px}.aitem .s .sep{color:#c4c4bc;padding:0 7px}.aitem .s .miss{color:var(--warn);font-weight:500}.aitem .h{text-align:right;font-size:16px;font-weight:600}.aitem .edit{opacity:.6}.aitem:hover .edit,.aitem .edit:focus-visible{opacity:1}.dlg{background:var(--surface);width:min(600px,100% - 32px);max-height:calc(100svh - 32px);color:var(--ink);border:0;border-radius:20px;padding:0;box-shadow:0 20px 60px #0000004d}.dlg::backdrop{background:#0a0d186b}.dlg[open]{animation:m-pop var(--t-slow) var(--ease) both}.dlg[open]::backdrop{animation:m-fade var(--t) var(--ease) both}@keyframes m-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}.dlg-h{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;display:flex}.dlg-h h2{font-size:20px;font-weight:700}.dlg-b{gap:16px;padding:22px;display:grid}.dlg-f{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;display:flex}.dlg-f .right{align-items:center;gap:14px;margin-left:auto;display:flex}.notice{gap:16px;display:grid}.notice p{color:var(--muted);max-width:34em;font-size:17px}.notice b{color:var(--ink);font-weight:600}.btabs{display:none}@media (max-width:700px){.a-head .tabs{display:none}.a-head .wrap{justify-content:space-between}.btabs{z-index:30;background:var(--head-bg);border-top:1px solid var(--head-line);padding:6px max(6px, env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(6px, env(safe-area-inset-left,0px));display:grid;position:fixed;bottom:0;left:0;right:0}.btab{color:var(--head-mute);min-width:0;transition:color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);justify-items:center;gap:3px;padding:6px 0 4px;font-size:10.5px;font-weight:500;text-decoration:none;display:grid}.btab svg{width:23px;height:23px}.btab:active{transform:scale(.96)}.btab[aria-current=page]{color:var(--head-fg)}.btab[aria-current=page] svg{color:var(--head-hi)}.app:not([data-accent]) .btab[aria-current=page] svg{color:var(--accent)}.a-main{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}.who{display:none}.a-head .wrap{gap:18px}}@media (max-width:600px){.grid2,.grid3{grid-template-columns:1fr}.cats-h,.cat-row{grid-template-columns:1fr 90px 36px}.aitem{grid-template-columns:minmax(0,1fr) auto auto;gap:4px 12px}.aitem .d{grid-column:1/-1}.dlg{border-radius:20px 20px 0 0;width:100%;max-width:none;max-height:92svh;margin:auto 0 0}}.app[data-accent=forest]{--bg:#e8eee5;--sunken:#dce5d8;--line:#c7d3c2;--rule:#d9e2d4;--track:#d1dccb;--ink:#12251b;--muted:#55695c;--accent:#2e6b4e;--accent-hover:#3a7f5e;--accent-soft:#d3e6d9;--gold:#d9a441;--seal:#8a6414;--head-bg:#17382a;--head-fg:#eef4ec;--head-mute:#a3bbad;--head-hi:#9fd7b5;--head-line:#17382a}.app[data-accent=sunset]{--bg:#f8ece4;--sunken:#f0dfd4;--line:#e4cec0;--rule:#eeded3;--track:#ecdbcf;--ink:#2a1712;--muted:#7a5e55;--accent:#d24e2c;--accent-hover:#e2603d;--accent-soft:#f9ddd3;--gold:#8e3b78;--seal:#7e2f69;--head-bg:#3a1e2a;--head-fg:#fbede6;--head-mute:#c9a8b1;--head-hi:#ffb59c;--head-line:#3a1e2a}.app[data-accent=tropical]{--bg:#e4f2ee;--sunken:#d6eae3;--line:#c1dbd2;--rule:#d4e7e0;--track:#cce2da;--ink:#0f2723;--muted:#4f6a65;--accent:#0b8a7a;--accent-hover:#0f9f8d;--accent-soft:#cdebe4;--gold:#f2a93b;--seal:#a3640b;--head-bg:#0e3b37;--head-fg:#e8f6f2;--head-mute:#98c2ba;--head-hi:#ffc266;--head-line:#0e3b37}.app[data-accent=ocean]{--bg:#e5edf4;--sunken:#d8e3ec;--line:#c4d2de;--rule:#d6e0e9;--track:#cfdbe5;--ink:#0f1e2e;--muted:#50637a;--accent:#1d5fa8;--accent-hover:#2a71be;--accent-soft:#d3e2f3;--gold:#22a394;--seal:#157a70;--head-bg:#0f2742;--head-fg:#e9f1f8;--head-mute:#9db3ca;--head-hi:#7fd3c8;--head-line:#0f2742}.app.theming,.app.theming *{transition:background-color var(--t-slow) var(--ease), border-color var(--t-slow) var(--ease), color var(--t-slow) var(--ease), fill var(--t-slow) var(--ease), stroke var(--t-slow) var(--ease)!important}.muted{color:var(--muted)}.pg.wide{max-width:960px}.inline-link{color:var(--accent);white-space:nowrap;font-weight:500;text-decoration:none}.inline-link:after{content:" ›"}.inline-link:hover{text-decoration:underline}.app .pillbtn.danger{background:var(--bad)}.app .pillbtn.danger:hover{background:#a92a1a}.app textarea.input{resize:vertical;height:auto;min-height:96px;padding:12px 16px;line-height:1.45}.aitem .s .ok{color:var(--ink);align-items:center;gap:4px;display:inline-flex}.aitem .s .ok svg{width:13px;height:13px}.toast{left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));z-index:60;opacity:0;background:var(--ink);max-width:calc(100% - 32px);color:var(--bg);box-shadow:var(--shadow);pointer-events:none;transition:opacity var(--t) var(--ease), transform var(--t) var(--ease);border-radius:999px;padding:11px 18px;font-size:14px;font-weight:500;position:fixed;transform:translate(-50%,12px)}.toast.show{opacity:1;transform:translate(-50%)}@media (max-width:700px){.toast{bottom:calc(88px + env(safe-area-inset-bottom,0px))}}.drop{border:1.5px dashed var(--line);text-align:center;cursor:pointer;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border-radius:14px;justify-items:center;gap:3px;padding:22px 16px;font-size:14px;display:grid}.drop input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.drop b{color:var(--accent);font-weight:600}.drop span{color:var(--muted);font-size:13px}.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft)}.drop:focus-within{border-color:var(--ink)}.flist{border-top:1px solid var(--rule);margin:4px 0 0;padding:0;list-style:none}.flist li{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto 36px;align-items:center;gap:10px;padding:4px 0;font-size:14px;display:grid}.flink,.fname{text-overflow:ellipsis;white-space:nowrap;text-align:left;overflow:hidden}.flink{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.flink:hover{text-decoration:underline}.fsize{color:var(--muted);font-size:13px}.dsh>*{min-width:0}.mchart{--bar:var(--accent);margin:28px 0 0}.mchart.is-complete{--bar:var(--gold)}.mc-plot{border-bottom:1px solid var(--line);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-items:end;gap:2px;height:clamp(150px,30vw,210px);display:grid;position:relative}.mc-pace{left:0;right:0;bottom:var(--pace);border-top:1.5px dashed color-mix(in srgb, var(--muted) 60%, transparent);pointer-events:none;z-index:1;transition:bottom var(--t-slow) var(--ease);position:absolute}.mc-pace span{color:var(--muted);background:color-mix(in srgb, var(--bg) 85%, transparent);white-space:nowrap;padding:0 0 0 6px;font-size:12px;position:absolute;bottom:5px;right:0}.mc-col{cursor:default;outline:none;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.mc-col i{width:min(100%,30px);height:var(--h);background:var(--bar);opacity:.55;transform-origin:bottom;min-height:3px;animation:mc-grow .7s var(--ease) both;animation-delay:calc(var(--i) * 40ms + .12s);transition:height .7s var(--ease), opacity var(--t) var(--ease), background var(--t) var(--ease);border-radius:4px 4px 0 0;display:block}.mc-col i.zero{height:0;min-height:0}.mc-col.now i{opacity:1}.mc-col.future i{opacity:0}.mc-col.future:after{content:"";background:var(--track);border-radius:2px 2px 0 0;width:min(100%,30px);height:3px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.mc-col:not(.future):hover i,.mc-col:focus-visible i{opacity:1}.mc-col:focus-visible i{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--ink)}html[data-seen] .mc-col i{animation:none}@keyframes mc-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.mc-tip{bottom:calc(var(--h) + 10px);z-index:3;background:var(--ink);width:max-content;max-width:220px;color:var(--bg);opacity:0;pointer-events:none;transition:opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border-radius:10px;gap:1px;padding:8px 11px;font-size:12.5px;line-height:1.35;display:grid;position:absolute;left:50%;transform:translate(-50%,4px)}.mc-tip b{font-weight:600}.mc-col.l .mc-tip{left:0;transform:translateY(4px)}.mc-col.r .mc-tip{left:auto;right:0;transform:translateY(4px)}.mc-col:not(.future):hover .mc-tip,.mc-col:focus-visible .mc-tip{opacity:1;transform:translate(-50%)}.mc-col.l:hover .mc-tip,.mc-col.l:focus-visible .mc-tip,.mc-col.r:hover .mc-tip,.mc-col.r:focus-visible .mc-tip{transform:none}.mc-axis{color:var(--muted);text-align:center;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;margin-top:8px;font-size:12px;display:grid}.mc-axis>span{white-space:nowrap;overflow:visible}.mc-axis .now{color:var(--ink);font-weight:600}.mc-axis .short{display:none}@media (max-width:560px){.mc-axis .full{display:none}.mc-axis .short{display:inline}.mc-pace span{font-size:11px}}@media (max-width:860px){.mchart.many .mc-axis .full{display:none}.mchart.many .mc-axis .short{display:inline}}.dsh-num>span:first-child{display:inline-block;position:relative}.dsh-num.bump>span:first-child{animation:cu-bump .6s var(--ease);display:inline-block}@keyframes cu-bump{30%{color:var(--accent);transform:scale(1.06)}}.cu-plus{letter-spacing:0;color:var(--accent);pointer-events:none;animation:cu-float 1.5s var(--ease) both;margin-left:.12em;font-size:.2em;font-weight:600;position:absolute;top:.05em;left:100%}@keyframes cu-float{0%{opacity:0;transform:translateY(10px)}20%{opacity:1;transform:none}75%{opacity:1}to{opacity:0;transform:translateY(-16px)}}.aitem.fresh{animation:row-in .45s var(--ease) both, row-glow 2.2s var(--ease) .2s}@keyframes row-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes row-glow{0%,35%{background:var(--accent-soft);box-shadow:-12px 0 0 var(--accent-soft), 12px 0 0 var(--accent-soft)}to{background:0 0;box-shadow:-12px 0 #0000,12px 0 #0000}}.toast.logged{pointer-events:auto;border-radius:20px;align-items:center;gap:14px;width:min(360px,100% - 32px);padding:12px 18px 12px 14px;display:flex;overflow:visible}.tl-plus{background:var(--accent);color:#fff;letter-spacing:-.02em;min-width:52px;height:44px;animation:tl-pop .52s var(--ease) .12s both;border-radius:14px;flex:none;place-items:center;padding:0 8px;font-size:17px;font-weight:700;display:grid}.toast.met .tl-plus{background:var(--gold);color:#12141b}@keyframes tl-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}.tl-body{flex:1;gap:6px;min-width:0;display:grid}.tl-body b{font-size:14.5px;font-weight:600}.tl-bar{background:color-mix(in srgb, var(--bg) 22%, transparent);border-radius:5px;height:5px;display:block;overflow:hidden}.tl-bar i{border-radius:inherit;background:var(--accent);height:100%;transition:width .9s var(--ease);display:block}.app[data-accent] .tl-bar i{background:var(--head-hi,var(--accent))}.toast.met .tl-bar i{background:var(--gold)}.tl-sub{opacity:.72;font-size:12.5px;font-weight:400}.burst{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:40px}.burst i{background:var(--gold);opacity:0;width:6px;height:6px;transform:rotate(var(--a)) translateY(0);animation:burst .9s var(--ease) .26s both;border-radius:50%;position:absolute;top:-3px;left:-3px}.burst i:nth-child(3n){background:var(--accent);width:5px;height:5px}.burst i:nth-child(4n){background:#fff;width:4px;height:4px}@keyframes burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}to{opacity:0;transform:rotate(var(--a)) translateY(-46px) scale(.4)}}.dsh-report{border-top:1px solid var(--line);justify-content:center;padding-top:32px;display:flex}.ev-missing{gap:12px;display:grid}.ev-missing h2,.set-sec h2,.rec-sec h2{letter-spacing:-.03em;font-size:clamp(20px,2.6vw,24px);font-weight:700}.vault-actions{justify-content:flex-end;margin-bottom:-12px;display:flex}.vault-actions .pillbtn svg{width:16px;height:16px}.ev-years{border-top:1px solid var(--line)}.ev-group{border-bottom:1px solid var(--line)}.ev-gh{justify-content:space-between;align-items:center;gap:12px;display:flex}.ev-toggle{font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:20px 0;display:flex}.ev-toggle h2{font-size:20px;font-weight:700}.ev-toggle .muted{font-size:14px}.chev{color:var(--muted);transition:transform var(--t) var(--ease);flex:none}.ev-group.open .chev{transform:rotate(90deg)}.ev-body{transition:grid-template-rows var(--t-slow) var(--ease);grid-template-rows:0fr;display:grid}.ev-group.open .ev-body{grid-template-rows:1fr}.ev-inner{min-height:0;overflow:hidden}.egrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px 18px;padding:4px 0 28px;display:grid}.ecard{font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:0;display:grid}.ethumb{aspect-ratio:4/3;background:var(--sunken);transition:transform var(--t) var(--ease);border-radius:12px;grid-column:1/-1;place-items:center;display:grid;overflow:hidden}.ecard:hover .ethumb{transform:translateY(-2px)}.ethumb img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity var(--t-slow) var(--ease)}.ethumb img.ld{opacity:1}.ethumb .pdf{letter-spacing:.06em;color:var(--bad);border:1.5px solid;border-radius:6px;padding:6px 9px;font-size:13px;font-weight:700}.ebody{gap:2px;min-width:0;display:grid}.ebody .fn{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.ebody .meta{color:var(--muted);font-size:13px}.edl{color:var(--muted);padding-top:2px}.edl svg{width:16px;height:16px}.ecard:hover .edl{color:var(--accent)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip2{border:1px solid var(--line);color:var(--muted);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:500;text-decoration:none}.chip2:hover{color:var(--ink);border-color:var(--ink)}.chip2[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.rp{border-top:2px solid var(--ink);gap:24px;padding-top:24px;display:grid}.rp-h{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.rp-h h2{font-size:clamp(24px,3vw,30px);font-weight:700}.rp-h p{color:var(--muted);margin-top:4px}.rp-period{text-align:right;gap:2px;font-size:14px;display:grid}.rp-period span{color:var(--muted)}.rp-sum{font-size:17px}.tbl-wrap{margin-inline:-4px;padding-inline:4px;overflow-x:auto}.rp-t{border-collapse:collapse;width:100%;font-size:14px}.rp-t th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:0 12px 10px 0;font-size:12px;font-weight:500}.rp-t td{border-bottom:1px solid var(--rule);vertical-align:top;padding:14px 12px 14px 0}.rp-t .d{white-space:nowrap;color:var(--muted)}.rp-t .r{text-align:right;white-space:nowrap;padding-right:0}.rp-t .e{white-space:nowrap}.rp-t .e.ok{color:var(--ink)}.rp-t .e.miss{color:var(--warn);font-weight:500}.rp-t .e.none{color:var(--muted)}.rp-t .mcat{color:var(--muted);margin-top:2px;font-size:13px;display:none}.rp-t tfoot td{border-bottom:0;border-top:1px solid var(--ink);font-weight:600}@media (max-width:600px){.rp-t .cat{display:none}.rp-t .mcat{display:block}.rp-period{text-align:left}}.rec-need{color:var(--muted);max-width:36em;margin-top:8px;font-size:17px}.rec-need b{color:var(--ink);font-weight:600}.rec-sec{gap:10px;display:grid}.rec-intro{color:var(--muted);max-width:40em;font-size:15px}.rr-list{border-top:1px solid var(--line);margin:6px 0 0;padding:0;list-style:none}.rr{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto 40px;align-items:center;gap:16px;padding:16px 0;display:grid}.rr-t{color:var(--ink);overflow-wrap:anywhere;font-weight:500;text-decoration:none}a.rr-t:hover{color:var(--accent)}a.rr-t:after{content:" ↗";color:var(--muted);font-size:.85em}.rr-s{color:var(--muted);margin-top:3px;font-size:13px}.rr-s .sep{color:#c4c4bc;padding:0 7px}.rr-num{color:var(--muted);white-space:nowrap;justify-items:end;gap:2px;font-size:13px;display:grid}.rr-num b{color:var(--ink);font-size:15px;font-weight:600}.app .rr-add{border:1px solid var(--line);width:36px;height:36px;color:var(--accent);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);background:0 0;border-radius:999px;place-items:center;padding:0;display:grid}.app .rr-add:hover{background:var(--accent);border-color:var(--accent);color:#fff}.app .rr-add:active{transform:scale(.94)}.rr-slot{width:36px;height:36px}.rr-opened{color:var(--ink)}.app .rr-add.unlocked{animation:unlock .52s var(--ease) both}@keyframes unlock{0%{opacity:0;transform:scale(.3)}55%{background:var(--accent);color:#fff;border-color:var(--accent);transform:scale(1.15)}to{transform:scale(1)}}.app .rr-add.is-done{background:var(--gold);border-color:var(--gold);color:var(--ink);cursor:default;font-weight:700}.rr.done .rr-t{color:var(--muted)}.set{gap:0}.set .page-h{margin-bottom:8px}.set-sec{border-top:1px solid var(--line);gap:18px;padding:32px 0;display:grid}.set .page-h+form .set-sec:first-child{border-top:0;padding-top:16px}.set-h{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.set-end{padding-bottom:0}.confirm-del{gap:16px;display:grid}.confirm-del p{max-width:36em;color:var(--muted)}.confirm-del b{color:var(--bad);font-weight:600}.themes{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:16px;display:grid}.th-opt{font:inherit;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;gap:8px;padding:0;font-size:14px;font-weight:500;display:grid}.th-sw{aspect-ratio:4/3;background:var(--sw-bg);transition:box-shadow var(--t) var(--ease), transform var(--t-fast) var(--ease);border-radius:12px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #12141b1a}.th-sw i:first-child{background:var(--sw-h);height:24%;position:absolute;inset:0 0 auto}.th-sw i:nth-child(2){background:var(--sw-a);border-radius:4px;height:7px;position:absolute;bottom:22%;left:12%;right:30%}.th-sw b{background:var(--sw-g);border-radius:50%;width:16px;height:16px;position:absolute;bottom:17%;right:12%}.th-opt:hover .th-sw{transform:translateY(-2px)}.th-opt[aria-checked=true]{color:var(--ink)}.th-opt[aria-checked=true] .th-sw{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--ink)}.th-opt:focus-visible{outline:none}.th-opt:focus-visible .th-sw{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}.savebar{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:40;background:var(--ink);color:var(--bg);box-shadow:var(--shadow);transition:transform var(--t-slow) var(--ease);border-radius:999px;align-items:center;gap:14px;padding:8px 8px 8px 20px;font-size:14px;font-weight:500;display:flex;position:fixed;transform:translate(-50%,calc(100% + 40px))}.savebar.show{transform:translate(-50%)}.savebar span{white-space:nowrap}.sb-discard{color:inherit;opacity:.7;font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 4px}.sb-discard:hover{opacity:1}@media (max-width:700px){.savebar{bottom:calc(80px + env(safe-area-inset-bottom,0px))}.rr{grid-template-columns:minmax(0,1fr) auto}.rr .rr-add,.rr .rr-slot{grid-area:1/2/3}.rr-num{grid-column:1;grid-auto-flow:column;justify-items:start;gap:10px}}@media (prefers-reduced-motion:reduce){.burst,.cu-plus{display:none}}.sk{gap:18px}.sk i{background:var(--track);animation:sk-pulse 1.2s var(--ease) infinite alternate;opacity:0;border-radius:6px;animation-delay:.15s;display:block}.sk-h{width:46%;height:40px}.sk-l{height:14px}.sk-list{border-top:1px solid var(--line);gap:22px;margin-top:18px;padding-top:22px;display:grid}@keyframes sk-pulse{0%{opacity:.55}to{opacity:1}}@media (prefers-reduced-motion:reduce){.sk i{opacity:.75}}
