:root{--bg: #0f1115;--surface: #181b21;--surface-2: #21252e;--text: #e7e9ee;--muted: #9aa3b2;--accent: #0b6e4f;--accent-2: #12a06f;--money: #d8b75a;--danger: #e5614a;--radius: 12px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}.app{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.app-header h1{font-size:1.25rem;margin:0}button.primary,button.secondary,button[type=submit],a.button-link{border:none;border-radius:999px;padding:8px 16px;color:#fff;background:var(--accent)}button.primary:hover,button[type=submit]:hover,a.button-link.primary:hover{background:var(--accent-2)}button.secondary,a.button-link.secondary{background:var(--surface-2)}a.button-link{text-decoration:none;display:inline-block}button[disabled]{opacity:.6;cursor:not-allowed}.link-button{background:none;border:none;color:var(--accent-2);padding:4px 0;text-align:left}.filters{display:flex;gap:10px;padding:0 16px 10px;overflow-x:auto;align-items:flex-end}.filter-search{display:flex;align-items:flex-end;gap:6px}.filter-search input{min-width:180px}.filter-check{flex-direction:row!important;align-items:center;gap:6px;white-space:nowrap}.filters label,.create-form label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--muted)}.filters select,.filters input:not([type=checkbox]),.create-form input,.create-form select{background:var(--surface);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:8px 10px;font-size:.95rem}.location-link{color:var(--accent);white-space:nowrap}.load-more{display:block;width:100%;margin:12px 0 4px;padding:10px;border:none;border-radius:var(--radius);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer}.load-more:disabled{opacity:.6;cursor:default}.results{flex:1;overflow-y:auto;padding:12px 16px 16px}.status,.empty{color:var(--muted);text-align:center;padding:24px 0}.game-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.game-card{width:100%;text-align:left;background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);padding:12px 14px;color:var(--text);display:flex;flex-direction:column;gap:8px}.game-card-head{display:flex;justify-content:space-between;align-items:baseline}.game-title{font-weight:600}a.game-title,a.home-link{color:inherit;text-decoration:none}a.game-title:hover,a.home-link:hover{text-decoration:underline}.game-distance{color:var(--muted);font-size:.85rem}.game-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{background:var(--surface-2);border-radius:999px;padding:2px 10px;font-size:.75rem}.tag-money{color:var(--money)}.game-meta{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:.8rem}.create-form{display:flex;flex-direction:column;gap:14px;padding:16px;overflow-y:auto}.form-row{display:flex;gap:12px}.form-row label{flex:1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.form-error{color:var(--danger);font-size:.9rem}.location-picker{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.9rem;color:var(--muted)}.location-chosen{display:flex;flex-direction:column;gap:2px;margin:0;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius)}.location-results{list-style:none;margin:0;padding:0;background:var(--surface-2);border-radius:var(--radius);overflow:hidden}.location-results li+li{border-top:1px solid var(--surface)}.location-results button{width:100%;padding:10px 12px;color:var(--text)}.location-results button:hover{background:var(--surface)}.hint{font-size:.9rem;color:var(--muted);margin:0}.game-detail{display:flex;flex-direction:column;gap:14px;padding:16px;overflow-y:auto}.game-detail h2{margin:0}.game-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.game-facts dt{color:var(--muted);font-size:.85rem}.game-facts dd{margin:0}.join-control{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.join-control .status{margin:0}.request-queue{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border, #ddd);border-radius:8px}.request-queue h3{margin:0;font-size:1rem}.request-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.request-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.request-actions{margin-left:auto;display:flex;gap:8px}.roster{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border, #ddd);border-radius:8px}.roster h3{margin:0;font-size:1rem}.roster h4{margin:4px 0 0;font-size:.9rem;font-weight:600}.roster-list{margin:0;padding:0;display:flex;flex-direction:column;gap:4px}ul.roster-list{list-style:none}ol.roster-list{padding-left:1.5em}.checkbox-row{display:flex;align-items:flex-start;gap:8px}.checkbox-row input{width:auto;margin-top:3px;flex:none}.profile{display:flex;flex-direction:column;gap:14px;padding:16px;overflow-y:auto}.profile h2{margin:0}.social-links{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}.not-found{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:24px 16px}.share-link{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--surface-2);padding-top:14px}.share-row{display:flex;gap:8px}.share-row input{flex:1;min-width:0;font:inherit;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--surface-2);background:var(--surface);color:var(--text)}.muted{color:var(--muted)}.app-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sign-in{display:flex;flex-direction:column;gap:14px;padding:20px 16px}.sign-in-providers{display:flex;flex-direction:column;gap:10px}.sign-in-form{display:flex;flex-direction:column;gap:12px}.sign-in-form label{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.sign-in-divider{text-align:center;margin:0}.my-games{padding:0 16px 16px;overflow-y:auto}.game-cancelled{opacity:.65}.tag-cancelled{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
