:root{--bg: #0e1116;--panel: #161b22;--panel-2: #1c232c;--border: #2a323d;--text: #e6edf3;--muted: #8b949e;--accent: #4c8dff;--accent-dim: #1f3a5f;--good: #3fb950;--warn: #d29922;--bad: #f85149;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:6px 12px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}input,textarea,select{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px;width:100%}input:focus,textarea:focus{outline:none;border-color:var(--accent)}.app{max-width:1500px;margin:0 auto;padding:16px 20px 60px}.topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:18px}.topbar h1{font-size:16px;margin:0;font-weight:600}.spacer{flex:1}.badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.badge.host{color:#d2a8ff;border-color:#553098}.badge.exhibitor{color:#79c0ff;border-color:#1f4b7f}.badge.attendee_org{color:#7ee787;border-color:#2b5f34}.badge.high{color:var(--good);border-color:#24603a}.badge.medium{color:var(--warn);border-color:#6b5220}.badge.low,.badge.none{color:var(--bad);border-color:#7d2b26}.badge.private{color:var(--muted)}.badge.team{color:#79c0ff;border-color:#1f4b7f}.badge.org{color:var(--good);border-color:#24603a}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px}.tab{border:none;background:none;border-bottom:2px solid transparent;border-radius:0;padding:10px 16px;color:var(--muted);font-weight:500}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab:hover{color:var(--text);border-color:transparent;border-bottom-color:var(--border)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.card h3{margin:0;font-size:15px}.card .booth{font-family:var(--mono);font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12px}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin:6px 0 2px}.points{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.points li{line-height:1.45}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.searchbar{display:flex;gap:8px;margin-bottom:16px}.searchbar input{flex:1}.login{max-width:380px;margin:12vh auto;display:flex;flex-direction:column;gap:12px}.login .card{gap:14px}.error{color:var(--bad);background:#f8514914;border:1px solid rgba(248,81,73,.3);border-radius:6px;padding:8px 10px;font-size:13px}.empty{color:var(--muted);padding:40px;text-align:center;border:1px dashed var(--border);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em}tr:hover td{background:var(--panel)}.pill-row{display:flex;gap:6px;flex-wrap:wrap}.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.settings{display:flex;flex-direction:column;gap:14px;max-width:720px}.settings .card{gap:8px}.settings table{margin-top:4px}.settings code{font-family:var(--mono);font-size:12px;color:var(--muted)}.notice{color:var(--good);background:#3fb95014;border:1px solid rgba(63,185,80,.3);border-radius:6px;padding:8px 10px;font-size:13px}.warn-text{color:var(--warn)}.linklike{background:none;border:none;padding:0 0 0 6px;color:var(--accent);font-size:12px;text-decoration:underline}.meter{height:4px;background:var(--border);border-radius:999px;overflow:hidden;max-width:320px}.meter span{display:block;height:100%;background:var(--accent)}.dev-switcher{display:flex;align-items:center;gap:6px}.dev-switcher select{width:auto;font-size:12px;padding:4px 6px}.badge.dev{color:var(--warn);border-color:#6b5220}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.form-grid label,.settings label{display:flex;flex-direction:column;gap:2px}.settings textarea{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px 10px;font:inherit;font-size:13px;resize:vertical}.settings td select{width:auto;font-size:12px;padding:3px 6px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:4px}.hall-list{display:flex;flex-direction:column;gap:12px}.hall{border:1px solid var(--border);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px}.hall-map{max-width:100%;border-radius:6px;border:1px solid var(--border);display:block;background:var(--bg)}.settings input[type=file]{padding:4px 0;border:none;background:none}
