/* 迷宫地图与店铺编辑器。地图静态绘制，只有人物操作时更新。 */
.maze-layout{--maze-gold:#d9b874;--maze-dim:#252c39;--maze-stone:#3c4552;--maze-lit:#776753;--maze-path:#6a5a47}
.maze-layout .maze-play{display:block;min-width:0}.maze-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px}.maze-heading h1{margin:7px 0 0;font-size:clamp(24px,3vw,34px);letter-spacing:.06em;font-family:"Yezi Title",var(--font)}
:root .client-layout>.maze-play{display:block}
.maze-eyebrow{font-size:10px;letter-spacing:.18em;color:var(--muted);font-weight:650}.maze-room{font-size:12px;color:var(--muted);white-space:nowrap}.maze-intro{font-size:13px;line-height:1.85;color:var(--ink-2);margin:10px 0 20px;max-width:760px}.maze-live{font-size:11px;color:var(--muted)}
.maze-stage{border:1px solid #b99a5a69;border-radius:20px;background:radial-gradient(ellipse at 48% 35%,#29303e,#151a25 85%);padding:clamp(12px,2.2vw,26px);box-shadow:inset 0 0 55px #070b1266,0 12px 32px #23243914;overflow:hidden}
.maze-map-scroll{max-height:67dvh;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#6b5b41 #171c28;min-height:220px;display:grid;align-items:center}
.maze-board{display:grid;grid-template-columns:repeat(var(--maze-cols,11),minmax(22px,1fr));width:100%;min-width:calc(var(--maze-cols,11)*22px);gap:2px;padding:5px;outline-offset:-2px;box-sizing:border-box}.maze-board:empty{min-height:330px}
.maze-cell{appearance:none;position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:0;border:1px solid #ffffff09;border-radius:3px;background:#242b38;color:#f4dca5;font:600 clamp(8px,1vw,12px)/1.1 var(--font);cursor:default;transition:background .15s,border-color .15s;box-shadow:inset 0 1px 2px #ffffff05}
.maze-cell.is-wall{background:repeating-linear-gradient(0deg,#141925 0 45%,#1d2330 46% 50%);border-color:#3435415c;box-shadow:inset 0 0 5px #03071199}.maze-cell.is-hidden{background:#1a1f2b;border-color:#1d2331;box-shadow:none;color:transparent}
.maze-cell.is-lit{background:linear-gradient(135deg,#6e6555,#414547);border-color:#bba16b5c}.maze-cell.is-visited{background:linear-gradient(135deg,#7a6650,#4b493f);border-color:#b89b664d}.maze-cell.is-visited::before{content:"";width:5px;height:5px;border-radius:50%;background:#d7ba7a66}
.maze-cell.is-exit{background:linear-gradient(140deg,#78603c,#392d31);border-color:#cfab68;box-shadow:0 0 18px #e3b8563b,inset 0 0 12px #e3b85626;z-index:1;color:#ffe7b2}.maze-cell.is-exit::before{display:none}.maze-cell.is-player{border-color:#f7d695;z-index:2;box-shadow:0 0 24px #e9b65a66,inset 0 0 16px #efcf8555}.maze-cell.is-player::before{display:none}.maze-player-icon{width:70%;max-width:36px;height:80%;filter:drop-shadow(0 0 4px #f8d78a99)}
.maze-cell.is-adjacent{cursor:pointer}.maze-cell.is-adjacent:hover,.maze-cell.is-adjacent:focus-visible{outline:2px solid #f5d590;outline-offset:-2px;background:#8a7655}.maze-stage-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:16px 3px 0;font-size:10px;color:#bfb6a6}.maze-stage-foot span{display:flex;align-items:center;gap:6px}.maze-legend-dot{display:inline-block;width:7px;height:7px;background:#b99a65;border-radius:2px}
.maze-board .maze-cell:disabled{opacity:1}
.maze-board{width:min(100%,calc(var(--maze-cols,11)*44px + 2px*(var(--maze-cols,11) - 1) + 10px));min-width:calc(var(--maze-cols,11)*22px + 2px*(var(--maze-cols,11) - 1) + 10px);margin-inline:auto}
.maze-page .brand{min-width:0}.maze-page .brand-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maze-page .topbar .btn{white-space:nowrap}.maze-page .maze-theme{display:inline-flex;align-items:center;gap:6px}.maze-page .maze-theme svg{width:15px;height:15px;flex:none}
.maze-page .brand-title{color:var(--ink)}.maze-page .brand-sub{color:var(--muted)}.maze-data .f{display:flex;flex-direction:column}.maze-data .input,.maze-data .select{min-height:42px;padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:#ffffffb8;color:var(--ink);font-family:var(--font);line-height:1.4;box-shadow:inset 0 1px 0 #ffffffb3}
.maze-page .arbin-foot{font-size:10px;color:var(--muted);letter-spacing:.02em}
:root[data-theme=dark]:has(.maze-page){color-scheme:dark;--paper:#201c28;--paper-2:#2a2431;--card:#28232e;--ink:#eee6f1;--ink-2:#c0b3c5;--muted:#ada0b4;--line:#efe2f11c;--line-2:#efe2f130;--pink-ink:#efa9cd;--sh-key:inset 0 1px 0 #ffffff0a,0 1px 3px #0002}
:root[data-theme=dark] .maze-page{background:radial-gradient(ellipse at 0 0,#432a3b,transparent 65%),radial-gradient(ellipse at 95% 90%,#23382f,transparent 60%),#18141f}
:root[data-theme=dark] .maze-page .topbar,:root[data-theme=dark] .maze-page .client-data{background:#28222ee0;border-color:var(--line-2);box-shadow:inset 0 1px 0 #ffffff08,0 8px 32px #0002}
:root[data-theme=dark] .maze-page .btn{background:#ffffff09;color:var(--ink)}:root[data-theme=dark] .maze-page .btn:hover:not(:disabled){background:#ffffff16}:root[data-theme=dark] .maze-page .btn-primary{background:#b94776;color:#fff}:root[data-theme=dark] .maze-page .input,:root[data-theme=dark] .maze-page .select{background:#ffffff09;border-color:var(--line-2);color:var(--ink);box-shadow:none}:root[data-theme=dark] .maze-page option{background:#28232e}
:root[data-theme=dark] .maze-page .receipt-entry{background:#bd6c9720;box-shadow:none}:root[data-theme=dark] .maze-page .maze-debt{color:#f39b9b}
.maze-navigation{display:flex;align-items:center;justify-content:center;gap:26px;margin:22px 0 8px}.maze-direction{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(3,36px);gap:5px;flex:none}.maze-direction button{border:1px solid var(--line);background:#ffffff75;border-radius:10px;color:var(--ink);font:600 20px var(--font);cursor:pointer;touch-action:manipulation}.maze-direction button:hover{background:#edcfdf}.maze-direction button:disabled{opacity:.35;cursor:default}.maze-direction [data-direction=up]{grid-area:1/2}.maze-direction [data-direction=left]{grid-area:2/1}.maze-direction [data-direction=right]{grid-area:2/3}.maze-direction [data-direction=down]{grid-area:3/2}.maze-direction>span{grid-area:2/2;display:grid;place-items:center;color:#b08a51}.maze-walk-hint b{font-size:13px;color:var(--ink)}.maze-walk-hint p{margin:7px 0;color:var(--muted);font-size:11px;line-height:1.8}
.maze-finish{display:flex;align-items:center;gap:14px;padding:18px;margin-top:20px;border:1px solid #bca16b6b;border-radius:16px;background:#ead9b62e}.maze-finish>span{font-size:36px;color:#b08a51}.maze-finish b{font-size:15px}.maze-finish p{margin:6px 0 0;font-size:12px;color:var(--muted)}
.maze-data{display:flex;flex-direction:column;gap:22px;min-width:0}.maze-section-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.maze-section-top>span{font-size:10px;color:var(--muted)}.maze-step-total{display:flex;align-items:baseline;gap:10px;margin:8px 0 10px}.maze-step-total b{font-size:58px;font-weight:600;letter-spacing:-.045em;line-height:1.12;color:var(--ink);font-variant-numeric:tabular-nums}.maze-step-total>span{font-size:12px;color:var(--muted)}.maze-budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.maze-budget-grid>span{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);padding:10px 0;border-top:1px solid var(--line)}.maze-budget-grid b{font-size:15px;font-weight:600;color:var(--ink)}
.maze-small{font-size:11px;color:var(--muted);line-height:1.85;white-space:pre-line;overflow-wrap:anywhere}.maze-data .f{font-size:12px;margin:12px 0 0;gap:6px;min-width:0}.maze-data .input,.maze-data .select{width:100%;min-width:0;box-sizing:border-box;font-size:13px}.maze-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.maze-red-note{font-size:10px;line-height:1.6;color:var(--muted);margin:8px 0 10px}.maze-reward-preview{font-size:13px;color:#9c4168;background:#d58cad1c;border:1px solid #c377991f;padding:12px 14px;border-radius:12px;line-height:1.7;margin:12px 0}.maze-data #recordBtn{width:100%;min-height:44px;font-size:13px}.maze-debt{color:#bd4b4b;font-size:12px;line-height:1.7}.maze-entry-list{max-height:300px;overflow-y:auto;margin-top:12px;scrollbar-width:thin}.maze-entry{padding:12px 0;border-top:1px solid var(--line)}.maze-entry:first-child{border-top:0;padding-top:0}.maze-entry-top{display:flex;justify-content:space-between;gap:8px;font-size:12px}.maze-entry-top>b{color:#aa4e75;font-variant-numeric:tabular-nums}.maze-entry p{font-size:11px;color:var(--muted);margin:6px 0 0;line-height:1.7}.maze-entry.is-void{opacity:.65}
.maze-dialog{border:1px solid var(--line);border-radius:22px;width:min(440px,calc(100vw - 36px));max-height:85dvh;overflow:auto;padding:26px;background:var(--paper,#fff);color:var(--ink);box-sizing:border-box;box-shadow:0 25px 90px #11182740}.maze-dialog::backdrop{background:#101522a8}.maze-dialog h2{font-size:21px;margin:12px 0 16px}.maze-dialog p{font-size:13px;line-height:1.9}.maze-dialog .row{justify-content:flex-end;gap:8px;margin-top:20px;flex-wrap:wrap}.maze-dialog .btn{font-size:12px}
.maze-room-closed{position:sticky;bottom:12px;z-index:15;display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 12px;padding:14px 20px;width:min(700px,calc(100% - 28px));box-sizing:border-box;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:0 10px 30px #11182715;font-size:12px}.maze-room-closed span{font-size:11px;color:var(--muted)}
/* 后台画布 */
maze-map-editor,maze-room-controls{display:block;min-width:0}.maze-editor{border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--paper);color:var(--ink)}.maze-editor h3,.maze-corrections h3{font-size:15px;margin:0 0 14px}.maze-editor-toolbar{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}.maze-editor-toolbar .f{font-size:12px;min-width:0}.maze-editor-toolbar input{width:76px!important}.maze-editor-toolbar .btn{box-shadow:none}.maze-editor-toolbar .is-on{border-color:#b95b87;background:#f3dae6;color:#7b3658}.maze-editor-scroll{overflow:auto;max-height:540px;border-radius:12px;background:#171c28;padding:10px;overscroll-behavior:contain;scrollbar-width:thin}.maze-editor-grid{display:grid;grid-template-columns:repeat(var(--maze-cols),minmax(22px,1fr));gap:2px;min-width:calc(var(--maze-cols)*22px);touch-action:none;user-select:none}.maze-editor-cell{appearance:none;aspect-ratio:1;min-width:0;border:1px solid #8c7f634a;border-radius:2px;background:#625c50;color:#fff0cc;padding:0;font:600 11px var(--font);cursor:crosshair}.maze-editor-cell.is-wall{background:#232938;border-color:#343e51}.maze-editor-cell.is-start{background:#537e72}.maze-editor-cell.is-exit{background:#a37c43}.maze-editor-status{font-size:12px;line-height:1.8;margin-top:10px;color:var(--muted)}.maze-editor-status.is-error{color:#c44b61}.maze-editor-status.is-valid{color:#3d8469}.maze-preview-dialog{width:min(720px,calc(100vw - 24px))}.maze-preview-dialog .maze-board{--maze-cols:11}.maze-preview-dialog .maze-map-scroll{max-height:55dvh}.maze-corrections{margin-bottom:18px}.maze-correction-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.maze-corrections .f{font-size:12px;margin-top:10px;min-width:0}.maze-corrections input,.maze-corrections select{width:100%;box-sizing:border-box}.maze-corrections .maze-form-grid{gap:10px}.maze-correction-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:14px}.maze-corrections .maze-small{font-size:12px}.maze-correction-error{color:#c24661;font-size:12px;white-space:pre-line;line-height:1.7}.maze-admin-map{max-width:450px}.maze-corrections .maze-stage{padding:12px}.maze-corrections .maze-map-scroll{min-height:0;max-height:400px}.maze-corrections summary{cursor:pointer;font-size:13px;margin-top:12px}.maze-corrections .maze-admin-message{font-size:12px;color:var(--muted);line-height:1.9}
[data-theme=dark] .maze-direction button{background:#ffffff0a;color:var(--ink)}[data-theme=dark] .maze-reward-preview{color:#efa9cd;background:#bd6c971a}[data-theme=dark] .maze-entry-top>b{color:#eda5ca}[data-theme=dark] .maze-editor-toolbar .is-on{background:#653951;color:#ffdaed}[data-theme=dark] .maze-editor{background:#ffffff04}[data-theme=dark] .maze-editor-status.is-valid{color:#8dd4b2}
.maze-editor-grid{width:min(100%,calc(var(--maze-cols)*40px + 2px*(var(--maze-cols) - 1)));min-width:calc(var(--maze-cols)*22px + 2px*(var(--maze-cols) - 1));margin-inline:auto}
.maze-layout [hidden],.maze-dialog[hidden],.maze-room-closed[hidden],.maze-corrections [hidden]{display:none!important}
@media(min-width:1100px){:root .client-layout.maze-layout{grid-template-columns:minmax(0,1fr) 320px;max-width:1440px}.maze-data{position:sticky;top:24px}}
@media(max-width:760px){.maze-heading{align-items:flex-start}.maze-stage{padding:12px;border-radius:16px}.maze-intro{font-size:12px;margin:10px 0 14px}.maze-map-scroll{max-height:56dvh;min-height:180px}.maze-navigation{gap:16px;margin:16px 0}.maze-walk-hint{min-width:0}.maze-walk-hint b{font-size:12px}.maze-walk-hint p{font-size:10px}.maze-room{font-size:10px}.maze-direction{grid-template-columns:repeat(3,38px);grid-template-rows:repeat(3,34px)}.maze-correction-grid{grid-template-columns:1fr}.maze-editor{padding:12px}.maze-editor-toolbar{gap:6px}.maze-editor-toolbar .btn{font-size:11px;padding:7px 10px}.maze-room-closed{flex-direction:column;gap:4px;text-align:center}.maze-step-total b{font-size:48px}}
@media(prefers-reduced-motion:reduce){.maze-cell{transition:none}.maze-layout *{scroll-behavior:auto!important}}

/* 雾夜探宫：夜色、宫灯与石径的视觉层，不改变地图规则。 */
:root:has(.maze-page){--maze-rose:#a94754;--maze-gold-ui:#b68d59}
.maze-page .brand-title{letter-spacing:.08em}.maze-page .brand-sub{font-size:11px}
:root main.client-layout.maze-layout{gap:28px 34px;max-width:1450px;padding-top:34px}
.maze-page .maze-heading{align-items:end;margin:0}.maze-page .maze-heading h1{font-size:clamp(30px,3.5vw,43px);font-weight:700;letter-spacing:.14em;color:#3d3134;line-height:1.2;margin:10px 0 0}
.maze-page .maze-eyebrow{color:#a27d71;letter-spacing:.16em;font-size:10px}.maze-page .maze-room{padding:7px 12px;border:1px solid #d9c7b8;border-radius:99px;color:#8a6c60;background:#fff9f5;font-size:11px}
.maze-page .maze-room:empty{display:none}.maze-page .maze-intro{color:#8c7b74;margin:12px 0 22px}
.maze-page .maze-stage{position:relative;isolation:isolate;padding:20px clamp(16px,3vw,34px) 18px;border:1px solid #8a6b4d;border-radius:20px;background:radial-gradient(ellipse at 50% 38%,#39343a 0,#252731 48%,#171c26 100%);box-shadow:inset 0 0 0 4px #171b24,inset 0 0 0 5px #af8d5d50,0 16px 38px #382b301c}
.maze-page .maze-stage::before{content:"";position:absolute;inset:11px;border:1px solid #caa76c30;border-radius:12px;pointer-events:none;z-index:-1}
.maze-page .maze-stage-heading{display:flex;justify-content:space-between;gap:8px;padding:0 2px 15px;color:#d9c49e;font-size:11px;letter-spacing:.13em}.maze-page .maze-stage-heading span:last-child{color:#b1a297;font-size:10px;letter-spacing:.08em}
.maze-page .maze-map-scroll{border:1px solid #90775240;border-radius:5px;padding:15px;background:radial-gradient(ellipse at center,#d8a76b12,transparent 68%),#121924a8;min-height:220px}
.maze-page .maze-board{gap:3px;padding:4px;width:min(100%,calc(var(--maze-cols,11)*48px + 3px*(var(--maze-cols,11) - 1) + 8px));min-width:calc(var(--maze-cols,11)*22px + 3px*(var(--maze-cols,11) - 1) + 8px)}
.maze-page .maze-cell{border-radius:3px;background:#292e38;border-color:#ffffff0b;box-shadow:inset 0 1px #ffffff0a}
.maze-page .maze-cell.is-wall{background:linear-gradient(90deg,transparent 49%,#151a22 50% 52%,transparent 53%) 0 0/100% 50%,repeating-linear-gradient(0deg,#30343b 0 44%,#171d26 46% 51%);border-color:#4b4b4970;box-shadow:inset 0 1px #77715c24,inset 0 -2px #11141c99}
.maze-page .maze-cell.is-hidden{background:linear-gradient(135deg,#202732,#1b212c);border-color:#30354355;box-shadow:none}
.maze-page .maze-cell.is-lit{background:linear-gradient(135deg,#847762,#665f55);border-color:#c4aa7a69;box-shadow:inset 0 1px #ead2a832}
.maze-page .maze-cell.is-visited{background:linear-gradient(135deg,#9a8060,#6e6252);border-color:#d5b67a6b}
.maze-page .maze-cell.is-visited::before{width:4px;height:4px;background:#f4d59a95}
.maze-page .maze-cell.is-exit{background:linear-gradient(145deg,#a46c45,#523439);border-color:#f0c879;box-shadow:0 0 18px #e1a95760,inset 0 0 18px #efbe7655;color:#fff1ca;font-weight:700}
.maze-page .maze-cell.is-player{background:radial-gradient(circle,#dcb276,#7f6a50 65%,#5f5b50);border-color:#ffe0a2;box-shadow:0 0 22px #ffcc7880,inset 0 0 12px #fff0b444}
.maze-page .maze-player-icon{width:83%;height:90%;max-width:42px;filter:drop-shadow(0 2px 3px #1a1518a0)}
.maze-page .maze-cell.is-adjacent:hover,.maze-page .maze-cell.is-adjacent:focus-visible{outline:2px solid #ffe3a8;outline-offset:-2px;background:#ad9671}
.maze-page .maze-stage-foot{margin:15px 2px 0;color:#c4b5a1;font-size:10px}.maze-page .maze-legend-dot{background:#d5af78}
.maze-page .maze-navigation{justify-content:flex-start;gap:22px;margin:18px 0 0;padding:17px 21px;border:1px solid #e9dcd2;border-radius:16px;background:#fffaf5b8;box-shadow:0 8px 25px #66453c08}
.maze-page .maze-direction{grid-template-columns:repeat(3,42px);grid-template-rows:repeat(3,36px);gap:4px}.maze-page .maze-direction button{border-color:var(--line-2);border-radius:12px;background:#ffffffbd;color:var(--ink);box-shadow:var(--sh-key);transition:background .18s,box-shadow .18s,transform .18s}.maze-page .maze-direction button:hover:not(:disabled){background:#fff}.maze-page .maze-direction button:active:not(:disabled){transform:scale(.975);box-shadow:inset 0 2px 4px #00000014}.maze-page .maze-direction button:focus-visible{outline:2px solid var(--pink-deep);outline-offset:2px}.maze-page .maze-direction>span{color:#bd8e55}.maze-page .maze-walk-hint b{color:#5c4845}.maze-page .maze-walk-hint p{color:#917f76}
:root .client-layout>.maze-data{padding:24px}
.maze-page .maze-data .client-data-title{font-size:15px;color:#5b4543;letter-spacing:.04em}.maze-page .maze-section-top>span{color:#ab8c7b}.maze-page .maze-step-total{margin:14px 0}.maze-page .maze-step-total b{color:#a54f53;font-size:64px;font-family:Georgia,serif}.maze-page .maze-step-total>span{color:#9a8177}.maze-page .maze-budget-grid{gap:8px}.maze-page .maze-budget-grid>span{padding:10px 11px;border:0;border-radius:9px;background:#f7f0eb}.maze-page .maze-budget-grid b{color:#76564e}
.maze-page .maze-data .input,.maze-page .maze-data .select{border-radius:12px;border-color:var(--line-2);background:#ffffffbd;box-shadow:var(--sh-key)}.maze-page .maze-data .input:focus,.maze-page .maze-data .select:focus{outline:2px solid var(--pink-deep);outline-offset:1px}.maze-page .maze-reward-preview{background:#d58cad1c;border-color:#c377991f;color:#9c4168}
:root[data-theme=dark] .maze-page{background:radial-gradient(ellipse at 8% 0%,#3b2e34 0,transparent 48%),#1c1b24}
:root[data-theme=dark] .maze-page .topbar,:root[data-theme=dark] .client-layout>.maze-data{background:#29252ceF;border-color:#ffffff1c}
:root[data-theme=dark] .maze-page .maze-heading h1,:root[data-theme=dark] .maze-page .maze-data .client-data-title,:root[data-theme=dark] .maze-page .maze-walk-hint b{color:#f3e4da}
:root[data-theme=dark] .maze-page .maze-intro,:root[data-theme=dark] .maze-page .maze-walk-hint p{color:#bca9a1}
:root[data-theme=dark] .maze-page .maze-room,:root[data-theme=dark] .maze-page .maze-navigation{background:#2b262d;border-color:#ffffff1c;color:#d1b6a0}
:root[data-theme=dark] .maze-page .maze-direction button{background:#ffffff0b;border-color:#ffffff1f;color:#ead7ca}
:root[data-theme=dark] .maze-page .maze-step-total b{color:#e8a29d}:root[data-theme=dark] .maze-page .maze-budget-grid>span{background:#ffffff0a}:root[data-theme=dark] .maze-page .maze-budget-grid b{color:#ead9ce}
:root[data-theme=dark] .maze-page .maze-data .input,:root[data-theme=dark] .maze-page .maze-data .select{background:#ffffff0a;border-color:#ffffff26;color:var(--ink)}
:root[data-theme=dark] .maze-page .maze-reward-preview{background:#ad64621f;border-color:#ca8a7d33;color:#efb4a9}
@media(max-width:760px){:root main.client-layout.maze-layout{padding-top:24px}.maze-page .maze-heading h1{font-size:30px}.maze-page .maze-stage{padding:18px 15px 16px;border-radius:16px}.maze-page .maze-stage-heading{font-size:10px}.maze-page .maze-map-scroll{padding:8px;max-height:56dvh}.maze-page .maze-board{gap:2px;min-width:calc(var(--maze-cols,11)*22px + 2px*(var(--maze-cols,11) - 1) + 8px)}.maze-page .maze-navigation{gap:14px;padding:13px;margin-top:14px}.maze-page .maze-direction{grid-template-columns:repeat(3,38px);grid-template-rows:repeat(3,36px)}.maze-page .maze-walk-hint p{font-size:11px}:root .client-layout>.maze-data{padding:20px}.maze-page .maze-step-total b{font-size:56px}}

/* 冷宫：青灰宫墙、石板地面与随人物移动的暖灯。 */
.maze-page .maze-board{gap:1px;background:#121923;padding:5px;border-radius:4px}
.maze-page .maze-cell{border-radius:1px}
.maze-page .maze-cell.is-hidden{background:#202631;border-color:#252c38;box-shadow:none}
.maze-page .maze-cell.is-wall{
  border:0;border-radius:1px;
  background:
    linear-gradient(90deg,transparent 48%,#262d31 49% 51%,transparent 52%) 0 0 / 100% 50% no-repeat,
    linear-gradient(90deg,transparent 23%,#262d31 24% 26%,transparent 27% 73%,#262d31 74% 76%,transparent 77%) 0 100% / 100% 50% no-repeat,
    linear-gradient(180deg,#59615a,#414b48 47%,#242c2e 49% 52%,#505953 54%,#343f3c 97%,#242c2e);
  box-shadow:inset 0 1px #a0a69528,inset 0 -2px 2px #0d151aaa;
}
.maze-page .maze-cell.is-lit,.maze-page .maze-cell.is-visited{
  border:1px solid #968e7b80;border-radius:2px;
  background:
    linear-gradient(140deg,#e6d7b216,transparent 38%),
    radial-gradient(ellipse at 72% 78%,#35393225,transparent 28%),
    linear-gradient(135deg,#8b8878,#777a70);
  box-shadow:inset 1px 1px #d1c8ad25,inset -1px -2px #33393248;
}
.maze-page .maze-cell.is-visited{
  background:linear-gradient(140deg,#f5dfb428,transparent 40%),radial-gradient(ellipse at 72% 78%,#4d3d2c20,transparent 28%),linear-gradient(135deg,#a89a7e,#8a8472);
  border-color:#b9aa8a99;
}
.maze-page .maze-cell.is-visited::before{width:3px;height:3px;background:#ead6ac8c}
.maze-page .maze-cell.is-exit{background:linear-gradient(145deg,#a46c45,#523439);border-color:#f0c879;box-shadow:0 0 18px #e1a95760,inset 0 0 18px #efbe7655}
.maze-page .maze-cell.is-player{background:linear-gradient(135deg,#baaa85,#8c806a);border-color:#f4d195;box-shadow:inset 0 1px #ffedc45c,0 0 16px #e5a95e66;overflow:visible;isolation:isolate}
.maze-page .maze-cell.is-player::after{
  content:"";position:absolute;z-index:0;pointer-events:none;width:300%;height:300%;left:-100%;top:-100%;
  background:radial-gradient(circle closest-side at 58% 57%,#ffe2a49c 0%,#ffc16978 22%,#f3a94a46 48%,#e998361c 72%,transparent 100%);
}
.maze-page .maze-player-icon{position:relative;z-index:1;width:94%;height:98%;max-width:48px;filter:drop-shadow(0 2px 2px #17121699)}
.maze-page .maze-cell.is-adjacent:hover,.maze-page .maze-cell.is-adjacent:focus-visible{outline:2px solid #ffe3a8;outline-offset:-2px;background:#c0ad8b}

/* 视野内的新路、足迹与冷宫迷雾。 */
/* 迷雾绘制在整张地图底层，避免每个格子重复出现同一块云。 */
.maze-page .maze-board{
  background:
    radial-gradient(ellipse 48% 17% at 12% 19%,#b2c3c82b,transparent 75%),
    radial-gradient(ellipse 52% 20% at 83% 34%,#9aacb435,transparent 76%),
    radial-gradient(ellipse 44% 19% at 29% 55%,#aebfc42e,transparent 76%),
    radial-gradient(ellipse 52% 22% at 78% 76%,#a7bbc42c,transparent 75%),
    radial-gradient(ellipse 34% 16% at 10% 93%,#91a6b22c,transparent 75%),
    linear-gradient(150deg,#263541,#314451 48%,#23323e);
}
.maze-page .maze-cell.is-hidden{border-color:transparent;background:transparent;box-shadow:none}
.maze-page .maze-cell.is-lit:not(.is-player):not(.is-exit){background:linear-gradient(140deg,#d1d1bd36,transparent 42%),linear-gradient(135deg,#7d8581,#626e6d);border-color:#a2afa58c}
.maze-page .maze-cell.is-visited:not(.is-player):not(.is-exit){background:linear-gradient(140deg,#f8deae36,transparent 42%),linear-gradient(135deg,#b69c76,#8c806b);border-color:#e1bd8580}
.maze-page .maze-cell.is-visited:not(.is-player):not(.is-exit)::before{content:"";display:block;width:14px;height:14px;background:radial-gradient(ellipse 2px 3px at 35% 30%,#fff0c8e8 95%,transparent),radial-gradient(ellipse 2px 3px at 70% 68%,#fff0c8e8 95%,transparent);transform:rotate(30deg)}
.maze-page .maze-legend-dot,.maze-page .maze-legend-fresh,.maze-page .maze-legend-fog{display:inline-block;width:9px;height:9px;border-radius:2px;flex:none}
.maze-page .maze-legend-dot{background:#bd9f78}.maze-page .maze-legend-fresh{background:#788a86}.maze-page .maze-legend-fog{background:#596b79}
.maze-page .maze-cell.is-start.is-visited:not(.is-player){background:linear-gradient(145deg,#5c7c76,#3c5c59);border-color:#a6c6b7;color:#f0f4df;box-shadow:0 0 12px #9ec3ab3a,inset 0 0 12px #d1e0b72a}
.maze-page .maze-cell.is-start.is-visited:not(.is-player)::before{display:none}
.maze-board .maze-cell.is-player.is-start::before,.maze-board .maze-cell.is-player.is-exit::before{display:block;position:absolute;z-index:3;bottom:0;left:50%;transform:translateX(-50%);width:auto;height:auto;padding:1px 3px;border-radius:3px;background:#243c3be8;color:#fff3d2;font:700 8px/1.1 var(--font);white-space:nowrap}
.maze-board .maze-cell.is-player.is-start::before{content:"起点"}
.maze-board .maze-cell.is-player.is-exit::before{content:"出口";background:#6f4732e8}

/* 与其他玩法共用的顶部控件，兼顾窄屏和深色外观。 */
:root[data-theme=dark] .maze-page .status-chip{background:#49303f;color:#f2bad2;border-color:#edb3cf30}
:root[data-theme=dark] .maze-page .maze-direction button:hover:not(:disabled){background:#ffffff1c}
:root[data-theme=dark] .maze-page .btn-primary:hover:not(:disabled){background:#cf648f;color:#fff}
@media(max-width:560px){.maze-page .topbar-inner{flex-wrap:wrap}.maze-page .brand{flex:1 1 100%}.maze-page .topbar-end{width:100%;margin-left:0}.maze-page .topbar-end .status-chip{margin-right:auto}.maze-page .brand-sub{max-width:100%}}

/* 测试版标识 */
.maze-page .maze-title-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.maze-page .maze-beta{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid #c6538033;border-radius:8px;background:#f5eaf0;color:#a33d69;font:650 11px/1.2 var(--font);letter-spacing:.02em}
:root[data-theme=dark] .maze-page .maze-beta{background:#49303f;color:#f2bad2;border-color:#edb3cf30}
