:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e6edf3;background:#0b0e14;font-family:system-ui,-apple-system,PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body{background:#0b0e14;min-height:100%;margin:0}body{overflow-x:hidden}button{font:inherit}.app{width:100%;max-width:560px;height:100dvh;min-height:100dvh;padding:16px 16px calc(24px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.app-header,.hint,.storage-notice,.controls{flex:none}.app-header{flex-direction:column;gap:6px;display:flex}.title-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.title-row h1{letter-spacing:.04em;margin:0;font-size:22px}.progress-count{color:#9fb0c7;white-space:nowrap;font-size:13px}.status-line{color:#c2cfde;flex-wrap:wrap;gap:6px 14px;font-size:15px;display:flex}.status-hint{color:#ffd43b}.run-stats{color:#9fb0c7;font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 14px;font-size:13px;display:flex}.goal{color:#7d8ea6;margin:0;font-size:13px}.hint{color:#9fb0c7;background:#141a24;border:1px solid #232b38;border-radius:10px;margin:12px 0 0;padding:10px 12px;font-size:14px;line-height:1.6}.storage-notice{color:#ffd43b;margin:10px 0 0;font-size:13px}.board-shell{flex:auto;justify-content:center;align-items:center;width:100%;min-height:160px;margin:14px 0 16px;display:flex;position:relative}.win-overlay{text-align:center;background:#080b10d6;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex;position:absolute;inset:0;overflow-y:auto}.win-title{color:#51cf66;margin:0;font-size:30px;font-weight:700}.win-subtitle{color:#c2cfde;margin:0;font-size:15px}.win-stats,.win-best{color:#c2cfde;font-variant-numeric:tabular-nums;margin:0;font-size:13px}.win-best{color:#9fb0c7}.board-size-hint{color:#ffd43b;text-align:center;background:#141a24;border:1px solid #2c3a4d;border-radius:10px;flex:none;font-size:11px;line-height:1.2}.board-size-hint.is-side{writing-mode:vertical-rl;width:34px;max-height:100%;margin:0 0 0 8px;padding:6px 3px;line-height:1.4;overflow:hidden}.board-size-hint.is-bottom{white-space:nowrap;justify-content:center;align-items:center;max-width:100%;height:26px;margin:4px 0 0;padding:0 8px;display:flex}.win-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;display:flex}.controls{gap:8px;display:flex}.control-button{color:#e6edf3;cursor:pointer;background:#1d2532;border:1px solid #2c3a4d;border-radius:10px;flex:1;min-height:46px;font-size:16px}.control-button:hover:not(:disabled){background:#253040}.control-button:disabled{opacity:.4;cursor:default}.control-button:focus-visible,.primary-button:focus-visible,.text-button:focus-visible,.level-button:focus-visible{outline-offset:2px;outline:3px solid #4dabf7}.primary-button,.text-button{cursor:pointer;border-radius:10px;min-height:44px;padding:0 18px;font-size:16px}.primary-button{color:#fff;background:#1c4f86;border:1px solid #2f7ed1}.primary-button:hover{background:#24629f}.text-button{color:#e6edf3;background:#1d2532;border:1px solid #2c3a4d}.text-button:hover{background:#253040}.modal-backdrop{z-index:10;background:#0000009e;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#151a23;border:1px solid #2c3a4d;border-radius:14px;width:100%;max-width:420px;max-height:85vh;padding:16px;overflow:auto}.modal.is-level-picker{flex-direction:column;display:flex;overflow:hidden}.modal.is-level-picker .modal-header{z-index:1;background:#151a23;flex:none;position:relative}.modal.is-level-picker .modal-subtitle{flex:none}.modal.is-level-picker .level-groups{flex:auto;min-height:0;margin:-8px;padding:8px;scroll-padding-block:8px;overflow-y:auto}.modal h2{margin:0;font-size:20px}.modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-subtitle{color:#9fb0c7;margin:10px 0 14px;font-size:14px;line-height:1.6}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.level-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.level-groups{flex-direction:column;gap:16px;display:flex}.level-group-title{color:#9fb0c7;margin:0 0 8px;font-size:14px;font-weight:600}.level-button{color:#e6edf3;cursor:pointer;background:#1d2532;border:1px solid #2c3a4d;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:58px;padding:14px 4px 6px;display:flex;position:relative}.level-button:hover:not(:disabled){background:#253040}.level-button.is-current{border-color:#4dabf7}.level-button.is-done{background:#17261b;border-color:#2f6b3a}.level-button.is-locked{opacity:.45;cursor:not-allowed}.level-best{color:#9fb0c7;font-variant-numeric:tabular-nums;font-size:11px}.level-lock{color:#9fb0c7;font-size:11px}.level-number{font-size:14px}.level-size{color:#9fb0c7;font-size:12px}.level-done{color:#51cf66;font-size:11px;line-height:1;position:absolute;top:3px;right:6px}@media (width<=360px){.app{padding:12px 12px calc(20px + env(safe-area-inset-bottom))}.title-row h1{font-size:20px}.level-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.primary-button,.text-button{padding:0 14px}}@media (height<=560px){.app{padding-top:8px;padding-bottom:8px}.app-header{gap:2px}.title-row h1{font-size:18px}.status-line{gap:2px 10px;font-size:13px}.run-stats{gap:2px 10px;font-size:12px}.win-overlay{gap:1px;padding:4px}.win-title{font-size:18px}.win-subtitle{font-size:10px}.win-stats,.win-best{font-size:9px}.win-actions{gap:6px;margin-top:0}.win-actions .primary-button,.win-actions .text-button{min-height:26px;padding:0 10px;font-size:12px}.hint,.goal{display:none}.board-shell{min-height:120px;margin:6px 0}.control-button{min-height:40px;font-size:14px}}.account-toolbar,.auth-toolbar{flex:none;align-items:center;gap:8px;width:100%;margin:0 0 8px;display:flex}.auth-toolbar{justify-content:space-between;padding:12px 16px 0}.game-home{color:#9fb0c7;white-space:nowrap;flex:none;font-size:13px;text-decoration:none}.game-home:hover{color:#e6edf3}.sync-status{color:#7d8ea6;text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;font-size:12px;overflow:hidden}.language-switch{flex:none;gap:4px;display:flex}.language-switch button{color:#9fb0c7;background:0 0;border:1px solid #2c3a4d;border-radius:6px;min-height:30px;padding:3px 8px;font-size:12px}.language-switch button[aria-pressed=true]{color:#e6edf3;background:#1d2532;border-color:#4dabf7;font-weight:700}.game-account{min-width:0;max-width:120px;position:relative}.game-account summary{color:#e6edf3;cursor:pointer;background:#151a23;border:1px solid #2c3a4d;border-radius:6px;align-items:center;gap:6px;min-height:30px;padding:3px 8px;font-size:12px;list-style:none;display:flex}.game-account summary::-webkit-details-marker{display:none}.game-account summary span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-account-panel{z-index:20;background:#151a23;border:1px solid #2c3a4d;border-radius:8px;min-width:128px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #00000059}.game-account-panel button{color:#ff8787;text-align:left;background:0 0;border:0;border-radius:4px;width:100%;min-height:36px;padding:6px 10px}.game-account-panel button:enabled:hover{background:#2a1d22}.sync-retry{align-self:flex-end;margin:0 0 4px}.auth-shell{width:100%;max-width:440px;margin:0 auto;padding:20px 16px 44px}.auth-card{background:#151a23;border:1px solid #2c3a4d;border-radius:14px;padding:clamp(18px,5vw,28px);box-shadow:0 12px 34px #00000059}.auth-title{color:#e6edf3;margin:0;font-size:clamp(1.6rem,7vw,2.1rem);line-height:1.2}.auth-hint{color:#9fb0c7;margin:8px 0 0;font-size:.92rem;line-height:1.6}.auth-notice{border:1px solid #0000;border-radius:8px;margin:16px 0 0;padding:10px 12px;font-size:.9rem;line-height:1.55}.auth-notice-error{color:#ffc9c9;background:#2a171a;border-color:#6b2b30}.auth-notice-success{color:#b2f2bb;background:#17261b;border-color:#2f6b3a}.auth-form{flex-direction:column;gap:14px;margin-top:18px;display:flex}.auth-field{flex-direction:column;gap:6px;min-width:0;display:flex}.auth-field>span{color:#c2cfde;font-size:.9rem;font-weight:700}.auth-field input{color:#e6edf3;background:#0f131a;border:1px solid #2c3a4d;border-radius:8px;width:100%;min-height:44px;padding:10px 12px;font-size:1rem}.auth-field input:focus-visible{outline-offset:1px;outline:2px solid #4dabf7}.auth-field input:disabled{color:#7d8ea6}.auth-field-hint{color:#7d8ea6;font-size:.78rem;line-height:1.4}.auth-code-row{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.auth-code-row .auth-field{flex:150px}.auth-code-button{white-space:nowrap;flex:none;margin-top:27px}.auth-primary-button{color:#fff;background:#1c4f86;border:1px solid #2f7ed1;border-radius:8px;min-height:46px;padding:10px 18px;font-weight:700}.auth-primary-button:disabled,.auth-secondary-button:disabled{opacity:.55}.auth-secondary-button{color:#e6edf3;background:#1d2532;border:1px solid #2c3a4d;border-radius:8px;min-height:44px;padding:8px 14px;font-weight:700}.auth-text-button{color:#9fb0c7;background:0 0;border:0;border-radius:6px;min-height:36px;padding:6px;font-size:.9rem;text-decoration:underline}.auth-form-note{color:#9fb0c7;text-align:center;margin:0;font-size:.86rem}.auth-form-note .auth-text-button{min-height:auto;padding:0 2px}.auth-dev-hint{color:#ffe8a3;overflow-wrap:anywhere;background:#241f13;border:1px dashed #6b552a;border-radius:8px;margin:0;padding:8px 10px;font-size:.82rem}.auth-switches{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;margin-top:14px;display:flex}.auth-footer{color:#7d8ea6;border-top:1px solid #232b38;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;margin-top:18px;padding-top:14px;font-size:.86rem;display:flex}.load-panel{text-align:center;width:100%;max-width:480px;margin:12vh auto 32px;padding:0 16px}.load-panel h1{color:#e6edf3;margin:0 0 16px;font-size:clamp(2.5rem,12vw,4rem)}.load-panel p{color:#9fb0c7;line-height:1.7}.load-panel button,.session-notice button,.sync-notice button{color:#e6edf3;background:#1d2532;border:1px solid #2c3a4d;border-radius:8px;min-height:40px;padding:8px 14px;font-weight:700}.session-notice,.sync-notice{color:#ffe8a3;background:#241f13;border:1px solid #6b552a;border-radius:8px;max-width:480px;margin:12px auto;padding:12px 16px;line-height:1.6}.session-notice{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.session-notice p,.sync-notice p{flex:220px;margin:0}.sync-notice{bottom:max(12px, env(safe-area-inset-bottom));z-index:20;width:min(480px,100% - 24px);position:fixed;left:50%;transform:translate(-50%)}@media (width<=360px){.account-toolbar{flex-wrap:wrap;gap:6px}.sync-status{text-align:center;flex:1 0 100%;order:5;min-width:0}.game-account{max-width:96px}}.sync-notice .primary-button{color:#fff;background:#1c4f86;border-color:#2f7ed1}
