@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{color-scheme:light;--paper: #f5efe2;--paper-2: #ede5d2;--paper-3: #e6dcc4;--card: #fbf7ec;--ink: #1a1714;--ink-2: #4a423b;--ink-3: #7a7065;--ink-4: #a89e91;--rule: #d8cdb6;--rule-2: #c2b69b;--accent: #4f46e5;--accent-soft: #e6e4ff;--black-stone: #15141a;--white-stone: #fafaf7;--good: #66c99a;--good-soft: #e2f5ea;--excellent: #22a06b;--excellent-soft: #a6dfc1;--ok: #8a7e6a;--ok-soft: #ece4d2;--inacc: #c97b14;--inacc-soft: #f9e8cc;--mistake: #d97240;--mistake-soft: #f7dccd;--blunder: #c0392b;--blunder-soft: #f5cdc7;--best: #4f46e5;--best-soft: #e0deff;--dragon: #b5651d;--winrate-b: #2a2520;--winrate-w: #ffffff;--shadow: 0 1px 0 rgba(26,23,20,.04), 0 8px 24px -12px rgba(26,23,20,.18);--shadow-lg: 0 2px 0 rgba(26,23,20,.05), 0 24px 48px -20px rgba(26,23,20,.22);--app-bg: var(--paper);--app-panel: var(--card);--app-muted: var(--paper-2);--app-border: var(--rule);--app-border-strong: var(--rule-2);--app-text: var(--ink);--app-text-soft: var(--ink-2);--app-text-muted: var(--ink-3);--app-accent: var(--accent);--app-accent-hover: #3a32c6;--app-grid-bg: linear-gradient(90deg, rgba(26,23,20,.04) 1px, transparent 1px), linear-gradient(180deg, rgba(26,23,20,.04) 1px, transparent 1px)}[data-theme=dark]{color-scheme:dark;--paper: #15120e;--paper-2: #1d1a14;--paper-3: #25201a;--card: #1b1814;--ink: #f5f5f5;--ink-2: #d4d4d4;--ink-3: #a3a3a3;--ink-4: #7a7a7a;--rule: #36302a;--rule-2: #4a4238;--accent: #8a83ff;--accent-soft: #2b275a;--black-stone: #0a090d;--white-stone: #fafaf7;--good: #66c99a;--good-soft: #223d31;--excellent: #22a06b;--excellent-soft: #1d3a2c;--ok: #a89e84;--ok-soft: #2a2519;--inacc: #c97b14;--inacc-soft: #3a2c14;--mistake: #d97240;--mistake-soft: #3d211a;--blunder: #c0392b;--blunder-soft: #3d1c19;--best: #8a83ff;--best-soft: #2c2854;--dragon: #e0a85a;--winrate-b: #0e0c08;--winrate-w: #ffffff;--shadow: 0 1px 0 rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.55);--shadow-lg: 0 2px 0 rgba(0,0,0,.45), 0 24px 48px -20px rgba(0,0,0,.6);--app-accent-hover: #a59fff;--app-grid-bg: linear-gradient(90deg, rgba(245,239,226,.05) 1px, transparent 1px), linear-gradient(180deg, rgba(245,239,226,.05) 1px, transparent 1px)}[data-theme=dark] .sbUpload:hover,[data-theme=dark] .primaryBtn:hover{background:#d9d0b9}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:IBM Plex Sans,IBM Plex Sans SC,PingFang SC,Noto Sans SC,system-ui,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;overflow:hidden}#root{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.serif{font-family:"Source Serif 4","Noto Serif SC",Georgia,serif;font-feature-settings:"kern","liga"}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.scroll::-webkit-scrollbar{width:10px;height:10px}.scroll::-webkit-scrollbar-thumb{background:var(--rule);border-radius:8px;border:2px solid var(--paper)}.scroll::-webkit-scrollbar-thumb:hover{background:var(--rule-2)}.scroll::-webkit-scrollbar-track{background:transparent}.sabaki-board{flex:0 0 auto;max-width:100%;max-height:100%}.sabaki-board.shudan-goban{--shudan-board-border-width: .18em;--shudan-board-border-color: #c5a25c;--shudan-board-background-color: #e8d9a8;--shudan-board-foreground-color: #5a4520;--shudan-black-background-color: #15141a;--shudan-black-foreground-color: #fafaf7;--shudan-white-background-color: #fafaf7;--shudan-white-foreground-color: #1a1714;box-shadow:none}.sabaki-board .shudan-vertex .shudan-paint{z-index:1!important}.mini-goban.shudan-goban{box-shadow:none;--shudan-board-background-color: #e8d9a8;--shudan-board-border-color: #e8d9a8;--shudan-board-foreground-color: #5a4520;--shudan-board-border-width: .08em}.homeApp{display:grid;grid-template-columns:auto minmax(0,1fr);height:100vh;width:100vw}.mainArea{background:var(--paper);min-height:0;overflow:hidden;display:flex;flex-direction:column}.leftRail{position:relative;width:64px;background:var(--paper-2);border-right:1px solid var(--rule);display:flex;flex-direction:column;padding:14px 10px;gap:12px;transition:width .15s ease,padding .15s ease}.leftRail.expanded{width:220px;padding:18px 14px 14px;gap:14px}.lrBrand{display:flex;align-items:center;gap:10px;padding:0 4px;min-height:32px;justify-content:center}.leftRail.expanded .lrBrand{justify-content:flex-start;padding:0 4px 4px}.brandMark{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f4ecd8;border:1px solid #3a2c1e22;border-radius:8px;flex-shrink:0}.brandName{font-size:18px;font-weight:600;line-height:1}.brandTag{font-size:11px;letter-spacing:.14em;color:var(--ink-3);margin-top:3px}.lrBrandText{display:none;line-height:1}.leftRail.expanded .lrBrandText{display:block}.lrToggle{position:absolute;top:18px;right:-11px;z-index:4;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--paper);border:1px solid var(--rule);border-radius:50%;color:var(--ink-3);cursor:pointer;box-shadow:0 1px 2px #0000000f;padding:0}.lrToggle:hover{color:var(--ink)}.lrLabel{white-space:nowrap}.leftRail.collapsed .lrLabel{display:none}.lrNav{display:flex;flex-direction:column;gap:2px}.lrItem{display:flex;align-items:center;gap:10px;padding:8px 10px;background:transparent;border:0;border-radius:7px;color:var(--ink-2);font-size:15px;text-align:left;cursor:pointer;transition:background .1s,color .1s}.lrItem:hover{background:var(--card);color:var(--ink)}.lrItem[data-active=true]{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule)}.leftRail.collapsed .lrItem{justify-content:center;padding:9px 0}.lrCount{margin-left:auto;font-size:12px;color:var(--ink-3);background:var(--paper);padding:2px 7px;border-radius:10px;border:1px solid var(--rule)}.lrCount.badge{background:var(--accent);color:var(--paper);border-color:var(--accent)}.leftRail.collapsed .lrCount{display:none}.lrSpacer{flex:1}.lrStreak{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border:1px solid var(--rule);border-radius:9px}.lrStreakIcon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--mistake-soft);color:var(--mistake);border-radius:7px;flex-shrink:0}.lrStreakText{line-height:1.2}.lrStreakNum{font-size:14px;font-weight:600;line-height:1.1}.lrStreakSub{font-size:12px;color:var(--ink-3);margin-top:2px}.leftRail.collapsed .lrStreak{justify-content:center;padding:8px}.leftRail.collapsed .lrStreakText{display:none}.lrUser{display:flex;align-items:center;gap:10px;padding:6px;min-width:0}.lrUserName{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lrSignOut{flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--rule);border-radius:7px;color:var(--ink-3);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.lrSignOut:hover{color:var(--ink);border-color:var(--rule-2);background:var(--card)}.leftRail.collapsed .lrSignOut{display:none}.playerStone{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"Source Serif 4",serif;font-size:12px;font-weight:600;flex-shrink:0}.playerStone[data-color=b]{background:radial-gradient(circle at 35% 30%,#3a3640,#1a1820 50%,#0a090d);color:var(--white-stone);box-shadow:0 1px 2px #0000004d}.playerStone[data-color=w]{background:radial-gradient(circle at 35% 30%,#fff,#f0eadb 60%,#cfc5a8);color:var(--black-stone);box-shadow:0 1px 2px #00000026,inset 0 0 0 1px #0000000d}.lrUserText{line-height:1.2;min-width:0;flex:1}.lrUserText .serif{font-size:14px;font-weight:600}.lrUserRank{font-size:12px;color:var(--ink-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leftRail.collapsed .lrUser{justify-content:center;padding:6px 0}.leftRail.collapsed .lrUserText{display:none}.viewWrap{display:flex;flex-direction:column;min-height:0;flex:1;padding:24px 32px 0;gap:18px}.viewHead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.viewTitle{font-size:30px;font-weight:600;margin:0;line-height:1.1;letter-spacing:-.01em}.viewSub{color:var(--ink-3);font-size:14px;margin-top:4px}.viewActions{display:inline-flex;align-items:center;gap:10px}.primaryBtn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;background:var(--ink);color:var(--paper);border:0;border-radius:8px;font-weight:600;font-size:14px;box-shadow:var(--shadow);transition:transform .1s,background .1s}.primaryBtn:hover{background:#2a2520;transform:translateY(-1px)}.primaryBtn:disabled{opacity:.4;cursor:not-allowed;transform:none}.ghostBtn{padding:9px 14px;background:transparent;border:1px solid var(--rule);border-radius:8px;color:var(--ink-2);font-weight:500;font-size:14px}.ghostBtn:hover{background:var(--card);color:var(--ink)}.filterBar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:4px;border-bottom:1px solid var(--rule)}.filterGroup{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--ink-3);font-size:14px;font-weight:500;transition:all .12s}.chip:hover{color:var(--ink);background:var(--card)}.chip[data-active=true]{color:var(--ink);background:var(--card);border-color:var(--rule)}.chipCount{font-size:12px;background:var(--paper-2);padding:1px 6px;border-radius:10px;color:var(--ink-3)}.chip[data-active=true] .chipCount{background:var(--paper)}.filterRight{display:flex;align-items:center;gap:8px}.sortLabel{font-size:13px;color:var(--ink-3)}.sortSelect{padding:6px 28px 6px 10px;background:var(--card);border:1px solid var(--rule);border-radius:7px;color:var(--ink);font-size:14px;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 14px) 13px,calc(100% - 9px) 13px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.reviewGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:4px 4px 24px 0;overflow-y:auto;flex:1;min-height:0;align-content:start}@media(max-width:1100px){.reviewGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.reviewGrid{grid-template-columns:minmax(0,1fr)}}.reviewCard{position:relative;width:100%;min-width:0;background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:14px;display:grid;grid-template-rows:96px 46px 48px 22px;gap:10px;cursor:pointer;transition:border-color .12s,transform .12s,box-shadow .12s;text-align:left}.rcDeleteBtn{position:absolute;top:8px;right:8px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:var(--paper);border:1px solid var(--rule);border-radius:6px;color:var(--ink-3);cursor:pointer;opacity:0;transition:opacity .12s,color .12s,border-color .12s,background .12s;z-index:1}.reviewCard:hover .rcDeleteBtn,.reviewCard:focus-within .rcDeleteBtn,.rcDeleteBtn:focus-visible{opacity:1}.rcDeleteBtn:hover{color:var(--blunder, #c0392b);border-color:var(--blunder, #c0392b)}.rcDeleteBtn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.rcStarBtn{position:absolute;top:8px;right:38px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:var(--paper);border:1px solid var(--rule);border-radius:6px;color:var(--ink-3);cursor:pointer;opacity:0;transition:opacity .12s,color .12s,border-color .12s,background .12s;z-index:1}.reviewCard:hover .rcStarBtn,.reviewCard:focus-within .rcStarBtn,.rcStarBtn:focus-visible{opacity:1}.rcStarBtn:hover{color:#c8962a;border-color:#c8962a}.rcStarBtn[data-starred=true]{opacity:1;color:#c8962a;background:transparent;border-color:transparent}.reviewCard:hover .rcStarBtn[data-starred=true],.rcStarBtn[data-starred=true]:hover,.rcStarBtn[data-starred=true]:focus-visible{background:var(--paper);border-color:#c8962a}.rcStarBtn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.reviewCard:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.reviewCard:hover{border-color:var(--rule-2);transform:translateY(-1px);box-shadow:var(--shadow)}.rcTop{display:flex;align-items:center;gap:22px;min-height:0;min-width:0}.rcThumb{position:relative;flex-shrink:0;width:80px;height:80px;border-radius:8px;overflow:hidden;border:1px solid var(--rule)}.boardThumb{display:block;width:100%;height:100%}.rcWinMark{position:absolute;top:45px;right:10px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;border:2px solid var(--good);color:var(--good);box-shadow:0 1px 2px #1a17142e;pointer-events:none;z-index:2;font-size:18px;font-weight:700;line-height:1}.rcWinMark:lang(en){font-size:12px;letter-spacing:.2px}.rcMeta{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.rcMatchupRow{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}.rcSide{min-width:52px;flex:0 1 auto;display:inline-flex;align-items:center;gap:6px;font-size:15px}.rcSide .serif{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:200px}.stoneDot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.stoneDot[data-c=b]{background:radial-gradient(circle at 35% 30%,#3a3640,#1a1820 50%,#0a090d)}.stoneDot[data-c=w]{background:radial-gradient(circle at 35% 30%,#fff,#f0eadb 60%,#cfc5a8);border:1px solid var(--rule-2)}.rcRank{font-size:11px;background:var(--paper);padding:1px 5px;border-radius:3px;color:var(--ink-3);font-weight:600}.vs{font-style:italic;color:var(--ink-3);font-size:13px;flex-shrink:0}.rcResultRow{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;overflow:hidden}.resultBadge{font-size:13px;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0}.resultBadge[data-won=y]{color:var(--good);background:var(--good-soft)}.resultBadge[data-won=n],.resultBadge[data-won="?"]{color:var(--ink-3);background:var(--paper-2)}.rcDot{color:var(--ink-4);font-size:12px;flex-shrink:0}.rcMoves,.rcDate{font-size:13px;color:var(--ink-3);white-space:nowrap;flex-shrink:0}.rcEvent,.rcPlayedAt{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rcPlayedAt{margin-top:2px}.rcReviewedAt{font-size:11px;color:var(--ink-3);white-space:nowrap;flex-shrink:0}.rcQuality{display:flex;flex-direction:column;gap:5px;align-self:start;margin-top:12px}.rcQualityBar{display:flex;height:6px;background:var(--rule);border-radius:3px;overflow:hidden}.rcqSeg{display:block;height:100%}.rcqSeg+.rcqSeg{border-left:1px solid var(--card)}.rcqSeg.rcq_excellent{background:var(--excellent)}.rcqSeg.rcq_good{background:var(--good)}.rcqSeg.rcq_slip{background:var(--inacc)}.rcqSeg.rcq_mistake{background:var(--mistake)}.rcqSeg.rcq_blunder{background:var(--blunder)}.rcQualityLegend{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;font-weight:600}.rcqNum.rcq_excellent{color:var(--excellent)}.rcqNum.rcq_good{color:var(--good)}.rcqNum.rcq_slip{color:var(--inacc)}.rcqNum.rcq_mistake{color:var(--mistake)}.rcqNum.rcq_blunder{color:var(--blunder)}.rcProgress{gap:5px}.rcProgressHead{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--ink-3);font-weight:600}.rcProgressBar{height:6px;background:var(--rule);border-radius:3px;overflow:hidden}.rcProgressFill{display:block;height:100%;background:#3b82f6;border-radius:3px;transition:width .3s ease}.rcNote{font-size:14px;color:var(--ink-2);line-height:1.4;padding-left:10px;border-left:2px solid var(--rule-2);font-style:italic;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;align-self:center}.rcNote[data-empty=true]{border-left-color:transparent}.rcNoteQuote{color:var(--ink-4);font-size:18px;margin-right:2px;font-style:normal}.rcFooter{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:0;min-width:0}.rcFooterRight{display:flex;align-items:center;gap:6px;flex-shrink:0}.rcTags{display:flex;gap:5px;flex-wrap:nowrap;min-width:0;overflow:hidden}.rcTag{font-size:11px;padding:2px 7px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-3);white-space:nowrap;flex-shrink:0}.statusPill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:10px;font-size:12px;font-weight:600}.statusPill[data-status=reviewed]{color:var(--good);background:var(--good-soft)}.statusPill[data-status=new]{color:var(--accent);background:var(--accent-soft)}.statusPill[data-status=failed]{color:var(--blunder);background:var(--blunder-soft)}.statusPill[data-status=in_progress]{color:var(--ink-2);background:var(--paper);border:1px solid var(--rule);padding:2px 8px}.statusPill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.modeBadge{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:10px;font-size:12px;font-weight:600;font-family:inherit;white-space:nowrap;color:var(--ink-2);background:var(--paper);border:1px solid var(--rule);cursor:default}button.modeBadge{cursor:pointer}button.modeBadge:hover{color:var(--ink);border-color:var(--rule-2)}.modeBadge[data-active=true]{color:var(--blunder);border-color:var(--blunder)}.modeBadge[data-mode=lead_loss]{color:var(--mistake);border-color:var(--mistake-soft)}.dyingGroupBox{position:absolute;pointer-events:none;z-index:4;border:3px solid var(--blunder);border-radius:10px}.progressTrack{width:40px;height:4px;background:var(--rule);border-radius:2px;overflow:hidden}.progressFill{height:100%;background:var(--accent)}.rcKebab{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:6px;color:var(--ink-4)}.rcKebab:hover{background:var(--paper);color:var(--blunder)}.emptyState{padding:60px 24px;text-align:center;color:var(--ink-3);font-size:16px;font-style:italic;background:var(--card);border:1px dashed var(--rule-2);border-radius:12px}.emptyTitle{font-size:18px;font-weight:600;color:var(--ink);font-style:normal}.emptyBody{font-size:14px;margin-top:6px}.modalScrim{position:fixed;inset:0;background:#1a171473;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--paper);border:1px solid var(--rule);border-radius:14px;width:min(560px,92vw);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:92vh;overflow:hidden auto}.modalHead{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 14px;gap:16px}.modalTitle{font-size:20px;font-weight:600;margin:0;line-height:1.2}.modalSub{font-size:13px;color:var(--ink-3);margin-top:4px}.iconBtnLg{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:7px;color:var(--ink-3)}.iconBtnLg:hover{background:var(--card);color:var(--ink)}.dropzone{margin:0 22px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;padding:16px 20px;background:var(--card);border:1.5px dashed var(--rule-2);border-radius:10px;cursor:pointer;transition:border-color .12s,background .12s}.dropzone[data-drag=true]{border-color:var(--accent);background:var(--accent-soft)}.dropzone[data-has=true]{border-color:var(--good);background:var(--good-soft);border-style:solid}.dropIcon{color:var(--ink-3);flex-shrink:0;display:flex}.dropzone[data-has=true] .dropIcon{color:var(--good)}.dropText{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;text-align:center}.dropTitle{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropSub{font-size:12px;color:var(--ink-3)}.dropzone input[type=file]{display:none}.linkPane{padding:18px 22px 4px;display:flex;flex-direction:column;gap:8px}.linkPaneHead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.uploadSectionLabel{display:block;font-size:13px;line-height:1.2;font-weight:500;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.linkField{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--card);border:1.5px solid var(--rule);border-radius:10px;color:var(--ink-3);transition:border-color .12s,background .12s,color .12s}.linkField:focus-within{border-color:var(--ink);background:var(--paper);color:var(--ink-2)}.linkField[data-has=true]{border-color:var(--rule-2)}.linkField[data-error=true]{border-color:var(--blunder);color:var(--blunder)}.linkInput{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:14px;color:var(--ink)}.linkInput::placeholder{color:var(--ink-3)}.linkClear{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;background:transparent;border:0;border-radius:6px;color:var(--ink-3);cursor:pointer}.linkClear:hover{background:var(--paper-2);color:var(--ink)}.linkHint{font-size:12px;color:var(--ink-3);line-height:1.4}.uploadMethodDivider{height:1px;margin:14px 22px 12px;background:var(--rule)}.uploadFileLabel{margin:0 22px 8px}.modalOptions{padding:16px 22px 4px;display:flex;flex-direction:column;gap:12px}.sidePicker{display:flex;gap:6px}.sideOpt{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;background:var(--card);border:1px solid var(--rule);border-radius:8px;color:var(--ink-2);font-size:14px;transition:all .12s}.sideOpt:hover{border-color:var(--rule-2);color:var(--ink)}.sideOpt[data-active=true]{background:var(--paper);border-color:var(--ink);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.sideStone{width:14px;height:14px;border-radius:50%;flex-shrink:0}.sideStone[data-c=b]{background:radial-gradient(circle at 35% 30%,#3a3640,#1a1820 50%,#0a090d)}.sideStone[data-c=w]{background:radial-gradient(circle at 35% 30%,#fff,#f0eadb 60%,#cfc5a8);border:1px solid var(--rule-2)}.modalOptRow{display:flex;align-items:center;justify-content:space-between;gap:12px}.modalOptLabel{font-size:13px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.segBtns{display:flex;gap:4px;background:var(--paper-2);padding:3px;border-radius:8px;border:1px solid var(--rule)}.seg{padding:5px 11px;background:transparent;border:0;border-radius:5px;color:var(--ink-3);font-size:13px;font-weight:500;cursor:pointer;transition:color .12s,background .12s,box-shadow .12s}.seg:hover:not([data-active=true]):not(:disabled){color:var(--ink-2);background:var(--paper)}.seg[data-active=true]{background:var(--ink);color:var(--paper);font-weight:600;box-shadow:0 1px 2px #0000001f}.seg:disabled{opacity:.4;cursor:not-allowed}[data-theme=dark] .segBtns{background:var(--paper);border-color:var(--rule-2)}[data-theme=dark] .seg:hover:not([data-active=true]):not(:disabled){background:var(--paper-2)}.modalFoot{margin-top:14px;padding:14px 22px;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;background:var(--paper-2);flex-wrap:wrap;gap:8px}.modalFootHint{font-size:13px;color:var(--ink-3)}.modalFootHint[data-tone=error]{color:var(--blunder)}.modalFootBtns{display:flex;gap:8px}.appShell{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:100vh;width:100vw}.appShell .app{height:100%;width:100%;min-height:0;min-width:0}.app{display:grid;grid-template-rows:52px 1fr;height:100vh;width:100vw}.app .main{display:grid;grid-template-columns:minmax(0,1fr) clamp(420px,38vw,760px);min-height:0;overflow:hidden}.boardCol{background:var(--paper);display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;overflow:hidden;padding:14px 8px;position:relative}.kmOverlay{position:absolute;inset:0;pointer-events:none;z-index:5}.kmSvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transition:opacity .3s ease-out}.kmSvgFading{opacity:0}.km-ring{fill:none;stroke:var(--km-color);stroke-width:2.5;vector-effect:non-scaling-stroke;animation:kmRingIn .26s cubic-bezier(.2,.7,.3,1) both}@keyframes kmRingIn{0%{opacity:0;transform:scale(.62)}to{opacity:1;transform:scale(1)}}.km-ring-static{animation:kmRingFade .2s ease-out both}@keyframes kmRingFade{0%{opacity:0}to{opacity:1}}.km-pulse{fill:none;stroke:var(--km-color);stroke-width:2.5;vector-effect:non-scaling-stroke;animation:kmPulse var(--km-dur) ease-in-out infinite}@keyframes kmPulse{0%{opacity:var(--km-op-peak);transform:scale(1)}50%{opacity:0;transform:scale(var(--km-r-max))}to{opacity:var(--km-op-peak);transform:scale(1)}}@media(prefers-reduced-motion:reduce){.km-ring{animation-duration:.12s}.km-pulse{display:none}}.territoryIconLayer{position:absolute;inset:0;pointer-events:none;z-index:4}.tIcon{position:absolute;overflow:visible}.tIcon--onBlack{color:#f4ead2}.tIcon--onWhite{color:#1a1714}.tIcon--ownerBlack{color:#14110e}.tIcon--ownerWhite{color:#fffaef}.tIcon--neutral{color:#14110e}.sabaki-board .shudan-vertex.shudan-sign_0.shudan-ghost_1 .shudan-ghost,.sabaki-board .shudan-vertex.shudan-sign_0.shudan-ghost_-1 .shudan-ghost{left:4%;top:4%;width:92%;height:92%;opacity:.92;transform:none;border-radius:50%;box-shadow:0 0 0 .05em var(--accent),0 0 0 .15em #4f46e547}.sabaki-board .shudan-vertex.shudan-sign_0.shudan-ghost_1 .shudan-ghost:before,.sabaki-board .shudan-vertex.shudan-sign_0.shudan-ghost_-1 .shudan-ghost:before{display:none}.sabaki-board .shudan-vertex.shudan-sign_0.shudan-ghost_1 .shudan-ghost{background:radial-gradient(circle at 35% 30%,#3a3640,#1a1820 50%,#0a090d)}.sabaki-board .shudan-vertex.shudan-sign_0.shudan-ghost_-1 .shudan-ghost{background:radial-gradient(circle at 35% 30%,#fff,#f0eadb 60%,#cfc5a8)}.sabaki-board .shudan-vertex.shudan-sign_0.shudan-ghost_1 .shudan-marker,.sabaki-board .shudan-vertex.shudan-sign_0.shudan-ghost_-1 .shudan-marker{z-index:2!important}.shudan-vertex.shudan-ghost_1.shudan-marker_label .shudan-marker,.shudan-vertex.shudan-ghost_-1.shudan-marker_label .shudan-marker,.shudan-vertex.shudan-sign_1.shudan-marker_label .shudan-marker,.shudan-vertex.shudan-sign_-1.shudan-marker_label .shudan-marker{background:transparent;font-family:JetBrains Mono,ui-monospace,monospace;font-weight:700;font-size:.4em}.shudan-vertex.shudan-sign_0.shudan-ghost_1.shudan-marker_label .shudan-marker{color:#fff;text-shadow:0 0 1px rgba(0,0,0,.6)}.shudan-vertex.shudan-sign_0.shudan-ghost_-1.shudan-marker_label .shudan-marker{color:#000;text-shadow:0 0 1px rgba(255,255,255,.6)}.sabaki-board .shudan-vertex.shudan-smalllabel.shudan-marker_label .shudan-marker{font-size:.34em;max-width:92%;max-height:92%}.panelCol{min-height:0;overflow:hidden;padding:var(--board-vmargin, 14px) 8px;background:var(--paper)}@media(max-width:1100px){.app .main{grid-template-columns:minmax(0,1fr) clamp(340px,36vw,460px)}.boardCol{padding:14px 4px}.panelCol{padding:var(--board-vmargin, 14px) 4px}.leftRail.expanded{width:64px;padding:14px 10px;gap:12px}.leftRail.expanded .lrBrand{justify-content:center;padding:0 4px}.leftRail.expanded .lrBrandText,.leftRail.expanded .lrLabel,.leftRail.expanded .lrCount,.leftRail.expanded .lrStreakText,.leftRail.expanded .lrUserText{display:none}.leftRail.expanded .lrItem{justify-content:center;padding:9px 0}.leftRail.expanded .lrStreak{justify-content:center;padding:8px}.leftRail.expanded .lrUser{justify-content:center;padding:6px 0}.lrToggle{display:none}}@media(max-width:900px){.app .main{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(240px,52vh) minmax(0,1fr)}.boardCol{padding:10px 4px}.panelCol{padding:6px 8px 14px;border-top:1px solid var(--rule)}.topbar{padding:0 12px;gap:10px}.gameMeta{gap:10px}}.topbar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(auto,1fr);align-items:center;gap:16px;padding:0 18px;background:var(--paper);border-bottom:1px solid var(--rule);height:100%}.gameMeta{grid-column:2;min-width:0;display:flex;align-items:center;gap:16px;flex-wrap:nowrap}.topRight{grid-column:3;justify-self:end;display:flex;align-items:center;gap:8px;white-space:nowrap}.gameMeta .vs{font-size:14px}.metaSep{width:1px;height:26px;background:var(--rule);margin:0 4px;flex-shrink:0}.metaInfo{line-height:1.3;min-width:0}.metaInfoLine{font-size:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metaInfoLine.small{font-size:12px}.playerChip{display:flex;align-items:center;gap:10px;min-width:0;flex-shrink:0}.playerChip .playerStone{width:26px;height:26px;font-size:12px}.playerInfo{line-height:1.2;min-width:0}.playerName{font-size:15px;font-weight:600;min-width:0;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playerMeta{display:flex;gap:8px;align-items:center;margin-top:1px}.playerRank{font-size:11px;color:var(--ink-3);background:var(--card);padding:1px 5px;border-radius:3px;font-weight:600}.playerCap{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-3)}.capDot{width:7px;height:7px;border-radius:50%;background:var(--black-stone)}.capDot[data-color=w]{background:var(--white-stone);border:1px solid var(--rule-2)}.topRight{display:flex;align-items:center;gap:8px}.topRight .ghostBtn{padding:6px 11px;font-size:13px}.starToggleBtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--rule);border-radius:8px;color:var(--ink-3);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.starToggleBtn:hover{color:#c8962a;border-color:#c8962a;background:var(--card)}.starToggleBtn[data-starred=true]{color:#c8962a;background:transparent;border-color:transparent}.starToggleBtn[data-starred=true]:hover,.starToggleBtn[data-starred=true]:focus-visible{background:var(--card);border-color:#c8962a}.starToggleBtn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.userAvatar{background:linear-gradient(135deg,var(--accent),#6a3aa3);color:#fff;border:1px solid var(--rule);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;font-family:"Source Serif 4",serif;font-size:12px;font-weight:700;box-shadow:0 1px 2px #0000001f,inset 0 1px #ffffff2e;transition:transform .12s,box-shadow .12s}.userAvatar:hover{transform:translateY(-1px);box-shadow:0 3px 8px #00000026,inset 0 1px #ffffff40}.rp{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--paper);border:1px solid var(--rule);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000d}.rpToggles{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;background:var(--paper);border-bottom:1px solid var(--rule)}.modeSeg{display:flex;flex:0 0 auto;background:var(--paper-2);border:1px solid var(--rule);border-radius:8px;padding:3px;gap:1px}.modeSeg button{background:transparent;border:0;padding:5px 12px;border-radius:5px;font-size:13px;font-weight:500;color:var(--ink-3);display:inline-flex;align-items:center;gap:5px;transition:color .12s,background .12s,box-shadow .12s}.modeSeg button:hover:not([data-active=true]){color:var(--ink-2);background:var(--paper)}.modeSeg button[data-active=true]{background:var(--ink);color:var(--paper);font-weight:600;box-shadow:0 1px 2px #0000001f}[data-theme=dark] .modeSeg{background:var(--paper);border-color:var(--rule-2)}[data-theme=dark] .modeSeg button:hover:not([data-active=true]){background:var(--paper-2)}.rpTerritoryBtn{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap;padding:5px 11px;background:var(--card);border:1px solid var(--rule);color:var(--ink-2);border-radius:7px;font-size:13px;font-weight:500;transition:all .12s}.rpTerritoryBtn:hover{color:var(--ink);border-color:var(--rule-2)}.rpTerritoryBtn[data-active=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.rpTerritoryBtn:disabled{opacity:.45;cursor:not-allowed}.rpTerritoryBtn:disabled:hover{color:var(--ink-2);border-color:var(--rule)}.rpTerritoryControls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:1 1 auto;min-width:0;margin-left:auto}.boardEstimate{position:absolute;top:var(--board-vmargin, 14px);left:50%;transform:translate(-50%);z-index:7;display:inline-flex;align-items:center;gap:9px;padding:8px 20px;border:1px solid color-mix(in srgb,var(--accent),var(--rule) 58%);border-radius:999px;background:color-mix(in srgb,var(--accent-soft),var(--paper) 80%);box-shadow:0 2px 10px #00000024;color:var(--ink);font-size:15px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.2;white-space:nowrap;pointer-events:none}.boardEstimate .rpTerritoryStone{width:12px;height:12px;flex:0 0 12px}.rpTerritoryStone{width:10px;height:10px;flex:0 0 10px;border-radius:50%;box-shadow:0 1px 1px #0000002e}.rpTerritoryStone--B{background:#15110d;border:1px solid #15110d}.rpTerritoryStone--W{background:#fffaf0;border:1px solid rgba(30,24,16,.35)}.rpBody{flex:1;min-height:0;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:18px}.rpSec{display:flex;flex-direction:column;gap:10px}.rpSecKicker{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.playbar{display:flex;flex-direction:column;gap:8px;padding:10px 14px;background:var(--paper);container-type:inline-size;container-name:playbar}.pbCount{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pbCountBig{font-size:18px;font-weight:600}.pbCountTotal{font-size:14px;color:var(--ink-3)}.pbCoord{margin-left:4px;display:inline-flex;align-items:center;gap:6px;padding:2px 8px;background:var(--paper);border:1px solid var(--rule);border-radius:999px;font-size:13px;color:var(--ink-2)}.pbStone{width:10px;height:10px;border-radius:50%;background:var(--black-stone);box-shadow:inset -1px -1px 1px #0006}.pbStone[data-c=w]{background:var(--white-stone);box-shadow:inset -1px -1px 1px #00000026,0 0 0 1px var(--rule)}.pbTag{padding:2px 8px;font-size:12px;font-weight:500;border:1px solid;border-radius:999px}.pbActionBtn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 9px;height:24px;background:var(--card);border:1px solid var(--rule);border-radius:6px;color:var(--ink-2);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.pbActions{margin-left:auto;display:inline-flex;gap:6px}.pbActionBtn:hover{color:var(--accent);border-color:var(--accent)}.pbActionBtn[data-active=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.pbActionLabel{font-size:11px;font-weight:600;letter-spacing:.02em}@container playbar (max-width: 540px){.pbActionLabel{display:none}}.pbControls{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;padding:3px;background:var(--paper);border:1px solid var(--rule);border-radius:8px}.pbBtn{height:32px;background:transparent;border:0;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:3px;color:var(--ink-2);transition:all .12s}.pbBtn:hover:not(:disabled){background:var(--card);color:var(--ink)}.pbBtn:disabled{opacity:.35;cursor:default}.pbBtn.primary{background:var(--accent);color:#fff}.pbBtn.primary:hover:not(:disabled){background:var(--accent);color:#fff;filter:none}.pbBtn.withLabel{font-size:12px}.pbLabel{font-weight:600}.storyView{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:20px 24px 24px;text-align:center}.storyEmpty{justify-content:center}.storyEmptyText{color:var(--ink-3);font-size:15px}.storyHead{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:480px}.storyKicker{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.storyKicker [data-type=turning_point],.storyKicker [data-type=critical_swing]{color:var(--mistake)}.storyKicker [data-type=group_arc]{color:var(--dragon)}.storyKicker [data-type=lead_arc]{color:var(--mistake)}.storyKicker [data-type=missed_win]{color:var(--inacc)}.storyKicker [data-type=fatal_blow]{color:var(--blunder)}.storyKicker [data-type=positive_highlight]{color:var(--good)}.storyTitle{font-size:21px;line-height:1.25;margin:0;color:var(--ink);font-weight:600;min-height:2.5em;display:flex;align-items:center;justify-content:center}.storySub{font-size:12px;color:var(--ink-3);letter-spacing:.06em}.storyControls{display:flex;align-items:center;justify-content:center;gap:18px}.storyBtn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--card);border:1px solid var(--rule);color:var(--ink-2);transition:transform .12s,background .12s,color .12s,border-color .12s;cursor:pointer}.storyBtnSide{width:44px;height:44px}.storyBtnSide:hover{color:var(--ink);border-color:var(--rule-2)}.storyBtnSide:disabled{opacity:.35;cursor:not-allowed}.storyBtnSide:disabled:hover{color:var(--ink-2);border-color:var(--rule)}.storyBtnPrimary{width:64px;height:64px;background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:0 6px 18px #0000002e}.storyBtnPrimary:hover{transform:translateY(-1px);filter:brightness(1.05)}.storyBtnPrimary[data-loading=true]{animation:storyPulse 1s ease-in-out infinite}@keyframes storyPulse{0%,to{transform:scale(1)}50%{transform:scale(.97)}}.storyTranscript{width:100%;max-width:480px;height:240px;overflow-y:auto;text-align:left;font-size:14px;line-height:1.65;color:var(--ink-2);padding:0 4px}.storyTranscript p{margin:0 0 8px}.storyTranscript p:last-child{margin-bottom:0}.storyBeads{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:480px}.storyBead{width:14px;height:14px;padding:0;border-radius:999px;background:var(--card);border:1px solid var(--rule);cursor:pointer;transition:all .12s}.storyBead:hover{border-color:var(--ink-3)}.storyBead.visited{background:var(--ink-3);border-color:var(--ink-3)}.storyBead.current{background:var(--accent);border-color:var(--accent);transform:scale(1.3);box-shadow:0 0 0 3px var(--accent-soft)}.storyBead[data-type=turning_point].current,.storyBead[data-type=critical_swing].current{background:var(--mistake);border-color:var(--mistake);box-shadow:0 0 0 3px var(--mistake-soft)}.storyBead[data-type=group_arc].current{background:var(--dragon);border-color:var(--dragon);box-shadow:0 0 0 3px color-mix(in srgb,var(--dragon),transparent 80%)}.storyBead[data-type=lead_arc].current{background:var(--mistake);border-color:var(--mistake);box-shadow:0 0 0 3px var(--mistake-soft)}.storyBead[data-type=missed_win].current{background:var(--inacc);border-color:var(--inacc);box-shadow:0 0 0 3px var(--inacc-soft)}.storyBead[data-type=fatal_blow].current{background:var(--blunder);border-color:var(--blunder);box-shadow:0 0 0 3px var(--blunder-soft)}.storyBead[data-type=positive_highlight].current{background:var(--good);border-color:var(--good);box-shadow:0 0 0 3px var(--good-soft)}.rpWrmBar{padding:12px 14px 10px;background:var(--paper)}.wrm{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.wrmHead{display:flex;justify-content:space-between;gap:12px}.wrmHeadL,.wrmHeadR{display:flex;flex-direction:column;gap:2px}.wrmHeadR{text-align:right;align-items:flex-end}.wrmKicker{font-size:13px;letter-spacing:.08em;color:var(--ink-3);font-weight:600}.wrmBig{font-size:16px;font-weight:600;display:inline-flex;align-items:center;gap:6px}.wrmStone{width:10px;height:10px;border-radius:50%;background:var(--black-stone)}.wrmStone[data-c=w]{background:var(--white-stone);box-shadow:inset -1px -1px 1px #00000026,0 0 0 1px var(--rule)}.wrmBig[data-sign=down]{color:var(--ink-3)}.wrmGraph{position:relative;background:var(--paper);border:1px solid var(--rule);border-radius:6px;overflow:hidden;cursor:crosshair}.summaryCard{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:16px}.summaryHead{display:flex;align-items:flex-start;gap:10px}.summaryHead .summaryHeadline{flex:1 1 auto;min-width:0}.summaryHeadline{font-size:18px;font-weight:600;line-height:1.3;text-wrap:pretty}.ttsButton{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;border:1px solid var(--rule);background:transparent;color:var(--ink-2);cursor:pointer;padding:0;transition:background .15s ease,color .15s ease,border-color .15s ease}.ttsButton:hover{background:var(--card-hover, rgba(0,0,0,.04));color:var(--ink)}.ttsButton:focus-visible{outline:2px solid var(--accent, #5a8de0);outline-offset:2px}.ttsButtonActive{border-color:var(--accent, #5a8de0);color:var(--accent, #5a8de0)}.ttsButtonLoading svg{animation:ttsPulse 1s ease-in-out infinite}@keyframes ttsPulse{0%,to{opacity:1}50%{opacity:.4}}.kmLessonLabelRow{display:flex;align-items:center;justify-content:space-between;gap:8px}.kmLessonLabelRow .ttsButton{width:24px;height:24px}.kmLessonHeadActions{display:inline-flex;align-items:center;gap:6px}.replayButton{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;border:1px solid var(--rule);background:transparent;color:var(--ink-2);cursor:pointer;padding:0;transition:background .15s ease,color .15s ease,border-color .15s ease}.replayButton:hover{background:var(--card-hover, rgba(0,0,0,.04));color:var(--ink)}.replayButton:focus-visible{outline:2px solid var(--accent, #5a8de0);outline-offset:2px}.replayButton:disabled{opacity:.5;cursor:default}.phaseBody{display:flex;align-items:flex-start;gap:10px}.phaseBodyText{flex:1 1 auto;min-width:0}.phaseBody .ttsButton{width:24px;height:24px}.summaryIntro{font-size:14px;line-height:1.5;font-style:italic;margin-top:6px;text-wrap:pretty}.summaryBody{font-size:15px;line-height:1.6;color:var(--ink-2);margin-top:10px;text-wrap:pretty}.summaryLeadArc{margin-top:12px;padding:10px 12px;background:var(--paper);border:1px solid var(--rule);border-left:4px solid var(--mistake);border-radius:8px}.summaryLeadArcHead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.summaryLeadArcTitle{font-size:15px;font-weight:650;color:var(--ink);line-height:1.3;min-width:0}.summaryLeadArcMeta{flex:0 0 auto;font-size:12px;color:var(--ink-3);white-space:nowrap}.summaryLeadArcRail{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;margin-top:9px}.summaryLeadArcBeat{min-height:42px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:7px 9px;background:var(--card);border:1px solid var(--rule);border-radius:6px;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.summaryLeadArcBeat:hover,.summaryLeadArcBeat[data-active=true]{border-color:var(--mistake);background:var(--paper-2)}.summaryLeadArcMove{font-size:11px;font-weight:700;color:var(--ink-3)}.summaryLeadArcKind{font-size:13px;line-height:1.25;color:var(--ink)}.summaryLeadArcNote{margin-top:8px;padding-top:8px;border-top:1px dashed var(--rule);color:var(--ink-3);font-size:12px;line-height:1.45}.summaryStats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.ssStat{padding:10px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;text-align:left}.ssStat.link{cursor:pointer;transition:border-color .12s}.ssStat.link:hover{border-color:var(--accent)}.ssLabel{font-size:11px;letter-spacing:.08em;color:var(--ink-3);font-weight:600}.ssNum{font-size:22px;font-weight:600;line-height:1.1;margin-top:2px}.ssNum span{font-size:13px;color:var(--ink-3);font-weight:400}.qbar{margin-top:6px;height:3px;background:var(--rule);border-radius:2px;overflow:hidden}.qbar span{display:block;height:100%;background:var(--good)}.ssGo{font-size:12px;color:var(--accent);margin-top:2px}.ssBreakdown{font-size:12px;color:var(--ink-3);margin-top:6px;letter-spacing:.02em}.ssChips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.ssChip{font-size:15px;font-weight:600;line-height:1.1;padding:3px 9px;background:var(--card);border:1px solid var(--rule);border-radius:5px;color:var(--ink-1);cursor:pointer;transition:border-color .12s,color .12s}.ssChip:hover{border-color:var(--accent);color:var(--accent)}.ssStatWide{grid-column:1 / -1}.qualityBar{margin-top:8px;display:flex;height:10px;background:var(--rule);border-radius:5px;overflow:hidden}.qbSeg{display:block;height:100%;transition:width .15s ease}.qbSeg+.qbSeg{border-left:1px solid var(--card)}.qbExcellent{background:var(--excellent)}.qbGood{background:var(--good)}.qbSlip{background:var(--inacc)}.qbMistake{background:var(--mistake)}.qbBlunder{background:var(--blunder)}.qualityLegend{margin-top:8px;display:flex;flex-wrap:wrap;gap:10px 14px;font-size:12px;color:var(--ink-2)}.qlItem{display:inline-flex;align-items:center;gap:6px}.qlDot{width:8px;height:8px;border-radius:50%;display:inline-block}.qlDot[data-c=excellent]{background:var(--excellent)}.qlDot[data-c=good]{background:var(--good)}.qlDot[data-c=slip]{background:var(--inacc)}.qlDot[data-c=mistake]{background:var(--mistake)}.qlDot[data-c=blunder]{background:var(--blunder)}.phaseList{display:flex;flex-direction:column;gap:10px}.phase{padding:14px;background:var(--card);border:1px solid var(--rule);border-radius:10px;transition:border-color .12s}.phase.inRange{border-color:var(--accent);box-shadow:var(--shadow)}.phaseHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}.phaseTitleRow{display:flex;flex-direction:column;gap:2px}.phaseTitleBtn{background:transparent;border:0;padding:0;text-align:left;font-size:16px;font-weight:600;color:var(--ink);line-height:1.2}.phaseTitleBtn:hover{color:var(--accent)}.phaseRange{font-size:12px;color:var(--ink-3)}.phaseVerdict{font-size:11px;font-weight:600;padding:3px 7px;border:1px solid;border-radius:999px;white-space:nowrap;background:var(--paper)}.phaseBody{font-size:14px;line-height:1.5;color:var(--ink-2);padding-bottom:10px;border-bottom:1px dashed var(--rule);margin-bottom:10px}.kmList{display:flex;flex-direction:column;gap:4px}.kmCell{display:flex;flex-direction:column;border:1px solid transparent;border-radius:7px;transition:all .12s}.kmCell:hover:not(.expanded){background:var(--paper);border-color:var(--rule)}.kmCell.expanded{background:var(--paper);border-color:var(--rule-2)}.kmCell.current:not(.expanded){background:var(--paper);border-color:var(--accent)}.kmRow{display:grid;grid-template-columns:26px 14px 36px auto 1fr 16px;align-items:center;gap:8px;padding:8px 10px;background:transparent;border:0;border-radius:7px;text-align:left;width:100%}.kmNum{font-size:12px;color:var(--ink-3);font-weight:600;text-align:right}.kmStone{width:10px;height:10px;border-radius:50%;background:var(--black-stone)}.kmStone[data-c=w]{background:var(--white-stone);box-shadow:0 0 0 1px var(--rule)}.kmCoord{font-size:12px;font-weight:600;color:var(--ink-2)}.kmChips{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.kmLine{font-size:14px;line-height:1.4;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kmCell.expanded .kmLine{white-space:normal}.kmChevron{font-size:14px;color:var(--ink-3);font-weight:400;text-align:center;line-height:1}.kmCell.expanded .kmChevron{color:var(--ink-2)}.kmLesson{margin:0 8px 8px;border-left:3px solid;background:var(--card);border-radius:0 8px 8px 0;overflow:hidden;animation:kmExpand .18s ease}@keyframes kmExpand{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.kmLessonSec{padding:14px 14px 12px}.kmLessonLabel{font-size:13px;letter-spacing:.08em;color:var(--ink-3);font-weight:600;margin-bottom:6px}.kmLessonProse{font-size:14px;line-height:1.6;color:var(--ink)}.kmLessonProse p{margin:0 0 10px}.kmLessonProse p:last-child{margin-bottom:0}.kmAccent{color:var(--accent);font-weight:600}.patternChip{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:4px 10px 4px 4px;background:var(--card);border:1px solid var(--rule);border-radius:999px;max-width:100%;flex-wrap:wrap}.patternChipTag{font-size:11px;letter-spacing:.1em;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:3px 7px;border-radius:999px;text-transform:uppercase}.patternChipName{font-size:13px;font-weight:600;color:var(--ink)}.patternChipNote{font-size:13px;color:var(--ink-3)}.kmLessonAdvice{background:var(--paper);padding:12px 14px;border-top:1px solid var(--rule)}.kmAdviceHead{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}.kmAdviceSev{font-size:12px;letter-spacing:.08em;font-weight:700;text-transform:uppercase}.kmAdviceTitle{font-size:15px;font-weight:600;color:var(--ink)}.kmAdviceWhy{font-size:13px;line-height:1.55;color:var(--ink-2);margin:4px 0 8px}.kmAdviceSubKicker{font-size:12px;letter-spacing:.08em;font-weight:600;color:var(--ink-3);margin:8px 0 4px;text-transform:uppercase}.kmAdviceList{margin:0;padding-left:18px;font-size:13px;line-height:1.55;color:var(--ink)}.kmAdviceList li{margin:0 0 4px}.kmAdviceList li:last-child{margin-bottom:0}.kmDrillsRow{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule)}.kmDrillsLeft{display:flex;align-items:center;gap:6px;flex:1;min-width:0;color:var(--ink-2)}.kmDrillsCount{font-size:13px;font-weight:700;color:var(--ink)}.kmDrillsKind{font-size:13px;color:var(--ink-2)}.kmDrillsLevel{font-size:11px;font-weight:600;padding:1px 6px;background:var(--card);border:1px solid var(--rule);border-radius:4px;color:var(--ink-3)}.kmDrillsCTA{font-size:12px;font-weight:600;background:var(--accent);color:#fff;padding:6px 12px;border-radius:5px;border:0;cursor:pointer;transition:filter .12s}.kmDrillsCTA:hover{filter:brightness(1.08)}.evalTag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid;border-radius:999px;font-size:12px;font-weight:500}.evalTag[data-size=sm]{padding:2px 7px;font-size:11px;gap:3px}.themeList{display:flex;flex-direction:column;gap:8px}.themeRow{display:flex;align-items:stretch;gap:12px;padding:12px 14px;background:var(--card);border:1px solid var(--rule);border-left:4px solid;border-radius:8px}.themeMain{flex:1;min-width:0}.themeHead{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;flex-wrap:wrap}.themeSev{font-size:11px;letter-spacing:.08em;font-weight:700}.themeTitle{font-size:15px;font-weight:600;line-height:1.25}.themeMoves{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.themeMovesLabel{font-size:11px;letter-spacing:.1em;color:var(--ink-3);font-weight:600}.themeMoveChip{display:inline-flex;align-items:center;padding:2px 7px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;font-size:11px;font-weight:600;color:var(--ink-2);font-family:JetBrains Mono,monospace;transition:all .12s}.themeMoveChip:hover{color:var(--accent);border-color:var(--accent)}.jobStrip{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:6px}.jobStripHead{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.jobBar{height:4px;background:var(--rule);border-radius:2px;overflow:hidden}.jobBarFill{height:100%;background:var(--accent);transition:width .25s}.bmList{display:flex;flex-direction:column;gap:6px}.bmRow{display:grid;grid-template-columns:22px 56px 1fr auto;gap:10px;align-items:center;padding:8px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:7px;font-size:13px}.bmRank{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--accent);color:#fff;border-radius:6px;font-size:11px;font-weight:600}.bmCoord{font-weight:600;color:var(--ink);font-family:JetBrains Mono,monospace}.bmStats{color:var(--ink-3);font-size:12px}.bmVisits{color:var(--ink-4);font-size:12px}.bmPv{grid-column:1 / -1;color:var(--ink-3);font-size:12px}.bmToggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-3)}.bmToggle input{accent-color:var(--accent)}.move-slider{appearance:none;-webkit-appearance:none;height:4px;border-radius:999px;background:var(--rule);outline:none;width:100%}.move-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:999px;border:2px solid var(--paper);background:var(--ink);box-shadow:0 2px 6px #1a171433;cursor:pointer}.move-slider::-moz-range-thumb{width:16px;height:16px;border-radius:999px;border:2px solid var(--paper);background:var(--ink);cursor:pointer}.winrate-chart{display:block;width:100%;height:100%}.settingsScroll{flex:1;min-height:0;overflow-y:auto;padding:4px 4px 24px 0;display:flex;flex-direction:column;gap:16px}.dueCard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;padding:20px 24px;background:var(--card);border:1px solid var(--rule);border-radius:12px;align-items:center}.dueLabel{font-size:11px;letter-spacing:.16em;color:var(--ink-3)}.dueBig{font-size:32px;font-weight:600;line-height:1.1;margin-top:6px}.dueSub{font-size:14px;color:var(--ink-2);margin-top:6px}.dueDist{display:flex;flex-direction:column;gap:6px}.dueDistRow{display:grid;grid-template-columns:90px 1fr 28px;align-items:center;gap:10px}.dueDistLabel{display:inline-flex;align-items:center;gap:6px;font-size:12px}.dueDistGlyph{font-size:13px}.dueDistBar{height:6px;background:var(--paper-2);border-radius:3px;overflow:hidden}.dueDistFill{display:block;height:100%;transition:width .3s}.dueDistN{font-size:12px;color:var(--ink-3);text-align:right}.exList{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;padding:4px 4px 24px 0}.exRow{display:grid;grid-template-columns:86px minmax(0,1fr) 88px 110px 24px;align-items:center;gap:14px;padding:12px 14px;background:var(--card);border:1px solid var(--rule);border-radius:10px;text-align:left;width:100%;transition:border-color .12s,transform .12s,box-shadow .12s}.exRow:hover{border-color:var(--rule-2);transform:translate(2px);box-shadow:var(--shadow)}.exKind{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:5px;font-size:12px;font-weight:600;width:fit-content}.exKindGlyph{font-size:13px;line-height:1}.exKindLabel{font-size:11px;letter-spacing:.04em}.exMain{min-width:0}.exTitle{font-size:15px;font-weight:600;line-height:1.3}.exSub{font-size:12px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.difficulty{display:inline-flex;gap:3px}.diffDot{width:8px;height:8px;border-radius:50%;background:var(--paper-2)}.diffDot[data-on=true]{background:var(--ink-2)}.exDue{font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}.exDueDot{width:7px;height:7px;border-radius:50%}.exDueDot[data-status=due]{background:var(--accent)}.exDueDot[data-status=soon]{background:var(--inacc)}.exDueDot[data-status=learning]{background:var(--ok)}.exDueDot[data-status=mastered]{background:var(--good)}.exGo{color:var(--ink-4);display:flex;justify-content:flex-end}.exRow:hover .exGo{color:var(--ink)}.recurringBadge{display:inline-block;margin-left:8px;padding:1px 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:4px;vertical-align:middle}.settingsSection{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}.settingsHead h2{margin:0;font-size:18px;font-weight:600}.settingsHeadSub{margin:6px 0 0;font-size:13px;color:var(--ink-3);line-height:1.5}.settingsCard{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:16px}.settingsDivider{height:1px;background:var(--rule);margin:2px -20px}.settingsRow{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.field{display:flex;flex-direction:column;gap:8px}.fieldHead{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.fieldLabel{font-size:11px;letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase}.fieldHint{font-size:12px;color:var(--ink-3);font-style:italic}.fieldWarning{font-size:12px;color:var(--blunder, #c0392b);background:var(--blunder-soft, rgba(192, 57, 43, .08));border:1px solid var(--blunder, #c0392b);border-radius:6px;padding:6px 10px;line-height:1.4;margin-top:6px}.drillSourceList{display:flex;flex-direction:column;gap:6px}.drillSourceRow{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;font-size:14px;text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.drillSourceRow[data-checked=true]{border-color:var(--accent);background:var(--accent-soft, rgba(79, 70, 229, .08))}.drillSourceRow[data-locked=true]{opacity:.5;cursor:not-allowed}.drillSourceCheck{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--rule);border-radius:4px;font-size:11px;color:var(--accent)}.drillSourceRow[data-checked=true] .drillSourceCheck{border-color:var(--accent);background:var(--accent);color:#fff}.drillSourceLabel{flex:1}.drillSourceLock{font-size:11px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}.errorChip{display:inline-flex;align-items:center;padding:1px 6px;border:1px solid;border-radius:999px;font-size:11px;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}.weaknessThemeList{display:flex;flex-direction:column;gap:8px}.weaknessThemeRow{background:var(--paper);border:1px solid var(--rule);border-left:4px solid;border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:6px}.weaknessThemeHead{display:flex;align-items:baseline;gap:10px}.weaknessThemeKicker{font-size:11px;letter-spacing:.12em}.weaknessThemeLabel{flex:1;font-size:15px}.weaknessThemeCount{font-size:13px;color:var(--ink-3)}.weaknessThemeNarrative{font-size:13px;line-height:1.45}.weaknessThemeMoves{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px}.weaknessThemeDrillCount{margin-left:auto;font-size:11px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}.textInput{padding:8px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:7px;color:var(--ink);font-family:inherit;font-size:14px;width:100%;transition:border-color .12s,background .12s}.textInput:focus{outline:none;border-color:var(--accent)}select.textInput{appearance:none;padding-right:28px}.fieldGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profileRow{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start}.profileAvatar{display:flex;flex-direction:column;align-items:center;gap:8px}.profileStone{width:64px!important;height:64px!important;font-size:22px!important}.ghostBtn.small{padding:5px 10px;font-size:12px}.themeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.themeSwatchSub{color:var(--ink-3);font-weight:400;font-size:12px}.themeSwatch{background:transparent;border:1px solid var(--rule);border-radius:9px;padding:8px;display:flex;flex-direction:column;gap:8px;align-items:stretch;transition:border-color .12s,transform .12s;text-align:left;cursor:pointer}.themeSwatch:hover{border-color:var(--rule-2)}.themeSwatch[data-active=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.themeSwatchPreview{border-radius:6px;padding:10px;min-height:70px;position:relative}.themeBoard{border-radius:4px;height:36px;display:flex;align-items:center;justify-content:center;gap:6px;position:relative}.themeStone{width:12px;height:12px;border-radius:50%}.themeStoneW{border:1px solid}.themeChips{display:flex;gap:4px;margin-top:8px}.themeChips span{width:10px;height:10px;border-radius:2px;display:block}.themeSwatchLabel{font-size:13px;font-weight:600;padding-left:2px}.segBtns.wide{display:flex;width:100%}.segBtns.wide .seg{flex:1;padding:7px 10px}.toggle{width:38px;height:22px;background:var(--rule);border:0;border-radius:999px;padding:2px;display:flex;align-items:center;transition:background .15s}.toggleKnob{width:18px;height:18px;border-radius:50%;background:var(--paper);box-shadow:0 1px 2px #0003;transition:transform .15s;display:block}.toggle[data-on=true]{background:var(--accent)}.toggle[data-on=true] .toggleKnob{transform:translate(16px)}.rangeInput{width:100%;accent-color:var(--accent)}.rangeTicks{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);margin-top:-2px}.reminderRow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.reminderRow .textInput{width:auto}.dangerRow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;background:var(--blunder-soft);border:1px solid var(--blunder);border-radius:8px}.dangerTitle{font-size:15px;font-weight:600;color:var(--blunder)}.dangerBtn{padding:8px 14px;background:var(--blunder);color:var(--paper);border:0;border-radius:7px;font-weight:600;font-size:13px}.dangerBtn:hover{background:#a02f24}.settingsFootSpacer{height:24px}.settingsView{overflow-y:auto;padding-right:0;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}.settingsView::-webkit-scrollbar{width:6px}.settingsView::-webkit-scrollbar-track{background:transparent}.settingsView::-webkit-scrollbar-thumb{background:var(--rule);border-radius:999px}.settingsView::-webkit-scrollbar-thumb:hover{background:var(--rule-2)}.settingsView .viewHead,.settingsView .settingsScroll{max-width:1040px;width:100%}.settingsView .settingsScroll{flex:none;min-height:0;overflow:visible;padding:4px 0 24px}@media(max-width:1100px){.settingsSection{grid-template-columns:1fr;gap:12px}.fieldGrid,.settingsRow{grid-template-columns:1fr}}.kmTypeBadge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.08em}.kmTypeBadge[data-size=sm]{padding:2px 7px;gap:3px;font-size:10px}.kmTypeBadgeLabel{font-weight:700}.kmChapters{display:flex;flex-direction:column;gap:18px}.kmChapter{display:flex;flex-direction:column;gap:8px}.kmChapterHead{display:flex;align-items:center;gap:8px}.kmChapterLabel{font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-weight:700}.kmChapterCount{font-size:13px;color:var(--ink-3);padding:1px 7px;border:1px solid var(--rule);border-radius:999px;background:var(--paper)}.arcTimelineList{display:flex;flex-direction:column;gap:10px}.arcTimelineCard{background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--dragon);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.arcTimelineCard[data-type=lead_arc]{border-left-color:var(--mistake)}.arcTimelineTop{display:flex;align-items:baseline;gap:10px;justify-content:space-between}.arcTimelineTitle{color:var(--ink);font-size:16px;font-weight:650;min-width:0}.arcTimelineSpan{color:var(--ink-3);font-size:12px;white-space:nowrap}.arcTimelineMeta{color:var(--ink-2);font-size:13px;line-height:1.45}.arcBeatRail{display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:8px;align-items:stretch}.arcBeat{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;min-height:48px;padding:8px 9px;background:var(--paper);border:1px solid var(--rule);border-radius:6px;color:var(--ink);cursor:pointer;text-align:left;transition:border-color .12s,background .12s}.arcBeat:hover,.arcBeat[data-active=true]{border-color:var(--dragon);background:var(--paper-2)}.arcBeatDot{width:10px;height:10px;border-radius:50%;background:var(--dragon);box-shadow:0 0 0 3px color-mix(in srgb,var(--dragon),transparent 80%)}.arcTimelineCard[data-type=lead_arc] .arcBeat:hover,.arcTimelineCard[data-type=lead_arc] .arcBeat[data-active=true]{border-color:var(--mistake)}.arcTimelineCard[data-type=lead_arc] .arcBeatDot{background:var(--mistake);box-shadow:0 0 0 3px var(--mistake-soft)}.arcBeatText{display:flex;flex-direction:column;gap:2px;min-width:0}.arcBeatMove{color:var(--ink-3);font-size:11px;font-weight:700}.arcBeatKind{color:var(--ink);font-size:13px;line-height:1.25}.arcTimelineNote{color:var(--ink-3);font-size:12px;line-height:1.45;border-top:1px dashed var(--rule);padding-top:9px}.reviewIssueList{display:flex;flex-direction:column;gap:10px}.reviewIssueCard{background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--accent);border-radius:8px;padding:11px 12px;display:flex;flex-direction:column;gap:8px;transition:border-color .12s,background .12s}.reviewIssueCard[data-tone=root]{border-left-color:var(--blunder)}.reviewIssueCard[data-tone=arc]{border-left-color:var(--mistake)}.reviewIssueCard[data-tone=pattern]{border-left-color:var(--accent)}.reviewIssueCard[data-tone=concept]{border-left-color:var(--good)}.reviewIssueCard[data-tone=practice]{border-left-color:var(--ink-3)}.reviewIssueCard[data-current=true]{border-color:var(--accent);background:var(--paper)}.reviewIssueHead{display:flex;align-items:center;justify-content:space-between;gap:8px}.reviewIssueHeadToggle{min-width:0;background:transparent;border:0;padding:0;color:inherit;cursor:pointer;text-align:left}.reviewIssueType,.reviewIssueClaim{display:inline-flex;align-items:center;gap:5px;min-height:22px;font-size:11px;font-weight:700;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.reviewIssueClaim{flex:0 0 auto;padding:2px 7px;border:1px solid var(--rule);border-radius:6px;background:var(--paper)}.reviewIssueQuestion{color:var(--ink);font-size:15px;line-height:1.35;font-weight:600;overflow-wrap:anywhere}.reviewIssueMeta{display:flex;flex-wrap:wrap;gap:6px}.reviewIssueMeta span,.reviewIssueMore{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:6px;background:var(--paper);color:var(--ink-3);font-size:12px;line-height:1.2}.reviewIssueAnchors{display:flex;flex-wrap:wrap;gap:6px}.reviewIssueAnchor{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:3px 8px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink-2);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.reviewIssueAnchor:hover,.reviewIssueAnchor[data-active=true]{color:var(--accent);border-color:var(--accent);background:var(--paper-2)}.reviewIssueBody{display:flex;flex-direction:column;gap:9px;padding-top:8px;border-top:1px dashed var(--rule)}.reviewIssueSubhead{color:var(--ink-3);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.reviewIssueEvidence{display:flex;flex-direction:column;gap:6px}.reviewIssueEvidenceRow{min-height:32px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink-2);text-align:left;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.reviewIssueEvidenceRow:hover,.reviewIssueEvidenceRow[data-active=true]{color:var(--accent);border-color:var(--accent);background:var(--paper-2)}.reviewIssueEvidenceMove{color:inherit;font-weight:700}.reviewIssueEvidenceCoord{color:var(--ink-3);font-weight:700}.reviewIssueEvidenceRole{min-width:0;color:var(--ink);font-size:13px;line-height:1.25;overflow-wrap:anywhere}.reviewIssuePractice{display:inline-flex;align-items:center;gap:6px;width:fit-content;max-width:100%;min-height:24px;padding:3px 8px;border-radius:6px;background:var(--paper);color:var(--ink-3);font-size:12px;line-height:1.2}.readingPracticeList{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:8px}.readingPracticeItem{min-height:36px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--rule);border-left:4px solid var(--mistake);border-radius:8px;background:var(--card);color:var(--ink-2);text-align:left;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.readingPracticeItem:hover,.readingPracticeItem[data-active=true]{color:var(--accent);border-color:var(--accent);background:var(--paper)}.readingPracticeMove,.readingPracticeCoord{font-weight:700}.readingPracticeLabel{min-width:0;color:var(--ink);font-size:13px;line-height:1.25;overflow-wrap:anywhere}.kmTimeline{display:flex;flex-direction:column;gap:10px}.kmCard{background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--rule);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;transition:border-color .12s,box-shadow .12s}.kmCard.current{border-color:var(--accent)}.kmCardHead{display:flex;align-items:center;gap:10px;width:100%}.kmCardHeadToggle{flex:1;min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;background:transparent;border:0;padding:0;text-align:left;cursor:pointer}.kmCardActions{display:inline-flex;align-items:center;gap:4px}.kmCardActionBtn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:0;color:var(--ink-3);cursor:pointer;border-radius:4px;transition:color .12s,background .12s}.kmCardActionBtn:hover{color:var(--ink);background:var(--paper-2)}.kmCardActionBtnLabel{width:auto;padding:0 7px;gap:4px}.kmCardActionLabel{font-size:11px;font-weight:600;letter-spacing:.02em;color:inherit}.kmCardId{display:inline-flex;align-items:center;gap:7px}.kmCardNum{font-size:13px;color:var(--ink-3);font-weight:600}.kmCardDragon{font-size:11px;font-weight:600;color:var(--dragon);border:1px solid var(--dragon);border-radius:6px;padding:1px 5px;white-space:nowrap;cursor:default}.kmCardStone{width:10px;height:10px;border-radius:50%;background:var(--black-stone)}.kmCardStone[data-c=w]{background:var(--white-stone);box-shadow:0 0 0 1px var(--rule)}.kmCardCoord{font-size:13px;font-weight:600;color:var(--ink-2)}.kmCardBadge{display:inline-flex;justify-content:flex-end;align-items:center;gap:6px;flex-wrap:wrap}.kmCardChevron{font-size:14px;line-height:1}.kmCardSummary{display:flex;flex-direction:column;gap:4px}.kmCardWhy{font-size:14px;line-height:1.4;color:var(--ink-2)}.kmCardHeadline{font-size:14px;color:var(--ink);line-height:1.4}.kmCardBody{background:var(--paper);margin-top:4px;border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;animation:kmExpand .18s ease}.kmCardProse{font-size:14px;line-height:1.6;color:var(--ink)}.kmCardProse p{margin:0 0 10px}.kmCardProse p:last-child{margin-bottom:0}.kmCardLoss{font-size:12px;color:var(--ink-3)}:root{--admin-bg: var(--paper);--admin-surface: #ffffff;--admin-surface-2: #f0f2f5;--admin-text: #1f2933;--admin-text-muted: #6b7682;--admin-border: #e2e6ec;--admin-accent: #2d6cdf;--admin-accent-text: #ffffff;--admin-danger: #c0392b;--admin-good-bg: #d4f8d4;--admin-good-text: #1e7e1e;--admin-bad-bg: #f6d4d4;--admin-bad-text: #b32020;--admin-shadow: 0 1px 2px rgba(0,0,0,.04);--admin-shadow-lg: 0 4px 24px rgba(0,0,0,.08);--admin-sidebar-bg: #1f2933;--admin-sidebar-surface: #323f4b;--admin-sidebar-text: #ffffff;--admin-sidebar-text-soft: #cbd2d9;--admin-sidebar-text-muted:#9aa5b1;--admin-sidebar-border: #3e4c59}[data-theme=dark]{--admin-bg: var(--paper);--admin-surface: var(--card);--admin-surface-2: var(--paper-2);--admin-text: var(--ink);--admin-text-muted: var(--ink-3);--admin-border: var(--rule);--admin-accent: var(--accent);--admin-accent-text: #ffffff;--admin-danger: #e57361;--admin-good-bg: #1d3a2c;--admin-good-text: #4cc28e;--admin-bad-bg: #3d1c19;--admin-bad-text: #e57361;--admin-shadow: 0 1px 2px rgba(0,0,0,.4);--admin-shadow-lg: 0 4px 24px rgba(0,0,0,.55);--admin-sidebar-bg: var(--paper-3);--admin-sidebar-surface: var(--rule);--admin-sidebar-text: var(--ink);--admin-sidebar-text-soft: var(--ink-2);--admin-sidebar-text-muted:var(--ink-3);--admin-sidebar-border: var(--rule-2)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper);color:var(--ink);padding:24px}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper);color:var(--ink-3)}.auth-card{background:var(--card);color:var(--ink);padding:32px;border-radius:8px;border:1px solid var(--rule);box-shadow:var(--shadow-lg);width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px}.auth-card h1{margin:0;font-size:20px}.auth-card label{display:flex;flex-direction:column;gap:6px}.auth-card label>span{font-size:13px;color:var(--ink-2)}.auth-card input{padding:10px 12px;border:1px solid var(--rule);border-radius:6px;font-size:14px;background:var(--paper);color:var(--ink)}.auth-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-card altcha-widget{--altcha-border-color: var(--rule);--altcha-border-radius: 6px;--altcha-color-base: var(--paper);--altcha-color-base-content: var(--ink);--altcha-color-border-focus: var(--accent);width:100%}.auth-card button[type=submit]{padding:10px 16px;border:0;background:var(--accent);color:#fff;border-radius:6px;font-size:14px;cursor:pointer}.auth-card button[type=submit]:disabled{opacity:.6;cursor:progress}.auth-card button[type=button]{padding:10px 16px;border:1px solid var(--rule);background:transparent;color:var(--ink);border-radius:6px;font-size:14px;cursor:pointer}.auth-card button[type=button]:hover{border-color:var(--accent)}.auth-card a{display:inline-block;text-align:center;color:var(--ink-3);font-size:13px;text-decoration:none}.auth-card a:hover{color:var(--accent)}.auth-error{color:var(--blunder);font-size:13px;margin:0}.admin-login-hint{font-size:13px;color:var(--ink-3);margin:0}.login-page{display:grid;grid-template-columns:1.05fr .95fr;height:100vh;width:100vw;overflow:hidden}.login-page .stage{position:relative;background:var(--paper-2);border-right:1px solid var(--rule);overflow:hidden;display:flex;flex-direction:column;padding:40px 44px}.login-page .stageBoard{position:absolute;right:-56px;bottom:-64px;width:600px;height:600px;max-width:92%;opacity:.95;pointer-events:none}.login-page .stageScrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(102deg,var(--paper-2) 0%,var(--paper-2) 30%,rgba(237,229,210,.72) 46%,rgba(237,229,210,0) 66%)}.login-page .stageBrand{position:relative;z-index:2;display:flex;align-items:center;gap:12px}.login-page .stageMark{width:40px;height:40px;background:var(--card);border:1px solid var(--rule);border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}.login-page .stageBrandText{display:flex;flex-direction:column;line-height:1}.login-page .stageBrandText .n{font-size:21px;font-weight:600;letter-spacing:.06em}.login-page .stageBrandText .n.cn{font-family:"Source Serif 4","Noto Serif SC",serif;padding-left:.06em}.login-page .stageCopy{position:relative;z-index:2;margin-top:26px;max-width:392px}.login-page .stageHead{font-size:34px;font-weight:600;line-height:1.18;letter-spacing:-.015em;margin:22px 0 0;text-wrap:balance}.login-page .stageSub{color:var(--ink-2);font-size:14px;line-height:1.6;margin:14px 0 0;max-width:340px}.login-page .stageMeta{position:relative;z-index:2;margin-top:auto;display:flex;flex-direction:column;gap:5px;align-items:flex-start;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.16em;line-height:1.3;color:var(--ink-3);text-transform:uppercase}.login-page .stageMeta span{white-space:nowrap}.login-page .formPane{display:flex;align-items:center;justify-content:center;padding:40px;background:var(--paper);overflow-y:auto}.login-page .formCard{width:100%;max-width:380px;display:flex;flex-direction:column}.login-page .formHead{margin-bottom:28px}.login-page .formTitle{font-size:28px;font-weight:600;letter-spacing:-.01em;margin:0;line-height:1.15}.login-page .formSub{color:var(--ink-3);font-size:13px;margin:8px 0 0}.login-page .field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.login-page .passwordField{position:relative}.login-page .fieldHead{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.login-page .fieldLabel{font-size:12px;letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase;font-weight:600}.login-page .fieldLink{font-size:13px;color:var(--ink-3);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--rule-2);font-weight:500}.login-page .passwordField .fieldLink{position:absolute;top:0;right:0}.login-page .fieldLink:hover{color:var(--ink);text-decoration-color:var(--ink-3)}.login-page .inputWrap{position:relative;display:flex;align-items:center}.login-page .inputWrap .lead{position:absolute;left:12px;display:flex;color:var(--ink-4);pointer-events:none}.login-page .inputWrap .lead svg{display:block}.login-page .textInput{width:100%;padding:11px 12px 11px 38px;background:var(--card);border:1px solid var(--rule);border-radius:9px;color:var(--ink);font-family:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s,background .12s}.login-page .textInput.hasPeek{padding-right:42px}.login-page .textInput::placeholder{color:var(--ink-4)}.login-page .textInput:hover{border-color:var(--rule-2)}.login-page .textInput:focus{outline:none;border-color:var(--accent);background:var(--paper);box-shadow:0 0 0 3px var(--accent-soft)}.login-page .peek{position:absolute;right:6px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:7px;color:var(--ink-4)}.login-page .peek:hover{color:var(--ink-2);background:var(--paper-2)}.login-page altcha-widget{--altcha-border-color: var(--rule);--altcha-border-radius: 9px;--altcha-color-base: var(--card);--altcha-color-base-content: var(--ink);--altcha-color-border-focus: var(--accent);--altcha-max-width: 100%;--altcha-checkbox-size: 18px;width:100%;font-size:14px}.login-page altcha-widget .altcha-main{flex-direction:row;align-items:center}.login-page altcha-widget .altcha-main>:first-child{flex:0 0 auto;width:auto}.login-page altcha-widget .altcha-footer{font-size:13px}.login-page .rowBetween{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 22px}.login-page .remember{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.login-page .checkbox{width:18px;height:18px;border:1px solid var(--rule-2);border-radius:5px;background:var(--card);display:flex;align-items:center;justify-content:center;color:var(--paper);transition:background .12s,border-color .12s;flex-shrink:0}.login-page .remember input{position:absolute;opacity:0;pointer-events:none}.login-page .remember input:checked+.checkbox{background:var(--ink);border-color:var(--ink)}.login-page .remember input:focus-visible+.checkbox{box-shadow:0 0 0 3px var(--accent-soft)}.login-page .checkbox svg{opacity:0;transition:opacity .1s}.login-page .remember input:checked+.checkbox svg{opacity:1}.login-page .rememberLabel{font-size:13px;color:var(--ink-2);white-space:nowrap}.login-page .submitBtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;background:var(--ink);color:var(--paper);border:0;border-radius:9px;font-weight:600;font-size:14px;box-shadow:var(--shadow);transition:transform .1s,background .1s,opacity .1s}.login-page .submitBtn:hover:not(:disabled){background:#2a2520;transform:translateY(-1px)}.login-page .submitBtn:active:not(:disabled){transform:translateY(0)}.login-page .submitBtn:disabled{opacity:.6;cursor:not-allowed}.login-page .formError{display:flex;align-items:center;gap:8px;padding:9px 12px;margin-bottom:16px;background:var(--blunder-soft);border:1px solid var(--blunder);border-radius:8px;color:var(--blunder);font-size:12px;font-weight:500}.login-page .formFoot{margin-top:26px;font-size:13px;color:var(--ink-3);text-align:center}.login-page .formFoot a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--rule-2);font-weight:600}.login-page .formFoot a:hover{text-decoration-color:var(--ink)}@media(max-width:880px){.login-page{grid-template-columns:1fr}.login-page .stage{display:none}.login-page .formPane{align-items:flex-start;padding-top:64px}}.admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh;background:var(--admin-bg);color:var(--admin-text)}.admin-sidebar{background:var(--admin-sidebar-bg);color:var(--admin-sidebar-text);padding:24px 16px;display:flex;flex-direction:column;gap:16px;border-right:1px solid var(--admin-sidebar-border)}.admin-brand{display:flex;flex-direction:column;gap:4px;padding:0 8px}.admin-brand span{font-weight:600}.admin-brand small{color:var(--admin-sidebar-text-muted);font-size:12px}.admin-sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.admin-nav-link{text-align:left;padding:10px 12px;border:0;background:transparent;color:var(--admin-sidebar-text-soft);border-radius:6px;cursor:pointer;font-size:14px}.admin-nav-link:hover{background:var(--admin-sidebar-surface);color:var(--admin-sidebar-text)}.admin-nav-link.is-active{background:var(--admin-accent);color:var(--admin-accent-text)}.admin-sidebar-footer{display:flex;flex-direction:column;gap:8px;padding:0 8px}.admin-sidebar-footer a{color:var(--admin-sidebar-text-muted);font-size:13px}.admin-sidebar-footer button{padding:8px 12px;border:1px solid var(--admin-sidebar-border);background:transparent;color:var(--admin-sidebar-text);border-radius:6px;cursor:pointer;font-size:13px}.admin-sidebar-footer button:hover{background:var(--admin-sidebar-surface)}.admin-theme-toggle{display:inline-flex;align-items:center;gap:6px;justify-content:center}.admin-main{padding:32px;overflow-y:auto;background:var(--admin-bg);color:var(--admin-text)}.admin-page{display:flex;flex-direction:column;gap:16px}.admin-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-page-header h2{margin:0;font-size:22px;color:var(--admin-text)}.admin-page-actions{display:flex;gap:8px;align-items:center}.admin-page-actions input[type=search],.admin-page-actions select{padding:6px 10px;border:1px solid var(--admin-border);border-radius:6px;font-size:13px;background:var(--admin-surface);color:var(--admin-text)}.admin-page-actions button,.tab{padding:6px 12px;border:1px solid var(--admin-border);background:var(--admin-surface);color:var(--admin-text);border-radius:6px;cursor:pointer;font-size:13px}.admin-page-actions button:hover,.tab:hover{background:var(--admin-surface-2)}.tab.is-active{background:var(--admin-accent);color:var(--admin-accent-text);border-color:var(--admin-accent)}.admin-error{color:var(--admin-danger)}.admin-table{width:100%;border-collapse:collapse;background:var(--admin-surface);color:var(--admin-text);border-radius:8px;overflow:hidden;box-shadow:var(--admin-shadow);border:1px solid var(--admin-border)}.admin-table th,.admin-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--admin-border);font-size:13px}.admin-table th{background:var(--admin-surface-2);font-weight:600;color:var(--admin-text)}.admin-table tr:last-child td{border-bottom:0}.admin-table a{color:var(--admin-accent)}.admin-table input[type=text],.admin-table select{padding:6px 8px;border:1px solid var(--admin-border);border-radius:6px;background:var(--admin-bg);color:var(--admin-text);font-size:13px}.admin-cell-note{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{padding:4px 10px;border-radius:12px;font-size:12px;border:0;cursor:pointer}.pill-on{background:var(--admin-good-bg);color:var(--admin-good-text)}.pill-off{background:var(--admin-bad-bg);color:var(--admin-bad-text)}.admin-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.admin-modal{background:var(--admin-surface);color:var(--admin-text);padding:24px;border-radius:8px;min-width:320px;display:flex;flex-direction:column;gap:12px;max-width:480px;border:1px solid var(--admin-border);box-shadow:var(--admin-shadow-lg)}.admin-modal h3{margin:0;font-size:18px}.admin-modal label{display:flex;flex-direction:column;gap:4px;font-size:13px}.admin-modal input,.admin-modal textarea,.admin-modal select{padding:8px 10px;border:1px solid var(--admin-border);border-radius:6px;font-size:13px;background:var(--admin-bg);color:var(--admin-text)}.admin-modal-hint{font-size:12px;color:var(--admin-text-muted);margin:0}.admin-modal-actions{display:flex;justify-content:flex-end;gap:8px}.admin-modal-actions button{padding:8px 14px;border:1px solid var(--admin-border);background:var(--admin-surface);color:var(--admin-text);border-radius:6px;cursor:pointer;font-size:13px}.admin-modal-actions button[type=submit]{background:var(--admin-accent);color:var(--admin-accent-text);border-color:var(--admin-accent)}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.admin-stat-card{background:var(--admin-surface);color:var(--admin-text);padding:12px 16px;border-radius:8px;box-shadow:var(--admin-shadow);border:1px solid var(--admin-border);display:flex;flex-direction:column;gap:4px}.admin-stat-label{color:var(--admin-text-muted);font-size:12px}.admin-stat-value{font-size:20px;font-weight:600}.usage-bar-chart{display:flex;align-items:flex-end;gap:4px;padding:12px;background:var(--admin-surface);border-radius:8px;box-shadow:var(--admin-shadow);border:1px solid var(--admin-border)}.usage-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:16px}.usage-bar-stack{width:100%;height:80%;display:flex;flex-direction:column-reverse}.usage-bar-segment{width:100%}.usage-bar-label{font-size:10px;color:var(--admin-text-muted)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.metric-chart{background:var(--admin-surface);color:var(--admin-text);padding:12px;border-radius:8px;box-shadow:var(--admin-shadow);border:1px solid var(--admin-border)}.metric-chart-head{display:flex;justify-content:space-between;margin-bottom:8px}.metric-chart-label{color:var(--admin-text-muted);font-size:13px}.metric-chart-latest{font-weight:600;font-size:14px}.metric-empty{color:var(--admin-text-muted);font-size:13px;padding:24px;text-align:center}.metric-bar{position:relative;background:var(--admin-surface-2);border-radius:6px;height:24px;overflow:hidden}.metric-bar-fill{background:var(--admin-accent);height:100%}.metric-bar span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--admin-text)}.admin-running-job{font-size:13px;color:var(--admin-text);padding:8px 12px;background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:6px}
