:root{--paper:#f5f7f8;--surface:#fff;--sunk:#ecf0f2;--line:#d9e0e5;--line-2:#c3ccd3;--ink:#0a2a5a;--brand-navy:#032b64;--brand-teal:#0e9490;--ink-2:#4b5d6e;--ink-3:#7d8c99;--teal:#0b7a75;--teal-soft:#ddf0ee;--marker:#ffe15a;--marker-ink:#3a3000;--low:#b4441e;--low-soft:#fbe7de;--warn:#9a6a0a;--warn-soft:#fbf0d6;--cjk:"Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--num:"Archivo", "Noto Sans SC", system-ui, sans-serif;--r-s:6px;--r-m:12px;--shadow:0 18px 40px -24px #102a4359;--ux-page:var(--paper);--ux-surface:var(--surface);--ux-surface-2:var(--sunk);--ux-surface-3:#e1e7eb;--ux-ink:var(--ink);--ux-ink-2:var(--ink-2);--ux-ink-3:var(--ink-3);--ux-line:#102a431a;--ux-line-2:#102a432e;--ux-accent:var(--teal);--ux-accent-soft:var(--teal-soft);--ux-accent-ink:#fff;--ux-mint:var(--teal);--ux-warn:#b9770e;--ux-danger:var(--low);--ux-shadow:#102a431f;--ux-shadow-strong:#102a4347;--ux-ease:cubic-bezier(.2, .8, .2, 1);--ux-spring:cubic-bezier(.34, 1.45, .64, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--cjk);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.7}h1,h2,h3,h4{letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:600;line-height:1.3}p{margin:0}a{color:var(--teal)}img{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}[hidden]{display:none!important}.num{font-family:var(--num);font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.small{font-size:13px}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.g{padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px))}.in{max-width:1120px;margin:0 auto}.stack{align-content:start;gap:16px;min-width:0;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.btn{border-radius:var(--r-s);cursor:pointer;white-space:nowrap;height:40px;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:inset 0 0 0 1.5px var(--ink-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ink{background:var(--ink);color:var(--paper);box-shadow:none}.btn.ink:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 86%, var(--teal))}.btn.teal{background:var(--teal);color:#fff;box-shadow:none}.btn.danger{color:var(--low)}.btn.sm{height:32px;padding:0 12px;font-size:13px}.btn.quiet{box-shadow:none;color:var(--ink-3);padding:0 8px;font-weight:500}.btn.quiet:hover:not(:disabled){color:var(--low);background:0 0}.btn.link{box-shadow:none;height:auto;color:var(--teal);padding:0;font-weight:600}.field{gap:4px;min-width:0;display:grid}.field>span{color:var(--ink-3);font-size:12.5px}.field>small{color:var(--ink-3);font-size:12px}.input,.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);width:100%;min-width:0;height:40px;padding:0 12px;font-size:14.5px}.field textarea{resize:vertical;height:auto;min-height:84px;padding:9px 12px;line-height:1.6}.input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);outline:none}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px;display:grid}@media (max-width:640px){.grid2,.grid3{grid-template-columns:1fr}}.check{align-items:center;gap:8px;font-size:14px;display:flex}.error{color:var(--low);font-size:13.5px}.notice{border-radius:var(--r-s);background:var(--sunk);color:var(--ink-2);padding:10px 14px;font-size:13.5px}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.ok{background:var(--teal-soft);color:var(--teal)}.chip{white-space:nowrap;background:var(--sunk);color:var(--ink-2);vertical-align:1px;border-radius:4px;padding:0 7px;font-size:11.5px;font-weight:600;line-height:20px;display:inline-block}.chip.hot{background:var(--marker);color:var(--marker-ink)}.chip.low{background:var(--low-soft);color:var(--low)}.chip.ok{background:var(--teal-soft);color:var(--teal)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);min-width:0;padding:20px 22px}.panel>h2{margin-bottom:12px;font-size:15.5px;font-weight:600}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.panel-head h2{font-size:15.5px;font-weight:600}.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);overflow-x:auto}table.t{border-collapse:collapse;width:100%;font-size:14px}table.t th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 14px;font-size:12.5px;font-weight:500}table.t td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 14px}table.t tr:last-child td{border-bottom:0}table.t td.n,table.t th.n{text-align:right;font-family:var(--num);font-variant-numeric:tabular-nums;white-space:nowrap}table.t tbody tr.click{cursor:pointer}table.t tbody tr.click:hover{background:color-mix(in srgb, var(--sunk) 60%, transparent)}table.t tbody tr[aria-selected=true]{background:var(--sunk);box-shadow:inset 3px 0 0 var(--teal)}table.t .sub{color:var(--ink-3);font-size:12px;display:block}.empty{text-align:center;color:var(--ink-3);padding:28px 20px;font-size:14px}.meter{background:var(--sunk);border-radius:4px;height:8px;overflow:hidden}.meter>i{background:var(--teal);border-radius:4px;height:100%;display:block}.kv{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;font-size:13.5px;display:grid}.kv small{color:var(--ink-3);font-size:12px;display:block}.kv b{font-weight:600}.tabs{border-bottom:1px solid var(--line);gap:2px;display:flex;overflow-x:auto}.tabs button,.tabs a{color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:14px;text-decoration:none}.tabs [aria-selected=true],.tabs [aria-current=page]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.seg{border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);display:inline-flex;overflow:hidden}.seg button{height:34px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:13.5px}.seg button[aria-pressed=true]{background:var(--sunk);color:var(--ink);font-weight:600}.ruler{position:relative}.ruler-axis{border-bottom:1.5px solid var(--ink);height:22px;position:relative}.ruler-axis span{font-family:var(--num);color:var(--ink-3);padding-bottom:6px;font-size:11.5px;position:absolute;bottom:-1px;transform:translate(-50%)}.ruler-axis span:after{content:"";background:var(--ink);width:1.5px;height:5px;position:absolute;bottom:-1px;left:50%}.ruler-axis span.t{color:var(--ink);font-weight:600}.ruler-axis span.t:after{height:9px}.track{height:30px;position:relative}.track .hl{background:var(--marker);border-radius:2px 7px 3px 6px/4px 3px 7px 4px;height:14px;position:absolute;top:8px;transform:skew(-8deg)}.track .from,.track .to{border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:15px}.track .from{background:var(--surface);box-shadow:inset 0 0 0 2px var(--ink-3)}.track .to{background:var(--ink)}.track .guide{border-left:1.5px dashed color-mix(in srgb, var(--ink) 35%, transparent);position:absolute;top:0;bottom:0}.track .label{white-space:nowrap;padding-left:6px;font-size:12px;font-weight:600;position:absolute;top:-6px}.big-score{font-family:var(--num);z-index:0;padding:0 4px;font-weight:600;font-stretch:118%;line-height:1;display:inline-block;position:relative}.big-score:before{content:"";background:var(--marker);z-index:-1;border-radius:2px 7px 3px 6px;height:36%;position:absolute;bottom:6%;left:-2px;right:-2px;transform:skew(-8deg)}.skills{gap:7px;display:grid}.skill{color:var(--ink-2);grid-template-columns:34px minmax(0,1fr) 28px 66px;align-items:center;gap:10px;font-size:12.5px;display:grid}.skill .bar{background:var(--sunk);border-radius:3px;height:6px;position:relative}.skill .bar i{background:var(--ink);border-radius:3px;position:absolute;top:0;bottom:0;left:0}.skill .v{font-family:var(--num);color:var(--ink);text-align:right;font-weight:600}.skill .c{font-family:var(--num);color:var(--teal);white-space:nowrap;font-size:12px;font-weight:600}.skill .v{text-align:right}.skills.with-target .skill{grid-template-columns:34px minmax(0,1fr) 28px 62px 60px}.skill .bar i.met{background:var(--teal)}.skill .bar i.under{background:var(--low)}.skill .bar .need{border-left:2px solid #c98a12;width:0;position:absolute;top:-4px;bottom:-4px}.skill .gap{color:var(--low);white-space:nowrap;text-align:right;font-size:12px;font-weight:600}.skill .gap.ok{color:var(--teal)}.brand{color:var(--ink);align-items:center;gap:10px;font-size:17px;font-weight:600;line-height:1.2;text-decoration:none;display:flex}.brand-mark{background:url(/logo-160.png) 50%/contain no-repeat;flex:none;width:34px;height:34px}.brand small{font-family:var(--num);color:var(--ink-3);letter-spacing:.02em;font-size:10.5px;font-weight:500;display:block}.brand-row{align-items:center;gap:12px;min-width:0;display:flex}.brand-branch{border-left:1px solid var(--line);color:var(--teal);white-space:nowrap;align-self:center;padding-left:12px;font-size:13px;font-weight:600}.shell{grid-template-columns:224px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:22px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.side nav{gap:2px;display:grid}.side nav a{border-radius:var(--r-s);color:var(--ink-2);align-items:center;gap:10px;padding:9px 12px;font-size:14.5px;text-decoration:none;display:flex}.side nav a svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.side nav a:hover{background:var(--sunk);color:var(--ink)}.side nav a[aria-current=page]{background:var(--sunk);color:var(--ink);font-weight:600}.side nav em{font-style:normal;font-family:var(--num);background:var(--low-soft);color:var(--low);border-radius:999px;margin-left:auto;padding:0 7px;font-size:12px;font-weight:600}.me{color:var(--ink-2);border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:auto;padding-top:14px;font-size:13px;display:grid}.me b{color:var(--ink);font-size:13.5px}.me .row{flex-wrap:nowrap;gap:12px;min-width:0}.me .who{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.av{background:var(--teal-soft);width:32px;height:32px;color:var(--teal);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:600;display:grid}.main{align-content:start;gap:22px;min-width:0;padding:28px 32px 64px;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.page-head h1{font-size:24px}.page-head .muted{font-size:13.5px}.page-head .btn{height:36px}.shell.dark .side{background:var(--ink);color:var(--paper);border-right:0}.shell.dark .side .brand{color:var(--paper)}.shell.dark .side .brand-mark{background-color:#fff;background-size:82%;border-radius:7px}.shell.dark .side .brand small{color:color-mix(in srgb, var(--paper) 60%, transparent)}.shell.dark .side nav a{color:color-mix(in srgb, var(--paper) 72%, transparent)}.shell.dark .side nav a:hover,.shell.dark .side nav a[aria-current=page]{background:color-mix(in srgb, var(--paper) 12%, transparent);color:var(--paper)}.shell.dark .side nav em{background:var(--marker);color:var(--marker-ink)}.shell.dark .side .navlabel{color:color-mix(in srgb, var(--paper) 45%, transparent)}.shell.dark .me{border-top-color:color-mix(in srgb, var(--paper) 18%, transparent);color:color-mix(in srgb, var(--paper) 70%, transparent)}.shell.dark .me b{color:var(--paper)}.shell.dark .me .av{background:color-mix(in srgb, var(--paper) 16%, transparent);color:var(--paper)}.shell.dark .me .btn{color:var(--paper);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--paper) 25%, transparent)}.shell.dark .me .btn.quiet{box-shadow:none;color:color-mix(in srgb, var(--paper) 60%, transparent)}.shell.dark .me .btn.quiet:hover{color:var(--paper)}.navlabel{color:var(--ink-3);padding:10px 12px 2px;font-size:12px}.topbar-title,.menu-btn,.tabbar{display:none}@media (max-width:860px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr;align-content:start}.side{top:env(safe-area-inset-top,0px);z-index:30;height:auto;padding:8px max(12px, env(safe-area-inset-right,0px)) 8px max(12px, env(safe-area-inset-left,0px));border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;gap:10px;position:sticky;overflow:visible}.side>nav,.side>.me,.side .brand span:not(.brand-mark){display:none}.topbar-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:16px;font-weight:600;display:block;overflow:hidden}.menu-btn{border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);width:40px;height:40px;color:var(--ink);cursor:pointer;place-items:center;display:grid;position:relative}.menu-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:20px;height:20px}.menu-btn .dot{background:var(--low);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.shell.dark .menu-btn{color:var(--paper);border-color:color-mix(in srgb, var(--paper) 25%, transparent);background:0 0}.shell.dark .topbar-title{color:var(--paper)}.main{padding:18px max(14px, env(safe-area-inset-right,0px)) 48px max(14px, env(safe-area-inset-left,0px));gap:16px}.shell.has-tabs .main{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.page-head h1{font-size:21px}.tabbar{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:4px max(6px, env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(6px, env(safe-area-inset-left,0px));grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a,.tabbar button{color:var(--ink-3);cursor:pointer;background:0 0;border:0;justify-items:center;gap:2px;padding:6px 2px;font-size:11.5px;text-decoration:none;display:grid;position:relative}.tabbar svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tabbar button svg{fill:currentColor;stroke:none}.tabbar a[aria-current=page]{color:var(--ink);font-weight:600}.tabbar em{background:var(--low);color:#fff;border-radius:999px;padding:0 5px;font-size:10px;font-style:normal;line-height:16px;position:absolute;top:2px;left:55%}}.sheet{z-index:41;background:var(--surface);width:min(320px,86vw);padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:16px;animation:.3s cubic-bezier(.3,1.1,.4,1) drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.sheet-head{color:var(--ink-2);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.sheet nav{gap:2px;display:grid}.sheet nav a{border-radius:var(--r-s);color:var(--ink);align-items:center;gap:12px;padding:12px;font-size:15.5px;text-decoration:none;display:flex}.sheet nav a svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.sheet nav a[aria-current=page]{background:var(--sunk);font-weight:600}.sheet nav em{background:var(--low-soft);color:var(--low);border-radius:999px;margin-left:auto;padding:0 7px;font-size:12px;font-style:normal;font-weight:600}.sheet .navlabel{padding:10px 12px 2px}.sheet>.btn{margin-top:auto}.drawer-back{z-index:40;background:#102a4347;position:fixed;inset:0}.drawer{background:var(--paper);z-index:41;align-content:start;width:min(560px,100vw);animation:.35s cubic-bezier(.3,1.1,.4,1) drawer-in;display:grid;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-20px 0 50px -20px #00000059}@keyframes drawer-in{0%{opacity:0;transform:translate(40px)}}.drawer-head{background:var(--surface);border-bottom:1px solid var(--line);z-index:1;align-items:center;gap:12px;padding:16px 20px;display:flex;position:sticky;top:0}.drawer-head h2{margin-right:auto;font-size:18px}.drawer-body{gap:16px;padding:18px 20px 40px;display:grid}.q{gap:16px;min-width:0;display:grid}.q-instr{color:var(--ink-2);font-size:14px}.q-passage{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);white-space:pre-wrap;padding:18px 20px;font-size:16px;line-height:1.9}.q-passage select,.q-passage input{border:1.5px solid var(--line-2);background:var(--paper);border-radius:5px;max-width:100%;height:32px;margin:0 3px;padding:0 6px;font-size:15px}.q-passage input{width:9em}.q-passage select.ok,.q-passage input.ok{border-color:var(--teal);background:var(--teal-soft)}.q-passage select.bad,.q-passage input.bad{border-color:var(--low);background:var(--low-soft)}.slot{border:1.5px dashed var(--line-2);vertical-align:middle;cursor:pointer;background:var(--paper);border-radius:5px;align-items:center;min-width:7em;height:30px;margin:0 3px;padding:0 8px;font-size:15px;display:inline-flex}.slot.filled{border-style:solid;border-color:var(--ink-3);background:var(--surface)}.slot.active{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}.slot.ok{border-color:var(--teal);background:var(--teal-soft)}.slot.bad{border-color:var(--low);background:var(--low-soft)}.bank{flex-wrap:wrap;gap:8px;display:flex}.bank button{border:1px solid var(--line-2);background:var(--surface);cursor:pointer;border-radius:5px;padding:4px 12px;font-size:14.5px}.bank button:disabled{opacity:.35;cursor:default}.options{gap:8px;display:grid}.option{border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 14px;font-size:14.5px;display:flex}.option input{accent-color:var(--teal);margin-top:5px}.option.sel{border-color:var(--ink-3);background:var(--sunk)}.option.ok{border-color:var(--teal);background:var(--teal-soft)}.option.bad{border-color:var(--low);background:var(--low-soft)}.reorder{gap:8px;margin:0;padding:0;list-style:none;display:grid}.reorder li{border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);grid-template-columns:26px minmax(0,1fr) auto;align-items:start;gap:10px;padding:12px 14px;font-size:14.5px;display:grid}.reorder li .n{font-family:var(--num);color:var(--teal);font-weight:600}.reorder li .mv{flex-direction:column;gap:4px;display:flex}.reorder li .mv button{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:5px;width:30px;height:26px;font-size:12px}.hiw{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:16px 20px;font-size:16px;line-height:2.1}.hiw button{cursor:pointer;font-size:inherit;background:0 0;border:0;border-radius:4px;margin:0 1px;padding:1px 2px}.hiw button:hover{background:var(--sunk)}.hiw button.on{background:var(--marker);color:var(--marker-ink)}.hiw button.ok{background:var(--teal-soft);color:var(--teal);font-weight:600}.hiw button.bad{background:var(--low-soft);color:var(--low);text-decoration:line-through}.hiw button.miss{box-shadow:inset 0 -2px 0 var(--low)}.answer-box{border:1.5px solid var(--line);border-radius:var(--r-s);background:var(--surface);width:100%;min-height:120px;font:16px/1.65 var(--num);resize:vertical;padding:12px 14px}.answer-box:focus{border-color:var(--teal);outline:none}.wordcount{color:var(--ink-3);text-align:right;font-size:12.5px}.diff{font:17px/2 var(--num)}.diff .ok{background:linear-gradient(transparent 58%, var(--teal-soft) 58%)}.diff .miss{color:var(--low);border-bottom:2px dotted var(--low)}.diff .extra{color:var(--ink-3);text-decoration:line-through}.result{border-top:1px solid var(--line);gap:10px;padding-top:14px;display:grid}.result .score{color:var(--ink-2);font-size:14px}.result .score b{font-family:var(--num);color:var(--ink);font-size:24px;font-weight:600;font-stretch:115%}.reference{white-space:pre-wrap;background:var(--sunk);border-radius:var(--r-s);padding:12px 14px;font-size:14.5px}.di-img{border-radius:var(--r-s);border:1px solid var(--line);background:var(--surface);max-height:340px}.player{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);align-items:center;gap:14px;padding:12px 14px;display:flex}.player .play{background:var(--ink);width:46px;height:46px;color:var(--paper);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.player .play:disabled{opacity:.4;cursor:not-allowed}.player .play svg{fill:currentColor;width:18px;height:18px}.player .prog{flex:1;gap:4px;min-width:0;display:grid}.player .meter{height:6px}.player .meter>i{background:var(--ink);transition:width .2s linear}.player .note{color:var(--ink-3);font-size:12.5px}.rec{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.rec .dot{background:var(--line-2);border-radius:50%;width:12px;height:12px}.rec.on .dot{background:var(--low);animation:1s infinite blink}@keyframes blink{50%{opacity:.3}}.rec .time{font-family:var(--num);min-width:4.5em;font-size:18px;font-weight:600}.toast-zone{right:max(20px, env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;pointer-events:none;width:350px;max-width:calc(100vw - 32px);height:370px;position:fixed}.cols{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start;gap:22px;display:grid}.cols.goal{gap:28px}.cols .aside{border-left:1px solid var(--line);padding-left:24px}.cols.even{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:980px){.cols,.cols.even{grid-template-columns:1fr}.cols .aside{border-left:0;border-top:1px solid var(--line);padding-top:14px;padding-left:0}}.list-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 16px;padding:13px 0;display:grid}.list-row:first-child{border-top:0}.money{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.money.lead{grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr))}.money.lead>div:first-child b{font-size:30px}.money>div{align-content:start;gap:1px;min-width:0;padding:14px 18px;display:grid}.money>div+div{border-left:1px solid var(--line)}.money small{color:var(--ink-3);font-size:12.5px}.money b{font-size:22px;font-weight:600;font-stretch:110%}.money span{color:var(--ink-2);font-size:12px}@media (max-width:900px){.money{grid-template-columns:1fr 1fr!important}.money>div{border-top:1px solid var(--line);border-left:0!important}.money>div:nth-child(-n+2){border-top:0}.money.lead>div:first-child{grid-column:1/-1}.money.lead>div:nth-child(2){border-top:1px solid var(--line)}}@media (max-width:640px){.panel{padding:16px}.q-passage,.hiw{padding:14px;font-size:15.5px}.hide-sm{display:none!important}table.t{font-size:13.5px;min-width:0!important}table.t th,table.t td{padding:10px}.drawer-head{padding:12px 14px}.drawer-body{padding:14px 14px 40px}.kv{gap:10px 12px}.row>.input{flex:100%;width:auto!important;max-width:none!important}.filters,.row.wrap-sm{gap:8px}.seg{max-width:100%;overflow-x:auto}.seg button{white-space:nowrap}.actions{bottom:calc(env(safe-area-inset-bottom,0px) + 8px);z-index:5;background:color-mix(in srgb, var(--paper) 92%, transparent);border-radius:var(--r-m);margin:0 -6px;padding:10px;position:sticky;box-shadow:0 -6px 18px -14px #102a4380}.shell.has-tabs .actions{bottom:calc(70px + env(safe-area-inset-bottom,0px))}.reorder li{grid-template-columns:22px minmax(0,1fr) auto;padding:10px}.money{grid-template-columns:1fr 1fr!important}table.t.wide{min-width:720px!important}}.ring{flex:none;position:relative}.ring svg{display:block;transform:rotate(-90deg)}.ring circle{fill:none}.ring .track{stroke:var(--sunk)}.ring .arc{stroke:var(--teal);stroke-linecap:round;animation:.9s cubic-bezier(.2,.8,.2,1) both ring-in}.ring.tone-ink .arc{stroke:var(--ink)}.ring.tone-low .arc{stroke:var(--low)}.ring.tone-warn .arc{stroke:#c98a12}@keyframes ring-in{0%{stroke-dashoffset:var(--len)}}.ring-in{text-align:center;place-content:center;line-height:1.15;display:grid;position:absolute;inset:0}.ring-in b{font-family:var(--num);color:var(--ink);font-size:22px;font-weight:600;font-stretch:112%}.ring-in small{color:var(--ink-3);font-size:11.5px}.rings{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.rings>a{color:inherit;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 16px;padding:18px 20px;text-decoration:none;display:grid}.rings>a+a{border-left:1px solid var(--line)}.rings>a:hover{background:var(--paper)}.rings .what{gap:2px;display:grid}.rings .what b{font-size:14.5px;font-weight:600}.rings .what span{color:var(--ink-3);font-size:12.5px}@media (max-width:760px){.rings>a{text-align:center;grid-template-columns:1fr;justify-items:center;gap:8px;padding:14px 6px}.rings .what span{display:none}}.overview{flex-wrap:wrap;align-items:center;gap:18px 28px;display:flex}.overview .figs{grid-template-columns:repeat(3,minmax(90px,auto));gap:4px 28px;display:grid}.overview .figs small{color:var(--ink-3);font-size:12.5px;display:block}.overview .figs b{font-family:var(--num);font-size:22px;font-weight:600;font-stretch:110%}.overview .figs a{color:inherit;text-decoration:none}@media (max-width:520px){.overview{justify-content:center}.overview .figs{text-align:center;grid-template-columns:repeat(3,auto);gap:4px 18px}}.skill-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.skill-tabs button{text-align:left;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);cursor:pointer;gap:2px;padding:10px 14px;display:grid}.skill-tabs button b{font-size:14.5px}.skill-tabs button span{font-family:var(--num);color:var(--ink-3);font-size:12.5px}.skill-tabs button[aria-pressed=true]{border-color:var(--teal);background:var(--teal-soft)}.skill-tabs button[aria-pressed=true] span{color:var(--teal)}@media (max-width:520px){.skill-tabs button{padding:8px 10px}}.ring-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}.ring-row{color:inherit;border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 18px;text-decoration:none;display:grid}.ring-row:first-child{border-top:0}a.ring-row:hover{background:var(--paper)}.ring-row .name b{font-family:var(--num);margin-right:6px;font-weight:600}.ring-row .name small{color:var(--ink-3);font-size:12.5px;display:block}.ring-row .end{text-align:right;font-family:var(--num);white-space:nowrap;font-size:14px;font-weight:600}.ring-row .end small{font-family:var(--cjk);color:var(--ink-3);font-size:11.5px;font-weight:400;display:block}.group-head{background:var(--paper);border-top:1px solid var(--line);color:var(--ink-2);justify-content:space-between;align-items:baseline;padding:9px 18px;font-size:13px;display:flex}.group-head:first-child{border-top:0}.streak{vertical-align:middle;gap:4px;display:inline-flex}.streak i{border:1.5px solid var(--teal);border-radius:50%;width:8px;height:8px}.streak i.on{background:var(--teal)}.test-card{border-color:var(--ink);border-width:1.5px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.skill-rings{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));justify-items:center;gap:16px;display:grid}.skill-rings>div{color:var(--ink-2);justify-items:center;gap:6px;font-size:13px;display:grid}.skill-rings .clb{font-family:var(--num);color:var(--teal);font-size:12.5px;font-weight:600}.skill-rings .clb.low{color:var(--low)}.timeline{gap:12px;padding-left:22px;display:grid;position:relative}.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:8px;bottom:8px;left:6px}.timeline>article{position:relative}.timeline>article:before{content:"";background:var(--surface);border:2px solid var(--teal);border-radius:50%;width:10px;height:10px;position:absolute;top:22px;left:-21px}.u044{flex-direction:column;gap:8px;width:100%;max-width:560px;display:flex;position:relative}.u044-it{background:var(--ux-surface);box-shadow:0 0 0 1px var(--ux-line);transition:background-color .4s var(--ux-ease),box-shadow .5s var(--ux-ease),transform .5s var(--ux-spring);border-radius:20px;position:relative}.u044-it.open{box-shadow:0 0 0 1px var(--ux-line-2),0 22px 40px -22px var(--ux-shadow-strong);transform:translateY(-2px)}.u044-q{letter-spacing:-.02em;width:100%;min-height:58px;color:var(--ux-ink);text-align:left;background:0 0;border:0;border-radius:20px;align-items:center;gap:12px;padding:0 14px 0 16px;font-size:14.5px;font-weight:680;display:flex;position:relative}.u044-q:focus-visible{outline:2px solid var(--ux-accent);outline-offset:2px}.u044-n{color:var(--ux-ink-3);font-variant-numeric:tabular-nums;font-size:12px;font-weight:800;transition:color .3s}.u044-it.open .u044-n{color:var(--ux-accent)}.u044-t{flex:1}.u044-pm{background:var(--ux-surface-2);width:30px;height:30px;box-shadow:none;transition:background-color .35s var(--ux-ease),box-shadow .35s,transform .45s var(--ux-spring);border-radius:50%;flex:none;position:relative}.u044-q:hover .u044-pm{transform:scale(1.1)}.u044-q:active .u044-pm{transform:scale(.9)}.u044-pm:before,.u044-pm:after{content:"";background:var(--ux-ink);width:11px;height:2px;transition:transform .5s var(--ux-spring),background-color .3s;border-radius:2px;margin:-1px 0 0 -5.5px;position:absolute;top:50%;left:50%}.u044-pm:after{transform:rotate(90deg)}.u044-it.open .u044-pm{background:var(--ux-ink);box-shadow:none}.u044-it.open .u044-pm:before,.u044-it.open .u044-pm:after{background:var(--ux-page)}.u044-it.open .u044-pm:after{transform:rotate(180deg)}.u044-body{transition:grid-template-rows .5s var(--ux-ease);grid-template-rows:0fr;display:grid}.u044-it.open .u044-body{grid-template-rows:1fr}.u044-body>div{min-height:0;overflow:hidden}.u044-a{opacity:0;transition:opacity .25s var(--ux-ease),transform .45s var(--ux-spring);padding:0 18px 16px 42px;transform:translateY(-8px)}.u044-it.open .u044-a{opacity:1;transition-delay:.12s;transform:none}.u044-a p{color:var(--ux-ink-2);margin:0;font-size:13.5px;line-height:1.62}.u044-a a{color:var(--ux-accent);align-items:center;gap:4px;margin-top:10px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.u044-a a:focus-visible{outline:2px solid var(--ux-accent);outline-offset:2px;border-radius:4px}.u044-a a i{transition:transform .3s var(--ux-spring);font-style:normal}.u044-a a:hover i{transform:translate(3px)}.u018{flex-direction:column;justify-content:center;align-items:center;gap:22px;width:320px;max-width:100%;height:200px;display:flex;position:relative}.u018-item{align-items:center;gap:14px;width:280px;display:flex}.u018-th{background:linear-gradient(150deg,var(--ux-ink),var(--ux-accent));border-radius:16px;flex:none;place-items:center;width:56px;height:56px;display:grid;box-shadow:inset 0 1px #fff3}.u018-th svg{fill:none;width:26px;height:26px;stroke:var(--ux-page);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.u018-item b{letter-spacing:-.02em;font-size:16px;font-weight:720;display:block}.u018-item small{color:var(--ux-ink-3);font-variant-numeric:tabular-nums;margin-top:3px;font-size:13px;display:block}.u018-row{justify-content:space-between;align-items:center;width:280px;display:flex}.u018-step{background:var(--ux-surface);height:60px;box-shadow:0 0 0 1px var(--ux-line),0 16px 30px -22px var(--ux-shadow-strong);border-radius:999px;align-items:center;padding:6px;display:flex}.u018-step.is-shake{animation:u018-no .42s var(--ux-ease)}@keyframes u018-no{20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.u018-b{background:var(--ux-surface-2);width:48px;height:48px;color:var(--ux-ink);transition:transform .4s var(--ux-spring),background-color .25s var(--ux-ease),opacity .3s var(--ux-ease);border:0;border-radius:50%;place-items:center;padding:0;display:grid}.u018-b:hover{background:var(--ux-surface-3)}.u018-b:active{transform:scale(.86)}.u018-b:focus-visible{outline:2px solid var(--ux-accent);outline-offset:2px}.u018-b[aria-disabled=true]{opacity:.35}.u018-b svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;width:20px;height:20px}.u018-b.pl{background:var(--ux-ink);color:var(--ux-page)}.u018-b.pl:hover{background:var(--ux-ink)}.u018-num{font-variant-numeric:tabular-nums;letter-spacing:-.02em;justify-content:center;width:56px;height:34px;font-size:26px;font-weight:780;line-height:34px;display:flex;overflow:hidden}.u018-col{transition:transform .55s var(--ux-spring),width .4s var(--ux-ease),opacity .3s var(--ux-ease);flex-direction:column;display:flex}.u018-col span{text-align:center;height:34px}.u018-col.is-hide{opacity:0;width:0!important}.u018-sum{text-align:right}.u018-sum small{color:var(--ux-ink-3);font-size:12.5px;display:block}.u018-sum b{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:2px;font-size:21px;font-weight:780;display:block}.u018-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.u070{right:max(20px,env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;pointer-events:none;width:350px;max-width:calc(100vw - 32px);height:370px;position:fixed}.u070-btns{flex-wrap:wrap;gap:6px;display:flex}.u070-btns button{background:var(--ux-surface);height:38px;box-shadow:0 0 0 1px var(--ux-line);color:var(--ux-ink);transition:transform .3s var(--ux-spring),box-shadow .3s;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:720;display:inline-flex}.u070-btns button:hover{box-shadow:0 0 0 1px var(--ux-line-2),0 8px 16px -10px var(--ux-shadow-strong)}.u070-btns button:active{transform:scale(.94)}.u070-btns button:focus-visible{outline:2px solid var(--ux-accent);outline-offset:2px}.u070-btns i{background:var(--c);border-radius:50%;width:8px;height:8px}.u070-zone{outline:none;height:300px;position:absolute;bottom:0;left:0;right:0}.u070-t{pointer-events:auto;background:var(--ux-surface);min-height:68px;box-shadow:0 0 0 1px var(--ux-line),0 16px 30px -18px var(--ux-shadow-strong);transform-origin:50% 100%;transform:translate(var(--dx,0px),var(--y,0px)) scale(var(--s,1));opacity:var(--o,1);transition:transform .5s var(--ux-spring),opacity .35s;touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:12px;padding:12px 12px 12px 14px;display:flex;position:absolute;bottom:0;left:0;right:0}.u070-t.drag{transition:none}.u070-t.enter{opacity:0;transform:translateY(90px)scale(.9)}.u070-t.leave{transform:translate(var(--dx,0px),var(--y,0px)) scale(var(--s,1));opacity:0;pointer-events:none}.u070-t.leave.side{transform:translate(calc(var(--dir,1) * 420px),var(--y,0px)) rotate(calc(var(--dir,1) * 8deg))}.u070-t>*{transition:opacity .25s}.u070-t.back>*{opacity:0}.u070-ic{background:color-mix(in srgb,var(--c) 15%,transparent);width:36px;height:36px;color:var(--c);border-radius:12px;flex:none;place-items:center;display:grid}.u070-ic svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.u070-ic i{border:2.5px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite u070-spin}@keyframes u070-spin{to{transform:rotate(360deg)}}.u070-tx{flex:1;min-width:0}.u070-tx b{letter-spacing:-.02em;font-size:14px;font-weight:780;display:block}.u070-tx small{color:var(--ux-ink-3);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12.5px;font-weight:600;display:block;overflow:hidden}.u070-act{background:var(--ux-surface-2);height:32px;color:var(--ux-ink);border:0;border-radius:10px;padding:0 11px;font-size:12.5px;font-weight:750}.u070-x{width:30px;height:30px;color:var(--ux-ink-3);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.u070-x:hover{background:var(--ux-surface-2);color:var(--ux-ink)}.u070-x svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;width:14px;height:14px}:is(.u070-act:focus-visible,.u070-x:focus-visible){outline:2px solid var(--ux-accent);outline-offset:1px}.u070-bar{background:var(--c);opacity:.5;transform-origin:0;height:2px;transform:scaleX(var(--left,1));border-radius:2px;position:absolute;bottom:0;left:16px;right:16px}.u070-live{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.u070-empty{text-align:center;color:var(--ux-ink-3);font-size:13px;font-weight:650;transition:opacity .3s;position:absolute;bottom:24px;left:0;right:0}.ux{-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word;font-family:inherit}.ux,.ux *,.ux :before,.ux :after{box-sizing:border-box}:where(.ux) button{cursor:pointer;font:inherit;color:inherit}@media (max-width:640px){.u018{width:100%}.u018-item,.u018-row{width:100%;max-width:none}}
