:root{color-scheme:dark;--bg: #11161F;--surface: #1B2230;--surface-high: #232C3D;--outline: #38435A;--on-surface: #E7ECF4;--on-surface-dim: #93A0B5;--primary: #E0A458;--on-primary: #2A1B06;--danger: #F2898B;--radius: 16px;--gap: 16px;--maxw: 460px}*{margin:0;padding:0;box-sizing:border-box}body{min-height:100vh;min-height:100dvh;background:radial-gradient(1200px 600px at 50% -10%,#1d2840 0%,transparent 60%),var(--bg);color:var(--on-surface);font-family:Inter,system-ui,-apple-system,sans-serif;display:grid;place-items:center;padding:24px}m-symbol{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:22px;line-height:1;letter-spacing:normal;white-space:nowrap;direction:ltr;-webkit-font-feature-settings:"liga";font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}ages-app{width:100%;max-width:var(--maxw);display:block;position:relative}connection-status{display:block;text-align:center;font-size:13px;color:var(--on-surface-dim);margin-bottom:12px}connection-status[hidden]{display:none}main-menu,create-room,rooms-list,room-view,game-board{display:none}ages-app[screen=menu] main-menu,ages-app[screen=create] create-room,ages-app[screen=join] rooms-list,ages-app[screen=room] room-view,ages-app[screen=game] game-board{display:block}main-menu{text-align:center}main-menu h1{font-size:4rem;font-weight:700;letter-spacing:-.03em;background:linear-gradient(180deg,#F6D9A8,var(--primary));-webkit-background-clip:text;background-clip:text;color:transparent}main-menu p{color:var(--on-surface-dim);margin:8px 0 32px}menu-actions{display:grid;gap:var(--gap)}menu-actions button{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px;font-size:1.05rem;font-weight:600;color:var(--on-surface);background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius);cursor:pointer;transition:background .15s ease,transform .1s ease,border-color .15s ease}menu-actions button:hover{background:var(--surface-high);border-color:var(--primary)}menu-actions button:active{transform:scale(.98)}menu-actions button[data-action=create] m-symbol{color:var(--primary)}create-room,rooms-list,room-view{background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius);padding:24px}create-room h2,rooms-list h2,room-view h2{font-size:1.5rem;font-weight:700;margin-bottom:20px}form-fields{display:grid;gap:var(--gap)}text-field{display:grid;gap:6px}text-field[hidden]{display:none}text-field label{font-size:13px;color:var(--on-surface-dim);font-weight:500}input{width:100%;padding:13px 14px;font-size:1rem;font-family:inherit;color:var(--on-surface);background:var(--bg);border:1px solid var(--outline);border-radius:12px;outline:none;transition:border-color .15s ease}input:focus{border-color:var(--primary)}form-error{display:block;min-height:18px;margin:12px 0 0;font-size:13px;color:var(--danger)}form-error:empty{margin:0;min-height:0}form-actions{display:flex;gap:10px;margin-top:20px}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:.98rem;font-weight:600;padding:13px 18px;border-radius:12px;border:1px solid transparent;cursor:pointer;transition:filter .15s ease,background .15s ease}button[hidden]{display:none}button[data-variant=primary] m-symbol{color:var(--on-primary)}button[data-variant=primary]{background:var(--primary);color:var(--on-primary);flex:1}button[data-variant=primary]:hover{filter:brightness(1.07)}button[data-variant=ghost]{background:transparent;color:var(--on-surface-dim);border-color:var(--outline)}button[data-variant=ghost]:hover{color:var(--on-surface)}button[disabled]{opacity:.45;cursor:not-allowed}room-rows{display:grid;gap:10px}room-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:14px 16px;background:var(--bg);border:1px solid var(--outline);border-radius:12px}room-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}room-meta{display:flex;align-items:center;gap:6px;color:var(--on-surface-dim);font-size:14px}room-meta m-symbol{font-size:18px}room-row button{padding:9px 16px;font-size:.9rem}empty-state{display:block;text-align:center;color:var(--on-surface-dim);padding:28px 8px}room-header{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}room-header h2{margin:0}room-count{color:var(--on-surface-dim);font-size:14px}player-list{display:grid;gap:8px}player-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg);border:1px solid var(--outline);border-radius:12px}player-item m-symbol{color:var(--on-surface-dim)}player-item[data-self]{border-color:var(--primary)}player-item[data-self] m-symbol{color:var(--primary)}player-item[data-host]{background:linear-gradient(90deg,rgba(224,164,88,.12),transparent);border-color:var(--primary)}player-item[data-host] m-symbol{color:var(--primary)}player-item span{flex:1}host-badge{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--on-primary);background:var(--primary);padding:3px 9px;border-radius:999px}room-status{display:block;text-align:center;color:var(--on-surface-dim);font-size:14px;margin:18px 0 4px}room-status[hidden]{display:none}game-subtitle{display:block;color:var(--on-surface-dim);margin:-8px 0 18px}join-dialog{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#080b11b3;z-index:10}join-dialog[hidden]{display:none}dialog-panel{display:grid;gap:var(--gap);width:100%;max-width:380px;background:var(--surface-high);border:1px solid var(--outline);border-radius:var(--radius);padding:24px}dialog-panel h2{font-size:1.25rem;font-weight:700}ages-app[screen=game]{max-width:none}ages-app[screen=game] game-board{position:fixed;inset:0;background:var(--bg)}game-board canvas{display:block;width:100%;height:100%}game-hud{position:absolute;inset:0;z-index:5;pointer-events:none}resource-bar{position:absolute;top:16px;left:16px;display:flex;gap:8px;pointer-events:auto}resource-chip{display:flex;align-items:center;gap:8px;padding:8px 14px;font-weight:700;font-size:1.05rem;color:var(--on-surface);background:#1b2230d1;border:1px solid var(--outline);border-radius:999px;backdrop-filter:blur(6px)}resource-chip m-symbol{color:var(--primary)}control-panel{position:absolute;top:16px;right:16px;width:240px;display:flex;flex-direction:column;gap:12px;padding:16px;background:#1b2230d1;border:1px solid var(--outline);border-radius:var(--radius);backdrop-filter:blur(6px);pointer-events:auto}control-panel player-list{gap:8px}camera-controls{position:absolute;top:64px;left:16px;display:flex;align-items:center;gap:10px;padding:7px 14px 7px 16px;font-size:13px;font-weight:600;color:var(--on-surface);background:#1b2230d1;border:1px solid var(--outline);border-radius:999px;backdrop-filter:blur(6px);pointer-events:auto;cursor:pointer;user-select:none}@media(hover:hover)and (pointer:fine){camera-controls{display:none}}m-switch{position:relative;display:inline-block;box-sizing:border-box;width:44px;height:26px;border-radius:999px;background:var(--surface-high);border:2px solid var(--outline);transition:background .16s,border-color .16s}m-switch-thumb{position:absolute;top:50%;left:3px;width:18px;height:18px;border-radius:50%;background:var(--on-surface-dim);transform:translateY(-50%);transition:transform .18s cubic-bezier(.2,0,0,1),background .16s}m-switch[aria-checked=true]{background:var(--primary);border-color:var(--primary)}m-switch[aria-checked=true] m-switch-thumb{background:var(--on-primary);transform:translate(18px,-50%)}@media(max-width:600px){camera-controls{top:60px;left:12px}}action-tabs{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--outline)}action-tabs[hidden]{display:none}tab-row{display:flex;gap:6px}button[data-tab]{flex:1;padding:8px 6px;font-size:13px;font-weight:600;color:var(--on-surface-dim);background:var(--bg);border:1px solid var(--outline);border-radius:10px}button[data-tab][active]{color:var(--on-surface);border-color:var(--primary);background:var(--surface-high)}tab-panel{display:flex;flex-wrap:wrap;gap:8px}tab-panel[hidden]{display:none}command-tabs{display:flex;flex-direction:column;gap:10px}command-tabs[hidden]{display:none}command-tabs tab-row button[data-tab]{padding:6px;font-size:12px}program-panel{padding:14px 4px;color:var(--on-surface-dim);font-size:13px}program-panel[hidden]{display:none}button[data-icon]{width:48px;height:48px;padding:0;flex:none}button[data-icon] m-symbol{color:var(--on-surface);font-size:24px}button[data-icon][active]{background:var(--primary);border-color:var(--primary)}button[data-icon][active] m-symbol{color:var(--on-primary)}placement-hint{position:absolute;top:16px;left:50%;transform:translate(-50%);padding:10px 18px;font-weight:600;color:var(--on-primary);background:var(--primary);border-radius:999px;pointer-events:none;box-shadow:0 6px 20px #00000059}placement-hint[hidden]{display:none}@media(max-width:600px){control-panel{inset:auto 0 0;width:auto;max-height:52vh;overflow-y:auto;border-radius:var(--radius) var(--radius) 0 0}order-panel{gap:10px}control-panel button,order-panel button{min-height:48px}resource-bar{top:12px;left:12px}placement-hint{top:12px;font-size:.9rem;max-width:72vw;text-align:center}}
