:root{--fl-purple:#5027b0;--fl-purple-hover:#41208f;--fl-purple-facet:#4620a2;--fl-purple-hover-facet:#381b7d;--fl-purple-paper:#2b1670;--fl-lavender-soft:#ece8fb;--fl-lavender-facet:#e1dbf8;--fl-lavender-line:#d6cdf6;--fl-lavender-paper:#c9bff2;--fl-ink:#1e1640;--fl-muted:#5a5474;--fl-muted-2:#6b6584;--fl-control:#8a84a3;--fl-hairline:#dcddd0;--fl-paper-layer:#e4e2dc;--fl-tag-bg:#eceae3;--fl-disabled:#e4e2ec;--fl-cream:#f3f4ec;--fl-white:#fff;--fl-green:#1f9a4b;--fl-green-text:#16783a;--fl-green-bg:#e2f4e8;--fl-red:#b42318;--fl-red-bg:#fbe6e3;--fl-amber:#9a5a00;--fl-amber-bg:#fbefd9;--fl-leaf-light:#80c38f;--fl-leaf-dark:#4a9854;--fl-icon-purple:#4b29a9;--fl-font-display:"Unbounded", "Arial Black", sans-serif;--fl-font-body:"Inter", system-ui, sans-serif;--fl-space-4:4px;--fl-space-8:8px;--fl-space-12:12px;--fl-space-16:16px;--fl-space-24:24px;--fl-space-32:32px;--fl-space-48:48px;--fl-space-56:56px;--fl-space-64:64px;--fl-radius:4px;--fl-radius-pill:999px;--fl-layer-sm:4px 4px 0;--fl-layer-md:6px 6px 0;--fl-layer-lg:10px 10px 0;--fl-cut-button:polygon(0 9%, 100% 0, 98.6% 100%, 1.4% 91%);--fl-cut-tag:polygon(0 0, 100% 8%, 97% 100%, 3% 92%);--fl-cut-pill:polygon(10px 0, 100% 0, 100% 100%, 0 100%, 0 10px)}.finlab{font-family:var(--fl-font-body);color:var(--fl-ink);background:var(--fl-cream);font-size:16px;line-height:1.5}.finlab *{box-sizing:border-box}.finlab .spec{box-shadow:8px 8px 0 var(--fl-paper-layer);border-radius:6px}.finlab .bw{filter:drop-shadow(3px 4px 0 var(--fl-purple-paper));display:inline-flex}.finlab .bw.s{filter:drop-shadow(3px 4px 0 var(--fl-lavender-paper))}.finlab .bw.pr{filter:drop-shadow(1px 1px 0 var(--fl-purple-paper));transform:translate(2px,3px)}.finlab .bw.fo{outline:2.5px solid var(--fl-purple);outline-offset:6px;border-radius:2px}.finlab .bw.no{filter:none}.finlab .b{height:48px;font:500 15px/1 var(--fl-font-display);white-space:nowrap;clip-path:polygon(0 9%,100% 0,98.6% 100%,1.4% 91%);align-items:center;gap:10px;padding:0 26px;display:inline-flex}.finlab .b.p{background:linear-gradient(104deg,var(--fl-purple) 0 76%,var(--fl-purple-facet) 76%);color:var(--fl-white)}.finlab .b.h{background:linear-gradient(104deg,var(--fl-purple-hover) 0 76%,var(--fl-purple-hover-facet) 76%);color:var(--fl-white)}.finlab .b.s{background:linear-gradient(104deg,var(--fl-lavender-soft) 0 76%,var(--fl-lavender-facet) 76%);color:var(--fl-purple)}.finlab .b.d{background:var(--fl-disabled);color:var(--fl-muted-2)}.finlab .b.sm{height:36px;padding:0 16px;font-size:13px}.finlab .tb{font:600 15px/1.2 var(--fl-font-body);color:var(--fl-purple);flex-direction:column;gap:4px;display:inline-flex}.finlab .tb i{background:var(--fl-purple);clip-path:polygon(0 20%,100% 0,97% 100%,2% 80%);height:4px;display:block}.finlab .pl{height:36px;font:600 14px/1 var(--fl-font-body);background:var(--fl-paper-layer);color:var(--fl-ink);clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,0 10px);align-items:center;gap:8px;padding:0 16px 0 18px;display:inline-flex}.finlab .pl.h{background:var(--fl-lavender-line)}.finlab .pl.on{background:var(--fl-purple);color:var(--fl-white)}.finlab .tg{font:700 12px/1 var(--fl-font-body);letter-spacing:.5px;text-transform:uppercase;background:var(--fl-ink);color:var(--fl-cream);clip-path:polygon(0 0,100% 8%,97% 100%,3% 92%);align-items:center;padding:7px 10px;display:inline-flex}.finlab .tabs{border-bottom:2px solid var(--fl-paper-layer);gap:36px;display:flex}.finlab .tab{font:500 15px/1.2 var(--fl-font-display);color:var(--fl-muted);flex-direction:column;gap:8px;padding:10px 0 0;display:flex}.finlab .tab i{height:6px;margin-bottom:-4px;display:block}.finlab .tab.on{color:var(--fl-ink)}.finlab .tab.on i{background:var(--fl-purple);clip-path:polygon(0 30%,100% 0,98% 100%,3% 100%)}.finlab .bd{height:38px;font:600 14px/1 var(--fl-font-body);clip-path:polygon(0 0,100% 6%,98% 100%,0 94%);align-items:center;gap:8px;padding:0 16px 0 8px;display:inline-flex}.finlab .ns{background:var(--fl-tag-bg);color:var(--fl-muted)}.finlab .ip{background:var(--fl-disabled);color:var(--fl-ink)}.finlab .ms{background:var(--fl-green-bg);color:var(--fl-green-text)}.finlab .nr{background:var(--fl-amber-bg);color:var(--fl-amber)}.finlab .seg{gap:7px;padding:0 4px;display:flex}.finlab .seg i{background:var(--fl-paper-layer);flex:1;height:14px;transform:skew(-16deg)}.finlab .seg i.on{background:var(--fl-ink)}.finlab .seg i.g{background:var(--fl-green)}.finlab .cd{background:var(--fl-white);box-shadow:6px 6px 0 var(--fl-paper-layer);border:1.5px solid var(--fl-paper-layer);border-radius:4px;flex-direction:column;gap:14px;padding:26px;display:flex;position:relative}.finlab .fold{background:linear-gradient(225deg,var(--fl-cream) 0 50%,var(--fl-lavender-line) 50%);width:30px;height:30px;position:absolute;top:-1.5px;right:-1.5px}.finlab .ct{font:500 19px/1.4 var(--fl-font-display);margin:0}.finlab .op{background:var(--fl-white);border:1.5px solid var(--fl-control);box-shadow:4px 4px 0 var(--fl-paper-layer);border-radius:4px;align-items:center;gap:16px;padding:14px 18px;font-size:17px;display:flex}.finlab .op .k{width:36px;height:36px;font:600 15px/1 var(--fl-font-display);background:var(--fl-tag-bg);color:var(--fl-ink);clip-path:polygon(0 8%,100% 0,92% 100%,6% 94%);flex:none;justify-content:center;align-items:center;display:flex}.finlab .op .bx{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.finlab .op .ex{color:var(--fl-muted);font-size:14px;line-height:1.45}.finlab .op .st{white-space:nowrap;align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.finlab .op.hv{border-color:var(--fl-purple)}.finlab .op.sel{background:var(--fl-lavender-soft);border:2px solid var(--fl-purple);box-shadow:4px 4px 0 var(--fl-purple)}.finlab .op.sel .k{background:var(--fl-purple);color:var(--fl-white)}.finlab .op.ok{background:var(--fl-green-bg);border:2px solid var(--fl-green);box-shadow:4px 4px 0 var(--fl-green)}.finlab .op.ok .k{background:var(--fl-green-text);color:var(--fl-white)}.finlab .op.ok .st{color:var(--fl-green-text)}.finlab .op.no{background:var(--fl-red-bg);border:2px solid var(--fl-red);box-shadow:4px 4px 0 var(--fl-red)}.finlab .op.no .k{background:var(--fl-red);color:var(--fl-white)}.finlab .op.no .st{color:var(--fl-red)}.finlab .op.dim{border-color:var(--fl-hairline);box-shadow:none}.finlab .case{background:var(--fl-cream);border-radius:4px;flex-direction:column;gap:14px;min-height:220px;padding:30px 30px 30px 196px;display:flex;position:relative}.finlab .polar{background:var(--fl-white);width:140px;height:164px;box-shadow:5px 5px 0 var(--fl-hairline);justify-content:center;align-items:flex-end;padding-top:10px;display:flex;position:absolute;top:30px;left:30px;overflow:hidden;transform:rotate(-3deg)}.finlab .chip{background:var(--fl-white);font:600 14px/1 var(--fl-font-body);font-variant-numeric:tabular-nums;clip-path:polygon(0 4%,100% 0,98% 100%,1% 96%);align-items:center;gap:10px;padding:6px 14px 6px 8px;display:inline-flex}.finlab .expl{background:var(--fl-white);border:1.5px solid var(--fl-paper-layer);box-shadow:6px 6px 0 var(--fl-paper-layer);border-radius:4px;align-items:flex-start;gap:18px;padding:22px 24px;display:flex}.finlab .formula{background:var(--fl-lavender-soft);color:var(--fl-ink);font-variant-numeric:tabular-nums;clip-path:polygon(0 4%,100% 0,99% 100%,1% 96%);padding:10px 16px;font-size:19px}.finlab .todo{background:var(--fl-white);border:1.5px solid var(--fl-paper-layer);box-shadow:4px 4px 0 var(--fl-paper-layer);border-radius:4px;align-items:center;gap:16px;padding:14px 18px;display:flex}.finlab .nav{align-items:center;gap:12px;height:48px;padding:0 14px;font-size:15px;font-weight:500;display:flex}.finlab .nav.on{background:var(--fl-lavender-soft);color:var(--fl-purple);clip-path:polygon(0 4%,100% 0,97% 100%,0 96%);font-weight:700}.finlab .lang{font:600 13px/1 var(--fl-font-body);display:flex}.finlab .lang span{background:var(--fl-tag-bg);color:var(--fl-muted);padding:8px 12px}.finlab .lang span.on{background:var(--fl-ink);color:var(--fl-cream)}.finlab .scr{background:var(--fl-cream);box-shadow:10px 10px 0 var(--fl-hairline);border:1.5px solid var(--fl-hairline);border-radius:6px;overflow:hidden}.finlab .in{border:1.5px solid var(--fl-control);background:var(--fl-white);height:46px;color:var(--fl-ink);border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:0 14px;font-size:16px;display:flex}.finlab .in.ph{color:var(--fl-muted-2)}.finlab .in.fo{border:2px solid var(--fl-purple);box-shadow:4px 4px 0 var(--fl-lavender-line)}.finlab .in.er{border:2px solid var(--fl-red);box-shadow:4px 4px 0 var(--fl-red-bg)}.finlab .ta{border:1.5px solid var(--fl-control);background:var(--fl-white);min-height:96px;color:var(--fl-muted-2);border-radius:4px;padding:12px 14px;font-size:16px}.finlab .fl{flex-direction:column;gap:8px;min-width:0;display:flex}.finlab .fl>span:first-child{font-size:14px;font-weight:600}.finlab .hint{color:var(--fl-muted);font-size:13px}.finlab .msg{color:var(--fl-red);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.finlab .rd,.finlab .cb{align-items:center;gap:12px;font-size:16px;display:flex}.finlab .rdo{border:2px solid var(--fl-control);background:var(--fl-white);border-radius:50%;flex:none;width:22px;height:22px}.finlab .rdo.on{border:7px solid var(--fl-purple)}.finlab .cbo{border:2px solid var(--fl-control);background:var(--fl-white);border-radius:3px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.finlab .cbo.on{background:var(--fl-purple);border-color:var(--fl-purple)}.finlab .modal{background:var(--fl-white);box-shadow:10px 10px 0 var(--fl-purple-paper);border-radius:4px;flex-direction:column;gap:16px;width:100%;padding:32px;display:flex}.finlab .scrim{background:#1e16408c;padding:44px 52px 54px 44px}.finlab .mt{font:600 20px/1.3 var(--fl-font-display);margin:0}.finlab .toast{background:var(--fl-ink);color:var(--fl-white);clip-path:polygon(0 6%,100% 0,99% 100%,1% 94%);align-self:flex-start;align-items:center;gap:12px;padding:16px 24px;font-size:15px;display:inline-flex}.finlab .toast a{color:var(--fl-lavender-line);margin-left:10px;font-weight:700;text-decoration:none}.finlab .tbl th{background:var(--fl-cream)}.finlab .tbl td{border-bottom:1.5px solid var(--fl-paper-layer);padding:14px}.finlab .num{text-align:right!important}.finlab .kp{background:var(--fl-white);border:2px solid var(--fl-ink);box-shadow:6px 6px 0 var(--fl-ink);border-radius:4px;flex-direction:column;gap:12px;padding:24px 26px;display:flex}.finlab .kp ul{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.finlab .vb{align-items:center;gap:18px;display:flex}.finlab .vb .vk{font:600 20px/1 var(--fl-font-display)}.finlab .vb .vt{background:var(--fl-tag-bg);clip-path:polygon(0 0,100% 0,99% 100%,0 100%);flex:1;height:36px}.finlab .vb .vf{clip-path:polygon(0 0,100% 0,96% 100%,0 100%);height:100%}.finlab .vb .vn{font-variant-numeric:tabular-nums;width:130px;color:var(--fl-muted);font-size:16px}.finlab .vb .vs{align-items:center;gap:6px;width:130px;font-size:15px;font-weight:700;display:flex}.finlab .drop{border:2px dashed var(--fl-control);background:var(--fl-white);text-align:center;border-radius:4px;flex-direction:column;align-items:center;gap:12px;padding:36px;display:flex}.finlab .score{font:700 64px/1 var(--fl-font-display);letter-spacing:-2px;font-variant-numeric:tabular-nums}.finlab .tb{align-self:flex-start;width:max-content}.finlab .sw{clip-path:polygon(0 6%,100% 0,98% 100%,1% 94%);height:96px}html,body,#root{min-height:100%;margin:0}body{background:var(--fl-cream)}.finlab{min-height:100vh}.finlab a{color:inherit;text-decoration:none}.finlab button{font:inherit;color:inherit}.finlab h1,.finlab h2,.finlab h3,.finlab p{margin:0}.finlab img{max-width:100%}.finlab :focus-visible{outline:2.5px solid var(--fl-purple);outline-offset:3px}.finlab .pt{font:600 32px/40px var(--fl-font-display);letter-spacing:-.5px}.finlab .st{font:600 24px/32px var(--fl-font-display)}.finlab .st2{font:600 20px/28px var(--fl-font-display)}.finlab .reading{font-size:18px;line-height:28px}.finlab .lbl{font-size:14px;font-weight:600;line-height:20px}.finlab .note{color:var(--fl-muted);font-size:14px;line-height:20px}.finlab .cap{color:var(--fl-muted);font-size:13px;line-height:18px}.finlab .muted{color:var(--fl-muted)}.finlab .tnum{font-variant-numeric:tabular-nums}.finlab .strong{font-weight:700}.finlab .ok-text{color:var(--fl-green-text);font-weight:700}.finlab .no-text{color:var(--fl-red);font-weight:700}.finlab .nr-text{color:var(--fl-amber);font-weight:700}.finlab .row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.finlab .row.nowrap{flex-wrap:nowrap}.finlab .row.between{justify-content:space-between}.finlab .row.end{justify-content:flex-end}.finlab .row.top{align-items:flex-start}.finlab .row.bottom{align-items:flex-end}.finlab .col{flex-direction:column;gap:14px;min-width:0;display:flex}.finlab .gap-4{gap:4px}.finlab .gap-8{gap:8px}.finlab .gap-12{gap:12px}.finlab .gap-16{gap:16px}.finlab .gap-24{gap:24px}.finlab .gap-32{gap:32px}.finlab .gap-56{gap:56px}.finlab .grow{flex:1;min-width:0}.finlab .grid-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:32px;display:grid}.finlab .grid-lesson{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:32px;display:grid}.finlab .grid-lesson.toc{grid-template-columns:260px minmax(0,1fr)}.finlab .grid-lesson.toc.wide{grid-template-columns:280px minmax(0,1fr)}.finlab .grid-main.inbox{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.finlab .grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:32px;display:grid}.finlab .grid-3{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:24px;display:grid}.finlab .grid-4{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:24px;display:grid}.finlab .grid-q{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:32px;display:grid}.finlab .sticky{position:sticky;top:92px}.finlab .hide{display:none!important}.finlab hr.rule{border:0;border-top:1.5px solid var(--fl-paper-layer);width:100%;margin:0}.finlab .vr{border-left:1.5px dashed var(--fl-hairline);align-self:stretch}.fl-top{z-index:30;background:var(--fl-white);border-bottom:1.5px solid var(--fl-paper-layer);justify-content:space-between;align-items:center;gap:16px;height:68px;padding:0 28px;display:flex;position:sticky;top:0}.fl-brand{font:600 20px/1 var(--fl-font-display);letter-spacing:-.5px;white-space:nowrap}.fl-body{min-height:calc(100vh - 68px);display:flex}.fl-side{background:var(--fl-white);border-right:1.5px solid var(--fl-paper-layer);flex-direction:column;flex:none;gap:6px;width:250px;height:calc(100vh - 68px);padding:20px 14px;display:flex;position:sticky;top:68px;overflow-y:auto}.fl-main{flex-direction:column;flex:1;gap:32px;min-width:0;padding:36px 48px 64px;display:flex}.fl-main.wide{gap:32px}.fl-bottom{display:none}.finlab .nav{color:var(--fl-ink);cursor:pointer;justify-content:flex-start}.finlab .nav:not(.on):hover{background:var(--fl-tag-bg);clip-path:polygon(0 4%,100% 0,97% 100%,0 96%)}.finlab .nav .count{margin-left:auto}.fl-avatar{background:var(--fl-ink);width:38px;height:38px;color:var(--fl-white);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.fl-avatar.sm{width:30px;height:30px;font-size:11px}.finlab .fl-avatar,.finlab button.fl-avatar{color:var(--fl-white)}.finlab .lang span{cursor:pointer;-webkit-user-select:none;user-select:none}.finlab .lang span:not(.on):hover{color:var(--fl-ink)}.fl-menu{z-index:40;background:var(--fl-white);border:1.5px solid var(--fl-paper-layer);min-width:260px;box-shadow:6px 6px 0 var(--fl-paper-layer);border-radius:4px;flex-direction:column;padding:8px;display:flex;position:absolute;top:50px;right:0}.fl-menu button,.fl-menu a{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:10px;padding:10px 12px;font-size:15px;display:flex}.fl-menu button:hover,.fl-menu a:hover{background:var(--fl-tag-bg)}.fl-menu .who{border-bottom:1.5px solid var(--fl-paper-layer);margin-bottom:6px;padding:10px 12px 12px}.finlab button.bw,.finlab a.bw{cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.finlab .bw:focus-visible{outline:2.5px solid var(--fl-purple);outline-offset:6px;border-radius:2px}.finlab .bw:not(.no):not(.s):hover .b.p{background:linear-gradient(104deg, var(--fl-purple-hover) 0 76%, var(--fl-purple-hover-facet) 76%)}.finlab .bw.s:hover .b.s{background:linear-gradient(104deg, var(--fl-lavender-line) 0 76%, var(--fl-lavender-paper) 76%)}.finlab .bw:not(.no):active{filter:drop-shadow(1px 1px 0 var(--fl-purple-paper));transform:translate(2px,3px)}.finlab .bw.s:not(.no):active{filter:drop-shadow(1px 1px 0 var(--fl-lavender-paper))}.finlab .bw.no{cursor:not-allowed}.finlab .bw.full,.finlab .bw.full .b{justify-content:center;width:100%}.finlab button.tb,.finlab a.tb{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.finlab .tb>span{align-items:center;gap:8px;display:inline-flex}.finlab .tb:hover i{height:5px}.finlab .tb.quiet{color:var(--fl-muted)}.finlab .tb.quiet i{background:var(--fl-control)}.finlab .tb.danger{color:var(--fl-red)}.finlab .tb.danger i{background:var(--fl-red)}.finlab .tb[disabled]{color:var(--fl-muted-2);cursor:not-allowed}.finlab .tb[disabled] i{background:var(--fl-disabled)}.finlab button.pl{cursor:pointer;border:0}.finlab button.pl:not(.on):hover{background:var(--fl-lavender-line)}.finlab button.tab{cursor:pointer;text-align:left;background:0 0;border:0}.finlab button.tab:not(.on):hover{color:var(--fl-ink)}.finlab .tabs{flex-wrap:wrap;row-gap:0}.finlab button.op{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--fl-ink)}.finlab button.op:not(.sel):not(.ok):not(.no):not(.dim):not([disabled]):hover{border-color:var(--fl-purple)}.finlab button.op[disabled]{cursor:default}.finlab .op .bx>span:first-child{line-height:1.4}.finlab .op.dim{opacity:1}.finlab input.in,.finlab select.in,.finlab textarea.ta{font:inherit;color:var(--fl-ink);width:100%;font-size:16px}.finlab input.in::placeholder,.finlab textarea.ta::placeholder{color:var(--fl-muted-2)}.finlab input.in:focus,.finlab select.in:focus,.finlab textarea.ta:focus{border:2px solid var(--fl-purple);box-shadow:4px 4px 0 var(--fl-lavender-line);outline:0}.finlab select.in{appearance:none;background-image:url(/icons/utility/chevron.svg);background-position:right 10px center;background-repeat:no-repeat;background-size:20px;padding-right:38px}.finlab textarea.ta{resize:vertical;color:var(--fl-ink);line-height:1.5;display:block}.finlab textarea.ta.code{min-height:260px;font-family:ui-monospace,Menlo,monospace;font-size:14px}.finlab .in.sm{height:38px;font-size:15px}.finlab label.rd,.finlab label.cb{cursor:pointer;position:relative}.finlab .rd input,.finlab .cb input{opacity:0;width:1px;height:1px;position:absolute}.finlab .rd input:focus-visible+.rdo,.finlab .cb input:focus-visible+.cbo{outline:2.5px solid var(--fl-purple);outline-offset:3px}.finlab .fl .req{color:var(--fl-muted);font-weight:400}.finlab .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;display:grid}.finlab .form-grid .span2{grid-column:1/-1}.finlab .cd.flat{box-shadow:none}.finlab .cd.tight{gap:10px;padding:18px 20px}.finlab .cd.amber{background:var(--fl-amber-bg);border-color:var(--fl-amber-bg);box-shadow:6px 6px #f0dcb4}.finlab .cd.click{cursor:pointer}.finlab .cd.click:hover{border-color:var(--fl-lavender-line)}.finlab .todo{min-width:0}.finlab .todo.done{box-shadow:none;background:0 0}.finlab .todo.locked .gi{filter:grayscale();opacity:.55}.finlab .todo .meta{color:var(--fl-muted);font-size:15px}.finlab .todo .t{font-size:16px;font-weight:600}.finlab .todo.done .t{color:var(--fl-muted)}.finlab a.todo:hover,.finlab button.todo:hover{border-color:var(--fl-lavender-line)}.finlab button.todo{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--fl-ink)}.finlab .gi.grey{filter:grayscale();opacity:.6}.finlab .tbl{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:15px}.finlab .tbl th{text-align:left;color:var(--fl-muted);white-space:nowrap;padding:10px 14px;font-size:13px;font-weight:600}.finlab .tbl td{vertical-align:middle}.finlab .tbl tr.click{cursor:pointer}.finlab .tbl tr.click:hover td{background:var(--fl-cream)}.finlab .tbl-wrap{margin:0 -4px;padding:0 4px;overflow-x:auto}.finlab .bd{white-space:nowrap}.finlab .bd.sm{gap:6px;height:30px;padding:0 12px 0 6px;font-size:13px}.finlab .tg.quiet{background:var(--fl-paper-layer);color:var(--fl-muted)}.finlab .tg.count{padding:5px 8px;font-size:11px}.finlab .seg.thin i{height:10px}.finlab .seg i.nr{background:var(--fl-amber-bg)}.finlab .seg i.cur{background:var(--fl-purple)}.finlab .score{white-space:nowrap}.finlab .score.md{letter-spacing:-1px;font-size:36px}.finlab .col>.tg,.finlab .col>.bd{align-self:flex-start}.finlab .score.lg{letter-spacing:-3px;font-size:96px}.finlab .case.nophoto{min-height:0;padding:30px}.finlab .case.white{background:var(--fl-white)}.finlab .polar img{width:100%;height:auto}.finlab .chip img{width:22px;height:22px}.finlab .lesson-body{flex-direction:column;gap:22px;display:flex}.finlab .lesson-body>p{font-size:18px;line-height:28px}.finlab .lesson-body ul{flex-direction:column;gap:6px;margin:0;padding-left:22px;font-size:17px;line-height:26px;display:flex}.finlab .lesson-body h2{font:600 20px/28px var(--fl-font-display);margin-top:6px}.finlab .lesson-body .hb-list{flex-direction:column;gap:6px;margin:0;padding-left:26px;font-size:17px;line-height:26px;display:flex}.finlab .lesson-body ol.hb-list{list-style:decimal}.finlab .lesson-body ul.hb-list{list-style:outside}.finlab .hb-box{background:var(--fl-cream);border-left:4px solid var(--fl-ink);flex-direction:column;gap:14px;padding:18px 22px;display:flex}.finlab .hb-box.case{background:var(--fl-lavender-soft);border-left-color:var(--fl-purple)}.finlab .hb-box>p{font-size:17px;line-height:26px}.finlab .hb-box .lbl,.finlab .hb-defs .lbl{font:600 13px/18px var(--fl-font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--fl-purple)}.finlab .hb-defs{border:1.5px solid var(--fl-paper-layer);flex-direction:column;gap:10px;padding:16px 20px;display:flex}.finlab .hb-defs dl{grid-template-columns:minmax(110px,180px) 1fr;gap:10px 20px;margin:0;font-size:16px;line-height:24px;display:grid}.finlab .hb-defs dt{font-weight:600}.finlab .hb-defs dd{margin:0}@media (width<=560px){.finlab .hb-defs dl{grid-template-columns:1fr;gap:2px 0}.finlab .hb-defs dd{margin-bottom:8px}}.finlab .formula-box{flex-direction:column;gap:8px;display:flex}.finlab .formula{align-self:flex-start;max-width:100%;overflow-x:auto}.finlab .trap{background:var(--fl-amber-bg);border-radius:4px;align-items:flex-start;gap:16px;padding:18px 20px;display:flex}.finlab .tipvi{background:var(--fl-cream);border-radius:4px;align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.finlab .example{border-left:4px solid var(--fl-ink);flex-direction:column;gap:6px;padding:4px 0 4px 18px;display:flex}.finlab .mind{flex-direction:column;gap:10px;display:flex}.finlab .mind .branch{border-left:2px solid var(--fl-hairline);grid-template-columns:220px minmax(0,1fr);align-items:start;gap:16px;padding-left:18px;display:grid}.finlab .mind .leaves{flex-wrap:wrap;gap:8px;display:flex}.finlab .mind .leaf{background:var(--fl-cream);border-radius:4px;padding:6px 12px;font-size:14px}.finlab .lesson-steps{flex-direction:column;gap:14px;display:flex}.finlab .lesson-steps a{align-items:flex-start;gap:12px;font-size:16px;display:flex}.finlab .lesson-steps a.cur{color:var(--fl-purple);font-weight:700}.finlab .lesson-steps a.done{color:var(--fl-muted)}.finlab .lesson-steps a:hover span:last-child{text-underline-offset:3px;text-decoration:underline}.finlab .tip-card{background:var(--fl-white);border:2px solid var(--fl-ink);box-shadow:6px 6px 0 var(--fl-ink);border-radius:4px;flex-direction:column;gap:10px;padding:22px 24px;display:flex}.finlab .whathappened{background:var(--fl-cream);border-radius:4px;flex-direction:column;gap:10px;padding:22px 24px;display:flex}.finlab .down{color:var(--fl-red);white-space:nowrap;font-weight:700}.finlab .up{white-space:nowrap;font-weight:700}.finlab .qnav{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:8px;display:grid}.finlab .qnav button{border:1.5px solid var(--fl-control);background:var(--fl-white);cursor:pointer;border-radius:4px;height:40px;font-weight:600;position:relative}.finlab .qnav button.ans{background:var(--fl-ink);color:var(--fl-cream);border-color:var(--fl-ink)}.finlab .qnav button.cur{background:var(--fl-purple);color:var(--fl-white);border-color:var(--fl-purple)}.finlab .qnav button .f{position:absolute;top:-8px;right:-6px}.finlab .test-head{z-index:20;background:var(--fl-cream);margin:-36px -48px 0;padding:16px 48px;position:sticky;top:68px}.finlab .vb .vf.grey{background:var(--fl-muted)}.finlab .vb .vf.ok{background:var(--fl-green-text)}.finlab .vb .vf.no{background:var(--fl-red)}.finlab .vote-q{font:600 40px/1.2 var(--fl-font-display);letter-spacing:-.5px}.finlab .vote-q.long{font-size:28px;line-height:1.3}.finlab .projector .vote-q.long{font-size:40px}.finlab .tbl td.nowrap,.finlab .tbl th.nowrap{white-space:nowrap}.finlab .projector{flex-direction:column;gap:40px;min-height:100vh;padding:48px 64px;display:flex}.finlab .projector .vote-q{font-size:56px}.finlab .projector .vb .vk{font-size:32px}.finlab .projector .vb .vt{height:56px}.finlab .projector .vb .vn,.finlab .projector .vb .vs{width:200px;font-size:22px}.finlab .names li{border-bottom:1.5px solid var(--fl-paper-layer);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.finlab .names{margin:0;padding:0;list-style:none}.finlab .key-sq{background:var(--fl-tag-bg);width:36px;height:30px;font:600 13px/1 var(--fl-font-display);clip-path:polygon(0 8%,100% 0,92% 100%,6% 94%);justify-content:center;align-items:center;display:inline-flex}.fl-overlay{z-index:60;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.fl-overlay.scrim{padding:24px}.fl-overlay .modal{max-width:560px;max-height:calc(100vh - 48px);overflow-y:auto}.fl-overlay .modal.wide{max-width:820px}.fl-toasts{z-index:70;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.fl-toasts .toast{pointer-events:auto;align-self:center}.finlab .empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.finlab .empty p{max-width:460px;color:var(--fl-muted)}.finlab .banner{background:var(--fl-lavender-soft);border-radius:4px;align-items:center;gap:16px;padding:16px 20px;display:flex}.finlab .kpi .score{letter-spacing:-1px;font-size:40px}.finlab .avatar-row{flex-wrap:wrap;gap:6px;display:flex}.finlab .login-wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh;display:grid}.finlab .login-art{background:var(--fl-white);border-right:1.5px solid var(--fl-paper-layer);flex-direction:column;justify-content:space-between;gap:32px;padding:56px;display:flex}.finlab .login-form{flex-direction:column;gap:32px;max-width:640px;padding:56px;display:flex}.finlab .acct{background:var(--fl-white);border:1.5px solid var(--fl-paper-layer);box-shadow:4px 4px 0 var(--fl-paper-layer);cursor:pointer;text-align:left;border-radius:4px;align-items:center;gap:12px;width:100%;padding:10px 14px;display:flex}.finlab .acct:hover{border-color:var(--fl-lavender-line)}.finlab .demo-fab{z-index:50;position:fixed;bottom:16px;left:16px}.finlab .msg-bubble{background:var(--fl-white);border:1.5px solid var(--fl-paper-layer);border-radius:4px;flex-direction:column;gap:6px;max-width:640px;padding:14px 16px;display:flex}.finlab .msg-bubble.mine{background:var(--fl-lavender-soft);border-color:var(--fl-lavender-soft);align-self:flex-end}.finlab .drop.over{border-color:var(--fl-purple);background:var(--fl-lavender-soft)}.finlab .todo.err{border-color:var(--fl-red);box-shadow:4px 4px 0 var(--fl-red-bg)}.finlab .cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.finlab .cal .d{background:var(--fl-white);border:1.5px solid var(--fl-paper-layer);border-radius:4px;flex-direction:column;gap:4px;min-height:64px;padding:6px 8px;font-size:13px;display:flex}.finlab .cal .d.off{color:var(--fl-muted-2);background:0 0;border-style:dashed}.finlab .cal .d.class{border-color:var(--fl-ink)}.finlab .cal .d.hol{background:var(--fl-tag-bg)}.finlab .cal .h{color:var(--fl-muted);text-align:center;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}@media (width<=1180px){.finlab .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.finlab .grid-lesson,.finlab .grid-lesson.toc,.finlab .grid-lesson.toc.wide{grid-template-columns:minmax(0,1fr)}.finlab .grid-lesson>aside{order:-1}.finlab .grid-lesson>aside .lesson-steps-card{display:none}}@media (width<=960px){.fl-side{display:none}.fl-main{gap:24px;padding:24px 16px 104px}.fl-top{padding:0 16px}.fl-top .examlabel{display:none}.finlab .grid-main,.finlab .grid-main.inbox,.finlab .grid-2,.finlab .grid-3,.finlab .grid-q{grid-template-columns:minmax(0,1fr)}.finlab .pt{font-size:26px;line-height:32px}.finlab .st{font-size:21px;line-height:28px}.fl-bottom{z-index:30;background:var(--fl-white);border-top:1.5px solid var(--fl-paper-layer);padding:6px 6px calc(6px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.fl-bottom .nav{text-align:center;flex-direction:column;flex:1 0 64px;justify-content:center;gap:2px;height:58px;padding:4px;font-size:11px}.fl-bottom .nav .count{display:none}.finlab .case{padding:24px}.finlab .case .polar{display:none}.finlab .test-head{margin:-24px -16px 0;padding:12px 16px}.finlab .vote-q{font-size:28px}.finlab .vb{flex-wrap:wrap;gap:8px 14px}.finlab .vb .vt{flex:100%;order:3}.finlab .form-grid,.finlab .login-wrap{grid-template-columns:minmax(0,1fr)}.finlab .login-art{display:none}.finlab .login-form{padding:32px 16px}.finlab .mind .branch{grid-template-columns:minmax(0,1fr)}.finlab .score.lg{font-size:64px}.finlab .expl{flex-direction:column}.finlab .demo-fab{bottom:84px}.finlab .cd:has(.tbl){overscroll-behavior-x:contain;overflow-x:auto}:is(.finlab .cd:has(.tbl) .tbl td,.finlab .cd:has(.tbl) .tbl th){min-width:72px}.finlab .projector{gap:24px;padding:24px 16px}.finlab .projector .vote-q,.finlab .projector .vote-q.long{font-size:30px}.finlab .projector .vb .vn,.finlab .projector .vb .vs{width:auto;font-size:16px}}.finlab .vote-q{overflow-wrap:anywhere}.finlab .cd.result-hero{padding:36px}.finlab .result-hero .hero-main{flex:420px;gap:28px;min-width:0}@media (width<=520px){.finlab .banner,.finlab .todo.wrap-sm{flex-wrap:wrap}.finlab .todo.wrap-sm>.grow{flex:calc(100% - 60px)}.finlab .cd.result-hero{padding:22px}.finlab .result-hero .hero-main{flex-wrap:wrap;flex-basis:100%;gap:16px}.finlab .score.lg{font-size:48px}.finlab .grid-4{grid-template-columns:minmax(0,1fr)}.finlab .tabs{gap:20px}.finlab .b{padding:0 18px}.finlab .fl-brand-tag{display:none}}:root{--fl-ease:cubic-bezier(.2, .7, .2, 1);--fl-ease-in:cubic-bezier(.4, 0, 1, 1);--fl-fast:.14s;--fl-mid:.22s;--fl-slow:.38s}@keyframes fl-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fl-fade{0%{opacity:0}to{opacity:1}}@keyframes fl-pop{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}@keyframes fl-drop{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:none}}@keyframes fl-toast{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fl-press{0%{transform:none}40%{transform:translate(2px,2px)}to{transform:none}}@keyframes fl-settle{0%{transform:scale(1)}35%{transform:scale(1.015)}to{transform:scale(1)}}@keyframes fl-nudge{0%,to{transform:none}25%{transform:translate(-4px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}@keyframes fl-underline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fl-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fl-breathe{0%,to{opacity:1;transform:none}50%{opacity:.55;transform:translateY(-3px)}}@keyframes fl-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:no-preference){.finlab .bw{transition:transform var(--fl-fast) var(--fl-ease), filter var(--fl-fast) var(--fl-ease)}.finlab .bw:not(.no):not(.pr):hover{filter:drop-shadow(4px 5px 0 var(--fl-purple-paper));transform:translate(-1px,-1px)}.finlab .bw.s:not(.no):not(.pr):hover{filter:drop-shadow(4px 5px 0 var(--fl-lavender-paper))}.finlab .bw:not(.no):not(.pr):active{filter:drop-shadow(1px 1px 0 var(--fl-purple-paper));transition-duration:60ms;transform:translate(2px,3px)}.finlab .bw.s:not(.no):not(.pr):active{filter:drop-shadow(1px 1px 0 var(--fl-lavender-paper))}.finlab .tb,.finlab .tb i{transition:color var(--fl-fast) var(--fl-ease), height var(--fl-fast) var(--fl-ease)}.finlab .pl,.finlab .tab,.finlab .nav,.finlab .lang span{transition:background-color var(--fl-fast) var(--fl-ease), color var(--fl-fast) var(--fl-ease)}.finlab .cd.click,.finlab a.todo,.finlab button.todo,.finlab .acct{transition:transform var(--fl-mid) var(--fl-ease), box-shadow var(--fl-mid) var(--fl-ease), border-color var(--fl-mid) var(--fl-ease)}.finlab .cd.click:hover{box-shadow:8px 8px 0 var(--fl-paper-layer);transform:translate(-2px,-2px)}.finlab a.todo:hover,.finlab button.todo:hover,.finlab .acct:hover{box-shadow:6px 6px 0 var(--fl-paper-layer);transform:translate(-1px,-1px)}.finlab .cd.click:active,.finlab a.todo:active,.finlab button.todo:active,.finlab .acct:active{box-shadow:2px 2px 0 var(--fl-paper-layer);transition-duration:60ms;transform:translate(2px,2px)}.finlab .tbl tr.click td{transition:background-color var(--fl-fast) var(--fl-ease)}.finlab .op{transition:border-color var(--fl-fast) var(--fl-ease), background-color var(--fl-fast) var(--fl-ease), box-shadow var(--fl-fast) var(--fl-ease), transform var(--fl-fast) var(--fl-ease)}.finlab button.op:not([disabled]):active{box-shadow:2px 2px 0 var(--fl-paper-layer);transform:translate(2px,2px)}.finlab .op.sel{animation:fl-press var(--fl-mid) var(--fl-ease)}.finlab .op.ok{animation:fl-settle var(--fl-slow) var(--fl-ease)}.finlab .op.no{animation:fl-nudge .32s var(--fl-ease)}.finlab .op .k{transition:background-color var(--fl-fast) var(--fl-ease), color var(--fl-fast) var(--fl-ease)}.finlab .expl,.finlab .whathappened{animation:fl-rise var(--fl-slow) var(--fl-ease) backwards}.finlab .tab.on i{transform-origin:0;animation:fl-underline var(--fl-mid) var(--fl-ease) backwards}.finlab .seg i{transition:background-color var(--fl-slow) var(--fl-ease)}.finlab .seg{transform-origin:0;animation:fl-grow .52s var(--fl-ease) backwards}.finlab .vb .vf{transition:width .48s var(--fl-ease), background-color var(--fl-mid) var(--fl-ease)}.finlab .cbo,.finlab .rdo{transition:background-color var(--fl-fast) var(--fl-ease), border-color var(--fl-fast) var(--fl-ease)}.fl-main>*{animation:fl-rise var(--fl-slow) var(--fl-ease) backwards}.fl-main>:nth-child(2){animation-delay:40ms}.fl-main>:nth-child(3){animation-delay:80ms}.fl-main>:nth-child(4){animation-delay:.12s}.fl-main>:nth-child(n+5){animation-delay:.16s}.finlab .col>.todo{animation:fl-rise var(--fl-slow) var(--fl-ease) backwards}.finlab .col>.todo:nth-child(2){animation-delay:30ms}.finlab .col>.todo:nth-child(3){animation-delay:60ms}.finlab .col>.todo:nth-child(4){animation-delay:90ms}.finlab .col>.todo:nth-child(5){animation-delay:.12s}.finlab .col>.todo:nth-child(n+6){animation-delay:.15s}.finlab .enter{animation:fl-rise var(--fl-mid) var(--fl-ease) backwards}.finlab .login-form>*{animation:fl-rise var(--fl-slow) var(--fl-ease) backwards}.fl-overlay.scrim{animation:.18s ease-out backwards fl-fade}.fl-overlay .modal{animation:fl-pop .24s var(--fl-ease) backwards}.fl-toasts .toast{animation:fl-toast .26s var(--fl-ease) backwards}.fl-menu{transform-origin:100% 0;animation:fl-drop .16s var(--fl-ease) backwards}.finlab .is-loading .empty img{animation:1.6s ease-in-out infinite fl-breathe}.finlab .skeleton{background:linear-gradient(90deg, var(--fl-tag-bg) 25%, var(--fl-cream) 50%, var(--fl-tag-bg) 75%);background-size:200% 100%;border-radius:4px;animation:1.4s linear infinite fl-shimmer}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
