:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-height:100vh}#root{width:100%;min-height:100vh}:root{--color-bg: #0f172a;--color-bg-2: #1e293b;--color-surface: #ffffff;--color-surface-2: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-muted: #64748b;--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-primary-soft: #eef2ff;--color-danger: #ef4444;--color-warning: #f59e0b;--color-success: #10b981;--color-gold: #eab308;--color-silver: #9ca3af;--color-bronze: #d97706;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 16px 40px rgba(15, 23, 42, .12);--transition: .18s ease}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--color-text);background:linear-gradient(180deg,#f8fafc,#eef2ff)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:.95rem;width:100%;padding:.6rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);transition:border var(--transition),box-shadow var(--transition)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f12e}textarea{resize:vertical;min-height:60px}.muted{color:var(--color-text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.import-errors{margin:.75rem 0 0;padding-left:1.2rem;color:var(--color-danger);font-size:.88rem}.import-warnings{margin:.5rem 0 0;padding-left:1.2rem}.preset-test-soir-banner{border-left:4px solid var(--color-warning)}.preset-test-soir-banner h4{display:inline-flex;align-items:center;gap:.45rem;margin-top:0}.hide-sm{display:none}@media (min-width: 640px){.hide-sm{display:inline}}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 1.25rem;position:sticky;top:0;z-index:10;box-shadow:var(--shadow-sm)}.app-header-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;max-width:1100px;margin:0 auto}.app-title{margin:0;font-size:1.4rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.app-header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.app-subtitle{max-width:1100px;margin:.5rem auto 0;font-size:.9rem}.olympiade-selector{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-primary-soft);border-radius:var(--radius-md);padding:.2rem .5rem;color:var(--color-primary)}.olympiade-selector select{border:none;background:transparent;color:inherit;font-weight:600;width:auto;padding:.4rem}.olympiade-selector select:focus{box-shadow:none}.tab-bar{background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;justify-content:center;gap:.25rem;padding:.5rem;position:sticky;top:65px;z-index:9;overflow-x:auto;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab-btn{display:flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:.95rem;font-weight:500;white-space:nowrap;transition:background var(--transition),color var(--transition)}.tab-btn:hover{background:var(--color-surface-2)}.tab-btn.is-active{background:var(--color-primary);color:#fff}.app-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1.25rem;min-width:0}.app-main.app-main--admin{max-width:min(100%,1680px);padding-left:clamp(.85rem,2.5vw,2rem);padding-right:clamp(.85rem,2.5vw,2rem)}.btn-primary,.btn-ghost,.btn-icon{display:inline-flex;align-items:center;gap:.4rem;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;transition:background var(--transition),color var(--transition),border-color var(--transition)}.btn-primary{background:var(--color-primary);color:#fff;padding:.55rem .9rem}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--color-text);padding:.55rem .85rem;border:1px solid var(--color-border)}.btn-ghost:hover{background:var(--color-surface-2);border-color:var(--color-border-strong)}.btn-ghost.is-winner{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.btn-icon{background:transparent;color:var(--color-text-muted);padding:.4rem;border-radius:var(--radius-sm);border:1px solid transparent}.btn-icon:hover{background:var(--color-surface-2);color:var(--color-text)}.btn-icon.danger:hover{background:#ef44441a;color:var(--color-danger)}.btn-icon.light{color:#fff}.btn-icon.light:hover{background:#ffffff2e}.row-actions{display:inline-flex;align-items:center;gap:.25rem}.schedule-winner-actions{flex-wrap:wrap;max-width:100%}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.form-card.inline{margin-bottom:0}.form-card label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--color-text-muted)}.form-actions{display:flex;flex-wrap:wrap;gap:.5rem}.form-row{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap}.form-row label{flex:1;display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--color-text-muted)}.feedback{font-size:.9rem;margin:0}.feedback.error{color:var(--color-danger)}.feedback.ok{color:var(--color-success)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding:3rem 1rem;color:var(--color-text-muted)}.empty-state h2{margin:0;color:var(--color-text)}.empty-state-sm{padding:1rem;text-align:center;color:var(--color-text-muted)}.teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.team-card{background:var(--color-surface);border-radius:var(--radius-lg);border:2px solid;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.team-card-header{display:flex;align-items:center;justify-content:space-between;color:#fff;padding:.75rem 1rem}.team-card-header h3{margin:0;font-size:1.05rem}.team-count{background:#ffffff40;padding:.15rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600}.team-participants{list-style:none;margin:0;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.4rem}.team-participants li{display:flex;align-items:center;justify-content:space-between;padding:.4rem .5rem;border-radius:var(--radius-sm);background:var(--color-surface-2)}.team-color-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:999px;margin-right:.4rem}.schedule-list{display:flex;flex-direction:column;gap:.75rem}.schedule-item{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);padding:1rem 1.1rem;box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;transition:opacity var(--transition)}.schedule-item.is-completed{opacity:.65;border-left-color:var(--color-success)}.schedule-item-main{flex:1;min-width:0}.schedule-item-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.schedule-item-header h3{margin:0;font-size:1.05rem}.schedule-item-desc{margin:.3rem 0 .5rem;color:var(--color-text-muted);font-size:.92rem}.schedule-item-meta{display:flex;gap:.35rem;flex-wrap:wrap;font-size:.85rem;color:var(--color-text-muted)}.schedule-item-date{font-size:.85rem;color:var(--color-text-muted);white-space:nowrap}.dot-sep{color:var(--color-border-strong)}.status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600}.status-badge.status-completed{background:#10b98126;color:var(--color-success)}.status-badge.status-ongoing{background:#f59e0b26;color:var(--color-warning)}.status-badge.status-planned{background:#6366f11f;color:var(--color-primary)}.rankings{display:flex;flex-direction:column;gap:1rem}.subtabs{display:flex;gap:.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.25rem;align-self:flex-start}.subtab{display:inline-flex;align-items:center;gap:.3rem;border:none;background:transparent;padding:.45rem .85rem;border-radius:var(--radius-sm);color:var(--color-text-muted);font-weight:500;font-size:.9rem}.subtab.is-active{background:var(--color-primary-soft);color:var(--color-primary)}.ranking-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.ranking-row{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:.75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.7rem 1rem;box-shadow:var(--shadow-sm)}.ranking-row.individual-row{border-left:4px solid transparent}.ranking-row.team-row{border-left:4px solid}.ranking-rank{display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--color-text-muted)}.podium-rank{width:28px;height:28px;border-radius:999px;background:var(--color-surface-2);display:inline-flex;align-items:center;justify-content:center;font-size:.85rem}.podium-icon.gold{color:var(--color-gold)}.podium-icon.silver{color:var(--color-silver)}.podium-icon.bronze{color:var(--color-bronze)}.ranking-name{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}.ranking-name strong{font-weight:600}.ranking-points{font-weight:700;color:var(--color-primary)}.detailed-ranking{display:flex;flex-direction:column;gap:1rem}.detailed-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-sm)}.detailed-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.detailed-card header h4{margin:0}.detailed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.detailed-list li{display:grid;grid-template-columns:40px 1fr auto;align-items:center;padding:.4rem .5rem;border-radius:var(--radius-sm);background:var(--color-surface-2)}.detailed-list li.detail-row-colored{border-left:4px solid transparent}.detail-points{font-weight:700;color:var(--color-primary)}.detail-points.is-negative,.bonus-points.is-negative{color:var(--color-danger)}.bonus-ranking-card{margin-bottom:1rem}.bonus-detail-note{display:block;font-size:.82rem;margin-top:.25rem;font-weight:400}.bonus-scope-toggle{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem}.bonus-form{display:flex;flex-direction:column;gap:.65rem}.bonus-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.bonus-history-list li{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-2)}.bonus-history-main{flex:1;min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.bonus-history-text{flex:1;min-width:0}.bonus-history-note{margin:.2rem 0 0}.bonus-points{font-weight:700;color:var(--color-primary);white-space:nowrap}.admin-panel{display:flex;flex-direction:column;gap:1rem;width:100%;min-width:0}.admin-nav{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.35rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.45rem;width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.admin-nav::-webkit-scrollbar{height:6px}.admin-nav::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px}.admin-nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.5rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-weight:500;font-size:.875rem;text-align:center;flex:0 0 auto;white-space:nowrap}.admin-nav-btn:hover{background:var(--color-surface-2)}.admin-nav-btn.is-active{background:var(--color-primary);color:#fff}.admin-content{background:transparent;width:100%;min-width:0}.admin-section{display:flex;flex-direction:column;gap:.75rem}.admin-section-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.admin-section-header h3{margin:0}.admin-subsection{margin-top:1.5rem;display:flex;flex-direction:column;gap:.5rem}.admin-subsection-header{display:flex;justify-content:space-between;align-items:center}.admin-subsection-header h4{margin:0;display:inline-flex;align-items:center;gap:.3rem}.olympiades-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.olympiade-row{display:flex;align-items:stretch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border var(--transition),box-shadow var(--transition)}.olympiade-row.is-active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.olympiade-row-main{flex:1;text-align:left;background:transparent;border:none;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.olympiade-row-main:hover{background:var(--color-surface-2)}.olympiade-name{font-weight:600;display:flex;align-items:center;gap:.5rem}.badge-active{font-size:.7rem;background:var(--color-primary);color:#fff;padding:.1rem .45rem;border-radius:999px;text-transform:uppercase}.olympiade-desc{color:var(--color-text-muted);font-size:.85rem}.olympiade-row .row-actions{padding:0 .5rem;align-self:center}.status-pill{font-size:.75rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;background:var(--color-surface-2);color:var(--color-text-muted);text-transform:lowercase}.status-pill.status-active,.status-pill.status-ongoing{background:#f59e0b26;color:var(--color-warning)}.status-pill.status-completed{background:#10b98126;color:var(--color-success)}.status-pill.status-draft,.status-pill.status-planned{background:#6366f11f;color:var(--color-primary)}.status-pill.status-archived{background:#64748b26;color:var(--color-text-muted)}.teams-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:1rem}.team-admin-card{background:var(--color-surface);border:2px solid;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.team-admin-header{color:#fff;display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem}.team-admin-header h4{margin:0;font-size:1rem}.participants{list-style:none;margin:0;padding:.5rem .75rem;display:flex;flex-direction:column;gap:.3rem}.participants li{display:flex;align-items:center;justify-content:space-between;padding:.35rem .5rem;border-radius:var(--radius-sm);background:var(--color-surface-2)}.add-participant{display:flex;gap:.4rem;padding:.5rem .75rem .75rem}.add-participant input{flex:1}.color-picker{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.color-swatch{width:28px;height:28px;border-radius:999px;border:2px solid white;box-shadow:0 0 0 1px var(--color-border);cursor:pointer}.color-swatch.is-active{box-shadow:0 0 0 2px var(--color-primary)}.epreuves-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.epreuve-row{display:flex;align-items:center;gap:.75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem 1rem}.epreuve-row-main{flex:1;min-width:0}.epreuve-row-name{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.epreuve-row-meta{font-size:.85rem;margin-top:.2rem}.schedule-admin-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.schedule-admin-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.schedule-admin-item.status-completed{border-left:4px solid var(--color-success)}.schedule-admin-item.status-ongoing{border-left:4px solid var(--color-warning)}.schedule-admin-item.status-planned{border-left:4px solid var(--color-primary)}.schedule-admin-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:transparent;border:none;padding:.85rem 1rem;text-align:left;gap:.75rem}.schedule-admin-toggle:hover{background:var(--color-surface-2)}.schedule-admin-toggle .rotated{transform:rotate(180deg)}.schedule-admin-body{border-top:1px solid var(--color-border);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.85rem}.results-editor h4{margin:0 0 .5rem}.classement-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.classement-list li{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:var(--radius-sm);background:var(--color-surface-2)}.classement-rank{width:26px;height:26px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.classement-label{flex:1;min-width:0}.add-to-classement{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.chip-list{display:flex;flex-wrap:wrap;gap:.4rem}.chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;padding:.3rem .7rem;font-size:.85rem;color:var(--color-text)}.chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.chip.is-active{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.small{font-size:.75rem}.player-badge{display:inline-flex;align-items:center;gap:.35rem;border:1px solid;border-radius:999px;padding:.2rem .5rem;max-width:100%;flex-wrap:wrap}.player-badge-dot{width:.5rem;height:.5rem;border-radius:999px}.player-badge-name{font-weight:600}.player-badge-team{font-size:.74rem;color:var(--color-text-muted)}.schedule-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.schedule-table-title{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:.5rem}.schedule-table-title h3{margin:0;font-size:1rem}.schedule-search-row{display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.schedule-search-input{flex:1;display:flex;align-items:center;gap:.4rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.3rem .55rem;background:#fff}.schedule-search-input input{border:none;padding:.3rem 0;width:100%;box-shadow:none}.schedule-search-input input:focus{box-shadow:none}.schedule-table-scroll{width:100%;overflow-x:auto}.schedule-table{width:100%;border-collapse:collapse;min-width:760px}.schedule-table th,.schedule-table td{border-bottom:1px solid var(--color-border);padding:.55rem .65rem;text-align:left;vertical-align:top;font-size:.88rem}.schedule-table thead th{background:var(--color-surface-2);font-weight:700}.schedule-table tr.match-status-completed{background:#10b98114}.schedule-table tr.match-status-ongoing{background:#f59e0b14}.schedule-table tr.round-separator td{border-top:3px solid var(--color-border-strong)}.schedule-table.admin select{min-width:110px}.schedule-epreuve-btn{display:inline-block;max-width:100%;margin:0;padding:.35rem .25rem;font:inherit;font-weight:600;color:var(--color-primary);text-align:left;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;min-height:44px;box-sizing:border-box}.schedule-epreuve-btn:hover{color:var(--color-primary-hover);background:var(--color-primary-soft)}.schedule-epreuve-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.epreuve-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.epreuve-detail-card{width:100%;max-width:26rem;max-height:min(70vh,28rem);overflow:auto;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.epreuve-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .5rem;border-bottom:1px solid var(--color-border)}.epreuve-detail-header h3{margin:0;font-size:1.15rem;line-height:1.3}.epreuve-detail-body{padding:1rem}.epreuve-detail-text{margin:0;white-space:pre-wrap;line-height:1.5}.status-toggle{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.35rem .7rem;font-size:.85rem;color:var(--color-text-muted)}.status-toggle.is-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.notif-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.notif-history li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem 1rem;display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:start}.notif-history li>div{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;grid-column:1 / 2}.notif-history li p{margin:.25rem 0 0;color:var(--color-text-muted);font-size:.92rem;grid-column:1 / 2}.notif-history li .btn-icon{grid-column:2 / 3;grid-row:1 / span 2;align-self:start}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.login-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.5rem;width:100%;max-width:380px;display:flex;flex-direction:column;gap:.75rem;position:relative;box-shadow:var(--shadow-lg)}.login-close{position:absolute;top:.6rem;right:.6rem;background:transparent;border:none;padding:.3rem;border-radius:999px;color:var(--color-text-muted)}.login-close:hover{background:var(--color-surface-2);color:var(--color-text)}.login-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;color:var(--color-primary)}.login-header h2{margin:0;color:var(--color-text)}.login-submit{justify-content:center}@media (max-width: 600px){.app-header-row{flex-wrap:wrap}.ranking-row{grid-template-columns:40px 1fr auto}.schedule-item{flex-direction:column;align-items:flex-start}.app-main{padding:1rem .85rem}.tab-btn{padding:.5rem .65rem;font-size:.88rem}.admin-nav-btn{padding:.45rem .6rem;font-size:.82rem}.olympiade-row-main{flex-direction:column;align-items:flex-start}.notif-history li{grid-template-columns:1fr}.notif-history li .btn-icon{grid-column:1;grid-row:auto;justify-self:start}}@media (max-width: 380px){.teams-admin-grid{grid-template-columns:1fr}}.install-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeInOverlay .3s ease-out}.notification-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeInOverlay .3s ease-out}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.install-modal,.notification-modal{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:24px;box-shadow:0 25px 50px #00000026;max-width:480px;width:90%;max-height:90vh;overflow-y:auto;position:relative;border:1px solid rgba(255,255,255,.2);animation:slideInModal .4s ease-out}.notification-modal{border:1px solid rgba(16,185,129,.2)}@keyframes slideInModal{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.install-modal-close,.notification-modal-close{position:absolute;top:20px;right:20px;background:#6b72801a;border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all .3s ease;z-index:10}.install-modal-close:hover,.notification-modal-close:hover{background:#6b728033;color:#374151;transform:rotate(90deg)}.install-modal-content,.notification-modal-content{padding:40px 32px 32px;text-align:center}.install-modal-icon{width:80px;height:80px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:#fff;box-shadow:0 8px 32px #667eea4d;animation:iconPulse 2s ease-in-out infinite}.notification-modal-icon{width:80px;height:80px;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:#fff;box-shadow:0 8px 32px #10b9814d;animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1);box-shadow:0 8px 32px #667eea4d}50%{transform:scale(1.05);box-shadow:0 12px 40px #667eea66}}.notification-modal-icon{animation:iconPulseGreen 2s ease-in-out infinite}@keyframes iconPulseGreen{0%,to{transform:scale(1);box-shadow:0 8px 32px #10b9814d}50%{transform:scale(1.05);box-shadow:0 12px 40px #10b98166}}.install-modal-title,.notification-modal-title{font-size:1.75rem;font-weight:700;color:#1f2937;margin:0 0 16px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.notification-modal-title{background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.install-modal-description,.notification-modal-description{font-size:1.1rem;color:#6b7280;margin:0 0 32px;line-height:1.6}.install-modal-features,.notification-modal-features{display:flex;flex-direction:column;gap:16px;margin-bottom:32px;text-align:left}.install-feature,.notification-feature{display:flex;align-items:center;gap:16px;padding:16px;background:#667eea0d;border-radius:12px;border:1px solid rgba(102,126,234,.1);transition:all .3s ease}.notification-feature{background:#10b9810d;border:1px solid rgba(16,185,129,.1)}.install-feature:hover,.notification-feature:hover{background:#667eea14;transform:translate(4px)}.notification-feature:hover{background:#10b98114}.install-feature-icon,.notification-feature-icon{width:24px;height:24px;color:#667eea;flex-shrink:0}.notification-feature-icon{color:#10b981}.install-feature span,.notification-feature span{font-weight:500;color:#374151;font-size:1rem}.install-instructions{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:16px;padding:20px;margin:24px 0;text-align:left}.install-instructions h3{color:#92400e;font-size:1.2rem;font-weight:600;margin:0 0 16px;text-align:center}.install-steps{display:flex;flex-direction:column;gap:12px}.install-step{display:flex;align-items:center;gap:12px;padding:12px;background:#fff9;border-radius:8px;border:1px solid rgba(245,158,11,.2)}.step-icon{width:20px;height:20px;color:#d97706;flex-shrink:0}.install-step span{color:#92400e;font-weight:500;font-size:.95rem}.install-modal-actions,.notification-modal-actions{display:flex;flex-direction:column;gap:12px}.install-btn-primary,.notification-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:16px 24px;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 16px #667eea4d;position:relative;overflow:hidden}.notification-btn-primary{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 16px #10b9814d}.install-btn-primary:before,.notification-btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.install-btn-primary:hover:before,.notification-btn-primary:hover:before{left:100%}.install-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}.notification-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #10b98166}.notification-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.install-btn-secondary,.notification-btn-secondary{background:transparent;color:#6b7280;border:2px solid #e5e7eb;padding:12px 24px;border-radius:12px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease}.install-btn-secondary:hover,.notification-btn-secondary:hover{color:#374151;border-color:#d1d5db;background:#6b72800d}@media (max-width: 640px){.install-modal,.notification-modal{margin:16px;width:calc(100% - 32px)}.install-modal-content,.notification-modal-content{padding:32px 24px 24px}.install-modal-title,.notification-modal-title{font-size:1.5rem}.install-modal-description,.notification-modal-description{font-size:1rem}.install-modal-features,.notification-modal-features{gap:12px}.install-feature,.notification-feature{padding:12px}.install-feature span,.notification-feature span{font-size:.9rem}.install-instructions{padding:16px;margin:20px 0}.install-instructions h3{font-size:1.1rem}.install-step span{font-size:.9rem}}.install-prompt,.notification-prompt{position:fixed;z-index:1000;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 25px #00000026;padding:16px;max-width:320px;animation:slideIn .3s ease-out}.install-prompt{bottom:16px;right:16px}.notification-prompt{top:16px;right:16px}@media (max-width: 768px){.install-prompt,.notification-prompt{left:16px;right:16px;max-width:none}.install-prompt{bottom:16px}.notification-prompt{top:16px}}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.prompt-content{display:flex;align-items:flex-start;gap:12px}.prompt-icon{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.prompt-icon.install{background-color:#dbeafe}.prompt-icon.notification{background-color:#dcfce7}.prompt-text{flex:1}.prompt-title{font-weight:600;color:#111827;font-size:14px;margin:0 0 4px}.prompt-description{color:#6b7280;font-size:12px;margin:0 0 12px;line-height:1.4}.prompt-actions{display:flex;gap:8px}.prompt-btn{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;border:none;cursor:pointer;transition:all .2s ease}.prompt-btn.primary{background-color:#2563eb;color:#fff}.prompt-btn.primary:hover{background-color:#1d4ed8}.prompt-btn.primary.green{background-color:#16a34a}.prompt-btn.primary.green:hover{background-color:#15803d}.prompt-btn.secondary{background-color:transparent;color:#6b7280}.prompt-btn.secondary:hover{color:#374151}.prompt-btn:disabled{opacity:.5;cursor:not-allowed}.prompt-close{flex-shrink:0;background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;border-radius:4px;transition:color .2s ease}.prompt-close:hover{color:#6b7280}
