*{margin:0;padding:0;box-sizing:border-box}:root{--color-available: #4ade80;--color-reserved: #fb923c;--color-reserved-other: #facc15;--color-selected: #3b82f6;--color-sold: #ef4444;--color-sold-mine: #fb923c;--color-blocked: #a855f7;--color-grass: #22c55e;--color-grass-dark: #16a34a;--color-primary: #2563eb;--color-primary-dark: #1d4ed8}html{touch-action:manipulation}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:100vh;min-height:-webkit-fill-available;color:#fff;overflow-x:hidden}.app{max-width:1400px;margin:0 auto;padding:10px}@media(min-width:768px){.app{padding:20px}}header{display:flex;flex-direction:column;gap:10px;margin-bottom:15px;padding:12px 15px;background:#ffffff1a;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(min-width:600px){header{flex-direction:row;justify-content:space-between;align-items:center}}header h1{font-size:1.3rem;display:flex;align-items:center;gap:8px}@media(min-width:768px){header h1{font-size:1.8rem}}header h1 img{width:32px;height:32px}@media(min-width:768px){header h1 img{width:40px;height:40px}}.nav-links{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.nav-links a,.nav-links button{color:#fff;text-decoration:none;padding:8px 12px;border-radius:6px;background:#ffffff1a;border:none;cursor:pointer;font-size:.85rem;transition:background .2s;-webkit-tap-highlight-color:transparent}.nav-links a:hover,.nav-links button:hover{background:#fff3}.nav-links .admin-link{background:var(--color-primary)}.main-content{display:flex;flex-direction:column;gap:15px}@media(min-width:900px){.main-content{display:grid;grid-template-columns:1fr 300px;gap:20px}}.field-wrapper{position:relative;display:flex;flex-direction:column;gap:10px}.zoom-controls{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;background:#ffffff1a;border-radius:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.zoom-btn{width:44px;height:44px;border:none;border-radius:8px;background:#fff3;color:#fff;font-size:1.5rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:all .2s}.zoom-btn:hover,.zoom-btn:active{background:#ffffff4d;transform:scale(1.05)}.zoom-btn.reset-btn{font-size:1.3rem}.zoom-level{min-width:60px;text-align:center;font-weight:600;font-size:.9rem}.field-container{background:#1a1a2e;border-radius:12px;position:relative;overflow:hidden;height:50vh;min-height:300px;touch-action:none;user-select:none;-webkit-user-select:none}@media(min-width:768px){.field-container{height:60vh;min-height:400px}}@media(min-width:1024px){.field-container{height:70vh}}.field-transform{position:relative;will-change:transform}.field-grid{display:grid;gap:0;position:relative;z-index:1}.square{aspect-ratio:1;background:var(--color-available);border:1px solid rgba(0,0,0,.3);cursor:pointer;position:relative;min-width:0;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:600;color:#000000b3;overflow:hidden}.square-number{font-size:inherit;pointer-events:none;text-shadow:0 0 2px rgba(255,255,255,.5)}.square.available{background:var(--color-available);color:#000000b3}.square.reserved{background:var(--color-reserved);color:#000000b3}.square.reserved-other{background:var(--color-reserved-other);color:#0009}.square.selected{background:var(--color-selected);box-shadow:inset 0 0 0 2px #fff;color:#ffffffe6}.square.sold{background:var(--color-sold);color:#ffffffe6}.square.sold-mine{background:var(--color-sold-mine);color:#000000b3}.square.blocked{background:var(--color-blocked);cursor:not-allowed;color:#fffc}.square .tooltip{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:100}@media(hover:hover){.square:hover .tooltip{display:block}}.cow-overlay{position:absolute;pointer-events:none;z-index:50;transition:left .1s linear,top .1s linear}.cow-overlay img{width:100%;height:100%;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));animation:cowBounce .5s ease-in-out infinite}@keyframes cowBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.poop-overlay{position:absolute;pointer-events:none;z-index:40;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1}.poop-overlay.poop-winner{animation:winnerPulse 1s ease-in-out infinite;z-index:45}@keyframes winnerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.mobile-hint{text-align:center;font-size:.75rem;color:#ffffff80;padding:5px}@media(min-width:768px){.mobile-hint{display:none}}.sidebar{display:flex;flex-direction:column;gap:15px}@media(max-width:899px){.sidebar{position:fixed;bottom:0;left:0;right:0;background:#1a1a2efa;padding:15px;border-radius:20px 20px 0 0;box-shadow:0 -4px 20px #00000080;z-index:100;max-height:40vh;overflow-y:auto}}.panel{background:#ffffff1a;border-radius:12px;padding:15px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(min-width:768px){.panel{padding:20px}}.panel h2{font-size:1rem;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.2)}@media(max-width:899px){.sidebar .panel:not(.selection-summary){display:none}}.legend{display:flex;flex-direction:column;gap:10px}.legend-item{display:flex;align-items:center;gap:10px}.legend-color{width:24px;height:24px;border-radius:4px;flex-shrink:0}.legend-color.available{background:var(--color-available)}.legend-color.reserved-other{background:var(--color-reserved-other)}.legend-color.selected{background:var(--color-selected)}.legend-color.sold{background:var(--color-sold)}.legend-color.sold-mine{background:var(--color-sold-mine)}.legend-color.blocked{background:var(--color-blocked)}.selection-summary{text-align:center}@media(max-width:899px){.selection-summary{display:flex;align-items:center;gap:15px;text-align:left}.selection-summary h2{display:none}}.selection-count{font-size:2rem;font-weight:700;color:var(--color-selected)}@media(max-width:899px){.selection-count{font-size:1.5rem}}.selection-price{font-size:1.5rem;margin:10px 0}.reservation-timer{display:flex;flex-direction:column;align-items:center;margin:10px 0;padding:8px;background:#fb923c33;border-radius:8px;border:1px solid var(--color-sold-mine)}.timer-label{font-size:.75rem;opacity:.8}.timer-value{font-size:1.25rem;font-weight:700;color:var(--color-sold-mine);font-family:monospace}@media(max-width:899px){.selection-price{font-size:1.2rem;margin:0}}.btn{padding:14px 20px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}@media(max-width:899px){.selection-summary .btn{padding:12px 20px;white-space:nowrap}.selection-summary .btn-secondary{display:none}}.btn-primary{background:var(--color-primary);color:#fff;width:100%}@media(max-width:899px){.selection-summary .btn-primary{width:auto;margin-left:auto}}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#fff3;color:#fff;margin-top:10px;width:100%}.btn-secondary:hover{background:#ffffff4d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:flex-end;justify-content:center;z-index:1000;padding:0}@media(min-width:600px){.modal-overlay{align-items:center;padding:20px}}.modal{background:#1a1a2e;border-radius:20px 20px 0 0;padding:25px 20px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 -10px 40px #00000080}@media(min-width:600px){.modal{border-radius:16px;max-width:450px;max-height:85vh}}.modal h2{margin-bottom:20px;font-size:1.3rem}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-size:.9rem;color:#fffc}.form-group input{width:100%;padding:14px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff1a;color:#fff;font-size:16px}.form-group input:focus{outline:none;border-color:var(--color-primary)}.modal-buttons{display:flex;gap:10px;margin-top:20px}.modal-buttons .btn{flex:1}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-item{text-align:center;padding:10px;background:#ffffff0d;border-radius:8px}.stat-value{font-size:1.3rem;font-weight:700;color:var(--color-primary)}.stat-label{font-size:.75rem;color:#fff9}.loading{display:flex;align-items:center;justify-content:center;min-height:300px;font-size:1.2rem}.auth-container{max-width:400px;margin:30px auto;padding:0 15px}.auth-container .panel{padding:25px 20px}.auth-container h2{text-align:center}.auth-links{text-align:center;margin-top:20px;font-size:.9rem}.auth-links a{color:var(--color-primary)}.admin-page{padding-bottom:30px}.admin-page h1{font-size:1.5rem;margin-bottom:20px}.admin-grid{display:grid;grid-template-columns:1fr;gap:15px}@media(min-width:768px){.admin-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}.admin-table{width:100%;border-collapse:collapse;margin-top:15px;font-size:.85rem}.admin-table th,.admin-table td{padding:8px;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}.admin-table th{font-weight:600;color:#ffffffb3}@media(max-width:600px){.admin-table{display:block;overflow-x:auto;white-space:nowrap}}.simulation-controls{display:flex;gap:10px;margin-top:15px}.simulation-controls .btn{flex:1}.btn-success{background:var(--color-available);color:#000}.btn-danger{background:var(--color-sold);color:#fff}.winner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s;padding:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.winner-content{text-align:center;animation:bounceIn .5s}@keyframes bounceIn{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.winner-content h1{font-size:2.5rem;color:gold;text-shadow:0 0 20px rgba(255,215,0,.5)}@media(min-width:768px){.winner-content h1{font-size:3.5rem}}.winner-content p{font-size:1.3rem;margin-top:10px}@supports (padding-bottom: env(safe-area-inset-bottom)){.sidebar{padding-bottom:calc(15px + env(safe-area-inset-bottom))}}
