:root{color-scheme:dark;--ink: #edf5f0;--muted: #a9bbb2;--muted-strong: #c8d7cf;--line: rgba(219, 236, 226, .16);--line-strong: rgba(221, 240, 229, .28);--panel: rgba(10, 19, 18, .74);--panel-deep: rgba(8, 16, 15, .9);--panel-soft: rgba(20, 34, 31, .72);--green: #67d5c4;--green-deep: #2f9e90;--amber: #ffbd68;--amber-deep: #db8d38;--danger: #e78972;--shadow: 0 24px 70px rgba(0, 0, 0, .32);--font: "Avenir Next", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{color:var(--ink);background:#152421;font-family:var(--font);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button{margin:0;font:inherit}button,[role=button]{-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--amber);outline-offset:3px}svg{display:block}.world-layer,.world-canvas,.world-vignette,.world-grain{position:absolute;inset:0}.world-layer{overflow:hidden;background:radial-gradient(circle at 68% 24%,rgba(255,196,115,.16),transparent 30%),linear-gradient(180deg,#253f42,#7e9a91 48%,#b7a986)}.world-canvas canvas{display:block;width:100%;height:100%;cursor:grab;outline:none;touch-action:none}.world-canvas canvas.is-dragging{cursor:grabbing}.world-canvas canvas.is-hovering-stage{cursor:pointer}.world-vignette{z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(5,12,12,.5) 0%,transparent 22%,transparent 66%,rgba(5,12,11,.42) 100%),radial-gradient(ellipse at center,transparent 44%,rgba(3,10,9,.48) 118%)}.world-grain{z-index:3;opacity:.02;pointer-events:none;background-image:repeating-radial-gradient(circle at 20% 30%,rgba(255,255,255,.4) 0 1px,transparent 1px 3px);background-size:7px 7px;mix-blend-mode:soft-light}.hud{position:absolute;z-index:10;inset:0;opacity:0;pointer-events:none;transition:opacity .7s ease}.hud.is-ready{opacity:1}.hud button,.hud a,.hud [role=button],.stage-detail,.stage-dock,.help-popover,.hud-toast{pointer-events:auto}.topbar{position:absolute;top:0;right:0;left:0;display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,430px) minmax(150px,1fr);align-items:start;gap:22px;padding:22px 24px 0}.brand-lockup,.mission-progress,.utility-actions{border:1px solid var(--line);background:linear-gradient(145deg,#0c1715db,#0b14139e);box-shadow:var(--shadow);backdrop-filter:blur(16px) saturate(1.16)}.brand-lockup{display:flex;width:fit-content;min-width:276px;align-items:center;gap:13px;padding:12px 16px 12px 13px;border-radius:12px}.brand-mark{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid rgba(103,213,196,.34);border-radius:10px;color:var(--green);background:#67d5c414}.brand-mark svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.brand-kicker{margin:0 0 1px;color:var(--green);font-size:9px;font-weight:700;letter-spacing:.18em}.brand-lockup h1{margin:0;font-size:22px;font-weight:680;letter-spacing:.03em;line-height:1.1}.brand-theme{margin:3px 0 0;color:var(--muted);font-size:11px;font-weight:500}.mission-progress{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:8px 15px;align-items:center;padding:12px 14px;border-radius:12px}.mission-copy{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-width:0}.mission-copy span{color:var(--muted);font-size:11px;font-weight:650}.mission-copy strong{overflow:hidden;color:var(--ink);font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.mission-track{grid-column:1;height:5px;overflow:hidden;border-radius:99px;background:#e9f5ee1f}.mission-track span{display:block;width:33%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green-deep),var(--green),var(--amber));box-shadow:0 0 16px #67d5c457;transition:width .7s cubic-bezier(.2,.8,.2,1)}.mission-percent{grid-column:2;grid-row:1 / 3;align-self:center;color:var(--amber);font-size:18px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.utility-actions{display:flex;justify-self:end;gap:6px;padding:6px;border-radius:12px}.icon-button,.detail-close{display:grid;place-items:center;padding:0;border:1px solid transparent;color:var(--muted-strong);background:transparent;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease,transform .16s ease}.icon-button{width:38px;height:38px;border-radius:8px}.icon-button[hidden]{display:none}.icon-button:hover,.icon-button[aria-pressed=true]{border-color:var(--line-strong);color:var(--ink);background:#e7f4ed14}.icon-button:active,.detail-close:active{transform:scale(.94)}.icon-button i,.detail-close i{width:17px;height:17px}.icon-button svg,.detail-close svg,.hud-action svg,.primary-action svg,.ghost-action svg,.help-list svg{width:17px;height:17px;stroke-width:1.8}.stage-detail,.help-popover{border:1px solid var(--line);border-radius:14px;background:linear-gradient(160deg,#0f1c1af5,#081110e0);box-shadow:var(--shadow);backdrop-filter:blur(20px) saturate(1.14)}.stage-detail{position:absolute;top:106px;right:22px;width:352px;max-height:calc(100vh - 204px);padding:19px;overflow:auto;opacity:0;visibility:hidden;transform:translate(18px);transition:opacity .24s ease,visibility .24s ease,transform .38s cubic-bezier(.2,.8,.2,1);scrollbar-color:rgba(255,255,255,.16) transparent;scrollbar-width:thin}.stage-detail .detail-close{position:relative;z-index:2;border-color:#e0eee61f;background:#e8f4ee14}.stage-detail.is-open{visibility:visible;opacity:1;transform:translate(0)}.detail-topline,.popover-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.detail-eyebrow,.detail-label,.dock-heading,.brand-kicker{text-transform:uppercase}.detail-eyebrow,.detail-label{color:var(--green);font-size:10px;font-weight:700;letter-spacing:.12em}.detail-close{width:30px;height:30px;border-radius:8px;background:#e8f4ee0b}.detail-close:hover{border-color:var(--line-strong);color:var(--ink);background:#e8f4ee1a}.detail-title-row{display:flex;align-items:center;gap:9px;margin-top:14px}.detail-status-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--amber);box-shadow:0 0 0 5px #ffbd681f,0 0 18px #ffbd6880}.detail-status-dot.is-completed{background:var(--green);box-shadow:0 0 0 5px #67d5c41f,0 0 18px #67d5c470}.detail-status-dot.is-locked{background:#7f9188;box-shadow:0 0 0 5px #7f91881a}.stage-detail h2,.help-popover h2{margin:0;font-size:24px;font-weight:660;letter-spacing:.015em}.detail-meta{display:flex;align-items:center;gap:8px;margin-top:7px;color:var(--muted);font-size:11px;font-weight:650}.detail-meta-divider{width:3px;height:3px;border-radius:50%;background:var(--muted);opacity:.55}.detail-description{margin:16px 0 0;color:var(--muted-strong);font-size:13px;line-height:1.72}.detail-block{margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.detail-block p{margin:7px 0 0;color:var(--ink);font-size:13px;line-height:1.65}.task-list{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}.task-item{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:9px;color:var(--muted-strong);font-size:12px;line-height:1.5}.task-check{display:grid;width:18px;height:18px;place-items:center;border:1px solid rgba(206,226,216,.34);border-radius:50%;color:transparent;background:#ffffff06}.task-item.is-done .task-check{border-color:var(--green);color:#0e2723;background:var(--green)}.task-check svg{width:11px;height:11px;stroke-width:3}.detail-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:19px}.primary-action,.ghost-action,.hud-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;border-radius:9px;font-size:12px;font-weight:680;cursor:pointer;transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}.primary-action{border:1px solid rgba(255,189,104,.72);color:#261a0b;background:linear-gradient(135deg,#ffd487,var(--amber));box-shadow:0 12px 28px #db8d3833}.primary-action:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 15px 32px #db8d3847}.primary-action:disabled{border-color:#b0c2b829;color:#819189;background:#ffffff0f;box-shadow:none;cursor:not-allowed}.ghost-action{border:1px solid var(--line-strong);color:var(--muted-strong);background:#ffffff0b}.ghost-action:hover{border-color:#67d5c46b;color:var(--ink);background:#67d5c417}.help-popover{position:absolute;top:86px;right:22px;width:318px;padding:18px}.help-popover[hidden]{display:none}.help-list{display:grid;gap:1px;margin:16px 0 0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--line)}.help-list div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;background:#081110eb}.help-list dt{display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-size:12px;font-weight:650}.help-list dd{margin:0;color:var(--muted);font-size:11px}.reset-progress-button{display:inline-flex;width:100%;min-height:38px;align-items:center;justify-content:center;gap:8px;margin-top:12px;border:1px solid rgba(231,137,114,.24);border-radius:9px;color:#e7a593;background:#e789720f;font-size:11px;font-weight:650;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease}.reset-progress-button:hover{border-color:#e7897275;color:#ffd4c9;background:#e789721c}.reset-progress-button svg{width:15px;height:15px}.stage-dock{position:absolute;bottom:20px;left:50%;width:min(calc(var(--checkpoint-count, 6) * 118px),calc(100vw - 720px));min-width:480px;padding:9px 10px 10px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(160deg,#0c1816e0,#081110c2);box-shadow:var(--shadow);transform:translate(-50%);backdrop-filter:blur(18px) saturate(1.14)}.dock-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 5px 7px;color:#7f948a;font-size:9px;font-weight:700;letter-spacing:.1em}.movement-mode-button{display:inline-flex;min-height:25px;align-items:center;gap:6px;padding:0 9px;border:1px solid rgba(103,213,196,.28);border-radius:7px;color:#c8eee6;background:#67d5c414;font-size:9px;font-weight:720;letter-spacing:.04em;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease}.movement-mode-button:hover,.movement-mode-button.is-manual{border-color:#ffbd6880;color:#fff1d8;background:#ffbd6821}.movement-mode-button svg{width:13px;height:13px}.control-hint{margin:-2px 5px 7px;color:#73877e;font-size:9px;font-weight:620;letter-spacing:.04em;transition:color .18s ease}.control-hint.is-active{color:#e5b978}.stage-list{display:grid;grid-template-columns:repeat(var(--checkpoint-count, 6),minmax(0,1fr));gap:6px}.stage-button{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:48px;padding:7px 8px;overflow:hidden;border:1px solid transparent;border-radius:9px;color:#91a49b;background:#ffffff09;text-align:left;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}.stage-button:hover{color:var(--ink);background:#ffffff14}.stage-button.is-selected{border-color:#67d5c46b;color:var(--ink);background:#67d5c41a}.stage-button.is-current{border-color:#ffbd686b;color:#fff3e1;background:linear-gradient(145deg,#ffbd6829,#ffbd680f)}.stage-button.is-completed .stage-number{border-color:var(--green);color:#0f2823;background:var(--green)}.stage-button.is-current .stage-number{border-color:var(--amber);color:var(--amber);box-shadow:0 0 0 3px #ffbd6817}.stage-number{display:grid;width:23px;height:23px;place-items:center;border:1px solid rgba(199,220,210,.26);border-radius:7px;color:#91a49b;font-size:9px;font-weight:760;font-variant-numeric:tabular-nums}.stage-copy{min-width:0}.stage-copy strong,.stage-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-copy strong{font-size:11px;font-weight:650}.stage-copy span{margin-top:2px;color:#778b82;font-size:9px}.bottom-actions{position:absolute;bottom:20px;left:16px;display:flex;gap:6px}.hud-action{border:1px solid var(--line);color:var(--muted-strong);background:#0a1412c7;box-shadow:0 14px 35px #00000038;backdrop-filter:blur(14px)}.hud-action:hover{border-color:var(--line-strong);color:var(--ink);background:#142320eb;transform:translateY(-1px)}.hud-action-accent{border-color:#67d5c459;color:#d9fff7;background:#2f9e9033}.hud-action-accent:hover{border-color:#67d5c494;background:#2f9e9052}.hud-action.is-active{border-color:#67d5c49e;color:#e2fff8;background:#2f9e9057;box-shadow:0 0 0 1px #67d5c41f,0 14px 35px #00000038}.hud-toast{position:absolute;top:92px;left:50%;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;min-width:290px;padding:10px 14px 10px 10px;border:1px solid rgba(103,213,196,.34);border-radius:11px;background:#081412f0;box-shadow:0 18px 48px #00000052;opacity:0;visibility:hidden;transform:translate(-50%,-12px);transition:opacity .22s ease,visibility .22s ease,transform .32s cubic-bezier(.2,.8,.2,1);backdrop-filter:blur(16px)}.hud-toast.is-visible{visibility:visible;opacity:1;transform:translate(-50%)}.toast-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;color:#0f2823;background:var(--green)}.toast-icon svg{width:17px;height:17px;stroke-width:3}.hud-toast strong,.hud-toast span{display:block}.hud-toast strong{font-size:12px}.hud-toast div>span{margin-top:2px;color:var(--muted);font-size:10px}.loading-screen,.fatal-error{position:absolute;z-index:30;inset:0;display:grid;place-content:center;justify-items:center;padding:24px;color:var(--ink);background:radial-gradient(circle at 50% 42%,rgba(103,213,196,.11),transparent 25%),#12211f;text-align:center;transition:opacity .52s ease,visibility .52s ease}.loading-screen.is-hidden{visibility:hidden;opacity:0}.loading-mark{position:relative;width:76px;height:52px;margin-bottom:18px}.loading-mark span{position:absolute;bottom:0;width:0;height:0;border-right:24px solid transparent;border-bottom:48px solid #294a43;border-left:24px solid transparent;filter:drop-shadow(0 8px 14px rgba(0,0,0,.2));animation:loading-mountain 1.8s ease-in-out infinite}.loading-mark span:nth-child(1){left:0;border-bottom-color:#376b61;animation-delay:-.35s}.loading-mark span:nth-child(2){z-index:2;left:18px;bottom:0;border-right-width:29px;border-bottom-width:58px;border-left-width:29px;border-bottom-color:#67d5c4}.loading-mark span:nth-child(3){right:0;border-right-width:19px;border-bottom-width:38px;border-left-width:19px;border-bottom-color:#b48e5d;animation-delay:-.7s}.loading-screen p{margin:0;color:var(--muted-strong);font-size:13px;font-weight:620;letter-spacing:.08em}.loading-track{width:184px;height:4px;margin-top:17px;overflow:hidden;border-radius:99px;background:#ffffff14}.loading-track span{display:block;width:18%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green-deep),var(--green));transition:width .18s ease}.fatal-error[hidden]{display:none}.fatal-error-icon{display:grid;width:48px;height:48px;place-items:center;margin-bottom:16px;border:1px solid rgba(231,137,114,.4);border-radius:50%;color:var(--danger);background:#e7897214;font-size:24px;font-weight:700}.fatal-error h1{margin:0;font-size:24px}.fatal-error p{max-width:520px;margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.7}@keyframes loading-mountain{0%,to{transform:translateY(3px);opacity:.72}50%{transform:translateY(-3px);opacity:1}}@media(max-width:1180px){.topbar{grid-template-columns:minmax(250px,1fr) minmax(280px,370px) auto}.stage-dock{width:min(590px,calc(100vw - 520px));min-width:430px}.stage-copy span{display:none}.stage-button{grid-template-columns:23px minmax(0,1fr)}.bottom-actions .hud-action{width:42px;padding:0;font-size:0}}@media(max-width:900px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:12px 12px 0}.brand-lockup{min-width:0;padding:9px 12px 9px 9px}.brand-mark{width:37px;height:37px}.brand-lockup h1{font-size:19px}.brand-theme{display:none}.mission-progress{grid-column:1 / -1;grid-row:2;padding:9px 11px}.utility-actions{align-self:start}.stage-detail{inset:auto 10px 170px;width:auto;max-height:min(52vh,470px);transform:translateY(18px)}.stage-detail.is-open{transform:translateY(0)}.stage-dock{right:10px;bottom:72px;left:10px;width:auto;min-width:0;padding:7px 7px 8px;transform:none}.dock-heading{padding-bottom:5px}.stage-list{grid-template-columns:repeat(var(--checkpoint-count, 6),minmax(74px,1fr));overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.stage-list::-webkit-scrollbar{display:none}.stage-button{grid-template-columns:22px minmax(0,1fr);min-height:42px}.stage-copy span{display:none}.bottom-actions{right:10px;bottom:10px;left:10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.bottom-actions .hud-action{width:100%;min-width:0;min-height:48px;padding:0 6px;font-size:10px}.help-popover{top:126px;right:12px}.hud-toast{top:126px}}@media(max-width:560px){.brand-kicker{display:none}.brand-lockup{gap:9px}.brand-mark{width:34px;height:34px}.brand-lockup h1{font-size:17px}.utility-actions{gap:2px;padding:4px}.icon-button{width:34px;height:34px}.mission-copy strong{font-size:10px}.mission-percent{font-size:16px}.detail-actions{grid-template-columns:1fr}.ghost-action{min-height:38px}.stage-detail{bottom:180px;padding:16px}.stage-detail h2{font-size:21px}.dock-heading{gap:8px}.movement-mode-button{padding:0 7px}.control-hint{display:none}.stage-list{grid-template-columns:repeat(var(--checkpoint-count, 6),68px)}.stage-button{display:grid;grid-template-columns:1fr;justify-items:center;min-height:46px;padding:6px}.stage-copy strong{display:none}.bottom-actions .hud-action{padding:0 13px}.help-popover{right:10px;left:10px;width:auto}.hud-toast{right:12px;left:12px;min-width:0;transform:translateY(-12px)}.hud-toast.is-visible{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}#app.is-catalog .world-layer,#app.is-catalog #hud,#app.is-catalog #loadingScreen{display:none}.map-catalog{position:absolute;z-index:20;inset:0;overflow-y:auto;padding:52px 28px 72px;background:radial-gradient(circle at 78% -12%,rgba(255,189,104,.13),transparent 42%),radial-gradient(circle at 10% 112%,rgba(103,213,196,.12),transparent 46%),#12211f;-webkit-overflow-scrolling:touch}.map-catalog[hidden]{display:none}.catalog-inner{max-width:1060px;margin:0 auto}.catalog-head{margin-bottom:38px;text-align:center}.catalog-mark{display:grid;width:54px;height:54px;place-items:center;margin:0 auto 18px;border:1px solid var(--line-strong);border-radius:16px;background:var(--panel-soft)}.catalog-mark svg{width:30px;height:30px;fill:var(--green)}.catalog-kicker{margin:0 0 10px;color:var(--green);font-size:11px;font-weight:700;letter-spacing:.22em}.catalog-head h1{margin:0;font-size:clamp(24px,4vw,33px);letter-spacing:.01em}.catalog-lede{max-width:560px;margin:12px auto 0;color:var(--muted);font-size:13.5px;line-height:1.75}.catalog-sections{display:grid;gap:34px}.catalog-section-head{margin-bottom:14px}.catalog-section-head h2{margin:0;font-size:14px;letter-spacing:.08em}.catalog-section-head p{margin:6px 0 0;color:var(--muted);font-size:12.5px}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.map-card{display:flex;flex-direction:column;gap:14px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}.map-card.is-featured{grid-column:1 / -1;border-color:#67d5c457;background:linear-gradient(180deg,#67d5c417,#0a1312e0 48%)}.map-card-topline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.map-badge{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted-strong);font-size:11px;font-weight:650;letter-spacing:.06em}.map-badge i{width:13px;height:13px}.map-badge.tone-official{border-color:#67d5c466;background:#67d5c41a;color:var(--green)}.map-badge.tone-experimental{border-color:#ffbd6866;background:#ffbd681a;color:var(--amber)}.map-badge.tone-dev-test{border-color:var(--line-strong);background:#dbece20f;color:var(--muted)}.map-badge.tone-local{border-color:#67d5c473;background:#67d5c41f;color:var(--green)}.map-badge.tone-default{border-color:#ffbd6880;color:var(--amber)}.map-card-title{margin:0;font-size:19px;letter-spacing:.01em}.map-card.is-featured .map-card-title{font-size:24px}.map-card-summary{margin:0;color:var(--muted);font-size:13px;line-height:1.7}.map-card-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:12px 0 0;border-top:1px solid var(--line)}.map-card-meta dt{color:var(--muted);font-size:11px;letter-spacing:.06em}.map-card-meta dd{margin:5px 0 0;font-size:12.5px;font-weight:650}.map-card-progress{display:grid;gap:8px}.map-card-progress-copy{display:flex;align-items:baseline;justify-content:space-between;color:var(--muted);font-size:12px}.map-card-progress-copy strong{color:var(--ink);font-size:14px}.map-card-track{height:6px;overflow:hidden;border-radius:999px;background:#dbece21f}.map-card-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green-deep),var(--green))}.map-card-progress-hint{color:var(--muted);font-size:11.5px}.map-card-enter{display:inline-flex;gap:8px;align-items:center;justify-content:center;margin-top:auto;padding:11px 18px;border:1px solid rgba(103,213,196,.42);border-radius:10px;background:#67d5c424;color:var(--ink);font-size:13.5px;font-weight:650;cursor:pointer;transition:background .18s ease,transform .18s ease}.map-card-enter i{width:15px;height:15px}.map-card-enter:hover{background:#67d5c442}.map-card-enter:active{transform:translateY(1px)}.catalog-dev-notice{margin:34px 0 0;color:var(--muted);font-size:12px;text-align:center}.catalog-empty{margin:0;color:var(--muted);font-size:13px;text-align:center}.fatal-error-back{display:inline-block;margin-top:20px;padding:9px 20px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);font-size:12.5px;font-weight:650;text-decoration:none}.fatal-error-back:hover{background:#dbece21a}@media(max-width:900px){.map-catalog{padding:36px 18px 56px}.catalog-grid{grid-template-columns:minmax(0,1fr)}.map-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.map-catalog{padding:26px 14px 44px}.catalog-sections{gap:26px}.map-card{padding:16px;border-radius:12px}.map-card.is-featured .map-card-title{font-size:20px}.map-card-meta{grid-template-columns:minmax(0,1fr)}.map-card-enter{width:100%}}#app.is-workbench .world-layer,#app.is-workbench #hud,#app.is-workbench #loadingScreen{display:none}.workbench{position:absolute;z-index:20;inset:0;overflow:hidden;padding:32px 24px 56px;background:radial-gradient(circle at 88% -10%,rgba(255,189,104,.1),transparent 40%),radial-gradient(circle at 6% 108%,rgba(103,213,196,.1),transparent 44%),#12211f;-webkit-overflow-scrolling:touch}.workbench[hidden]{display:none}.workbench-inner{max-width:1440px;margin:0 auto}.workbench-inner{display:flex;flex-direction:column;height:100%;min-height:0}.workbench-head,.workbench-context,.workbench-tabs{flex:none}.workbench-head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.workbench-kicker{margin:0 0 8px;color:var(--amber);font-size:11px;font-weight:700;letter-spacing:.2em}.workbench-head h1{margin:0;font-size:clamp(20px,3vw,26px)}.workbench-context{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;justify-content:space-between;margin-bottom:14px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-context-map{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.workbench-context-map strong{font-size:15px}.workbench-context-map code{color:var(--muted);font-size:11px}.workbench-context-category{padding:1px 8px;border:1px solid var(--line-strong, var(--line));border-radius:999px;color:var(--muted);font-size:10px}.workbench-context-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0}.workbench-context-meta div{display:flex;gap:6px;align-items:baseline}.workbench-context-meta dt{color:var(--muted);font-size:11px}.workbench-context-meta dd{margin:0;font-size:12px;font-weight:600}.workbench-context-meta dd.tone-ok{color:var(--green)}.workbench-context-meta dd.tone-warning{color:var(--amber)}.workbench-context-meta dd.tone-info{color:var(--blue, var(--muted))}.workbench-context-meta dd.tone-muted{color:var(--muted)}.workbench-context-next{flex:1 1 260px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.workbench-context-next span{margin-right:8px;padding:1px 8px;border-radius:999px;background:var(--amber);color:#1a1206;font-size:10px;font-weight:700}.workbench-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.workbench-tab{padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.workbench-tab:hover{color:var(--text, currentColor);border-color:var(--line-strong, var(--line))}.workbench-tab.is-active{border-color:var(--amber);background:var(--amber);color:#1a1206;font-weight:700}.workbench-stage[hidden]{display:none}.workbench-package,.workbench-admin{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-details{border:1px solid var(--line);border-radius:10px;padding:10px 14px}.workbench-details summary{cursor:pointer;color:var(--muted);font-size:12px;font-weight:600}.workbench-lede{max-width:640px;margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.workbench-back{padding:9px 18px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-size:12.5px;font-weight:650;cursor:pointer}.workbench-back:hover{background:#dbece21a}.workbench-body{display:grid;grid-template-columns:250px minmax(0,1fr) 300px;gap:16px;align-items:stretch}.workbench-body{flex:1;min-height:0}.workbench-maps,.workbench-main,.workbench-detail{min-height:0;overflow-y:auto;overscroll-behavior:contain}.workbench-maps{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}@media(max-width:1100px){.workbench{overflow-y:auto}.workbench-inner{height:auto}.workbench-body{grid-template-columns:minmax(0,1fr);flex:none}.workbench-maps,.workbench-main,.workbench-detail{overflow:visible}}.workbench-map-button{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#14221f99;color:var(--ink);text-align:left;cursor:pointer}.workbench-map-button:hover{border-color:var(--line-strong)}.workbench-map-button[aria-pressed=true]{border-color:#67d5c480;background:#67d5c41f}.workbench-map-button strong{font-size:13.5px}.workbench-map-meta{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:11px}.workbench-map-meta span{padding:2px 7px;border-radius:999px;background:#dbece214}.workbench-map-button code,.workbench-checkpoint-copy code,.workbench-detail-meta code{color:var(--muted-strong);font-size:11px}.workbench-main{display:grid;gap:16px;min-width:0}.workbench-summary{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-summary-head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;justify-content:space-between}.workbench-summary-head h2{margin:0;font-size:19px}.workbench-summary-meta{display:flex;flex-wrap:wrap;gap:14px;margin:0}.workbench-summary-meta div{min-width:84px}.workbench-summary-meta dt{color:var(--muted);font-size:10.5px;letter-spacing:.06em}.workbench-summary-meta dd{margin:4px 0 0;font-size:12.5px;font-weight:650}.workbench-notice{margin:14px 0 0;padding:10px 12px;border:1px solid rgba(255,189,104,.35);border-radius:10px;background:#ffbd681a;color:var(--amber);font-size:12px}.workbench-preview{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-route-svg{width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#0a131299}.workbench-svg-route{fill:none;stroke:#dbece259;stroke-width:3;stroke-linejoin:round}.workbench-svg-marker{cursor:pointer}.workbench-svg-marker circle{fill:#14221ff2;stroke:#dbece273;stroke-width:2}.workbench-svg-marker text{fill:var(--muted-strong);font-size:13px;font-weight:700;text-anchor:middle;pointer-events:none}.workbench-svg-marker.is-selected circle{fill:#ffbd68e6;stroke:var(--amber)}.workbench-svg-marker.is-selected text{fill:#17211d}.workbench-preview-side{display:grid;gap:10px;align-content:start}.workbench-preview-host{aspect-ratio:4 / 3;min-height:200px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#0a131299}.workbench-preview-host canvas{display:block;width:100%;height:100%}.workbench-preview-toggle{justify-self:start;padding:8px 16px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-size:12px;font-weight:650;cursor:pointer}.workbench-preview-toggle[aria-pressed=true]{border-color:#67d5c480;background:#67d5c424}.workbench-checkpoints{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-checkpoint-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#14221f99;color:var(--ink);text-align:left;cursor:pointer}.workbench-checkpoint-row:hover{border-color:var(--line-strong)}.workbench-checkpoint-row[aria-pressed=true]{border-color:#ffbd6880;background:#ffbd681a}.workbench-checkpoint-index{color:var(--muted);font-size:12px;font-weight:700}.workbench-checkpoint-copy{display:grid;gap:2px;min-width:0}.workbench-checkpoint-copy strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.workbench-checkpoint-fraction{color:var(--muted);font-size:11px}.workbench-missing{padding:2px 8px;border:1px solid rgba(231,137,114,.4);border-radius:999px;color:var(--danger);font-size:10.5px}.workbench-detail{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-detail h3{margin:6px 0 14px;font-size:17px}.workbench-detail-meta{display:grid;gap:10px;margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.workbench-detail-meta dt{color:var(--muted);font-size:10.5px;letter-spacing:.06em}.workbench-detail-meta dd{margin:4px 0 0;font-size:12.5px;font-weight:650}.workbench-detail-block{margin-bottom:14px}.workbench-detail-label{display:block;margin-bottom:6px;color:var(--muted);font-size:11px;letter-spacing:.08em}.workbench-detail-block p{margin:0;color:var(--muted-strong);font-size:12.5px;line-height:1.7}.workbench-task-list{margin:0;padding-left:18px;color:var(--muted-strong);font-size:12.5px;line-height:1.8}.workbench-empty{margin:0;color:var(--muted);font-size:13px}.catalog-workbench-link{display:inline-block;margin-top:14px;padding:7px 16px;border:1px dashed var(--line-strong);border-radius:999px;color:var(--muted-strong);font-size:12px;text-decoration:none}.catalog-workbench-link:hover{border-color:var(--amber);color:var(--amber)}.catalog-workbench-link[hidden]{display:none}@media(max-width:1180px){.workbench-body{grid-template-columns:220px minmax(0,1fr)}.workbench-detail{grid-column:1 / -1}}@media(max-width:900px){.workbench{padding:22px 14px 44px}.workbench-body{grid-template-columns:minmax(0,1fr)}.workbench-maps{grid-template-columns:repeat(2,minmax(0,1fr))}.workbench-preview{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.workbench-maps{grid-template-columns:minmax(0,1fr)}.workbench-checkpoint-row{grid-template-columns:28px minmax(0,1fr) auto}.workbench-checkpoint-row .workbench-missing{display:none}.workbench-head{flex-direction:column}}.workbench-validate{padding:14px 16px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-validate-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}.workbench-validate-head h2{margin:0;font-size:14px;letter-spacing:.08em}.workbench-validate-headline{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin:0 0 12px;font-size:12.5px}.workbench-validate-headline strong{font-size:14px}.workbench-validate-headline span{color:var(--muted);font-size:11.5px}.workbench-validate-headline.tone-ok strong{color:var(--green)}.workbench-validate-headline.tone-warning strong{color:var(--amber)}.workbench-validate-headline.tone-error strong{color:var(--danger)}.workbench-issue-group{margin-bottom:10px}.workbench-issue-group:last-child{margin-bottom:0}.workbench-issue-label{display:inline-block;margin-bottom:6px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:650}.workbench-issue-group.tone-error .workbench-issue-label{border:1px solid rgba(231,137,114,.4);color:var(--danger)}.workbench-issue-group.tone-warning .workbench-issue-label{border:1px solid rgba(255,189,104,.4);color:var(--amber)}.workbench-issue-group.tone-info .workbench-issue-label{border:1px solid var(--line-strong);color:var(--muted)}.workbench-issue-group ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.workbench-issue-group li{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;padding:7px 10px;border-left:2px solid var(--line-strong);border-radius:0 8px 8px 0;background:#dbece20d;font-size:12px;line-height:1.6}.workbench-issue-group.tone-error li{border-left-color:#e7897299}.workbench-issue-group.tone-warning li{border-left-color:#ffbd6899}.workbench-issue-text{flex:1 1 260px}.workbench-issue-field,.workbench-issue-checkpoint{padding:1px 7px;border-radius:6px;background:#dbece21a;color:var(--muted-strong);font-size:10.5px}.workbench-editor{display:grid;gap:12px;padding:14px 16px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-draft-badge{display:inline-block;padding:3px 10px;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted);font-size:11px;font-weight:650}.workbench-draft-badge.is-dirty{border-color:#ffbd6880;color:var(--amber)}.workbench-editor-banner{margin:0;padding:10px 12px;border:1px dashed rgba(255,189,104,.4);border-radius:10px;background:#ffbd6814;color:var(--muted-strong);font-size:12px;line-height:1.6}.workbench-editor-banner code{color:var(--amber);font-size:11.5px}.workbench-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workbench-field{display:grid;gap:6px;min-width:0}.workbench-field>span{color:var(--muted);font-size:11px;letter-spacing:.06em}.workbench-field input,.workbench-field textarea{width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;background:#0a1312b8;color:var(--ink);font-family:inherit;font-size:12.5px;line-height:1.6;resize:vertical}.workbench-field input:focus,.workbench-field textarea:focus{border-color:var(--green);outline:none}.workbench-field.has-error input,.workbench-field.has-error textarea{border-color:var(--danger)}.workbench-field-error{color:var(--danger);font-size:11px;font-style:normal}.workbench-editor-readonly{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#dbece20a;font-size:11px}.workbench-editor-readonly>span{color:var(--muted);font-weight:650}.workbench-editor-readonly code{padding:2px 8px;border-radius:6px;background:#dbece214;color:var(--muted-strong)}.workbench-editor-checkpoint{display:grid;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#14221f80}.workbench-editor-checkpoint header{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline}.workbench-editor-checkpoint header strong{font-size:13px}.workbench-editor-checkpoint header code{color:var(--muted);font-size:11px}.workbench-editor-order{display:grid;gap:8px}.workbench-editor-order-buttons{display:flex;gap:8px}.workbench-editor-order-buttons button{padding:7px 16px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-size:12px;font-weight:650;cursor:pointer}.workbench-editor-order-buttons button:disabled{color:var(--muted);cursor:not-allowed;opacity:.5}.workbench-editor-order p{margin:0;color:var(--muted);font-size:11.5px}.workbench-editor-actions{display:flex;flex-wrap:wrap;gap:10px}.workbench-editor-actions button{padding:8px 18px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-size:12.5px;font-weight:650;cursor:pointer}.workbench-editor-actions button:hover{background:#dbece21a}@media(max-width:900px){.workbench-editor-fields{grid-template-columns:minmax(0,1fr)}}.workbench-file-button{display:inline-flex;align-items:center;padding:8px 18px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);font-size:12.5px;font-weight:650;cursor:pointer}.workbench-file-button:hover{background:#dbece21a}.workbench-editor-actions .workbench-file-button{padding:8px 18px}.workbench-editor-actions button.is-primary{border-color:#67d5c480;background:#67d5c429;color:var(--ink)}.workbench-editor-status{margin:0;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#dbece20d;color:var(--muted);font-size:11.5px;line-height:1.6}.workbench-editor-status.tone-ok{border-color:#67d5c466;color:var(--green)}.workbench-editor-status.tone-warning{border-color:#ffbd6873;color:var(--amber)}.workbench-editor-status.tone-error{border-color:#e7897273;color:var(--danger)}.workbench-editor-status.tone-info{border-color:#67d5c466;color:var(--green)}.workbench-editor-params{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#0a131266}.workbench-editor-params>header{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:space-between}.workbench-editor-params>header strong{font-size:13px}.workbench-editor-params>header span{padding:2px 9px;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted);font-size:11px}.workbench-editor-params.is-readonly{background:#dbece20a}.workbench-editor-params>p{margin:0;color:var(--muted);font-size:11.5px;line-height:1.6}.workbench-editor-params>dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.workbench-editor-params>dl dt{color:var(--muted);font-size:10.5px}.workbench-editor-params>dl dd{margin:4px 0 0;font-size:12.5px;font-weight:650}.workbench-field-hint{color:var(--muted);font-size:10.5px;font-style:normal}.workbench-field input.has-invalid{border-color:var(--danger)}@media(max-width:900px){.workbench-editor-params>dl{grid-template-columns:minmax(0,1fr)}}.workbench-diagnostics{display:grid;gap:12px;padding:14px 16px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-diagnostics[hidden]{display:none}.workbench-diagnostic-counts{color:var(--muted);font-size:11.5px}.workbench-diagnostic-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#dbece20a}.workbench-diagnostic-summary dt{color:var(--muted);font-size:10.5px}.workbench-diagnostic-summary dd{margin:4px 0 0;font-size:12.5px;font-weight:650}.workbench-diagnostic-group{display:grid;gap:8px}.workbench-diagnostic-group>header{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline}.workbench-diagnostic-group>header strong{font-size:12.5px}.workbench-diagnostic-group>header code{color:var(--muted);font-size:11px}.workbench-diagnostic-group>header span{color:var(--muted);font-size:11px}.workbench-diagnostic-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.workbench-diagnostic-list li{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;padding:7px 10px;border-left:2px solid var(--line-strong);border-radius:0 8px 8px 0;background:#dbece20d;font-size:12px;line-height:1.6}.workbench-diagnostic-list li.tone-error{border-left-color:#e7897299}.workbench-diagnostic-list li.tone-warning{border-left-color:#ffbd6899}.workbench-diagnostic-list li.tone-info{border-left-color:#67d5c480}.workbench-diagnostic-message{flex:1 1 260px}.workbench-diagnostic-chips{display:inline-flex;gap:6px;align-items:center}.workbench-diagnostic-chips code{padding:1px 7px;border-radius:6px;background:#dbece21a;color:var(--muted-strong);font-size:10.5px}.workbench-diagnostic-chips em{color:var(--muted);font-size:10.5px;font-style:normal}.workbench-diagnostic-note{margin:0;color:var(--muted);font-size:11px;line-height:1.7}.workbench-svg-legend{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 0;padding:0;list-style:none;color:var(--muted);font-size:11px}.workbench-svg-legend li{display:inline-flex;gap:6px;align-items:center}.legend-dot{display:inline-block;width:12px;height:12px;border:2px solid rgba(219,236,226,.45);border-radius:50%;background:#14221ff2}.legend-dot.is-selected{border-color:var(--amber);background:#ffbd68e6}.legend-dot.has-issues{border-color:#ffbd68bf;border-style:dashed}.workbench-svg-marker .workbench-svg-halo{fill:none;stroke:#ffbd68cc;stroke-width:2;stroke-dasharray:4 4}.workbench-svg-marker.has-issues circle:not(.workbench-svg-halo){stroke:#ffbd68bf}.workbench-missing.tone-warn{border-color:#ffbd6866;color:var(--amber)}@media(max-width:900px){.workbench-diagnostic-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.workbench-svg-marker.is-draggable{cursor:grab;touch-action:none}.workbench-svg-marker.is-dragging{cursor:grabbing}.workbench-svg-marker.is-draggable:hover circle:not(.workbench-svg-halo){stroke:#ffbd68e6}.workbench-svg-marker.is-dragging circle:not(.workbench-svg-halo){stroke:var(--amber);stroke-width:3}.workbench-svg-marker .workbench-svg-hit{fill:transparent;stroke:none;pointer-events:all}.workbench-source{display:grid;gap:12px;padding:14px 16px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-source[hidden]{display:none}.workbench-source-actions{display:flex;flex-wrap:wrap;gap:10px}.workbench-source-actions button{padding:8px 16px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-size:12.5px;font-weight:650;cursor:pointer}.workbench-source-actions button:disabled{color:var(--muted);cursor:not-allowed;opacity:.55}.workbench-source-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#dbece20a}.workbench-source-meta dt{color:var(--muted);font-size:10.5px}.workbench-source-meta dd{margin:4px 0 0;overflow-wrap:anywhere;font-size:12.5px;font-weight:650}.workbench-source-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workbench-source-block{display:grid;gap:6px;min-width:0}.workbench-source-block>span{color:var(--muted);font-size:11px;letter-spacing:.06em}.workbench-source-block textarea,.workbench-upgrade textarea{width:100%;min-height:180px;padding:10px;border:1px solid var(--line-strong);border-radius:8px;background:#08100fb8;color:var(--muted-strong);font-family:SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.55;resize:vertical;white-space:pre;overflow-wrap:anywhere}.workbench-upgrade{display:grid;gap:6px}.workbench-upgrade h3{margin:0;color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.08em}.workbench-upgrade textarea{min-height:120px}@media(max-width:900px){.workbench-source-blocks{grid-template-columns:minmax(0,1fr)}.workbench-source-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}.workbench-review{display:grid;gap:12px;padding:14px 16px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.workbench-review h3{margin:0;color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.08em}.workbench-review-status{padding:2px 10px;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted-strong);font-size:11.5px;font-weight:650}.workbench-review-status[data-status=changes_requested]{border-color:#ffbd6873;color:var(--amber)}.workbench-review-status[data-status=approved]{border-color:#67d5c473;color:var(--green)}.workbench-review-status[data-status=rejected]{border-color:#e7897273;color:var(--danger)}.workbench-review-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 16px;margin:0}.workbench-review-meta dt{color:var(--muted);font-size:11px}.workbench-review-meta dd{margin:2px 0 0;overflow-wrap:anywhere;font-size:12.5px}.workbench-review-hint{margin:0;color:var(--muted);font-size:11.5px;line-height:1.6}.workbench-review-signals,.workbench-review-flagged ul{margin:0;padding-left:18px;color:var(--muted);font-size:11.5px;line-height:1.7}.workbench-review-flagged{display:grid;gap:6px;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:8px}.workbench-review-flagged strong{color:var(--ink)}.workbench-review-group{display:grid;gap:8px}.workbench-review-items{display:grid;gap:8px;margin:0;padding:0;list-style:none}.workbench-review-item{display:grid;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.workbench-review-item-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.workbench-review-item-label{flex:1 1 240px;min-width:0;color:var(--ink);font-size:12.5px;line-height:1.5}.workbench-review-item-state{flex:0 0 auto;min-width:96px;min-height:32px;padding:4px 8px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel-deep);color:var(--ink);font-family:var(--font);font-size:12px}.workbench-review-note input{min-height:32px}.workbench-review-decision{display:grid;gap:10px}.workbench-review-actions{display:flex;flex-wrap:wrap;gap:10px}.workbench-review-actions button{padding:8px 16px;border:1px solid var(--line-strong);border-radius:8px;background:transparent;color:var(--ink);font-family:var(--font);font-size:12.5px;cursor:pointer}.workbench-review-actions button:hover:not(:disabled){border-color:var(--green);color:var(--green)}.workbench-review-actions button:disabled{color:var(--muted);cursor:not-allowed;opacity:.55}.workbench-review-actions button.is-primary{border-color:var(--green-deep);background:#67d5c424;color:var(--green)}.workbench-review-actions button.is-primary:hover:not(:disabled){background:#67d5c43d}.workbench-review-progress{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.workbench-review-progress pre{margin:0;color:var(--muted);font-size:11.5px;line-height:1.6;white-space:pre-wrap}@media(max-width:900px){.workbench-review-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.workbench-review-item-head{align-items:flex-start}.workbench-review-item-state{flex:1 1 100%;min-width:0}.workbench-review-actions button{flex:1 1 auto}}.workbench-characters{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-characters-list h3,.workbench-characters-form h3{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--ink)}.workbench-character-group{display:grid;gap:8px}.workbench-character-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#ffffff05;font-size:12px}.workbench-character-item.is-builtin{border-left:3px solid var(--line-strong, var(--line))}.workbench-character-item.is-custom{border-left:3px solid var(--green)}.workbench-character-label{font-weight:600;color:var(--ink)}.workbench-character-item code{font-size:11px;color:var(--muted)}.workbench-character-tag{padding:1px 8px;border:1px solid var(--line-strong, var(--line));border-radius:999px;font-size:10.5px;color:var(--muted)}.workbench-character-desc{flex:1 1 100%;color:var(--muted);font-size:11.5px}.workbench-character-delete{margin-left:auto;padding:4px 12px;border:1px solid rgba(231,137,114,.45);border-radius:6px;background:transparent;color:var(--danger);font-size:11.5px;cursor:pointer}.workbench-character-delete:hover{background:#e789721f}.workbench-characters-form form{display:grid;gap:10px;max-width:520px}.workbench-characters-form button[type=submit]{justify-self:start;padding:8px 18px;border:1px solid var(--green);border-radius:8px;background:#67d5c41f;color:var(--green);font-size:12.5px;font-weight:600;cursor:pointer}.workbench-characters-form button[type=submit]:hover{background:#67d5c433}@media(max-width:720px){.workbench-character-item{align-items:flex-start}.workbench-character-delete{margin-left:0}}.workbench-registry{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-registry-actions{display:flex;flex-wrap:wrap;gap:8px}.workbench-registry-actions button{padding:8px 16px;border:1px solid var(--line-strong, var(--line));border-radius:8px;background:transparent;color:var(--ink);font-size:12.5px;cursor:pointer}.workbench-registry-actions button:disabled{opacity:.5;cursor:not-allowed}.workbench-registry-actions button.is-primary{border-color:var(--green);background:#67d5c41f;color:var(--green);font-weight:600}.workbench-registry-list{display:grid;gap:10px}.workbench-registry-corruption{display:grid;gap:10px;margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--danger, #d9534f);border-radius:8px;background:#d9534f14}.workbench-registry-corruption-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}.workbench-registry-corruption-head h3{margin:0;font-size:.95rem}.workbench-registry-corruption p{margin:0}.workbench-registry-corruption-list{display:grid;gap:6px;margin:0;padding-left:20px}.workbench-registry-corruption-list li{display:grid;gap:2px;font-size:.85rem}.workbench-registry-corruption-list span{color:var(--muted, #9aa5a0)}.workbench-registry-corruption-raw{display:grid;gap:8px}.workbench-registry-corruption-raw summary{cursor:pointer;font-size:.85rem}.workbench-registry-corruption-raw textarea{width:100%;min-height:120px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;resize:vertical}.workbench-registry-row{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--line-strong, var(--line));border-radius:8px;background:#ffffff05}.workbench-registry-row:has(.workbench-registry-badge.status-published){border-left-color:var(--green)}.workbench-registry-row:has(.workbench-registry-badge.status-disabled){border-left-color:var(--danger)}.workbench-registry-row-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:13px}.workbench-registry-row-head code{font-size:11px;color:var(--muted)}.workbench-registry-badge{padding:1px 9px;border:1px solid var(--line-strong, var(--line));border-radius:999px;font-size:10.5px;color:var(--muted)}.workbench-registry-badge.status-registered{border-color:#ffbd6873;color:var(--amber)}.workbench-registry-badge.status-published{border-color:#67d5c473;color:var(--green)}.workbench-registry-badge.status-disabled{border-color:#e7897273;color:var(--danger)}.workbench-registry-version{font-size:11px;color:var(--muted)}.workbench-registry-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 14px;margin:0;font-size:11.5px}.workbench-registry-meta div{display:flex;gap:6px}.workbench-registry-meta dt{color:var(--muted)}.workbench-registry-meta dd{margin:0;color:var(--ink)}.workbench-registry-row-actions{display:flex;flex-wrap:wrap;gap:8px}.workbench-registry-row-actions button{padding:5px 12px;border:1px solid var(--line-strong, var(--line));border-radius:6px;background:transparent;color:var(--ink);font-size:11.5px;cursor:pointer}.workbench-registry-row-actions button:hover{background:#ffffff0f}@media(max-width:720px){.workbench-registry-actions button{flex:1 1 auto}}.workbench-map-button.is-registry{border-left:3px solid var(--green)}.workbench-map-button.is-draft{border-left:3px solid var(--amber)}.workbench-map-registry{display:inline-flex;align-items:center;gap:6px}.workbench-map-status{padding:1px 8px;border:1px solid var(--line-strong, var(--line));border-radius:999px;font-size:10px;color:var(--muted)}.workbench-map-version{font-size:10px;color:var(--muted)}.workbench-registry-review-controls{display:grid;gap:10px;padding-top:10px;border-top:1px solid var(--line)}.workbench-global-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:none;margin-bottom:14px}.workbench-global-toolbar button{padding:8px 18px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-family:var(--font);font-size:12.5px;font-weight:650;cursor:pointer;transition:background .12s ease,border-color .12s ease}.workbench-global-toolbar button:hover{background:#dbece21a}.workbench-global-toolbar button:focus-visible{outline:2px solid var(--green);outline-offset:2px}.workbench-global-toolbar button.is-primary{border-color:#67d5c480;background:#67d5c429;color:var(--ink)}.workbench-global-toolbar-hint{color:var(--muted);font-size:11px;line-height:1.6}.workbench-map-menu-anchor{position:relative;justify-self:end}.workbench-map-menu-button{padding:2px 10px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-family:var(--font);font-size:13px;line-height:1.4;cursor:pointer}.workbench-map-menu-button:hover{border-color:var(--line-strong);color:var(--ink)}.workbench-map-menu{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;display:grid;gap:2px;min-width:132px;padding:6px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel-deep);box-shadow:var(--shadow)}.workbench-map-menu button{padding:7px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-family:var(--font);font-size:12px;text-align:left;cursor:pointer}.workbench-map-menu button:hover{background:#dbece21a}.workbench-map-menu button.is-danger{color:var(--danger)}.workbench-import{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-import h3{margin:4px 0 0;font-size:13px;font-weight:700}.workbench-import-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 18px;margin:0}.workbench-import-meta div{display:flex;gap:8px;align-items:baseline}.workbench-import-meta dt{color:var(--muted);font-size:11px;white-space:nowrap}.workbench-import-meta dd{margin:0;font-size:12.5px}.workbench-import-conflicts,.workbench-import-issues{display:grid;gap:4px;margin:0;padding-left:18px}.workbench-import-conflicts li,.workbench-import-issues li{font-size:12px;line-height:1.7}.workbench-import-issues li.tone-error{color:var(--danger)}.workbench-import-issues li.tone-warning{color:var(--amber)}.workbench-import-actions{display:flex;flex-wrap:wrap;gap:8px}.workbench-import-actions button{padding:8px 18px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-family:var(--font);font-size:12.5px;font-weight:650;cursor:pointer}.workbench-import-actions button:hover{background:#dbece21a}.workbench-import-actions button.is-primary{border-color:#67d5c480;background:#67d5c429}.workbench-import-actions button:disabled{opacity:.55;cursor:not-allowed}.workbench-draft-save{justify-self:start;padding:2px 10px;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted);font-size:11px;font-weight:650}.workbench-draft-save[data-status=saved]{border-color:#67d5c480;color:var(--green)}.workbench-draft-save[data-status=saving]{border-color:#ffbd6880;color:var(--amber)}.workbench-draft-save[data-status=error]{border-color:#e7897280;color:var(--danger)}.workbench-draft-save[data-status=unsaved]{border-color:#ffbd6880;color:var(--amber)}.workbench-draft-save[data-status=readonly]{border-color:#67d5c459;color:var(--muted-strong)}.workbench-draft-snapshots{display:grid;gap:6px}.workbench-draft-snapshots h3{margin:4px 0 0;font-size:12px;font-weight:700}.workbench-draft-snapshots ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.workbench-draft-snapshots li{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:11.5px;color:var(--muted)}.workbench-draft-snapshots time{color:var(--muted)}.workbench-draft-snapshots button{padding:4px 12px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-family:var(--font);font-size:11.5px;font-weight:650;cursor:pointer}.workbench-draft-snapshots button:hover{background:#dbece21a}.workbench-summary-status{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.workbench-status-badge{padding:3px 12px;border:1px solid var(--line-strong);border-radius:999px;font-size:11.5px;font-weight:650;color:var(--muted-strong)}.workbench-status-badge.tone-ok{border-color:#67d5c480;color:var(--green)}.workbench-status-badge.tone-warning{border-color:#ffbd6880;color:var(--amber)}.workbench-status-badge.tone-info{border-color:#67d5c459;color:var(--muted-strong)}.workbench-status-badge.tone-muted{color:var(--muted)}.workbench-source-legend{display:grid;gap:8px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-source-legend h3{margin:0;font-size:13px;font-weight:700}.workbench-source-legend ul{display:grid;gap:6px;margin:0;padding-left:18px}.workbench-source-legend li{color:var(--muted);font-size:12px;line-height:1.7}.workbench-source-legend strong{color:var(--ink)}.workbench-review-blockers{display:grid;gap:10px;margin:0;padding-left:18px}.workbench-review-blockers li{display:grid;gap:2px;font-size:12px;line-height:1.7}.workbench-review-blockers strong{color:var(--amber);font-size:12.5px}.workbench-review-blocker-why,.workbench-review-blocker-fix{color:var(--muted)}.workbench-review-blocker-fix:before{content:""}
