:root{--teal-primary:#14b8a6;--teal-dark:#0d9488;--teal-light:#5eead4;--surface-dark:#1e293b;--background-dark:#0f172a;--row-dark:#141c2c;--row-dark-alt:#101728;--text-muted:#94a3b8;--danger:#f87171;--warning:#f59e0b}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--background-dark);color:#fff;margin:0;font-family:Segoe UI,-apple-system,Roboto,sans-serif}a{color:inherit}::selection{background:var(--teal-dark);color:#fff}.layout{flex-direction:column;min-height:100%;display:flex}.layout__nav{background:var(--surface-dark);border-bottom:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 32px;display:flex}.layout__brand{color:var(--teal-light);letter-spacing:.02em;font-size:1.2rem;font-weight:700}.layout__nav nav{gap:8px;display:flex}.layout__link{color:var(--text-muted);border-radius:8px;padding:8px 16px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.layout__link:hover{background:var(--row-dark);color:#fff}.layout__link--active{background:var(--teal-dark);color:#fff}.layout__content{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:32px}.configurator{text-align:center;padding:48px 24px 80px}.configurator__title{color:var(--teal-light);margin:0 0 40px;font-size:2rem}.configurator__stage{grid-template-columns:200px minmax(280px,640px) 200px;justify-content:center;align-items:center;gap:24px;max-width:1100px;margin:0 auto;display:grid}.configurator__canvas{aspect-ratio:4/3;background:var(--surface-dark);border:1px solid var(--row-dark-alt);border-radius:16px;overflow:hidden}.configurator__panel{background:var(--surface-dark);border:1px solid var(--row-dark-alt);text-align:left;border-radius:16px;padding:18px}.configurator__panel h3{letter-spacing:.08em;color:var(--text-muted);margin:0 0 14px;font-size:.8rem}.configurator__swatches{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.configurator__swatch{border:2px solid var(--row-dark-alt);cursor:pointer;border-radius:50%;width:32px;height:32px;padding:0;transition:transform .15s,border-color .15s}.configurator__swatch:hover{transform:scale(1.1)}.configurator__swatch--active{border-color:var(--teal-light);box-shadow:0 0 0 2px var(--background-dark), 0 0 0 4px var(--teal-light)}@media (width<=860px){.configurator__stage{grid-template-columns:1fr}.configurator__panel--left,.configurator__panel--right{order:2}.configurator__swatches{grid-template-columns:repeat(8,1fr)}}.purchase{flex-wrap:wrap;justify-content:center;gap:20px;max-width:700px;margin:40px auto 0;display:flex}.purchase__card{background:var(--surface-dark);border:1px solid var(--row-dark-alt);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:10px;width:260px;padding:24px;display:flex;position:relative}.purchase__badge{background:var(--danger);color:#fff;white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.7rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.purchase__card h3{color:#fff;margin:8px 0 0;font-size:1.05rem}.purchase__price{align-items:baseline;gap:10px;display:flex}.purchase__price-old{color:var(--text-muted);font-size:1rem;text-decoration:line-through}.purchase__price-new{color:var(--teal-light);font-size:1.6rem;font-weight:700}.purchase__card button{background:var(--teal-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;margin-top:8px;padding:12px;font-weight:700;transition:background .15s}.purchase__card button:hover{background:var(--teal-dark)}.games-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:24px;display:grid}.game-card{background:var(--row-dark);border:1px solid var(--surface-dark);border-radius:12px;padding:18px}.game-card__stage{color:var(--teal-light);margin-bottom:4px;font-size:1.1rem;font-weight:700}.game-card__row{color:var(--text-muted);justify-content:space-between;margin-top:6px;font-size:.9rem;display:flex}.game-card__row strong{color:#fff;font-weight:600}.game-card__players{border-top:1px solid var(--surface-dark);flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:12px;display:flex}.game-card__player{background:var(--row-dark-alt);border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 3px;font-size:.8rem;display:flex}.game-card__player img{object-fit:cover;background:var(--surface-dark);border-radius:50%;width:20px;height:20px}.game-card__player-slot{color:var(--teal-light);font-size:.72rem;font-weight:700}.game-card__player--out{opacity:.45;text-decoration:line-through}.live-dot{background:var(--teal-primary);width:8px;height:8px;box-shadow:0 0 6px var(--teal-primary);border-radius:50%;margin-right:8px;display:inline-block}.history-list{flex-direction:column;gap:10px;margin-top:24px;display:flex}.history-row{background:var(--row-dark);border:1px solid var(--surface-dark);color:#fff;border-radius:10px;justify-content:space-between;align-items:center;padding:14px 18px;text-decoration:none;transition:border-color .15s;display:flex}.history-row:hover{border-color:var(--teal-dark)}.history-row__winner{color:var(--teal-light);font-weight:700}.history-row__meta{color:var(--text-muted);font-size:.85rem}.empty-state{text-align:center;color:var(--text-muted);padding:60px 0}.back-link{color:var(--text-muted);font-size:.9rem;text-decoration:none}.back-link:hover{color:#fff}.tournament-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:24px;display:grid}.tournament-card{background:var(--row-dark);border:1px solid var(--surface-dark);color:#fff;border-radius:12px;padding:18px;text-decoration:none;transition:border-color .15s}.tournament-card:hover{border-color:var(--teal-dark)}.tournament-card__name{margin-bottom:4px;font-size:1.1rem;font-weight:700}.tournament-card__stars{color:var(--warning);letter-spacing:2px;margin-bottom:8px}.tournament-card__row{color:var(--text-muted);justify-content:space-between;margin-top:6px;font-size:.9rem;display:flex}.tournament-card__row strong{color:#fff;font-weight:600}.results-table{border-collapse:collapse;background:var(--row-dark);border-radius:12px;width:100%;margin-top:20px;overflow:hidden}.results-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--surface-dark);padding:12px 14px;font-size:.8rem}.results-table td{border-bottom:1px solid var(--surface-dark);padding:12px 14px;font-size:.95rem}.results-table tr:last-child td{border-bottom:none}.results-table .total-cell{color:var(--teal-light);font-weight:700}.player-cell{align-items:center;gap:10px;display:flex}.player-cell img{object-fit:cover;background:var(--surface-dark);border-radius:8px;width:32px;height:32px}.tournament-round{margin-top:20px}.tournament-round__title{color:#fff;margin-bottom:12px;font-size:1rem}.tournament-tables{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.tournament-table-card{background:var(--row-dark);border:1px solid var(--surface-dark);border-radius:12px;padding:14px 16px}.tournament-table-card__header{justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600;display:flex}.tournament-table-card__role{color:var(--text-muted);font-size:.82rem}.tournament-table-card__winner{color:var(--teal-light);margin-bottom:10px;font-size:.85rem}.tournament-table-card__players{flex-direction:column;gap:8px;display:flex}.tournament-table-card__player{justify-content:space-between;align-items:center;display:flex}.tournament-table-card__player .total-cell{color:var(--teal-light);font-size:.9rem;font-weight:700}.status-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:3px 8px;font-size:.72rem}.status-badge--not_started{color:var(--text-muted);background:var(--surface-dark)}.status-badge--in_progress{color:var(--background-dark);background:var(--teal-primary)}.status-badge--completed{color:var(--teal-light);background:var(--row-dark-alt);border:1px solid var(--teal-dark)}.tournament-table-card__edit-toggle{border:1px solid var(--surface-dark);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;width:100%;margin-top:10px;padding:6px 10px;font-size:.78rem}.tournament-table-card__edit-toggle:hover{border-color:var(--teal-dark);color:#fff}.tournament-table-card__log{color:var(--text-muted);margin-top:10px;font-size:.78rem}.tournament-table-card__log summary{cursor:pointer;color:var(--teal-light)}.tournament-table-card__log ul{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.tournament-table-card__log li{border-top:1px solid var(--surface-dark);padding-top:6px}.tournament-table-card__log-who{color:#fff;font-weight:600}.edit-results{background:var(--row-dark-alt);border:1px solid var(--teal-dark);border-radius:10px;margin-top:10px;padding:14px}.edit-results__auth{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.edit-results__auth input{background:var(--surface-dark);border:1px solid var(--surface-dark);color:#fff;border-radius:6px;flex:1;min-width:140px;padding:8px 10px;font-size:.85rem}.edit-results__auth input:focus{border-color:var(--teal-primary);outline:none}.edit-results__table-wrap{overflow-x:auto}.edit-results__table{border-collapse:collapse;width:100%;font-size:.8rem}.edit-results__table th{text-align:left;color:var(--text-muted);white-space:nowrap;padding:6px 8px;font-weight:600}.edit-results__table td{white-space:nowrap;padding:4px 8px}.edit-results__table input[type=number]{background:var(--surface-dark);border:1px solid var(--surface-dark);color:#fff;border-radius:5px;width:60px;padding:5px 6px;font-size:.85rem}.edit-results__table input[type=number]:focus{border-color:var(--teal-primary);outline:none}.edit-results__error{color:var(--danger);margin:10px 0 0;font-size:.85rem}.edit-results__actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.edit-results__actions button{cursor:pointer;border:none;border-radius:6px;padding:8px 14px;font-size:.85rem;font-weight:600}.edit-results__actions button[type=button]{background:var(--surface-dark);color:var(--text-muted)}.edit-results__save{background:var(--teal-primary);color:var(--background-dark)}.edit-results__save:disabled,.edit-results__actions button:disabled{opacity:.6;cursor:default}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.toast{background:var(--teal-dark);color:#fff;z-index:1000;text-align:center;border-radius:12px;max-width:min(90vw,420px);padding:14px 22px;font-weight:600;animation:.25s toast-in;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0006}.order-form{max-width:480px;margin:0 auto;padding:24px 0 60px}.order-form__title{color:var(--teal-light);text-align:center;margin:0 0 4px;font-size:1.6rem}.order-form__price{color:var(--text-muted);text-align:center;margin:0 0 28px;font-size:1.4rem;font-weight:700}.order-form__card{background:var(--surface-dark);border:1px solid var(--row-dark-alt);border-radius:16px;flex-direction:column;gap:16px;padding:24px;display:flex}.order-form__field{color:var(--text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.order-form__field input,.order-form__field textarea{background:var(--row-dark);border:1px solid var(--row-dark-alt);color:#fff;resize:vertical;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:.95rem}.order-form__field input:focus,.order-form__field textarea:focus{border-color:var(--teal-primary);outline:none}.order-form__checkbox{color:#fff;cursor:pointer;align-items:flex-start;gap:10px;font-size:.9rem;display:flex}.order-form__checkbox input{margin-top:3px}.order-form__error{color:var(--danger);margin:0;font-size:.85rem}.order-form__card button{background:var(--teal-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:14px;font-size:1rem;font-weight:700;transition:background .15s,opacity .15s}.order-form__card button:hover:not(:disabled){background:var(--teal-dark)}.order-form__card button:disabled{opacity:.5;cursor:not-allowed}.admin{max-width:1200px;min-height:100%;margin:0 auto;padding:32px}.admin--login{justify-content:center;align-items:center;min-height:100vh;display:flex}.admin__login-card{background:var(--surface-dark);border:1px solid var(--row-dark-alt);border-radius:16px;flex-direction:column;gap:16px;width:320px;padding:32px;display:flex}.admin__login-card h1{color:var(--teal-light);text-align:center;margin:0 0 8px;font-size:1.4rem}.admin__login-card label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.admin__login-card input{background:var(--row-dark);border:1px solid var(--row-dark-alt);color:#fff;border-radius:8px;padding:10px 12px;font-size:.95rem}.admin__login-card button,.admin__logout{background:var(--teal-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:12px;font-weight:700}.admin__login-card button:hover,.admin__logout:hover{background:var(--teal-dark)}.admin__login-card button:disabled{opacity:.5;cursor:not-allowed}.admin__error{color:var(--danger);margin:0;font-size:.85rem}.admin__header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.admin__header h1{color:var(--teal-light);margin:0;font-size:1.5rem}.admin__logout{padding:8px 16px}.admin__table-wrap{background:var(--surface-dark);border:1px solid var(--row-dark-alt);border-radius:12px;overflow-x:auto}.admin__table{border-collapse:collapse;width:100%;font-size:.9rem}.admin__table th,.admin__table td{text-align:left;white-space:nowrap;padding:12px 16px}.admin__table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--row-dark-alt);font-size:.75rem}.admin__table td{color:#fff;border-bottom:1px solid var(--row-dark-alt);text-overflow:ellipsis;max-width:260px;overflow:hidden}.admin__table tr:last-child td{border-bottom:none}.admin__empty{color:var(--text-muted);text-align:center;padding:24px}
