@font-face{font-family:Noto Serif SC;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-serif-sc-chinese-simplified-600-normal-BogBFFgE.woff2)format("woff2")}@font-face{font-family:Noto Serif SC;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-serif-sc-latin-600-normal-B99s59ZT.woff2)format("woff2")}:root,[data-theme=porcelain]{--dialog-scrim:28 30 34;--canvas:#f1efea;--bg:#faf9f6;--surface:#fefdfb;--raised:#f2f0eb;--hover:#ebe8e1;--line:#e9e6e0;--line-strong:#d6d2c9;--text:#252521;--muted:#716f68;--faint:#9a968c;--accent:#272824;--accent-hover:#3a3b36;--shade:44 40 30}[data-theme=pure]{--accent-ink:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f3f4f6;--bg:#fff;--surface:#fff;--raised:#f4f5f7;--hover:#eceef1;--line:#ebedf0;--line-strong:#d8dbe1;--text:#242629;--muted:#707681;--faint:#989ea8;--accent:#242629;--accent-hover:#3b3e43;--shade:28 32 40}[data-theme=mist]{--accent-ink:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#eceef1;--bg:#f6f7f8;--surface:#fcfcfd;--raised:#eceef1;--hover:#e4e7eb;--line:#e2e5ea;--line-strong:#ccd1d8;--text:#252930;--muted:#6a727f;--faint:#949ba6;--accent:#252930;--accent-hover:#3b424c;--shade:28 34 43}[data-theme=ivory]{--accent-ink:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#ebe7dd;--bg:#f5f2eb;--surface:#fbf9f4;--raised:#ece8df;--hover:#e4dfd4;--line:#e1dcd2;--line-strong:#ccc5b7;--text:#2c2924;--muted:#736b5f;--faint:#9c9284;--accent:#2c2924;--accent-hover:#433d33;--shade:41 35 24}:root,[data-theme=pure],[data-theme=mist],[data-theme=porcelain],[data-theme=ivory]{--t-press:90ms;--t-fast:.14s;--t-base:.22s;--t-slow:.42s;--ease-out:cubic-bezier(.2,.8,.3,1);--ease-in-out:cubic-bezier(.45,0,.25,1);--ease-spring:cubic-bezier(.3,1.5,.5,1);--accent-ink:#fff;--login-t-fast:.14s;--login-t-base:.22s;--login-t-slow:.42s;--login-ease:cubic-bezier(.2,.8,.3,1);--login-display:50px;--login-display-compact:42px;--login-display-mobile:34px;--login-display-mobile-min:26px;--personal-welcome-display:46px;--personal-welcome-display-mobile:36px;--login-card-radius:24px;--login-card-edge:color-mix(in srgb, var(--surface) 65%, var(--line-strong));--login-card-fill:color-mix(in srgb, var(--surface) 80%, var(--raised));--login-card-shadow:inset 0 1px 0 var(--surface), 0 0 0 1px rgb(var(--shade) / 2%), 0 14px 42px -24px rgb(var(--shade) / 22%);--login-orb-size:54px;--login-orb-radius:27px;--login-orb-tone:var(--seal);--login-orb-ink:#fff;--login-orb-glow:0 0 28px color-mix(in srgb, var(--seal) 34%, transparent), 0 6px 16px color-mix(in srgb, var(--seal) 25%, transparent);--on-danger:#fff;--seal:#b8452f;--seal-soft:#b8452f17;--chart-food:#c4433d;--chart-wood:#22836b;--chart-gold:#c08a13;--chart-stone:#4b73ae;--chart-oliveoil:#8364a9;--food:#a45950;--wood:#897049;--coin:#a58b36;--stone:#73808a;--ok:#547768;--danger:#a2453d;--danger-soft:#a2453d14;--medal-ink:#131517;--font:"Segoe UI Variable Text", "Segoe UI", "Noto Sans SC", "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;--mono:"Cascadia Mono", Consolas, "Microsoft YaHei UI", monospace;--fs-xxs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-body:15px;--fs-lg:16px;--fs-xl:24px;--fs-2xl:28px;--fs-display:30px;--fs-reading:19px;--fs-reading-compact:17px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--r-xs:5px;--r-s:8px;--r-m:10px;--r-l:14px;--app-header-height:56px;--button-height:34px;--rail-width:340px;--shadow-xs:0 1px 1px rgb(var(--shade) / 4%);--shadow-card:0 0 0 1px var(--line), 0 1px 2px rgb(var(--shade) / 4%);--shadow-sheet:0 0 0 1px var(--line), 0 1px 2px rgb(var(--shade) / 3%), 0 16px 40px -24px rgb(var(--shade) / 14%);--shadow-pop:0 0 0 1px var(--line), 0 4px 10px rgb(var(--shade) / 6%), 0 18px 44px -12px rgb(var(--shade) / 22%);--ring:0 0 0 3px rgb(var(--shade) / 9%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=ink]{--canvas:#131517;--bg:#1b1d20;--surface:#23262a;--raised:#2a2d32;--hover:#34383e;--line:#2d3035;--line-strong:#43474e;--text:#e9e6df;--muted:#a3a099;--faint:#77756f;--accent:#ece8df;--accent-hover:#fff;--accent-ink:#1b1d20;--shade:255 255 255;--seal:#d2674f;--seal-soft:#d2674f29;--food:#d98678;--wood:#c0a172;--coin:#d6b85a;--stone:#9fb0bd;--ok:#7fb39c;--danger:#e0786c;--danger-soft:#e0786c24;--shadow-xs:0 1px 1px #0000004d;--shadow-card:0 0 0 1px var(--line), 0 1px 2px #0000004d;--shadow-sheet:0 0 0 1px var(--line), 0 16px 40px -24px #0009;--shadow-pop:0 0 0 1px var(--line-strong), 0 18px 44px -12px #000000b3;--ring:0 0 0 3px #ffffff1f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=ink] .btn-primary,[data-theme=ink] .btn-primary:hover:not(:disabled),[data-theme=ink] .toast,[data-theme=ink] .plan.is-on,[data-theme=ink] .unit-chip.is-on{box-shadow:none}[data-theme=ink] .unit-chip.is-on,[data-theme=ink] .toggle-chip.is-on{box-shadow:0 0 0 1.5px var(--accent)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--canvas);color:var(--text);font:var(--fs-md)/1.6 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.ui-stat{gap:var(--s-1);font-variant-numeric:tabular-nums;display:grid}.ui-stat>span,.ui-stat>small{color:var(--muted);font-size:var(--fs-xs)}.ui-stat>strong{font:600 var(--fs-2xl)/1.2 var(--serif)}.ui-number{font-variant-numeric:tabular-nums}.ui-chip{align-items:center;gap:var(--s-1);min-height:30px;padding:var(--s-1) var(--s-3);border:1px solid var(--line);background:var(--raised);font-size:var(--fs-xs);border-radius:99px;display:inline-flex}.ui-chip.is-active{border-color:var(--accent);background:var(--surface)}.ui-chip:active:not(:disabled){transition:transform var(--t-press) var(--ease-out);transform:scale(.98)}.ui-legend{gap:var(--s-3);color:var(--muted);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}.ui-legend li{align-items:center;gap:var(--s-1);display:inline-flex}.ui-legend i{border-top:2px solid var(--series-color);width:16px}.ui-legend i.is-dashed{border-top-style:dashed}.ui-duel{grid-template-columns:1fr 1fr;gap:2px;display:grid}.ui-duel>span{background:var(--raised);border-radius:3px;height:6px;overflow:hidden}.ui-duel i{background:var(--series-0,var(--accent));transform-origin:100%;height:100%;transition:transform var(--t-slow) var(--ease-out);display:block}.ui-duel>span+span i{background:var(--series-1,var(--seal));transform-origin:0}.ui-skeleton i{position:relative;overflow:hidden}.ui-skeleton i:after{content:"";background:linear-gradient(90deg, transparent, var(--surface), transparent);opacity:.45;animation:1.4s linear infinite ui-skeleton-sweep;position:absolute;inset:0}@keyframes ui-skeleton-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ui-toast{align-items:center;gap:var(--s-3);animation:ui-toast-enter var(--t-base) var(--ease-out), ui-toast-exit var(--t-fast) linear 2.86s forwards;display:flex}.ui-toast button{padding:var(--s-1);color:inherit;background:0 0;border:0;place-items:center;display:grid}@keyframes ui-toast-enter{0%{opacity:0;transform:translateY(-6px)}}@keyframes ui-toast-exit{to{opacity:0}}.ui-drawer{width:min(480px,100%);max-width:100%;height:100dvh;max-height:100dvh;padding:var(--s-6);background:var(--bg);color:var(--text);box-shadow:var(--shadow-pop);overscroll-behavior:contain;border:0;margin:0;position:fixed;inset:0 0 0 auto}.ui-drawer::backdrop{background:rgb(var(--shade) / 24%)}.ui-drawer[open]{animation:ui-drawer-enter var(--t-base) var(--ease-out)}.ui-drawer header{margin-bottom:var(--s-5);justify-content:space-between;align-items:center;display:flex}.ui-drawer header button{padding:var(--s-2);color:var(--muted);background:0 0;border:0}@keyframes ui-drawer-enter{0%{opacity:0;transform:translate(12px)}}.ui-tooltip{display:inline-flex;position:relative}.ui-tooltip>[role=tooltip]{z-index:30;left:50%;bottom:calc(100% + var(--s-2));width:max-content;max-width:240px;padding:var(--s-2) var(--s-3);border-radius:var(--r-s);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-xs);opacity:0;pointer-events:none;transition:opacity var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);position:absolute;transform:translate(-50%,4px)}.ui-tooltip:hover>[role=tooltip],.ui-tooltip:focus-within>[role=tooltip]{opacity:1;transform:translate(-50%)}.ui-windowed{overscroll-behavior:contain;overflow-anchor:none;overflow:auto}.ui-windowed-items{display:grid}.ui-windowed-items>[role=listitem]{min-width:0}.ui-performance{right:var(--s-3);bottom:var(--s-3);z-index:60;font-size:var(--fs-xs);position:fixed}.ui-performance>button,.ui-performance>div{border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--surface);color:var(--text);padding:var(--s-2) var(--s-3)}.ui-performance>div{width:280px;box-shadow:var(--shadow-pop);position:absolute;bottom:38px;right:0}.ui-performance dl{gap:var(--s-1);margin:var(--s-3) 0;grid-template-columns:1fr auto;display:grid}.ui-performance dd{font-variant-numeric:tabular-nums;margin:0}.ui-performance small{margin-bottom:var(--s-2);color:var(--muted);display:block}.toast.ui-toast{top:calc(var(--app-header-height) + var(--s-3));bottom:auto;right:var(--s-5);max-width:min(440px,100vw - 32px);left:auto;transform:none}.ui-chart{touch-action:pan-y;width:100%;display:block;overflow:visible}.ui-chart-grid{stroke:var(--line);stroke-width:1px}.ui-chart-axis{fill:var(--muted);font:var(--fs-xs) var(--font)}.ui-chart-cursor{stroke:var(--muted);stroke-width:1px;stroke-dasharray:6 4}.ui-chart-brush{fill:var(--seal-soft)}.ui-chart-line{fill:none;stroke:var(--series-0,var(--accent))}.ui-chart-area,.ui-chart-bar,.ui-chart-marker,.ui-chart-difference{fill:var(--series-0,var(--accent))}.ui-chart-area,.ui-chart-difference{opacity:.08}h1,h2,h3,p,ol,ul,pre{margin:0}ol,ul{padding:0;list-style:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}svg{stroke-width:1.6px;flex-shrink:0}::selection{background:rgb(var(--shade) / 14%)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgb(var(--shade) / 16%);background-clip:padding-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:rgb(var(--shade) / 28%);background-clip:padding-box;border:3px solid #0000}:root[data-reduced-motion=true] .login-paper-stack{transform:none!important}:root[data-reduced-motion=true] .login-page .btn:active{transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] :before,:root[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}:root[data-background=true] *,:root[data-background=true] :before,:root[data-background=true] :after{animation:none!important}@media (prefers-reduced-motion:reduce){:is(.btn,.choice,.toggle-chip,.nav button,.civ-pick>summary,.unit-chip,.plan,.library-card,.wk-item,.level-step,.picker-group button):is(:hover,:active){transform:none!important}.ui-tooltip>[role=tooltip]{transform:translate(-50%)}}:root[data-reduced-motion=true] :is(.btn,.choice,.toggle-chip,.nav button,.civ-pick>summary,.unit-chip,.plan,.library-card,.wk-item,.level-step,.picker-group button):is(:hover,:active){transform:none!important}:root[data-reduced-motion=true] .ui-tooltip>[role=tooltip]{transform:translate(-50%)}::view-transition-old(root){animation-duration:var(--t-base);animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:var(--t-base);animation-timing-function:var(--ease-out)}.main{view-transition-name:coach-page}::view-transition-new(coach-page){--ui-page-offset:6px;animation:ui-page-in var(--t-base) var(--ease-out) both}::view-transition-old(coach-page){--ui-page-offset:6px;animation:ui-page-out var(--t-base) var(--ease-out) both}:root[data-page-direction=back]::view-transition-new(coach-page){--ui-page-offset:-6px}:root[data-page-direction=back]::view-transition-old(coach-page){--ui-page-offset:-6px}@keyframes ui-page-in{0%{opacity:0;transform:translateY(var(--ui-page-offset))}to{opacity:1;transform:none}}@keyframes ui-page-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(calc(var(--ui-page-offset) * -1))}}:root[data-reduced-motion=true]::view-transition-group(*){animation:none!important}:root[data-reduced-motion=true]::view-transition-old(*){animation:none!important}:root[data-reduced-motion=true]::view-transition-new(*){animation:none!important}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.app{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--app-header-height) minmax(0, 1fr);height:100dvh;display:grid}.app[hidden]{display:none}.page-loading{gap:var(--s-4);align-content:start;display:grid}.page-loading i{background:var(--raised);border-radius:var(--r-m);width:100%;height:84px;display:block}.page-loading i:first-child{width:40%;height:28px}.app-header{align-items:center;gap:var(--s-7);padding-inline:var(--s-5) var(--s-4);display:flex}.brand{flex:none;align-items:center;gap:10px;display:flex}.brand-seal{background:var(--seal);color:#fff;width:26px;height:26px;font:600 15px/1 var(--serif);border-radius:7px;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #ffffff29,0 1px 2px #b8452f59}.brand b{font:600 17px/1 var(--serif);letter-spacing:.06em}.nav{gap:2px;display:flex}.app .app-header .main-navigation{view-transition-name:coach-navigation;flex:none;align-items:center;min-width:0;height:40px;position:relative;overflow:visible}::view-transition-group(coach-navigation){animation:none}::view-transition-new(coach-navigation){animation:none}::view-transition-old(coach-navigation){display:none}::view-transition-new(coach-navigation){mix-blend-mode:normal}.nav button{border-radius:var(--r-s);height:32px;color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;transition:color var(--t-fast), background var(--t-fast);background:0 0;border:0;padding:0 13px}.nav button:hover{color:var(--text);background:var(--hover)}.nav button:active{background:var(--hover)}.main-navigation button{z-index:1;position:relative}.nav button.is-active{color:var(--text);box-shadow:none;background:0 0;font-weight:600}.nav button.is-active:hover{background:var(--hover)}.nav-tools{align-items:center;gap:2px;display:flex}.nav-divider{background:var(--line-strong);width:1px;height:14px;margin-inline:12px}.nav .nav-more{align-items:center;gap:4px;display:none}.nav-current-line{background:var(--seal);pointer-events:none;width:28px;height:2px;transition:transform .22s var(--ease-out);border-radius:1px;position:absolute;bottom:0;left:0}.nav-more-menu{z-index:110;width:192px;padding:var(--s-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-card);position:fixed}.nav-more-menu button{justify-content:space-between;align-items:center;gap:var(--s-3);width:100%;height:40px;padding:0 var(--s-3);border-radius:var(--r-s);color:var(--text);font-size:var(--fs-sm);background:0 0;border:0;display:flex}.nav-more-menu button:hover,.nav-more-menu button:focus-visible{background:var(--raised)}.nav-more-menu button[aria-current=page]{color:var(--seal);font-weight:600}.nav-more-menu kbd{color:var(--muted);font-size:var(--fs-xs);font-weight:400}.navigation-shortcuts dl{gap:var(--s-3) var(--s-5);padding:var(--s-4);flex-wrap:wrap;margin:0;display:flex}.navigation-shortcuts dl>div{align-items:center;gap:var(--s-2);display:flex}.navigation-shortcuts dd{color:var(--muted);margin:0}@media (prefers-reduced-motion:reduce){.nav-current-line{transition:none}}:root[data-reduced-motion=true] .nav-current-line{transition:none}.header-tools{align-items:center;gap:var(--s-2);min-width:0;margin-left:auto;display:flex}.live-status{align-items:center;gap:var(--s-2);min-width:0;height:28px;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;border-radius:99px;padding:0 11px;display:inline-flex}.live-status i{width:6px;height:6px;box-shadow:inset 0 0 0 1.5px var(--faint);border-radius:50%;flex:none}.live-status span{text-overflow:ellipsis;overflow:hidden}.live-status.is-on{background:var(--seal-soft);color:var(--seal);font-weight:500}.live-status.is-on i{background:var(--seal);box-shadow:none}.main{background:var(--bg);border-radius:var(--r-l);min-width:0;min-height:0;box-shadow:var(--shadow-sheet);margin:0 10px 10px;padding:36px 44px 56px;overflow-y:auto}.main:focus{outline:none}.main-library{box-shadow:none;background:0 0;border-radius:0;margin-left:0;padding:0;overflow:hidden}.library-workspace-frame{min-width:0;height:100%;min-height:0}.library-workspace-frame[hidden]{display:none}.main-library:has(>.timer-controls)>.library-workspace-frame{flex:1;height:auto}.library-preview-badge{vertical-align:middle;margin-left:var(--s-3);padding:var(--s-1) var(--s-2);border-radius:var(--r-xs);background:var(--raised);color:var(--muted);font:400 var(--fs-xs)/1.4 var(--font);letter-spacing:0;display:inline-flex}.page{gap:var(--s-7);flex-direction:column;max-width:1180px;margin:0 auto;display:flex}.page-head{align-items:flex-end;gap:var(--s-5);display:flex}.page-head>div:first-child{flex:1;min-width:0}.page-head h1{font:600 26px/1.35 var(--serif);letter-spacing:.02em}.page-head p{color:var(--muted);font-size:var(--fs-md);margin-top:6px}.actions{align-items:center;gap:var(--s-2);display:flex}.skip-link{z-index:5;left:var(--s-4);background:var(--accent);color:var(--accent-ink);padding:var(--s-2) var(--s-4);border-radius:var(--r-s);position:fixed;top:-80px}.skip-link:focus{top:var(--s-2)}.btn{height:var(--button-height);border-radius:var(--r-s);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-size:var(--fs-sm);white-space:nowrap;box-shadow:var(--shadow-xs);transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);justify-content:center;align-items:center;gap:7px;padding:0 13px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:var(--raised);border-color:var(--faint)}.btn:active:not(:disabled){background:var(--hover);box-shadow:none}.btn:disabled{opacity:.45;box-shadow:none}.btn-primary{color:var(--accent-ink);border-color:var(--accent);background:var(--accent);box-shadow:inset 0 1px 0 #ffffff24, 0 1px 2px rgb(var(--shade) / 28%)}.btn-primary:hover:not(:disabled){color:var(--accent-ink);background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent)}.btn-ghost{color:var(--muted);box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--text);background:rgb(var(--shade) / 6%);border-color:#0000}.btn-danger{color:var(--danger);box-shadow:none;background:0 0;border-color:#0000}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:#0000}.btn-lg{height:38px;font-size:var(--fs-md);padding:0 16px}.btn-icon{width:var(--button-height);padding:0}.input{width:100%;height:36px;padding:0 var(--s-3);color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-s);-webkit-user-select:text;user-select:text;transition:border-color var(--t-fast), box-shadow var(--t-fast)}textarea.input{height:auto;padding:var(--s-3)}.input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.input::placeholder{color:var(--faint)}.range{--p:50%;appearance:none;cursor:pointer;background:0 0;width:100%;height:20px;margin:0}.range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--p), var(--line-strong) var(--p));border-radius:4px;height:4px}.range::-webkit-slider-thumb{appearance:none;background:var(--surface);border:1px solid var(--line-strong);width:16px;height:16px;box-shadow:0 1px 3px rgb(var(--shade) / 22%);transition:box-shadow var(--t-fast);border-radius:50%;margin-top:-6px}.range:hover::-webkit-slider-thumb{box-shadow:0 1px 3px rgb(var(--shade) / 22%), var(--ring)}.range:focus-visible{outline:none}.range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--accent);outline-offset:2px}.seg{background:var(--raised);box-shadow:inset 0 0 0 1px var(--line);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.seg button{height:26px;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;transition:color var(--t-fast), background var(--t-fast);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding-inline:11px;display:inline-flex}.seg button:hover{color:var(--text)}.seg button.is-active{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line), 0 1px 2px rgb(var(--shade) / 10%);font-weight:500}.seg-fill{display:flex}.seg-fill button{flex:1}.switch{appearance:none;background:var(--line-strong);cursor:pointer;width:34px;height:20px;transition:background var(--t-fast);border-radius:20px;flex:none;margin:0;position:relative}.switch:after{content:"";background:var(--surface);width:16px;height:16px;box-shadow:0 1px 2px rgb(var(--shade) / 28%);transition:transform var(--t-fast);border-radius:50%;position:absolute;top:2px;left:2px}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(14px)}.switch:disabled{cursor:not-allowed;opacity:.6}.stepper{border-radius:var(--r-s);background:var(--surface);height:30px;box-shadow:var(--shadow-card);align-items:center;display:inline-flex}.stepper button{border-radius:var(--r-s);width:28px;height:100%;color:var(--muted);transition:color var(--t-fast), background var(--t-fast);background:0 0;border:0;place-items:center;display:grid}.stepper button:hover:not(:disabled){background:var(--raised);color:var(--text)}.stepper button:disabled{opacity:.35}.stepper span{text-align:center;width:26px;font-size:var(--fs-md);font-weight:600}.tag{background:var(--raised);height:21px;color:var(--muted);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;font-weight:500;display:inline-flex}.tag-outline{box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.muted{color:var(--muted)}.eyebrow{color:var(--faint);letter-spacing:.1em;font-size:11.5px;font-weight:600}kbd{background:var(--surface);border:1px solid var(--line-strong);min-width:26px;font:11.5px/1.9 var(--mono);text-align:center;color:var(--text);border-bottom-width:2px;border-radius:6px;padding:0 7px;display:inline-block}.civ-flag{object-fit:cover;box-shadow:0 0 0 1px rgb(var(--shade) / 14%), 0 1px 2px rgb(var(--shade) / 16%);border-radius:3px;flex:none;display:block}.civ-flag-small{width:36px;height:20px}.civ-flag-large{width:50px;height:28px}.civ-fallback{background:var(--raised);color:var(--muted);font:600 12px/1 var(--serif);box-shadow:0 0 0 1px var(--line-strong);place-items:center;display:grid}.civ-fallback.civ-flag-large{font-size:14px}.section{gap:var(--s-3);flex-direction:column;display:flex}.section-head{align-items:baseline;gap:var(--s-3);padding-inline:2px;display:flex}.section-head h2{font-size:var(--fs-body);font-weight:600}.section-head p{color:var(--muted);font-size:var(--fs-xs)}.section-head>:last-child:not(h2):not(p){margin-left:auto}.group{background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-card)}.row{align-items:center;gap:var(--s-4);min-height:56px;padding:11px var(--s-4);border-top:1px solid var(--line);display:flex}.row:first-child{border-top:0}.row-main{flex:1;min-width:0;font-weight:500}.row-main small{color:var(--muted);font-size:var(--fs-xs);margin-top:1px;font-weight:400;display:block}.row.is-off .row-main,.row.is-off .cost{opacity:.5}label.row{cursor:pointer}.card,.ui-card{padding:var(--s-5);background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-card)}.empty{justify-items:center;gap:var(--s-3);padding:64px var(--s-5);color:var(--muted);text-align:center;display:grid}.empty h2{font:600 20px/1.4 var(--serif);color:var(--text)}.empty p{max-width:46ch;line-height:1.8}.toast{z-index:4;bottom:var(--s-7);max-width:min(560px, calc(100% - var(--s-8)));border-radius:var(--r-m);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-sm);box-shadow:0 10px 30px -8px rgb(var(--shade) / 45%);align-items:center;gap:10px;padding:10px 16px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast:before{content:"";background:var(--accent-ink);opacity:.7;border-radius:50%;flex:none;width:6px;height:6px}.cols{grid-template-columns:minmax(0, 1fr) var(--rail-width);align-items:start;gap:var(--s-8);display:grid}.stack,.rail{gap:var(--s-7);flex-direction:column;min-width:0;display:flex}.rail-block{gap:var(--s-3);flex-direction:column;min-width:0;display:flex}@media (height>=700px){.rail-sticky{position:sticky;top:28px}}.caption{color:var(--faint);font-size:var(--fs-xs);line-height:1.7}.stage{border-radius:var(--r-m);min-height:208px;max-height:340px;box-shadow:inset 0 0 0 1px #0000004d, inset 0 1px 0 #ffffff1a, 0 1px 2px rgb(var(--shade) / 10%);background-color:#2b3032;background-image:radial-gradient(#ffffff0d 1px,#0000 1px),radial-gradient(120% 90% at 30% 0,#3d4547,#25292b);background-size:14px 14px,auto;flex:none;align-items:flex-start;padding:18px 16px;display:flex;position:relative;overflow:hidden auto}.stage-light{box-shadow:inset 0 0 0 1px #00000014, 0 1px 2px rgb(var(--shade) / 6%);background-color:#dfe1dc;background-image:radial-gradient(#0000000d 1px,#0000 1px),radial-gradient(120% 90% at 30% 0,#eef0ec,#d3d6d0)}.stage::-webkit-scrollbar-thumb{background:#ffffff38 padding-box padding-box;border:3px solid #0000}.stage-light::-webkit-scrollbar-thumb{background:#0000002e padding-box padding-box;border:3px solid #0000}.stage:has(.ov-frame.is-fixed){max-height:none;overflow:visible}.preview-head{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.preview-head h2,.rail h2{font-size:var(--fs-sm);font-weight:600}.preview-paging{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.preview-paging>span{color:var(--muted);font-size:var(--fs-xs)}.field{min-width:0;font-size:var(--fs-xs);color:var(--muted);flex-direction:column;gap:6px;display:flex}.field>span{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.field b{color:var(--text);font-weight:500}.fold>summary{height:32px;color:var(--muted);font-size:var(--fs-xs);cursor:pointer;border-radius:var(--r-xs);justify-content:space-between;align-items:center;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary:hover{color:var(--text)}.fold>summary svg{transition:transform var(--t-fast)}.fold[open]>summary svg{transform:rotate(180deg)}.fold-body{gap:var(--s-4);padding:var(--s-2) 0 var(--s-1);flex-direction:column;display:flex}.res-food,.chip-food{--c:var(--food)}.res-wood,.chip-wood{--c:var(--wood)}.res-gold,.chip-gold{--c:var(--coin)}.res-stone,.chip-stone{--c:var(--stone)}.editor-navigation{margin-bottom:calc(-1 * var(--s-3));align-items:center;display:flex}.editor-navigation .btn{padding-inline:var(--s-2);margin-left:calc(-1 * var(--s-2));color:var(--muted)}.editor-navigation .btn:hover{color:var(--text)}.editor-head{align-items:flex-start;gap:var(--s-5);display:flex}.editor-title{flex:1;min-width:0}.name-input{width:100%;font:600 26px/1.35 var(--serif);letter-spacing:.02em;-webkit-user-select:text;user-select:text;transition:border-color var(--t-fast);background:0 0;border:0;border-bottom:1px solid #0000;padding:2px 0 6px}.name-input:hover{border-bottom-color:var(--line-strong)}.name-input:focus{border-bottom-color:var(--accent);outline:none}.name-input::placeholder{color:var(--faint);font-weight:600}.editor-status{align-items:center;gap:var(--s-2);color:var(--muted);font-size:var(--fs-xs);flex-wrap:wrap;margin-top:6px;display:flex}.editor-status>span,.editor-status>.link{flex:none;max-width:100%}.editor-status>.link{white-space:nowrap}.editor-status i{background:var(--ok);border-radius:50%;flex:none;width:6px;height:6px}.editor-status.is-dirty i{background:var(--coin)}.editor{grid-template-columns:minmax(0, 1fr) var(--rail-width);align-items:start;gap:var(--s-8);min-height:420px;display:grid}.editor-side{top:var(--s-4);padding:1px 2px 2px 1px;position:sticky}.code-card{border-radius:var(--r-m);background:var(--surface);min-height:0;box-shadow:var(--shadow-card);transition:box-shadow var(--t-fast);flex-direction:column;display:flex}.code-card:has(textarea:focus){box-shadow:0 0 0 1px var(--accent), var(--ring)}.code{border-radius:0 0 var(--r-m) var(--r-m);flex:1;min-height:420px}.code-tools{z-index:3;border-bottom:1px solid var(--line);border-radius:var(--r-m) var(--r-m) 0 0;background:var(--surface);flex-wrap:wrap;align-items:center;gap:2px;padding:7px 10px;display:flex;position:sticky;top:0}.tool{min-width:30px;height:30px;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast) var(--ease-out);background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 6px;display:inline-flex}.tool.has-label{padding:0 9px 0 7px}.tool:hover{background:var(--raised);color:var(--text)}.tool:active{transform:scale(.94)}.tool.is-on{background:var(--surface);color:var(--text);box-shadow:0 0 0 1.5px var(--accent)}.tool-sep{background:var(--line-strong);width:1px;height:16px;margin:0 6px}.tool-end{align-items:center;gap:var(--s-2);padding-left:var(--s-3);color:var(--muted);font-size:var(--fs-xs);margin-left:auto;display:flex}.tool-end .seg button{height:24px;font-size:var(--fs-xs);padding-inline:9px}.tool-group{flex-wrap:nowrap;align-items:center;gap:2px;display:flex}.editor-find{min-width:0;margin-top:var(--s-1);padding-top:var(--s-2);border-top:1px solid var(--line);flex-basis:100%}.find-row{align-items:center;gap:var(--s-1);min-width:0;display:flex}.find-row+.find-row{margin-top:var(--s-1)}.find-field{align-items:center;gap:var(--s-2);min-width:0;padding-inline:var(--s-2);border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--surface);color:var(--faint);flex:1;display:flex}.find-field:focus-within{border-color:var(--accent);box-shadow:var(--shadow-xs)}.find-field svg{flex:none}.find-field input{width:100%;min-width:0;height:30px;font-size:var(--fs-xs);background:0 0;border:0;outline:0;padding:0}.find-field input::placeholder{color:var(--faint)}.find-icon{border-radius:var(--r-xs);width:28px;height:30px;color:var(--muted);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.find-icon:hover:not(:disabled),.find-action:hover:not(:disabled){background:var(--hover);color:var(--text)}.find-icon.is-on{background:var(--raised);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.find-case{font-size:var(--fs-xs)}.find-icon:disabled,.find-action:disabled{opacity:.35;cursor:default}.find-count{min-width:calc(var(--s-3) * 5);color:var(--muted);text-align:center;white-space:nowrap;font-size:var(--fs-xxs);font-variant-numeric:tabular-nums;flex:none}.find-indent{flex:none;width:28px}.find-action{height:30px;padding-inline:var(--s-3);border:1px solid var(--line);border-radius:var(--r-s);background:var(--raised);color:var(--text);font-size:var(--fs-xs);white-space:nowrap;flex:none}.find-hint{min-height:20px;padding:var(--s-1) 0 0 calc(28px + var(--s-1));color:var(--faint);font-size:var(--fs-xxs)}.find-hit{background:color-mix(in srgb, var(--coin) 20%, transparent);border-radius:2px}.find-hit.is-active{background:color-mix(in srgb, var(--coin) 35%, transparent);outline:1px solid color-mix(in srgb, var(--coin) 65%, transparent)}.phase-outline{min-width:0;padding-bottom:var(--s-4);border-bottom:1px solid var(--line)}.phase-outline summary,.editor-help summary{justify-content:space-between;align-items:center;gap:var(--s-2);cursor:pointer;list-style:none;display:flex}.phase-outline summary::-webkit-details-marker{display:none}.editor-help summary::-webkit-details-marker{display:none}.phase-outline summary{color:var(--text);font-size:var(--fs-sm);font-weight:600}.phase-outline summary>span{align-items:center;gap:var(--s-2);display:flex}.phase-outline summary small{color:var(--faint);font-size:var(--fs-xxs);font-weight:400}.phase-outline:not([open]) summary>svg,.editor-help:not([open]) summary>svg{transform:rotate(-90deg)}.phase-list{max-height:28dvh;margin-top:var(--s-2);flex-direction:column;gap:2px;display:flex;overflow-y:auto}.phase-row{border-radius:var(--r-s);transition:transform var(--t-base) var(--ease-spring), opacity var(--t-fast);border-left:2px solid #0000;flex:none;position:relative}.phase-row:hover,.phase-row.is-expanded{background:var(--raised)}.phase-row.is-current{border-left-color:var(--seal);background:var(--seal-soft)}.phase-row-main{min-width:0;transition:transform var(--t-base) var(--ease-out);align-items:center;display:flex}.phase-jump{grid-template-columns:var(--s-5) minmax(0, 1fr) auto auto;align-items:center;gap:var(--s-2);min-width:0;min-height:36px;padding:var(--s-1) var(--s-2);color:var(--muted);font-size:var(--fs-xs);text-align:left;background:0 0;border:0;flex:1;display:grid}.phase-grip,.phase-more{border-radius:var(--r-xs);color:var(--faint);opacity:0;transition:opacity var(--t-fast), background var(--t-fast), color var(--t-fast);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.phase-grip{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:18px;height:30px}.phase-grip:active{cursor:grabbing}.phase-more{width:26px;height:28px;margin-right:var(--s-1)}.phase-row:hover .phase-grip,.phase-row:hover .phase-more,.phase-row:focus-within .phase-grip,.phase-row:focus-within .phase-more,.phase-row.is-expanded .phase-more{opacity:1}.phase-grip:hover,.phase-more:hover{background:var(--hover);color:var(--text)}.phase-actions{align-items:center;gap:var(--s-1);padding:0 var(--s-2) var(--s-2) var(--s-6);display:flex}.phase-actions button{align-items:center;gap:var(--s-1);height:28px;padding:0 var(--s-2);border-radius:var(--r-xs);background:var(--surface);color:var(--muted);font-size:var(--fs-xxs);white-space:nowrap;border:0;display:inline-flex}.phase-actions button:hover:not(:disabled){background:var(--hover);color:var(--text)}.phase-actions button:disabled{opacity:.35}.phase-row.is-dragging{z-index:1;opacity:.65;box-shadow:var(--shadow-card);transform:scale(1.06)}.phase-row.drop-before:not(.is-dragging)>.phase-row-main{transform:translateY(4px)}.phase-row.drop-after:not(.is-dragging)>.phase-row-main{transform:translateY(-4px)}:root[data-reduced-motion=true] .phase-row.is-dragging,:root[data-reduced-motion=true] .phase-row:is(.drop-before,.drop-after)>.phase-row-main{transform:none}@media (prefers-reduced-motion:reduce){.phase-row.is-dragging,.phase-row:is(.drop-before,.drop-after)>.phase-row-main{transform:none}}.phase-row.drop-before:before,.phase-row.drop-after:after{inset-inline:var(--s-1);background:var(--accent);content:"";pointer-events:none;height:2px;position:absolute}.phase-row.drop-before:before{top:-2px}.phase-row.drop-after:after{bottom:-2px}.phase-hint{min-height:18px;margin-top:var(--s-2);color:var(--faint);font-size:var(--fs-xxs)}.phase-pop-head{padding:var(--s-1) var(--s-2);font-size:var(--fs-xs);justify-content:space-between;align-items:center;display:flex}.phase-pop-head b{font-weight:500}.phase-pop-head small{color:var(--faint);font-size:var(--fs-xxs)}.outline-number{font-size:var(--fs-xxs);font-variant-numeric:tabular-nums;color:var(--faint)}.outline-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text);overflow:hidden}.phase-list .is-current .outline-title,.phase-list .is-current .outline-number{color:var(--seal)}.phase-list time,.phase-list small{font-size:var(--fs-xxs);color:var(--faint);font-variant-numeric:tabular-nums}.phase-outline>.caption{margin-top:var(--s-2)}.phase-menu{display:block}.phase-trigger-label{display:none}.phase-pop{width:min(calc(var(--s-7) * 8), calc(100dvw - var(--s-7) * 3))}.phase-pop .phase-list{max-height:45dvh;margin-top:0}.editor-side{gap:var(--s-4)}.editor-side .ov-frame.is-preview.is-fixed{max-height:clamp(200px,100dvh - 600px,360px)}@media (width>=851px) and (height>=761px){.editor-side .stage:not(:has(.ov-frame.is-fixed)){max-height:clamp(208px,100dvh - 660px,340px)}}.preview-help{color:var(--faint);font-size:var(--fs-xxs)}.preview-help summary{justify-content:space-between;align-items:center;gap:var(--s-2);cursor:pointer;list-style:none;display:flex}.preview-help summary::-webkit-details-marker{display:none}.preview-help:not([open]) summary svg{transform:rotate(-90deg)}.preview-help .caption{margin-top:var(--s-2)}.editor-help{padding-top:var(--s-4);border-top:1px solid var(--line)}.editor-help summary{color:var(--muted);font-size:var(--fs-xs)}.editor-help .syntax{margin-top:var(--s-3)}.is-editor .issues button{align-items:baseline;gap:var(--s-2);color:inherit;font-size:inherit;text-align:left;background:0 0;border:0;padding:0;display:flex}.is-editor .issues button:hover{text-underline-offset:3px;text-decoration:underline}@media (width>=851px) and (height<=760px){.editor-side>.phase-outline{display:none}.phase-trigger-label{display:inline}}.tool-menu{position:relative}.tool-pop{z-index:3;gap:var(--s-2);border-radius:var(--r-m);background:var(--surface);width:268px;max-height:min(60vh,440px);box-shadow:var(--shadow-pop);flex-direction:column;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.tool-pop-group{flex-direction:column;gap:1px;display:flex}.tool-pop-group>span{color:var(--faint);letter-spacing:.04em;padding:4px 8px 3px;font-size:11.5px}.tool-pop-group button{justify-content:space-between;align-items:baseline;gap:var(--s-3);border-radius:var(--r-s);color:var(--text);font-size:var(--fs-sm);text-align:left;transition:background var(--t-fast);background:0 0;border:0;padding:6px 8px;display:flex}.tool-pop-group button:hover{background:var(--raised)}.tool-pop-group small{color:var(--faint);flex:none;font-size:11.5px}.template-pop{width:calc(var(--s-7) * 9)}.template-pop .template-item{padding:var(--s-2);align-items:center}.template-item>span{gap:var(--s-1);flex-direction:column;display:flex}.template-item b{font-weight:500}.template-item small{white-space:normal;line-height:1.5}.template-confirm{gap:var(--s-3);padding:var(--s-2);font-size:var(--fs-sm);flex-direction:column;display:flex}.template-confirm .actions{justify-content:flex-end}.phase-pop{width:min(340px, calc(100dvw - var(--s-8) * 2));overflow:visible}.phase-pop .phase-hint{padding:0 var(--s-2) var(--s-1);margin:0}.editor-save{flex:none;position:relative}.save-split{border-radius:var(--r-s);box-shadow:var(--shadow-card);align-items:stretch;display:flex;overflow:hidden}.save-split>.btn{border-radius:var(--r-s) 0 0 var(--r-s);box-shadow:none}.save-split>.btn:hover,.save-split>.btn:active{transform:none}.save-more{border:0;border-left:1px solid color-mix(in srgb, var(--accent-ink) 20%, transparent);background:var(--accent);width:30px;color:var(--accent-ink);justify-content:center;align-items:center;padding:0;display:flex}.save-more:hover,.save-split.is-open .save-more{background:var(--accent-hover)}.save-split.is-saved{box-shadow:none;background:var(--raised)}.save-split.is-saved>.btn{color:var(--faint);opacity:1;background:0 0;border-color:#0000}.save-split.is-saved .save-more{border-left-color:var(--line-strong);color:var(--muted);background:0 0}.save-split.is-saved .save-more:hover,.save-split.is-saved.is-open .save-more{background:var(--hover);color:var(--text)}.editor-save.has-publish{align-items:center;gap:var(--s-2);display:flex}.editor-publication-state{align-items:center;gap:var(--s-1);color:var(--muted);display:inline-flex}.editor-save.has-publish .save-split{box-shadow:none;border:1px solid var(--line)}.editor-save.has-publish .save-split>.btn{color:var(--text);background:0 0;border:0}.editor-save.has-publish .save-split>.btn:disabled{color:var(--muted)}.editor-save.has-publish .save-more{color:var(--muted);border-left-color:var(--line);background:0 0}.editor-save.has-publish .save-more:hover,.editor-save.has-publish .save-split.is-open .save-more{background:var(--hover);color:var(--text)}.save-pop{z-index:5;top:calc(100% + var(--s-2));width:min(340px, calc(100dvw - var(--s-8) * 2));padding:var(--s-2);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-pop);position:absolute;right:0}.save-option{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3);border-radius:var(--r-s);color:var(--muted);text-align:left;background:0 0;border:0;display:flex}.save-option:hover{background:var(--raised);color:var(--text)}.save-option>span{gap:var(--s-1);flex-direction:column;flex:1;display:flex}.save-option b{color:var(--text);font-size:var(--fs-sm);font-weight:500}.save-option small{color:var(--faint);font-size:var(--fs-xs)}.save-pop.is-creating{padding:var(--s-5)}.variant-heading{align-items:center;gap:var(--s-3);margin-bottom:var(--s-5);display:flex}.variant-symbol{width:var(--s-8);height:var(--s-8);border-radius:var(--r-s);background:var(--raised);color:var(--muted);flex:none;justify-content:center;align-items:center;display:flex}.variant-heading h3{font:600 19px/1.4 var(--serif);margin:0}.variant-heading p{margin-top:var(--s-1);color:var(--muted);font-size:var(--fs-xs);line-height:1.6}.variant-form>label{margin-bottom:var(--s-2);color:var(--muted);font-size:var(--fs-xs);display:block}.variant-form .input{width:100%;min-width:0}.variant-message{min-height:34px;margin-top:var(--s-2);color:var(--faint);font-size:var(--fs-xs);line-height:1.5}.variant-message.is-error{color:var(--danger)}.variant-actions{justify-content:flex-end;align-items:center;gap:var(--s-2);margin-top:var(--s-3);display:flex}@media (hover:none){.phase-grip,.phase-more{opacity:1}}.code-notice{border-bottom:1px solid var(--line);background:var(--raised);color:var(--muted);font-size:var(--fs-xs);padding:7px 14px}.code-notice .link{margin-left:var(--s-2);color:var(--text)}.code-card .picker{border-bottom:1px solid var(--line);background:var(--raised);max-height:168px;box-shadow:none;border-radius:0}.code-inner{counter-reset:line;min-height:100%;position:relative}.code-inner:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:62px}.code pre,.code textarea{font:var(--fs-body)/1.95 var(--font);font-variant-numeric:tabular-nums;white-space:pre-wrap;overflow-wrap:break-word;tab-size:2;letter-spacing:0;text-rendering:auto;font-kerning:none;font-variant-ligatures:none;padding:18px 24px 48px 78px}.code textarea{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--text);-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:0;position:absolute;inset:0;overflow:hidden}.code-line{counter-increment:line;min-height:1.95em;position:relative}.code-line:before{content:counter(line);text-align:right;width:48px;color:var(--faint);opacity:.8;font-size:11.5px;position:absolute;left:-78px}.code-line.is-current{background:linear-gradient(to right, var(--raised), transparent 85%);box-shadow:-78px 0 0 var(--raised)}.code-line.is-current:before{color:var(--text);opacity:1}.code-line.is-current:after{content:"";background:var(--seal);width:2px;position:absolute;top:0;bottom:0;left:-78px}.code-node{background:var(--surface);width:9px;height:9px;box-shadow:inset 0 0 0 1.5px var(--line-strong);border-radius:50%;position:absolute;top:calc(.975em - 4px);left:-20px}.code-line[data-mark] .code-node{background:var(--text);box-shadow:0 0 0 3px var(--surface)}.code-line.is-auto .code-node{background:var(--muted)}.code-line[data-mark]:before{content:attr(data-mark);color:var(--text);opacity:1;font-size:12.5px;font-weight:600}.code-line.is-auto:before{color:var(--muted);font-weight:500}.code-inner{min-height:max(420px,100dvh - 300px)}.code-voice{background:var(--surface);border-radius:50%;width:17px;height:17px;position:absolute;top:calc(.975em - 8px);left:-24px}.code-voice:before{content:"";background:var(--seal);position:absolute;inset:2px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4.7a.7.7 0 0 0-1.2-.5L6.4 7.6A1.4 1.4 0 0 1 5.4 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.4a1.4 1.4 0 0 1 1 .4l3.4 3.4a.7.7 0 0 0 1.2-.5z'/%3E%3Cpath d='M16 9a5 5 0 0 1 0 6'/%3E%3Cpath d='M19.4 18.4a9 9 0 0 0 0-12.8'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4.7a.7.7 0 0 0-1.2-.5L6.4 7.6A1.4 1.4 0 0 1 5.4 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.4a1.4 1.4 0 0 1 1 .4l3.4 3.4a.7.7 0 0 0 1.2-.5z'/%3E%3Cpath d='M16 9a5 5 0 0 1 0 6'/%3E%3Cpath d='M19.4 18.4a9 9 0 0 0 0-12.8'/%3E%3C/svg%3E") 50%/contain no-repeat}.code-line.has-issue{-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger);text-underline-offset:5px}.hl-marker{color:var(--faint);opacity:.7}.hl-bold{color:var(--text);-webkit-text-stroke:.45px currentColor}.hl-italic{color:var(--text);-webkit-text-decoration:underline dotted var(--muted);text-decoration:underline dotted var(--muted);text-underline-offset:5px}.hl-mark{color:var(--seal);background:var(--seal-soft);box-shadow:0 0 0 2px var(--seal-soft);border-radius:2px}.hl-speak{color:var(--seal)}.rt-bold{font-weight:700}.rt-italic{font-style:italic}.rt-mark{color:var(--seal);background:0 0;font-weight:600}.hl-phase{color:var(--text)}.hl-time{color:var(--text);background:var(--raised);box-shadow:0 0 0 3px var(--raised);border-radius:2px}.hl-meta{color:var(--faint)}.hl-dim{color:var(--muted)}.hl-alloc{color:var(--ok)}.ent{white-space:nowrap}.ent-icon{vertical-align:-.3em;object-fit:cover;width:1.35em;height:1.35em;box-shadow:0 0 0 1px rgb(var(--shade) / 18%);border-radius:.28em;margin:0 .22em 0 .1em;display:inline-block}.ent-icon.is-building{background:linear-gradient(160deg,#2a3a55,#18233a)}.ent-icon.is-tech{background:linear-gradient(160deg,#3f8c78,#2a6657)}.ent-icon.is-unit{background:linear-gradient(160deg,#8c5741,#683f2e)}.ov .ent-icon{box-shadow:0 0 0 1px #000000b3,0 1px 2px #0009}.ent-icon.is-res{width:1.5em;height:1.15em;box-shadow:none;object-fit:contain;vertical-align:-.2em;border-radius:0}.ov .ent-icon.is-res{box-shadow:none;filter:drop-shadow(0 1px 1px #000c)}.link{color:var(--muted);font-size:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:color var(--t-fast);background:0 0;border:0;padding:0}.link:hover{color:var(--text)}.suggest-float{z-index:2;border-radius:var(--r-m);background:var(--surface);min-width:150px;box-shadow:var(--shadow-pop);flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute}.suggest-float button{align-items:center;gap:var(--s-2);border-radius:var(--r-s);font-size:var(--fs-sm);text-align:left;background:0 0;border:0;padding:5px 8px 5px 5px;display:flex}.suggest-float button:hover,.suggest-float button.is-first{background:var(--raised)}.suggest-float .game-icon{border-radius:6px;width:24px;height:24px}.suggest-float kbd{margin-left:auto;font-size:10.5px;line-height:1.6}.suggest-float.is-allocation{min-width:0;max-width:calc(100% - var(--s-4))}.suggest-float.is-allocation button{padding:var(--s-2);color:var(--muted)}.suggest-float.is-allocation b{color:var(--ok);font-variant-numeric:tabular-nums;font-weight:500}.suggest-float.is-allocation kbd{flex:none}.toggle-chip.is-picker{margin-left:auto;padding-left:10px}.picker{gap:var(--s-2);max-height:190px;padding:var(--s-3);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow-y:auto}.picker-group{align-items:start;gap:var(--s-2);color:var(--muted);font-size:var(--fs-xs);grid-template-columns:34px minmax(0,1fr);display:grid}.picker-group>span{padding-top:7px}.picker-group>div{flex-wrap:wrap;gap:5px;display:flex}.picker-group button{transition:transform var(--t-press);background:0 0;border:0;border-radius:8px;padding:0}.picker-group button:hover{transform:translateY(-1px)}.picker-group button:active{transform:scale(.92)}.picker-group .game-icon{width:32px;height:32px}.code-wrap{grid-template-rows:minmax(0,1fr) auto auto}.editor-status .link{margin-left:var(--s-2)}.welcome{z-index:6;padding:var(--s-6);background:rgb(var(--shade) / 28%);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;display:grid;position:fixed;inset:0}.welcome-card{align-items:flex-start;gap:var(--s-5);background:var(--bg);width:min(520px,100%);box-shadow:var(--shadow-pop);border-radius:18px;flex-direction:column;padding:32px 36px;display:flex}.welcome-card .brand-seal{border-radius:10px;width:36px;height:36px;font-size:20px}.welcome-card h2{font:600 24px/1.3 var(--serif);letter-spacing:.03em}.welcome-card ol{gap:var(--s-4);flex-direction:column;width:100%;display:flex}.welcome-card li{gap:var(--s-3);grid-template-columns:26px minmax(0,1fr);display:grid}.welcome-card li>b{background:var(--raised);width:24px;height:24px;color:var(--muted);font:600 13px/1 var(--serif);border-radius:50%;place-items:center;display:grid}.welcome-card h3{font-size:var(--fs-md);font-weight:600}.welcome-card p{color:var(--muted);font-size:var(--fs-sm);margin-top:2px;line-height:1.7}.welcome-card .btn{align-self:stretch}dialog.welcome{width:100%;max-width:none;height:100%;max-height:none;color:var(--text);border:0;margin:0}dialog.welcome:not([open]){display:none}dialog.welcome::backdrop{background:0 0}.workspace-return{margin-bottom:var(--s-3)}.main-library>.workspace-return{margin:var(--s-3)}.workspace-skeleton{width:100%}.workspace-skeleton i{height:var(--s-4);border-radius:var(--r-s);background:var(--raised);display:block}.workspace-skeleton>.workspace-skeleton-heading{width:28%;height:var(--s-6);margin-bottom:var(--s-5)}.workspace-skeleton>div{gap:var(--s-6);grid-template-columns:minmax(180px,1fr) minmax(0,2fr);display:grid}.workspace-skeleton section{gap:var(--s-4);padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-m);flex-direction:column;display:flex}.workspace-skeleton section i:nth-child(2){width:72%}.workspace-skeleton section i:last-child{height:180px}.workspace-skeleton.is-report>div{grid-template-columns:1fr}.workspace-skeleton.is-report section:last-child i{height:var(--s-7)}@media (width<=700px){.workspace-skeleton>div{grid-template-columns:1fr}}.code-wrap{gap:var(--s-2);grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.suggest{flex-wrap:wrap;align-items:center;gap:6px;min-height:34px;display:flex}.scrub{align-items:center;gap:var(--s-3);display:flex}.scrub b{min-width:38px;font-size:var(--fs-sm);font-weight:600}.syntax{gap:9px var(--s-3);font-size:var(--fs-xs);color:var(--muted);grid-template-columns:auto 1fr;align-items:baseline;display:grid}.syntax code{border-radius:var(--r-xs);background:var(--raised);color:var(--text);font:var(--fs-xs)/1.7 var(--font);white-space:nowrap;justify-self:start;padding:1px 7px}.issues{font-size:var(--fs-xs);color:var(--danger);flex-direction:column;gap:6px;display:flex}.issues li{gap:var(--s-2);display:flex}.issues b{flex:none;font-weight:600}.choice{background:var(--surface);height:34px;color:var(--muted);font-size:var(--fs-sm);box-shadow:var(--shadow-card);transition:color var(--t-fast), box-shadow var(--t-fast);border:0;border-radius:99px;align-items:center;gap:7px;padding:0 13px;display:inline-flex}.choice:hover{color:var(--text)}.choice.is-active{color:var(--text);box-shadow:0 0 0 1.5px var(--accent);font-weight:500}.game-icon{object-fit:cover;width:36px;height:36px;box-shadow:0 0 0 1px rgb(var(--shade) / 16%), 0 1px 2px rgb(var(--shade) / 18%);border-radius:8px;flex:none;display:block}.game-icon.is-building{background:linear-gradient(160deg,#2a3a55,#18233a)}.game-icon.is-tech{background:linear-gradient(160deg,#3f8c78,#2a6657)}.game-icon.is-unit{background:linear-gradient(160deg,#8c5741,#683f2e)}.calc-page{gap:var(--s-6)}.calc-page .stack{gap:var(--s-5)}.prod-row{grid-template-columns:calc(var(--s-7) * 4) minmax(0, 1fr) auto;align-items:center;gap:var(--s-3);padding:7px var(--s-3);border-top:1px solid var(--line);display:grid}.prod-building{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);font-weight:600;display:flex}.prod-building .game-icon{border-radius:7px;width:28px;height:28px}.prod-building+.toggle-chip{margin-top:var(--s-1)}.prod-close{width:26px;height:26px;color:var(--faint);transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.prod-close:hover{background:var(--danger-soft);color:var(--danger)}.unit-chip{border-radius:var(--r-s);background:var(--raised);transition:background var(--t-fast), box-shadow var(--t-fast), transform var(--t-press);align-items:stretch;display:flex}.unit-chip.is-on{background:var(--surface);box-shadow:0 0 0 1.5px var(--accent), 0 2px 6px rgb(var(--shade) / 10%)}.unit-chip:has(.unit-add:active){transform:scale(.97)}.unit-add{align-items:center;gap:var(--s-2);border-radius:var(--r-s);text-align:left;background:0 0;border:0;padding:4px 9px 4px 5px;display:flex}.unit-add:hover:not(:disabled) .game-icon{filter:none;opacity:1}.unit-add .game-icon{border-radius:7px;width:30px;height:30px}.unit-chip.is-on .game-icon{filter:none;opacity:1}.unit-chip-name{min-width:58px;font-size:var(--fs-sm);color:var(--muted);line-height:1.3}.unit-chip.is-on .unit-chip-name{color:var(--text);font-weight:500}.unit-count{background:var(--accent);min-width:22px;height:22px;color:var(--accent-ink);font-size:var(--fs-xs);animation:count-pop var(--t-base) var(--ease-spring);border-radius:11px;place-items:center;margin-left:2px;padding:0 6px;font-weight:600;display:grid}.unit-minus{border:0;border-left:1px solid var(--line);border-radius:0 var(--r-s) var(--r-s) 0;width:28px;color:var(--muted);transition:background var(--t-fast), color var(--t-fast);background:0 0;place-items:center;display:grid}.unit-minus:hover{background:var(--raised);color:var(--text)}.unit-minus:active{background:var(--hover)}@keyframes count-pop{0%{opacity:.4;transform:scale(.55)}}.age-pick .game-icon{border-radius:6px;width:24px;height:24px}.age-pick .seg button{height:24px;font-family:var(--serif);padding-inline:8px}.prod-row.is-off .prod-building{opacity:.45}.prod-units{flex-wrap:wrap;gap:6px;display:flex}.level-row{align-items:center;gap:var(--s-3);padding:8px var(--s-3);border-top:1px solid var(--line);grid-template-columns:104px auto minmax(0,1fr) auto;display:grid}.level-row:first-child{border-top:0}.level-row .stepper{box-shadow:var(--shadow-card);background:var(--surface)}.level-label{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);font-weight:600;display:flex}.level-now{font-size:var(--fs-sm);line-height:1.3}.level-now small{color:var(--muted);font-size:11.5px;display:block}.level-icons{gap:10px;display:flex;position:relative}.level-step{transition:transform var(--t-press);background:0 0;border:0;border-radius:8px;padding:0;position:relative}.level-step+.level-step:before{content:"";background:var(--line-strong);width:10px;height:2px;transition:background var(--t-fast);margin-top:-1px;position:absolute;top:50%;left:-10px}.level-step.is-on+.level-step.is-on:before,.level-step.is-on+.level-step:hover:before{background:var(--accent)}.level-step .game-icon{filter:grayscale();opacity:.4;width:30px;height:30px;transition:filter var(--t-fast), opacity var(--t-fast), box-shadow var(--t-fast);border-radius:8px}.level-step:hover .game-icon{opacity:.8;filter:grayscale(.4)}.level-step.is-on .game-icon{filter:none;opacity:1;box-shadow:0 0 0 1.5px var(--surface), 0 0 0 3px var(--accent)}.level-step:active{transform:scale(.9)}.btn,.toggle-chip,.choice,.nav button,.seg button,.library-guide-row,.appearance-option,.prod-close,.unit-minus,.window-controls button{transition-property:background,border-color,color,box-shadow,transform,filter;transition-duration:var(--t-fast);transition-timing-function:var(--ease-out)}.btn:active:not(:disabled),.toggle-chip:active:not(:disabled),.choice:active{transform:scale(.96)}.seg button:active{transform:scale(.94)}.btn-primary:hover:not(:disabled){box-shadow:inset 0 1px 0 #ffffff29, 0 3px 10px rgb(var(--shade) / 28%);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.97)}.toggle-chip:hover:not(:disabled):not(.is-on){background:var(--hover)}.age-pick{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.tech-levels{align-items:center}.result-notes{margin-top:var(--s-2)}.result-notes .fold-body{gap:var(--s-2)}.result .eyebrow{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.toggle-chips{padding:9px var(--s-3);border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;display:flex}.toggle-chip{border-radius:var(--r-s);background:var(--raised);height:32px;color:var(--muted);font-size:var(--fs-xs);transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);border:0;align-items:center;gap:6px;padding:0 9px 0 4px;display:inline-flex}.toggle-chip .game-icon{filter:grayscale();opacity:.5;border-radius:6px;width:24px;height:24px}.toggle-chip:hover:not(:disabled){color:var(--text)}.toggle-chip.is-on{background:var(--surface);color:var(--text);box-shadow:0 0 0 1.5px var(--accent);font-weight:500}.toggle-chip.is-on .game-icon{filter:none;opacity:1}.toggle-chip:disabled{opacity:.4}.app-header:has(.window-controls){padding-right:0}.window-controls{margin-left:var(--s-2);align-self:stretch;display:flex}.window-controls button{width:46px;color:var(--muted);transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;place-items:center;display:grid}.window-controls button:hover{background:rgb(var(--shade) / 8%);color:var(--text)}.window-controls button.is-close:hover{background:var(--danger);color:var(--on-danger)}.res-icon{object-fit:contain;vertical-align:-3px;flex:none;display:inline-block}.tech-levels{gap:6px var(--s-5);padding:9px var(--s-3);flex-wrap:wrap;display:flex}.level{align-items:center;gap:var(--s-2);display:flex}.prod-more{padding:8px var(--s-3);border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-xs);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.prod-more .toggle-chip .game-icon{filter:none;opacity:.85}.plans{align-items:center;gap:var(--s-2);margin-top:calc(var(--s-3) * -1);padding:10px var(--s-3) 10px var(--s-4);background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-card);flex-wrap:wrap;display:flex}.plans-label{margin-right:var(--s-2);font:600 15px/1 var(--serif);letter-spacing:.04em}.plan{background:var(--raised);height:34px;transition:background var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);border-radius:99px;align-items:stretch;display:inline-flex}.plan:hover{background:var(--hover)}.plan:active{transform:scale(.97)}.plan-apply{color:var(--text);font-size:var(--fs-sm);background:0 0;border:0;border-radius:99px 0 0 99px;padding:0 2px 0 15px}.plan-delete{width:28px;color:var(--faint);opacity:.5;transition:opacity var(--t-fast), color var(--t-fast), background var(--t-fast);background:0 0;border:0;border-radius:0 99px 99px 0;place-items:center;display:grid}.plan:hover .plan-delete,.plan-delete:focus-visible{opacity:1}.plan-delete:hover{color:var(--danger);background:var(--danger-soft)}.plan.is-on{background:var(--accent);box-shadow:inset 0 1px 0 #ffffff24, 0 2px 6px rgb(var(--shade) / 24%)}.plan.is-on .plan-apply{color:var(--accent-ink);font-weight:600}.plan.is-on .plan-delete{color:var(--accent-ink);opacity:.6}.plan.is-on .plan-delete:hover{color:#fff;background:#ffffff29}.plan-save{border:1px dashed var(--line-strong);height:34px;color:var(--muted);font-size:var(--fs-xs);transition:color var(--t-fast), border-color var(--t-fast), transform var(--t-fast);background:0 0;border-radius:99px;align-items:center;gap:6px;margin-left:auto;padding:0 12px;display:inline-flex}.plan-save:hover:not(:disabled){color:var(--text);border-color:var(--faint)}.plan-save:active:not(:disabled){transform:scale(.96)}.plan-save:disabled{opacity:.45}.plan-form{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.plan-form .input{width:190px;height:30px;font-size:var(--fs-xs)}.plan-form .btn{height:30px;font-size:var(--fs-xs)}.prod-more>span:first-child{width:104px}.prod-more-actions{gap:2px;margin-left:auto;display:inline-flex}.prod-more-actions .btn{height:28px;font-size:var(--fs-xs);padding:0 9px}.result-pin.is-pinned{background:var(--seal-soft);color:var(--seal);box-shadow:none;border-color:#0000}.result-pin.is-pinned:hover:not(:disabled){background:#b8452f24;border-color:#0000}.civ-pick{position:relative}.civ-pick>summary{border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-card);color:var(--muted);font:600 17px/1 var(--serif);letter-spacing:.06em;cursor:pointer;transition:box-shadow var(--t-fast), transform var(--t-fast);align-items:center;gap:10px;padding:6px 12px 6px 7px;list-style:none;display:flex}.civ-pick>summary::-webkit-details-marker{display:none}.civ-pick>summary span{color:var(--text)}.civ-pick>summary .civ-flag{border-radius:4px;width:58px;height:32px}.civ-pick>summary:hover{box-shadow:0 0 0 1px var(--faint)}.civ-pick>summary:active{transform:scale(.97)}.civ-pick[open]>summary svg{transform:rotate(180deg)}.civ-menu{z-index:3;border-radius:var(--r-m);background:var(--surface);min-width:220px;box-shadow:var(--shadow-pop);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.civ-menu button{border-radius:var(--r-s);font-size:var(--fs-sm);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;display:flex}.civ-menu button.is-on{background:var(--raised);font-weight:600}.civ-menu button:disabled{opacity:.5}.civ-menu small{color:var(--muted);margin-left:auto;font-size:11.5px}.civ-menu .caption{padding:6px 10px 4px}.income{padding:9px var(--s-3);flex-wrap:wrap;gap:6px;display:flex}.income-icon{color:#f0dca8;border-radius:7px;place-items:center;width:30px;height:30px;display:grid}.res small em{color:var(--ok);font-style:normal;display:block}.result-lines{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-xs);flex-wrap:wrap;gap:6px 14px;display:flex}.result-lines span{align-items:center;gap:6px;display:inline-flex}.result-lines .game-icon{border-radius:5px;width:22px;height:22px}.result-lines b{color:var(--text);font-size:var(--fs-sm);font-weight:600}.toggle-chip.is-icon{justify-content:center;width:34px;height:34px;padding:0;position:relative}.toggle-chip.is-icon .game-icon{border-radius:7px;width:28px;height:28px}.toggle-chip.is-icon:after{content:attr(data-name);z-index:3;background:var(--accent);color:var(--accent-ink);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:3px 8px;font-size:11.5px;font-weight:500;transition:opacity .1s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.toggle-chip.is-icon:hover:after,.toggle-chip.is-icon:focus-visible:after{opacity:1}.civ-menu{max-height:min(60vh,460px);overflow-y:auto}.civ-pick.is-left .civ-menu{left:0;right:auto}.editor-head .civ-pick{flex:none}.editor-head .civ-pick>summary{padding-block:5px;font-size:15px}.editor-head .civ-pick>summary .civ-flag{width:50px;height:28px}.tech-side{align-items:center;gap:var(--s-3);margin-left:auto;display:inline-flex}.chip-label{color:var(--faint);letter-spacing:.06em;white-space:nowrap;align-self:center;font-size:11.5px;font-weight:600}.toggle-chips .chip-label{margin-left:var(--s-2);padding-left:var(--s-3);border-left:1px solid var(--line);line-height:22px}.income-fold>summary{gap:var(--s-3);justify-content:flex-start}.income-fold>summary>:first-child{margin-right:auto}.income-fold>summary .cost{color:var(--ok);font-weight:500}.income-groups{gap:var(--s-3) var(--s-6);padding:var(--s-3);flex-wrap:wrap;display:flex}.income-group{align-items:center;gap:var(--s-2);display:flex}.income-group .chip-label{width:30px}.income-group .income{flex-wrap:wrap;gap:6px;padding:0;display:flex}.income-fold .fold-body{gap:var(--s-2)}.calc-page .stack>details.fold{margin-top:calc(var(--s-5) * -1 + 2px);border-top:1px solid var(--line);padding-top:2px}.calc-page .stack>:not(details)+details.fold{margin-top:calc(var(--s-2) * -1);border-top:0}.prod-more>span:first-child{width:auto;margin-right:var(--s-2)}.result-pin{width:100%;margin-top:var(--s-4)}.rate-grid{gap:var(--s-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.rate-grid .res-label{color:var(--text);font-weight:500}.cost{gap:var(--s-3);color:var(--muted);font-size:var(--fs-xs);display:flex}.cost span{align-items:center;gap:5px;display:inline-flex}.result{padding:var(--s-6);background:var(--surface);border-radius:var(--r-l);box-shadow:var(--shadow-sheet)}.hero-num{align-items:baseline;gap:var(--s-3);margin-top:var(--s-3);color:var(--muted);font-size:var(--fs-md);display:flex}.hero-num b{color:var(--text);font:600 60px/1 var(--serif);letter-spacing:-.01em}.dist{height:6px;margin:var(--s-5) 0 var(--s-2);gap:3px;display:flex}.dist i{background:var(--c);border-radius:3px;min-width:6px}.dist:empty{background:var(--raised);border-radius:3px}.res-list{margin-top:var(--s-2)}.res{--c:var(--muted);align-items:baseline;gap:var(--s-3);border-top:1px solid var(--line);grid-template-columns:1fr auto 86px;padding:11px 0;display:grid}.res.is-zero{opacity:.4}.res-label{align-items:center;gap:var(--s-2);align-self:center;font-weight:500;display:flex}.res b{font:600 22px/1.2 var(--serif)}.res small{color:var(--muted);font-size:var(--fs-xs);text-align:right}.appearance-options{gap:var(--s-3);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.appearance-option{text-align:left;background:0 0;border:0;flex-direction:column;gap:10px;padding:0;display:flex}.appearance-swatch{border-radius:var(--r-m);background:var(--canvas);height:76px;box-shadow:0 0 0 1px var(--line-strong);transition:box-shadow var(--t-fast);padding:12px 0 0 12px;display:block;position:relative;overflow:hidden}.appearance-swatch:before{content:"";background-color:var(--bg);background-image:linear-gradient(var(--text), var(--text)), linear-gradient(var(--line-strong), var(--line-strong)), linear-gradient(var(--line-strong), var(--line-strong));box-shadow:0 0 0 1px var(--line);background-position:12px 14px,12px 28px,12px 38px;background-repeat:no-repeat;background-size:38% 4px,62% 3px,48% 3px;border-top-left-radius:7px;position:absolute;inset:12px 0 0 12px}.appearance-option:hover .appearance-swatch{box-shadow:0 0 0 1px var(--faint)}.appearance-option.is-active .appearance-swatch{box-shadow:0 0 0 2px var(--accent)}.appearance-check{background:var(--accent);width:18px;height:18px;color:var(--accent-ink);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:7px;right:7px}.appearance-option b{font-size:var(--fs-sm);font-weight:600;display:block}.appearance-option small{color:var(--muted);font-size:var(--fs-xs);display:block}.appearance-error{color:var(--danger);font-size:var(--fs-xs)}.row .range{flex:none;width:160px}.row-value{text-align:right;width:40px;color:var(--muted);font-size:var(--fs-xs)}.keys{color:var(--faint);font-size:var(--fs-xs);align-items:center;gap:5px;display:inline-flex}.key-button{border-radius:var(--r-s);min-height:30px;color:var(--muted);font-size:var(--fs-xs);transition:background var(--t-fast), box-shadow var(--t-fast);background:0 0;border:0;align-items:center;gap:5px;padding:2px 6px;display:inline-flex}.key-button:hover{background:var(--raised)}.key-button.is-capturing{background:var(--surface);color:var(--text);box-shadow:0 0 0 1.5px var(--accent);padding-inline:10px}.key-button.is-changed{background:var(--raised);box-shadow:0 0 0 1px var(--line-strong)}.key-save-row{align-items:center;gap:var(--s-2);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.key-save-row>span{color:var(--muted);font-size:var(--fs-xs);flex:140px}.shortcut-issue{align-items:center;gap:var(--s-3);margin:var(--s-3) var(--s-4);padding:var(--s-3) var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--surface);color:var(--text);flex-wrap:wrap;flex:none;display:flex}.shortcut-issue>div{flex:0 520px;min-width:0}.shortcut-issue b{font-size:var(--fs-xs);font-weight:600}.shortcut-issue p{margin:var(--s-1) 0 0;color:var(--muted);font-size:var(--fs-xs);overflow-wrap:anywhere}.report-pick{width:auto;max-width:340px}.report-summary{font-size:var(--fs-body)}.report-summary b{color:var(--seal);font-weight:600}.report-row{align-items:center;gap:var(--s-3);padding:10px var(--s-4);border-top:1px solid var(--line);font-size:var(--fs-sm);grid-template-columns:minmax(0,1fr) 84px 110px 96px;display:grid}.report-row:first-child{border-top:0}.report-row.is-head{color:var(--muted);font-size:var(--fs-xs);font-weight:500}.report-row>span:not(:first-child){text-align:right}.report-row small{color:var(--faint);font-size:11px;display:block}.report-row.is-late{background:var(--seal-soft)}.report-row .is-slow{color:var(--seal);font-weight:600}.planned.report{margin-top:var(--s-4)}.report{max-width:620px;margin:var(--s-6) auto 0}.report-mark{background:var(--raised);width:44px;height:44px;color:var(--muted);border-radius:12px;place-items:center;display:grid}.planned{margin-top:var(--s-7);border-top:1px solid var(--line);text-align:left}.planned li{gap:var(--s-3);padding:var(--s-4) 2px;border-bottom:1px solid var(--line);grid-template-columns:28px 1fr auto;display:grid}.planned li>span:first-child{color:var(--faint);font:600 13px/1.7 var(--serif)}.planned h3{font-size:var(--fs-md);color:var(--text);font-weight:600}.planned p{color:var(--muted);font-size:var(--fs-sm);max-width:none;margin-top:2px;line-height:1.7}@media (width<=1160px){:root{--rail-width:310px}.main{padding:28px 28px 44px}.main-library{padding:0}.cols,.editor{gap:var(--s-6)}.app-header{gap:var(--s-5)}.nav button{padding:0 10px}.appearance-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=850px){.cols{grid-template-columns:minmax(0,1fr)}.rail-sticky{position:static}.page:has(#settings-preview-heading) .row{flex-wrap:wrap}.page:has(#settings-preview-heading) .row-main{flex-basis:100%}.page:has(#settings-preview-heading) .row>.seg[aria-label=阅读方式] button{padding-inline:var(--s-2)}.is-editor .editor{grid-template-columns:minmax(0,1fr)}.editor-side{position:static}.editor-side>.phase-outline{display:none}.phase-menu{display:block}.phase-trigger-label{display:inline}.find-count{min-width:calc(var(--s-3) * 4)}.find-row{gap:2px}.find-action{padding-inline:var(--s-2)}.editor-head{flex-wrap:wrap}.editor-title{flex-basis:calc(100% - 180px)}.editor-head>.actions{flex-wrap:wrap;justify-content:flex-end;max-width:100%;margin-left:auto}.app-header{gap:var(--s-2)}.nav{min-width:0;overflow-x:auto}.nav button{flex:none}.header-tools{display:none}}@media (width<=899px){.nav-tools{display:none}.nav .nav-more{display:inline-flex}}@media (width<=600px){.app .app-header{gap:var(--s-2);padding-inline:var(--s-3)}.app-header .brand b{display:none}.main-navigation.nav button{padding-inline:var(--s-2)}.app-header>.header-tools{display:none}.app-header>.account-menu{margin-left:auto}:root:has(.app-header .window-controls){--app-header-height:96px}.app-header:has(.window-controls){flex-wrap:wrap;align-content:center;row-gap:0}.app-header:has(.window-controls) .main-navigation{flex-basis:100%;order:5;justify-content:center}.app-header:has(.window-controls) .window-controls{align-self:auto;height:40px}.app-header:has(.window-controls) .window-controls button{width:36px}}.toggle-chips.is-clamp{position:relative}.toggle-chips.is-clamp.is-over{padding-right:104px}.toggle-chips.is-clamp.is-over:not(.is-open){max-height:51px;overflow:hidden}.toggle-chips.is-clamp.is-over .age-pick{margin-left:0;margin-right:var(--s-2);order:-1}.chip-more{top:9px;right:var(--s-3);border-radius:var(--r-s);background:var(--surface);height:32px;color:var(--muted);font-size:var(--fs-xs);box-shadow:inset 0 0 0 1px var(--line-strong);transition:color var(--t-fast), box-shadow var(--t-fast);border:0;align-items:center;gap:5px;padding:0 8px 0 11px;display:inline-flex;position:absolute}.chip-more:hover{color:var(--text);box-shadow:inset 0 0 0 1px var(--faint)}.chip-more svg{transition:transform var(--t-fast)}.chip-more[aria-expanded=true] svg{transform:rotate(180deg)}.chip-more b{background:var(--accent);min-width:17px;height:17px;color:var(--accent-ink);border-radius:9px;place-items:center;padding:0 4px;font-size:11px;font-weight:600;display:grid}.chip-quad{border-radius:var(--r-s);background:var(--raised);height:32px;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:2px;padding:0 3px 0 10px;display:inline-flex}.chip-quad>span{margin-right:6px}.chip-quad .toggle-chip.is-res{background:0 0;border-radius:6px;justify-content:center;width:32px;height:26px;padding:0}.chip-quad .toggle-chip.is-res .res-icon{filter:grayscale();opacity:.45;transition:filter var(--t-fast), opacity var(--t-fast)}.chip-quad .toggle-chip.is-res:hover .res-icon{opacity:.8}.chip-quad .toggle-chip.is-res.is-on{background:var(--surface);box-shadow:0 0 0 1.5px var(--accent)}.chip-quad .toggle-chip.is-res.is-on .res-icon{filter:none;opacity:1}.civ-number-controls{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.civ-number-controls label{justify-content:space-between;align-items:center;gap:var(--s-2);min-width:0;font-size:var(--fs-sm);display:flex}.civ-number-controls label>span{white-space:normal;overflow-wrap:anywhere;min-width:0}.civ-number-controls .input{flex-shrink:0;width:72px}.special-balances{margin:var(--s-4) 0 0;padding-top:var(--s-3);border-top:1px solid var(--line)}.special-balances>div{align-items:baseline;gap:2px var(--s-3);color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) auto auto auto;display:grid}.special-balances>div+div{margin-top:var(--s-2)}.special-balances>div>b{color:var(--text);font-size:var(--fs-sm);font-weight:600}.special-balances>div>strong{color:var(--text);font-weight:600}.special-balances>div>span:nth-child(5){grid-column:1/-1}.special-balances>p{font-size:var(--fs-xs);line-height:1.65}.special-balances>p>strong{color:var(--danger);font-weight:600}.special-balances>.caption{margin-top:6px}.timer-controls{align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-5);border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);flex-wrap:wrap;display:flex}.main-library>.timer-controls{margin:0 var(--s-3) var(--s-3)}.main-library:has(>.timer-controls){flex-direction:column;display:flex}.main-library:has(>.timer-controls)>.library-page{flex:1;height:auto}.timer-readout{align-items:baseline;gap:var(--s-2);margin-right:var(--s-2);display:flex}.timer-readout b{font:600 var(--fs-lg)/1 var(--mono)}.timer-readout span,.timer-controls small,.timer-calibrate label,.timer-restart span{font-size:var(--fs-xs);color:var(--muted)}.timer-calibrate,.timer-restart{align-items:center;gap:var(--s-2);display:flex}.timer-calibrate .input{width:6.5em;font-family:var(--mono)}.timer-note{width:100%;color:var(--muted);font-size:var(--fs-xs)}.timer-error{width:100%;color:var(--danger);font-size:var(--fs-sm)}:root[data-reduced-motion=true] .main-navigation button:is(:hover,:active){transform:none}
