:root{--ink: #1a1c20;--bg: #f5f6f8;--card: #ffffff;--line: #d8dbe0;--brand: #1f3864;--ok: #1a7f37;--warn: #b3541e;--err: #b02a37}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Heebo,sans-serif;color:var(--ink);background:var(--bg)}.app{max-width:720px;margin:0 auto;padding:0 12px 48px}header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0}header h1{font-size:1.15rem;margin:0;color:var(--brand)}.header-side{display:flex;align-items:center;gap:8px}.badge{font-size:.8rem;padding:4px 10px;border-radius:999px;white-space:nowrap}.badge.ok{background:#e2f2e6;color:var(--ok)}.badge.pending{background:#fdeeda;color:var(--warn)}nav{display:flex;gap:8px;margin-bottom:12px}nav button{flex:1;padding:12px;font-size:1rem;border:1px solid var(--line);border-radius:10px;background:var(--card)}nav button.active{background:var(--brand);color:#fff;border-color:var(--brand)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px}.join label,.selectors label{display:block;margin-bottom:12px;font-size:.9rem}input,select,textarea{display:block;width:100%;margin-top:4px;padding:12px;font-size:1.05rem;border:1px solid var(--line);border-radius:10px;background:#fff}textarea{font-family:inherit;resize:vertical;margin-bottom:10px}.add-poles{margin-top:12px}.add-poles input{margin-top:0}button{padding:12px 16px;font-size:1rem;border-radius:10px;border:1px solid var(--line);background:var(--card);cursor:pointer}button:disabled{opacity:.45}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.warn{background:#fff4ec;border-color:var(--warn);color:var(--warn)}.selectors{display:flex;gap:10px}.selectors label{flex:1}.row .row-head{display:flex;justify-content:space-between;align-items:baseline}.row .attempt{margin:6px 0;font-size:.85rem;color:#556}.row .scored{margin:6px 0 0;color:var(--ok);font-weight:600}.controls{display:flex;gap:8px}.controls input{flex:1;margin-top:0}.hint{color:#556;text-align:center;padding:24px 8px}.current-round{text-align:center;font-weight:600;color:var(--brand);margin:4px 0 10px}.round-line{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.round-line:last-child{border-bottom:none}.round-line>span:first-child{flex:1}.round-line button{padding:8px 14px;font-size:.9rem}.round-line input{width:84px;margin:0;padding:8px;font-size:.95rem;text-align:center}.round-line button.linklike{padding:4px 8px;margin:0;color:#a33}.timing-attempt{margin-top:8px}.timing-row{display:flex;gap:8px;flex-wrap:wrap}.timing-row label{flex:1 1 72px;margin:0;font-size:.85rem}.timing-row input{padding:8px;font-size:.95rem}.round-status{font-size:.8rem;padding:3px 10px;border-radius:999px;background:var(--bg)}.round-status.status-open{background:#e2f2e6;color:var(--ok);font-weight:600}.round-status.status-closed{color:#667}tr.withdrawn .pilot{text-decoration:line-through;color:#889}.group-list{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-top:10px}.group-list.unassigned{border-color:var(--warn)}.group-head{font-weight:700;color:var(--brand);padding-bottom:4px;border-bottom:1px solid var(--line)}.group-list.unassigned .group-head{color:var(--warn)}.shift-control{display:flex;align-items:center;gap:8px;margin:0 0 6px}.shift-control input{width:80px;margin-top:0;padding:8px;font-size:.95rem}.shift-control button{padding:8px 12px;font-size:.9rem}.member-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0}.member-row .member-name{flex:1 1 130px}.member-row select{flex:0 1 200px;width:auto;margin-top:0;padding:8px;font-size:.95rem}.member-row button{padding:8px 12px;font-size:.9rem}.withdrawn-row .member-name{text-decoration:line-through;color:#889}.score-fix{margin-top:8px;align-items:center}.score-fix>span{flex:0 0 auto}.score-fix input{flex:1;min-width:120px;padding:8px 10px;font-size:.95rem}.score-fix button{padding:8px 12px;font-size:.9rem}.manager-exit{margin-inline-start:auto;padding:8px 12px;font-size:.9rem}.code-day{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.code-day:last-child{border-bottom:none}.code-day>.muted{flex:1 1 140px}.code-day .code-inline{font-weight:700;color:var(--brand);letter-spacing:.05em;min-width:64px;text-align:center}.code-day input{flex:0 1 110px;margin-top:0;padding:8px;font-size:.95rem}.code-day button{padding:8px 12px;font-size:.9rem}.code-display{font-size:1.5rem;font-weight:700;letter-spacing:.06em;color:var(--brand);text-align:center;background:var(--bg);border-radius:10px;padding:14px;margin:0 0 12px;-webkit-user-select:all;user-select:all}.error{color:var(--err);font-size:.9rem}.landing-menu{display:flex;gap:8px;margin-bottom:12px}.landing-menu button{flex:1;padding:10px;font-size:.95rem}.live-badge{color:var(--ok);font-weight:700;text-align:center;margin:0 0 10px}.board-class{margin-top:10px}.board-pole{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:.95rem}.board-pole:last-child{border-bottom:none}.board-pole-no{flex:0 0 auto;font-weight:600;color:var(--brand);min-width:110px}button.linklike{display:block;margin-top:10px;border:none;background:none;color:var(--brand);text-decoration:underline;padding:6px 0}.google-btn{display:flex;justify-content:center;margin:8px 0 12px;min-height:44px}.app.wide{max-width:1100px}.admin-grid{display:grid;grid-template-columns:1fr;gap:10px;align-items:start}.admin-grid .card{margin-bottom:0}@media (min-width: 900px){.admin-grid{grid-template-columns:3fr 2fr}.app.wide .join{max-width:420px;margin:32px auto 0}}.admin-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.admin-top h2{margin:0;font-size:1.05rem;color:var(--brand)}.card h3{margin:0 0 10px;font-size:1rem;color:var(--brand)}.card label{display:block;margin-bottom:12px;font-size:.9rem}.field-pair{display:flex;gap:10px}.field-pair label{flex:1}.plain-list{list-style:none;margin:0;padding:0}.plain-list li{padding:8px 0;border-bottom:1px solid var(--line)}.plain-list li:last-child{border-bottom:none}.class-actions{display:flex;gap:6px;margin-top:6px}.class-actions button{padding:6px 10px;font-size:.85rem}.comp-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.muted{color:#667;font-size:.85rem}.pole-card{padding:8px 0;border-bottom:1px solid var(--line)}.pole-card:last-of-type{border-bottom:none}.pole-people{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0 4px;font-size:.85rem;color:#556}.pole-people .pole-club{font-weight:600}.pole-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.pole-row .pole-no{min-width:56px;font-size:.9rem}.pole-row input{flex:1 1 160px;min-width:160px;margin-top:0;padding:8px 10px;font-size:.95rem}.pole-row select.pole-class{flex:0 0 90px;width:auto;margin-top:0;padding:8px;font-size:.95rem}.pole-row select.pole-tk{flex:1 1 160px;min-width:160px;width:auto;margin-top:0;padding:8px;font-size:.95rem}.pole-row button{padding:8px 12px;font-size:.9rem}.class-picker{border:1px solid var(--line);border-radius:10px;margin:0 0 12px}.class-picker legend{font-size:.85rem;color:#556;padding:0 6px}.class-picker .check{display:inline-flex;align-items:center;gap:6px;margin:4px 12px 8px 0;font-size:1rem}.class-picker .check input{display:inline;width:auto;margin:0}.hint.start{text-align:start;padding:0 0 12px}.rounds-editor{border:1px solid var(--line);border-radius:10px;margin:0 0 12px;padding:10px}.rounds-editor legend{font-size:.85rem;color:#556;padding:0 6px}.rounds-editor .round-max{display:inline-block;width:100px;margin:0 0 8px 8px;font-size:.85rem}.rounds-editor .round-max input{padding:8px}.round-buttons{display:flex;gap:8px}.round-buttons button{padding:8px 12px;font-size:.9rem}td select{margin-top:0;padding:8px;font-size:.95rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:var(--card);border-radius:12px}th,td{padding:10px 8px;text-align:center;border-bottom:1px solid var(--line);font-size:.9rem}th.pilot,td.pilot{text-align:start}thead th{background:var(--brand);color:#fff;position:sticky;top:0}
