:root{--bg: #f4f6fa;--card: #ffffff;--card2: #f3f6fa;--line: #dde5ee;--line-strong: #c6d2e0;--text: #101a2b;--muted: #64748b;--accent: #0369a1;--accent-d: #0284c7;--accent-soft: #e2f1fb;--green: #16a34a;--green-bg: #dcfce7;--green-tx: #15803d;--red: #dc2626;--red-bg: #fde8e8;--red-tx: #b42318;--warn-bg: #fef3c7;--warn-tx: #92400e;--male: #1d4ed8;--male-bg: #e3ebfd;--female: #be1a67;--female-bg: #fce4f0;--acc: #047857;--acc-bg: #d7f5e9;--uf: #6d28d9;--uf-bg: #ede9fe;--shadow: 0 1px 2px rgba(16, 30, 54, .06), 0 1px 3px rgba(16, 30, 54, .04);--shadow-up: 0 -2px 10px rgba(16, 30, 54, .07)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{max-width:720px;margin:0 auto;padding:0 14px 90px}.topbar{position:sticky;top:0;z-index:10;background:var(--bg);padding:14px 0 8px;border-bottom:1px solid transparent}.topbar h1{margin:0;font-size:20px;display:flex;align-items:center;gap:8px}.topbar .sub{color:var(--muted);font-size:13px}.event-pick{display:flex;gap:8px;align-items:center;margin-top:10px}.event-pick select{flex:1}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--card);border-top:1px solid var(--line);box-shadow:var(--shadow-up)}.tabbar button{flex:1;background:none;border:none;color:var(--muted);padding:10px 4px 14px;font-size:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}.tabbar button .ic{font-size:20px}.tabbar button.active{color:var(--accent);font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:var(--shadow)}.card h2{margin:0 0 10px;font-size:16px}.section-title{font-size:13px;color:var(--muted);margin:18px 0 8px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}input,select{width:100%;padding:11px 12px;font-size:16px;background:#fff;border:1px solid var(--line-strong);border-radius:9px;color:var(--text)}input::placeholder{color:#9aa8bb}input:focus,select:focus{outline:none;border-color:var(--accent-d);box-shadow:0 0 0 3px #0284c724}.row{display:flex;gap:10px}.row>*{flex:1}button.btn{width:100%;padding:12px;font-size:15px;font-weight:600;cursor:pointer;background:var(--accent-d);border:none;border-radius:9px;color:#fff;margin-top:14px;box-shadow:0 1px 2px #0284c759}button.btn:active{background:var(--accent)}button.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.btn.ghost{background:#fff;border:1px solid var(--line-strong);color:var(--text);box-shadow:none}button.btn.danger{background:#fff;border:1px solid var(--red);color:var(--red-tx);box-shadow:none}button.mini{font-size:12px;padding:6px 10px;border-radius:7px;border:1px solid var(--line-strong);background:#fff;color:var(--text);cursor:pointer}button.mini:active{background:var(--card2)}button.mini.danger{color:var(--red-tx);border-color:#f0b4b4}button.mini.on-acc{background:var(--acc-bg);border-color:var(--acc);color:var(--acc);font-weight:700}.badge{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;font-weight:600}.badge.male{background:var(--male-bg);color:var(--male)}.badge.female{background:var(--female-bg);color:var(--female)}.badge.acc{background:var(--acc-bg);color:var(--acc)}.badge.info{background:var(--accent-soft);color:var(--accent)}.badge.uf{background:var(--uf-bg);color:var(--uf)}.badge.uf.none{background:var(--card2);color:var(--muted);font-weight:500}.badge.off{background:var(--card2);color:var(--muted);border:1px solid var(--line-strong)}.card.off{background:var(--card2);border-style:dashed}.card.off .list-clickable strong{color:var(--muted)}button.mini.on-active{background:var(--green-bg);border-color:var(--green);color:var(--green-tx);font-weight:700}.hint{color:var(--muted);font-size:12px;display:block;margin-top:4px}select.uf-pick{width:auto;min-width:92px;padding:5px 8px;font-size:12px;border-radius:7px;border:1px solid var(--line-strong);background:#fff;color:var(--text)}select.uf-pick.set{background:var(--uf-bg);border-color:var(--uf);color:var(--uf);font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 8px;min-height:26px}.chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 4px 3px 9px;border-radius:999px;background:var(--uf-bg);color:var(--uf)}.chip button{border:none;background:none;color:var(--uf);cursor:pointer;font-size:15px;line-height:1;padding:0 4px;border-radius:999px}.chip button:active{background:#6d28d926}.ocupantes{margin-top:6px;padding:7px 9px;border-radius:8px;background:var(--card2);border:1px solid var(--line);font-size:13px;color:var(--text);line-height:1.5}.ocupantes strong{font-weight:600}.check{display:flex;align-items:center;gap:10px;padding:11px 12px;margin:4px 0 12px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;cursor:pointer;font-size:14px;-webkit-user-select:none;user-select:none}.check.on{border-color:var(--acc);background:var(--acc-bg)}.check input{width:20px;height:20px;accent-color:var(--acc);flex:0 0 auto;margin:0}.check .hint{color:var(--muted);font-size:12px;display:block;margin-top:2px}.check.on .hint{color:#3f7a63}.check.max input{accent-color:var(--warn-tx)}.check.max.on{border-color:#d9a441;background:var(--warn-bg)}.check.max.on .hint{color:var(--warn-tx)}.room-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.room-row:last-child{border-bottom:none}.room-row .rr-main{flex:1 1 58%;min-width:0}.room-row .rr-actions{margin-left:auto}.room-row .name{font-weight:600;display:block;overflow-wrap:anywhere}.room-row .rr-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.room-row .rr-meta .muted{white-space:nowrap}.room-row .rr-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.vac{font-size:13px;font-weight:700;padding:4px 10px;border-radius:8px;white-space:nowrap}.vac.free{background:var(--green-bg);color:var(--green-tx)}.vac.full{background:var(--red-bg);color:var(--red-tx)}.vac.some{background:var(--warn-bg);color:var(--warn-tx)}.list-clickable{cursor:pointer}.list-clickable:active{opacity:.7}.msg{padding:10px 12px;border-radius:9px;font-size:14px;margin:10px 0;border:1px solid transparent}.msg.err{background:var(--red-bg);color:var(--red-tx);border-color:#f7cccc}.msg.ok{background:var(--green-bg);color:var(--green-tx);border-color:#b7ebc8}.msg.warn{background:var(--warn-bg);color:var(--warn-tx);border-color:#fbe09a}.msg.info{background:var(--accent-soft);color:var(--accent);border-color:#bfe0f5}.muted{color:var(--muted);font-size:13px}.empty{text-align:center;color:var(--muted);padding:30px 10px}.login-wrap{max-width:360px;margin:60px auto 0;padding:0 16px}.login-wrap .brand{text-align:center;font-size:28px;font-weight:800;margin-bottom:4px}.login-wrap .brand .dot{color:var(--accent-d)}.login-wrap .tag{text-align:center;color:var(--muted);margin-bottom:24px;font-size:14px}.alloc-item{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.alloc-item:last-child{border-bottom:none}.alloc-item .lbl{flex:1}.alloc-item .cnt{color:var(--muted);font-size:12px}.seg{display:flex;gap:6px;margin:4px 0 12px}.seg button{flex:1;padding:9px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;color:var(--muted);font-size:13px;cursor:pointer}.seg button.active{background:var(--accent-d);color:#fff;border-color:var(--accent-d);font-weight:600}.sugg{border:1px solid var(--line-strong);border-radius:10px;padding:12px;margin-bottom:8px;cursor:pointer;background:var(--card2)}.sugg.sel{border-color:var(--accent-d);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-d) inset}.sugg.alt{padding:10px 12px;background:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1a2b73;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;max-width:480px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 12px 32px #101e362e}.modal h2{margin:0 0 6px;font-size:16px}
