:root{--bg: #0e1620;--panel: #16212e;--panel-2: #1e2c3d;--text: #e6edf3;--muted: #8b9bb0;--accent: #4fd1c5;--accent-2: #f6ad55;--danger: #f87171;--pipe: #7dd3fc;--border: #2a3a4d;--radius: 14px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;min-height:100dvh}#app{min-height:100dvh}a{color:var(--accent)}.game-shell{max-width:640px;margin:0 auto;padding:calc(16px + var(--safe-top)) 16px calc(24px + var(--safe-bottom));display:flex;flex-direction:column;gap:16px;min-height:100dvh}.game-title{font-size:1.5rem;font-weight:700;letter-spacing:.02em}.game-title span{color:var(--accent)}.muted{color:var(--muted);font-size:.9rem}.hint{text-align:center}.start-dot{color:var(--accent);font-weight:600}.end-dot{color:var(--accent-2);font-weight:600}.stage{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;flex:1;justify-content:center}.adversary-card{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.adversary-image{max-width:min(80vw,360px);max-height:44vh;width:auto;height:auto;border-radius:var(--radius);border:1px solid var(--border);object-fit:contain;background:#0a1018}.adversary-name{font-size:1.1rem;font-weight:600}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--accent);background:var(--accent);color:#06231f;font-weight:600;font-size:1rem;padding:12px 22px;border-radius:999px;cursor:pointer;transition:transform .05s ease,opacity .15s ease}.button:active{transform:scale(.97)}.button-secondary{background:transparent;color:var(--muted);border-color:var(--border)}.button-secondary:active{transform:scale(.97)}.text-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:var(--accent);font-size:.95rem;padding:8px 10px;cursor:pointer;border-radius:8px}.text-button.danger{color:var(--danger)}.text-button:active{background:#ffffff0f}.text-button.disabled{color:var(--muted);cursor:default;pointer-events:none}a.text-button{text-decoration:none;display:inline-block}a.text-button:active{background:#ffffff0f}.pager{display:flex;align-items:center;justify-content:center;gap:12px}.pager-info{color:var(--muted);font-size:.9rem}.play-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.play-meta{display:flex;align-items:center;gap:8px}.grid{display:grid;gap:2px;margin:0 auto;background:var(--panel);padding:8px;border-radius:var(--radius);border:1px solid var(--border);touch-action:manipulation}.cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--panel-2);padding:0;margin:0;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s ease;touch-action:manipulation}.cell:active{background:#243349}.cell svg{display:block;pointer-events:none}.cell-fixed{cursor:default;background:#11202e}.outcome-headline{font-size:1.6rem;font-weight:700;margin:0}.outcome-actions{display:flex;flex-direction:column;align-items:center;gap:8px}.intro-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px}form{display:flex;flex-direction:column;gap:14px;width:100%;max-width:420px;margin:0 auto}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--muted)}input[type=text],input[type=password],input[type=file]{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:12px 14px;border-radius:10px;font-size:1rem}input[type=file]{padding:8px}input:focus{outline:2px solid var(--accent);outline-offset:1px}.form-error{color:var(--danger);font-size:.9rem;min-height:1.1em}.form-ok{color:var(--accent);font-size:.9rem;min-height:1.1em}.footer-links{display:flex;justify-content:center;gap:8px}.admin{max-width:760px}.admin-body{display:flex;flex-direction:column;gap:16px}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border)}.admin-table th{color:var(--muted);font-weight:600}.row-actions{white-space:nowrap;text-align:right}.thumb-cell{width:56px}.row-thumb{width:40px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:#0a1018;vertical-align:middle}.row-thumb.empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.8rem}.img-badge{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:middle}.img-badge.ok{background:var(--accent)}.img-badge.missing{background:var(--danger)}.editor-preview{width:80px;height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:#0a1018}.editor-preview.empty{display:flex;align-items:center;justify-content:center;color:var(--muted)}.image-field-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.image-field-row input[type=file]{flex:1 1 auto;min-width:0}.image-field-preview{display:flex;align-items:center;gap:10px;margin-top:8px}.image-field-removed{display:none;color:var(--danger);font-size:.9rem}.image-field.removed .editor-preview{opacity:.3;filter:grayscale(1)}.image-field.removed .image-field-removed{display:inline}.image-field.removed .image-field-row input[type=file]{opacity:.5}.view-grid{display:grid;gap:20px;grid-template-columns:1fr}@media(min-width:640px){.view-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.view-grid{grid-template-columns:repeat(3,1fr)}}.view-card{margin:0;background:var(--surface, #111a26);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px}.view-card figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.view-label{font-weight:600}.view-image{width:100%;max-height:420px;object-fit:contain;border-radius:8px;border:1px solid var(--border);background:#0a1018}.view-image.empty{height:200px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.view-card.missing{opacity:.65}.view-hint{font-size:.85rem;margin:0}@media(min-width:560px){.game-title{font-size:1.8rem}.outcome-headline{font-size:2rem}}
