:root{color:#18201c;background:#f7f8f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{color:#18201c;background:#fff;border:1px solid #cbd5c6;border-radius:8px;min-height:44px;padding:.65rem .9rem}button:active{transform:translateY(1px)}input,select,textarea{background:#fff;border:1px solid #cbd5c6;border-radius:8px;width:100%;padding:.75rem}textarea{resize:vertical}label{gap:.35rem;font-weight:700;display:grid}small,.muted{color:#657065}h1,h2{letter-spacing:0;margin:0}h1{font-size:1.65rem}h2{font-size:1rem}.app{min-height:100vh;position:relative}.mobile-background{display:none}.topbar{z-index:5;background:0 0;border-bottom:1px solid #ffffff26;justify-content:center;align-items:center;gap:.75rem;padding:.75rem;display:flex;position:sticky;top:0}.brand{color:#fff;background:0 0;border:0;align-items:center;gap:.4rem;padding-left:0;font-size:1.15rem;font-weight:800;display:inline-flex}nav{gap:.4rem;display:flex;position:absolute;right:.75rem}nav button{color:#fff;background:0 0;border-color:#ffffff4d;padding-inline:.7rem}main{width:min(980px,100%);margin:0 auto;padding:1rem}.stack{gap:1.1rem;display:grid}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;display:grid}.courts-duration{display:contents}.summary,.banner,.loading{background:#e7f3eb;border:1px solid #b7d4c0;border-radius:8px;padding:.75rem 1rem;font-weight:800}.banner{background:#fff0ed;border-color:#efb6aa;width:min(940px,100% - 2rem);margin:.75rem auto 0}.loading{z-index:10;background:#245e3d;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 4px 16px #08110e40}.spinner{border:3px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}button:disabled{opacity:.45;cursor:not-allowed;transform:none}.list,.cards,.audit{gap:.7rem;display:grid}.session-row,.player-card{text-align:left;background:#fff;border:1px solid #dfe5da;border-radius:8px;justify-content:space-between;align-items:center;gap:.8rem;width:100%;padding:.85rem;display:flex}.session-row span,.player-card div{gap:.25rem;display:grid}.pill{color:#214a32;white-space:nowrap;background:#dfece4;border-radius:999px;justify-content:center;align-items:center;min-height:32px;padding:.25rem .65rem;font-weight:800;display:inline-flex}.pill.cancelled{color:#782514;background:#f6d5ce}.chips{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:.55rem;display:grid}.chip{background:#fff;min-height:52px;font-weight:800}.chip.selected{color:#fff;background:#245e3d;border-color:#245e3d}.primary{color:#fff;background:#245e3d;border-color:#245e3d;font-weight:800}.danger{color:#fff;background:#c0392b;border-color:#c0392b;font-weight:800}.actions,.inline-form,.title-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.row-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.row-actions select{width:auto;min-width:112px}.title-row{justify-content:space-between}.inline-form{align-items:end}.inline-form input{min-width:220px}.admin-panel{background:#fff;border:1px solid #dfe5da;border-radius:8px;gap:.75rem;padding:.9rem;display:grid}.check{align-items:center;min-height:44px;display:flex}.check input{width:auto}.player-card.selected{border-left:6px solid #245e3d}.player-card.reserve{border-left:6px solid #e1a928}.player-card.dropped_out,.player-card.manual_removed,.player-card.inactive{opacity:.65}.pairup-modal{max-width:340px}.pairup-courts{gap:.75rem;display:grid}.pairup-court{background:#f7f8f5;border:1px solid #dfe5da;border-radius:8px;gap:.4rem;padding:.75rem;display:grid}.pairup-teams{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pairup-team{border-radius:6px;padding:.3rem .6rem;font-weight:700}.team-a{color:#fff;background:#245e3d}.team-b{color:#fff;background:#e1a928}.pairup-vs{color:#657065;font-size:.8rem;font-weight:700}.modal-backdrop{z-index:30;background:#08110e80;place-items:end center;padding:1rem;display:grid;position:fixed;inset:0}.modal{color:#18201c;background:#fff;border:1px solid #dfe5da;border-radius:8px;gap:.9rem;width:min(420px,100%);padding:1rem;display:grid;box-shadow:0 18px 50px #08110e47}.modal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}@media (width<=640px){body{background:#10211c}.app{isolation:isolate;min-height:100dvh}.app:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(#0a110f57,#0a110f94);position:fixed;inset:0}.mobile-background{object-fit:cover;object-position:center top;z-index:0;pointer-events:none;width:100vw;height:100dvh;display:block;position:fixed;inset:0}.topbar,main,.banner,.loading{z-index:2;position:relative}.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}main{color:#f7f8f5}.session-row,.player-card,.admin-panel,.audit p,input,select,textarea,button{color:#18201c;background:#ffffffeb}.player-card strong,.session-row strong,.admin-panel h2,.audit strong,label{color:#18201c}.summary{color:#18201c;background:#e7f3ebeb}.grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.55rem}.grid label{color:#f7f8f5;gap:.35rem;min-width:0;font-size:.95rem}.grid input,.grid select{appearance:none;min-width:0;height:48px;min-height:48px;max-height:48px;padding:.55rem .75rem;font-size:1rem;line-height:1.1}.courts-duration{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.55rem;display:grid}.spaces-summary{align-items:center;min-height:48px;padding:.55rem .75rem;display:flex}small,.muted{color:#dbe4dc}.session-row small,.player-card small{color:#657065}.topbar{flex-direction:column;align-items:stretch}nav{grid-template-columns:repeat(3,1fr);display:grid;position:static}.session-row,.player-card{flex-direction:column;align-items:stretch}.session-row .pill,.player-card button{width:100%}.actions,.inline-form{display:grid}.modal-backdrop{padding-bottom:max(1rem, env(safe-area-inset-bottom));align-items:end}}
