: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:900;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:700;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.link{box-shadow:none;height:auto;color:var(--teal);padding:0;font-weight:700}.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:700;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:700}.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:700}.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:700}.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:700}.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:700}.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:700}.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:700;position:absolute;top:-6px}.big-score{font-family:var(--num);z-index:0;padding:0 4px;font-weight:800;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:700}.skill .c{font-family:var(--num);color:var(--teal);white-space:nowrap;font-size:12px;font-weight:700}.skill .v{text-align:right}.skills.with-target .skill{grid-template-columns:34px minmax(0,1fr) 28px 62px 60px}.skill .bar .need{border-left:2px solid var(--low);width:0;position:absolute;top:-4px;bottom:-4px}.skill .gap{color:var(--low);white-space:nowrap;text-align:right;font-size:12px;font-weight:700}.skill .gap.ok{color:var(--teal)}.brand{color:var(--ink);align-items:center;gap:10px;font-size:17px;font-weight:900;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}.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:700}.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:700}.me{color:var(--ink-2);border-top:1px solid var(--line);gap:8px;margin-top:auto;padding-top:14px;font-size:13px;display:grid}.me b{color:var(--ink);font-size:13.5px}.me .row{gap:12px}.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:700;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}.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)}.navlabel{color:var(--ink-3);padding:10px 12px 2px;font-size:12px}@media (max-width:860px){.shell{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;gap:10px;height:auto;padding:8px 10px;position:static;overflow-x:auto}.side nav{display:flex}.side nav a{white-space:nowrap;padding:8px 10px}.side .brand span:not(.brand-mark),.navlabel{display:none}.me{border:0;margin:0 0 0 auto;padding:0;display:flex}.me .who{display:none}.main{padding:20px 16px 48px}}.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:800}.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:700}.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:800;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:700}.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>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:800;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}}
