:root{--paper:#eee4ce;--paper-hi:#f7f0e0;--ink:#2a251f;--ink-soft:#6f6556;--rule:#d9a396;--seal:#b13a2c;--err:var(--seal);--ok:#5e7c4c;--near:#c38a2e;--miss:#918a7d;--on-color:#fbf6ea;--key:#e2d5ba;--key-hi:#eadfc8;--key-tone:#e6cfc2;--key-off:#bdb3a2;--key-off-ink:#f2ebdc;--shadow:#422e162e;--veil:#2a251f6b;--grain-op:.55;--serif:"Noto Serif TC", "Songti TC", "PMingLiU", serif;--sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--tile:max(34px, min(48px, calc((100vw - 32px - 50px) / 8), calc((100dvh - 470px) / 6.6)))}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#1c1915;--paper-hi:#26221c;--ink:#ece2cb;--ink-soft:#a69b87;--rule:#5a3a33;--seal:#d45b4b;--err:#e88474;--ok:#6f925b;--near:#c99a43;--miss:#4b463f;--on-color:#fbf6ea;--key:#332e27;--key-hi:#3d372f;--key-tone:#3f302b;--key-off:#1f1c18;--key-off-ink:#5e574c;--shadow:#00000073;--veil:#08070699;--grain-op:.25;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#1c1915;--paper-hi:#26221c;--ink:#ece2cb;--ink-soft:#a69b87;--rule:#5a3a33;--seal:#d45b4b;--err:#e88474;--ok:#6f925b;--near:#c99a43;--miss:#4b463f;--on-color:#fbf6ea;--key:#332e27;--key-hi:#3d372f;--key-tone:#3f302b;--key-off:#1f1c18;--key-off-ink:#5e574c;--shadow:#00000073;--veil:#08070699;--grain-op:.25;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root.hc,.hc-demo{--ok:#2f67a8;--near:#e07b22}html,body,#app{height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-tap-highlight-color:transparent;margin:0;overflow-x:hidden}body:after{z-index:0;pointer-events:none;content:"";mix-blend-mode:multiply;opacity:var(--grain-op);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45  0 0 0 0 .36  0 0 0 0 .24  0 0 0 .22 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='600' height='600'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='.004 .09' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .4  0 0 0 0 .28  0 0 0 .10 0'/></filter><rect width='100%' height='100%' filter='url(%23f)'/></svg>");position:fixed;inset:0}:root[data-theme=dark] body:after{mix-blend-mode:screen}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body:after{mix-blend-mode:screen}}.app{z-index:1;box-sizing:border-box;max-width:520px;height:100%;padding-block:10px;padding-right:max(16px, env(safe-area-inset-right,0px));padding-left:max(16px, env(safe-area-inset-left,0px));flex-direction:column;margin:0 auto;display:flex;position:relative}header.top{border-bottom:1.5px solid var(--ink);box-shadow:0 3px 0 -1.5px var(--paper), 0 4px 0 -1px var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding-bottom:8px;display:grid}.brand{align-items:center;gap:9px;min-width:0;display:flex}.brand-text{min-width:0}.seal-mark{width:34px;height:34px;font-family:var(--serif);color:var(--on-color);letter-spacing:-1px;background:var(--seal);box-shadow:inset 0 0 0 2px var(--seal), inset 0 0 0 3.5px var(--on-color);writing-mode:vertical-rl;border-radius:5px;flex:none;place-items:center;font-size:13px;font-weight:900;line-height:1;display:grid;transform:rotate(-4deg)}h1{font-family:var(--serif);letter-spacing:.12em;white-space:nowrap;margin:0;font-size:24px;font-weight:900;line-height:1.1}h1,.issue{text-overflow:ellipsis;overflow:hidden}.issue{font-variant-numeric:tabular-nums;color:var(--ink-soft);letter-spacing:.06em;white-space:nowrap;font-size:11.5px}.tools{gap:2px;display:flex}.icon-btn{width:36px;height:38px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.icon-btn:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}@media (width<=380px){.tools{gap:0}.issue{letter-spacing:.02em}}@media (width<=340px){.seal-mark{display:none}}:focus-visible{outline:2.5px solid var(--seal);outline-offset:2px}.modes{justify-content:center;gap:4px;margin:10px 0 2px;display:flex}.mode{font:500 13.5px/1 var(--sans);color:var(--ink-soft);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 12px 8px}.mode[aria-pressed=true]{color:var(--paper);background:var(--ink)}.stage{flex-direction:column;flex:auto;justify-content:center;align-items:center;display:flex;position:relative}.board-area{flex-direction:column;flex:auto;justify-content:safe center;align-self:stretch;align-items:center;min-height:0;display:flex}.board-wrap{position:relative}@supports (container-type:size){.board-area{min-height:216.84px;container-type:size}.board-wrap{--tile:max(22px, min(48px, calc((100cqw - 50px) / 8), calc((100cqh - 69px) / 6.72)))}}@media (height<=480px){.app{height:auto;min-height:100%}.board-area{flex:none;container-type:normal}.board-wrap{--tile:34px}}.colhead,.row{grid-template-columns:repeat(4, var(--tile)) 18px repeat(4, var(--tile));column-gap:4px;display:grid}.colhead{height:16px;margin-bottom:4px;line-height:16px}.colhead span{font-size:min(10.5px, calc(var(--tile) * .33));color:var(--ink-soft);text-align:center;letter-spacing:.05em;white-space:nowrap}.wordhead{grid-template-columns:calc(var(--tile) * 4 + 12px) 18px calc(var(--tile) * 4 + 12px);column-gap:4px;height:18px;margin-bottom:2px;line-height:18px;display:grid}.wordhead span{font-family:var(--serif);color:var(--ink);text-align:center;letter-spacing:.3em;white-space:nowrap;font-size:12px;font-weight:600}.board{row-gap:5px;display:grid}.sep{position:relative}.sep:before,.sep:after{content:"";background:var(--rule);width:1px;position:absolute;top:-3px;bottom:-3px}.sep:before{left:7px}.sep:after{left:10px}.tile{width:var(--tile);height:calc(var(--tile) * 1.12);font-size:calc(var(--tile) * .52);perspective:400px;position:relative}.tile .face{font-family:var(--sans);color:var(--ink);background:var(--paper-hi);border:1px solid var(--rule);backface-visibility:hidden;border-radius:3px;place-items:center;font-weight:500;line-height:1;transition:background-color .2s,border-color .2s;display:grid;position:absolute;inset:0}.tile .face:before{pointer-events:none;content:"";background:linear-gradient(to right, transparent calc(50% - .5px), var(--rule) calc(50% - .5px), var(--rule) calc(50% + .5px), transparent calc(50% + .5px)) center / 100% 100% no-repeat;opacity:.55;position:absolute;inset:0;-webkit-mask:repeating-linear-gradient(#000 0 3px,#0000 3px 6px);mask:repeating-linear-gradient(#000 0 3px,#0000 3px 6px)}.tile .face:after{pointer-events:none;content:"";background:linear-gradient(to bottom, transparent calc(50% - .5px), var(--rule) calc(50% - .5px), var(--rule) calc(50% + .5px), transparent calc(50% + .5px));opacity:.55;position:absolute;inset:0;-webkit-mask:repeating-linear-gradient(90deg,#000 0 3px,#0000 3px 6px);mask:repeating-linear-gradient(90deg,#000 0 3px,#0000 3px 6px)}.tile.filled .face:before,.tile.filled .face:after,.tile.revealed .face:before,.tile.revealed .face:after{opacity:0}.tile .sym{z-index:1;position:relative}.tile.tone .sym{font-size:1.25em;transform:translateY(.16em)}.tile.tone.t5 .sym{transform:translateY(0)}.tile.filled .face{border-color:var(--ink-soft);box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--ink) 10%, transparent)}.tile.void .sym,.dot{opacity:.38;background:currentColor;border-radius:50%;width:5px;height:5px;display:block}.row.active[data-s="0"] .tile.g0 .face,.row.active[data-s="1"] .tile.g1 .face{border-color:color-mix(in srgb, var(--seal) 55%, var(--rule))}.row.active[data-s="0"] .tile.g0.cursor .face,.row.active[data-s="1"] .tile.g1.cursor .face{box-shadow:inset 0 -3px 0 var(--seal)}.tile.revealed .face{color:var(--on-color);border-color:#0000}.tile.r-correct .face,.tile.r-empty .face{background:var(--ok)}.tile.r-present .face{background:var(--near)}.tile.r-absent .face,.tile.r-missing .face{background:var(--miss)}.tile.r-empty .face{color:var(--ok);background:color-mix(in srgb, var(--ok) 38%, var(--paper-hi))}.tile.r-missing .face{color:var(--ink-soft);background:color-mix(in srgb, var(--miss) 45%, var(--paper-hi))}.tile.revealed .face{background-image:linear-gradient(160deg,#ffffff24,#fff0 45%,#0000000f)}.hint{z-index:2;color:var(--on-color);letter-spacing:0;white-space:nowrap;opacity:.95;font-size:9px;font-weight:700;line-height:1;position:absolute;bottom:1px;right:2px}.mark{z-index:2;width:7px;height:7px;display:none;position:absolute;top:3px;left:3px}.hc .tile.r-correct .mark,.hc-demo .tile.r-correct .mark{background:var(--on-color);border-radius:50%;display:block}.hc .tile.r-present .mark,.hc-demo .tile.r-present .mark{box-sizing:border-box;border:1.5px solid var(--on-color);border-radius:50%;display:block}.hc .tile.r-absent .mark,.hc-demo .tile.r-absent .mark{background:var(--on-color);width:8px;height:1.5px;display:block;top:6px;transform:rotate(-45deg)}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes flipIn{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg)}to{transform:rotateX(0)}}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-5px)}40%,60%{transform:translate(5px)}}@keyframes bounce{0%,20%{transform:translateY(0)}40%{transform:translateY(-14px)}55%{transform:translateY(0)}68%{transform:translateY(-5px)}80%,to{transform:translateY(0)}}.tile.pop .face{animation:.14s ease-out pop}.tile.flip .face{animation:.52s ease-in-out both flipIn}.row.shake{animation:.42s shake}.tile.win .face{animation:.9s both bounce}.stamp{z-index:5;width:96px;height:96px;font-family:var(--serif);color:var(--seal);pointer-events:none;background:color-mix(in srgb, var(--paper-hi) 75%, transparent);border:4px solid var(--seal);box-shadow:inset 0 0 0 3px var(--paper-hi), inset 0 0 0 6px var(--seal);opacity:0;border-radius:12px;place-items:center;margin:-48px 0 0 -48px;font-size:62px;font-weight:900;line-height:1;display:grid;position:absolute;top:50%;left:50%;transform:scale(2.4)rotate(-14deg);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='96' height='96'><filter id='r'><feTurbulence baseFrequency='.9' numOctaves='2' seed='7'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 -2.2 2'/></filter><rect width='96' height='96' filter='url(%23r)'/></svg>");mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='96' height='96'><filter id='r'><feTurbulence baseFrequency='.9' numOctaves='2' seed='7'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 -2.2 2'/></filter><rect width='96' height='96' filter='url(%23r)'/></svg>")}.stamp.on{animation:.55s cubic-bezier(.3,1.6,.5,1) forwards stampIn}@keyframes stampIn{0%{opacity:0;transform:scale(2.4)rotate(-14deg)}70%{opacity:.95;transform:scale(.94)rotate(-9deg)}to{opacity:.92;transform:scale(1)rotate(-9deg)}}.stage.thud{animation:.25s .38s thud}@keyframes thud{50%{transform:translateY(2px)}}.toast-zone{z-index:6;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:2px;left:0;right:0}.toast{max-width:90%;color:var(--paper);text-align:center;letter-spacing:.03em;background:var(--ink);box-shadow:0 6px 18px var(--shadow);border-radius:6px;padding:9px 14px;font-size:14px;font-weight:500;transition:opacity .3s;animation:.18s ease-out toastIn}.toast.out{opacity:0}@keyframes toastIn{0%{opacity:0;transform:translateY(-6px)}}.first-hint{color:var(--ink-soft);text-align:center;text-wrap:balance;margin-top:10px;font-size:12.5px}@media (height<=700px){.first-hint{z-index:4;background:color-mix(in srgb, var(--paper) 94%, transparent);border-radius:8px;margin:0;padding:8px 12px;position:absolute;bottom:0;left:0;right:0}}.first-hint button{font:inherit;color:var(--seal);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.kb{touch-action:manipulation;-webkit-user-select:none;user-select:none;grid-template-columns:repeat(22,1fr);gap:5px 4px;padding-top:10px;display:grid}.key{height:clamp(38px,6.4dvh,52px);font:500 clamp(16px, 4.6vw, 20px)/1 var(--sans);color:var(--ink);cursor:pointer;background:var(--key);box-shadow:0 1.5px 0 color-mix(in srgb, var(--ink) 22%, transparent);border:0;border-radius:6px;grid-column:span 2;padding:0;transition:background-color .25s,color .25s,transform 60ms;position:relative}@media (hover:hover){.key:hover{background:var(--key-hi)}}.key.tone-key{background:var(--key-tone);font-size:clamp(19px,5.4vw,24px)}.key .qk{font:400 9px/1 var(--sans);color:var(--ink-soft);text-transform:uppercase;opacity:.7;position:absolute;top:3px;left:4px}@media (hover:none){.key .qk{display:none}}.key.k-correct{color:var(--on-color);background:var(--ok)}.key.k-present{color:var(--on-color);background:var(--near)}.key.k-absent{color:var(--key-off-ink);background:var(--key-off);box-shadow:none}.key.k-correct .qk,.key.k-present .qk{color:var(--on-color)}.key.k-absent .qk{color:var(--key-off-ink)}.key:active,.key.pressed{color:var(--on-color);background:var(--seal);box-shadow:none;transition-duration:0s;transform:translateY(1px)}.key:active .qk,.key.pressed .qk{color:var(--on-color)}.hc .key.k-correct:after,.hc .key.k-present:after{content:"";border-radius:50%;width:5px;height:5px;position:absolute;top:4px;right:4px}.hc .key.k-correct:after{background:var(--on-color)}.hc .key.k-present:after{border:1.2px solid var(--on-color)}.key.wide{letter-spacing:.1em;font-size:14px;font-weight:700}.key.back{grid-column:span 5}.key.space{grid-column:span 10;font-size:15px}.key.enter{color:var(--paper);background:var(--ink);grid-column:span 7}.key.space b{vertical-align:-2px;margin-right:6px;font-size:1.4em;font-weight:500}.key svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.off{grid-column:span 1}dialog{width:100%;max-width:min(460px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);background:0 0;border:0;padding:0}dialog:focus-visible{outline:none}dialog::backdrop{background:var(--veil);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog.stacked::backdrop{background:color-mix(in srgb, var(--veil) 45%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.sheet{box-sizing:border-box;background:var(--paper-hi);border:1px solid color-mix(in srgb, var(--rule) 70%, transparent);max-height:calc(100dvh - 24px);box-shadow:0 18px 50px var(--shadow);border-radius:10px;padding:22px 20px 20px;position:relative;overflow-y:auto}dialog[open] .sheet{animation:.26s cubic-bezier(.2,.9,.3,1.1) sheetIn}@keyframes sheetIn{0%{opacity:0;transform:translateY(14px)scale(.98)}}dialog.closing .sheet{animation:.18s ease-in forwards sheetOut}dialog.closing::backdrop{animation:.18s ease-in forwards veilOut}@keyframes sheetOut{to{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes veilOut{to{opacity:0}}.sheet h2{font-family:var(--serif);letter-spacing:.14em;text-wrap:balance;margin:0 0 12px;font-size:21px;font-weight:900}.sheet h3{color:var(--ink-soft);letter-spacing:.12em;margin:18px 0 8px;font-size:13px;font-weight:700}.sheet p{margin:0 0 10px;font-size:14.5px;line-height:1.75}.sheet .fine{color:var(--ink-soft);margin-top:12px;font-size:13px}.sheet [tabindex="-1"]:focus{outline:none}.sheet .fine a{color:inherit;text-underline-offset:2px}.close{position:absolute;top:10px;right:10px}.ex{--tile:min(34px, calc((min(460px, 100vw - 24px) - 40px - 46px - 10px) / 8));flex-direction:column;gap:6px;margin:8px 0 6px;display:flex}.ex .row{grid-template-columns:repeat(4, var(--tile)) 14px repeat(4, var(--tile))}.ex .word-tag{color:var(--ink-soft);margin:2px 0 0;font-size:12px}.ex .tile{cursor:pointer}.tone-demo{gap:4px;display:flex}.ex .tile.sel .face{outline:2.5px solid var(--ink);outline-offset:1px}.ex-note{background:color-mix(in srgb, var(--paper) 70%, transparent);border-radius:6px;min-height:3.4em;margin:6px 0 4px;padding:8px 10px;font-size:13.5px;line-height:1.6}.legend{grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;margin-top:4px;font-size:13.5px;display:grid}.legend .tile{--tile:26px;font-size:13px}.rule-list{margin:0;padding-left:1.2em;font-size:14px;line-height:1.75}.rule-list li+li{margin-top:2px}kbd{font-family:var(--sans);background:var(--key);border-radius:4px;padding:1px 5px;font-size:12px}.verdict{justify-content:space-between;align-items:baseline;gap:10px;padding-right:40px;display:flex}.verdict .sub{color:var(--ink-soft);font-size:12.5px}.answer{justify-content:center;gap:18px;padding:14px 0 8px;display:flex}.han{align-items:center;gap:2px;display:flex}.han .ch{font-family:var(--serif);font-size:56px;font-weight:900;line-height:1}.han .zy{flex-direction:column;align-items:center;padding-right:9px;font-size:14px;line-height:1.12;display:flex;position:relative}.han .zy .tm{font-size:14px;position:absolute;right:-1px}.han .zy .tm.t5{order:-1;padding-right:0;line-height:.8;position:static}.meaning{color:var(--ink-soft);text-align:center;text-wrap:balance;margin:0 0 6px;font-size:14.5px}.stats{text-align:center;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:6px;display:grid}.stats b{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:26px;font-weight:900;display:block}.stats span{color:var(--ink-soft);font-size:11.5px}.dist{gap:4px;display:grid}.dist .bar-row{font-variant-numeric:tabular-nums;grid-template-columns:14px 1fr;align-items:center;gap:6px;font-size:12.5px;display:grid}.dist .bar{box-sizing:border-box;min-width:22px;color:var(--on-color);text-align:right;background:var(--miss);border-radius:3px;padding:3px 7px;font-size:12px;font-weight:700}.dist .bar.now{background:var(--ok)}.share-box{gap:10px;margin-top:16px;display:grid}.share-text{font-family:var(--sans);white-space:pre;-webkit-user-select:all;user-select:all;background:var(--paper);border-radius:6px;margin:0;padding:10px 12px;font-size:13px;line-height:1.35;overflow-x:auto}.btns{flex-wrap:wrap;gap:8px;display:flex}.sheet>.btns,.sheet>.step>.btns{margin-top:16px}.btn{height:46px;font:700 15px/1 var(--sans);color:var(--on-color);letter-spacing:.12em;cursor:pointer;background:var(--seal);border:0;border-radius:8px;flex:140px}.btn-label{animation:.22s ease-out labelIn;display:inline-block}@keyframes labelIn{0%{opacity:0;transform:translateY(4px)}}.btn:disabled{cursor:default;opacity:.45}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);background:0 0}.link-btn{height:44px;font:500 14px/1 var(--sans);color:var(--ink-soft);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;margin:4px auto 0;padding:0 12px;display:block}.step{animation:.2s ease-out labelIn}.qr{border-radius:6px;width:min(100%,360px);height:auto;margin:4px auto 12px;display:block}.scan-view{aspect-ratio:1;background:#000;border-radius:8px;margin-bottom:10px;position:relative;overflow:hidden}.scan-view video{object-fit:cover;width:100%;height:100%}.scan-frame{pointer-events:none;background:linear-gradient(var(--seal), var(--seal)) top left / 22px 3px no-repeat, linear-gradient(var(--seal), var(--seal)) top left / 3px 22px no-repeat, linear-gradient(var(--seal), var(--seal)) top right / 22px 3px no-repeat, linear-gradient(var(--seal), var(--seal)) top right / 3px 22px no-repeat, linear-gradient(var(--seal), var(--seal)) bottom left / 22px 3px no-repeat, linear-gradient(var(--seal), var(--seal)) bottom left / 3px 22px no-repeat, linear-gradient(var(--seal), var(--seal)) bottom right / 22px 3px no-repeat, linear-gradient(var(--seal), var(--seal)) bottom right / 3px 22px no-repeat;position:absolute;inset:12%;box-shadow:0 0 0 100vmax #00000059}.scan-msg{text-align:center}.xfer-error{color:var(--err)}.paste-label{margin-bottom:6px;font-size:14px;display:block}.paste-box{box-sizing:border-box;width:100%;color:var(--ink);word-break:break-all;resize:vertical;background:var(--paper);border:1px solid var(--rule);border-radius:6px;margin-bottom:10px;padding:8px 10px;font:13px/1.5 ui-monospace,monospace}.xfer-compare{border-collapse:collapse;width:100%;margin-bottom:10px;font-size:13.5px}.xfer-compare th,.xfer-compare td{font-variant-numeric:tabular-nums;text-align:right;border-bottom:1px solid color-mix(in srgb, var(--rule) 60%, transparent);padding:6px 4px}.xfer-compare thead th{color:var(--ink-soft);font-weight:700}.xfer-compare tbody th{text-align:left;font-weight:500}.xfer-compare td:nth-child(2){color:var(--ink-soft)}.xfer-compare td:nth-child(3){color:var(--ink);font-weight:700}.next-in{font-variant-numeric:tabular-nums;color:var(--ink-soft);text-align:center;margin-top:4px;font-size:13px}.skeleton,.board.loading .tile .face{background:var(--key) linear-gradient(90deg, transparent, var(--key-hi), transparent) no-repeat;background-size:50% 100%;border-radius:3px;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:200% 0}}.stats .skeleton{vertical-align:-.05em;width:1.3em;height:.85em;display:inline-block}.dist .skeleton{box-sizing:border-box;min-width:22px;padding:3px 0;font-size:12px}.qr.skeleton{aspect-ratio:1;border-radius:6px}.xfer-compare .skeleton{vertical-align:-.1em;width:2.4em;height:.9em;display:inline-block}.issue .skeleton{vertical-align:-.1em;width:11.5em;height:.9em;display:inline-block}.board.loading .tile .face{border-color:#0000}.board.loading .tile .face:before,.board.loading .tile .face:after{opacity:0}.scan-view.opening{background:#000 linear-gradient(90deg,#0000,#ffffff14,#0000) 0 0/50% 100% no-repeat;animation:1.4s ease-in-out infinite shimmer}.sr{white-space:nowrap;clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}@media (width>=560px){.app{padding-block:18px 16px}h1{font-size:28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}.skeleton,.board.loading .tile .face,.scan-view.opening{background-image:none;animation:none}.stamp.on{opacity:.92;transform:scale(1)rotate(-9deg)}}.setting-list{gap:8px;display:grid}.setting-item{background:var(--paper);border-radius:8px;padding:14px 14px 12px}.setting-title{letter-spacing:.06em;font-size:15px;font-weight:700}.sheet .setting-desc{color:var(--ink-soft);margin:4px 0 12px;font-size:13px;line-height:1.6}.setting-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.setting-actions .btn{height:44px;font-size:14px}.setting-actions .btn[aria-pressed=true]{color:var(--paper);background:var(--ink)}.setting-title+.setting-actions{margin-top:12px}
