@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root{--font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition-speed:.3s;--transition-slow:.5s;--bg-color:#f8fafc;--bg-grid:#e2e8f066;--card-bg:#ffffffbf;--card-border:#0000000f;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--accent-color:#6366f1;--accent-hover:#4f46e5;--accent-glow:#6366f126;--success-color:#10b981;--success-glow:#10b98126;--danger-color:#ef4444;--danger-hover:#dc2626;--warning-color:#f59e0b;--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:16px;--card-shadow:0 4px 20px -2px #0000000d, 0 2px 8px -1px #00000008;--hover-shadow:0 12px 30px -4px #6366f11f, 0 4px 12px -2px #0000000d;--modal-bg:#ffffffe6;--input-bg:#fff;--input-border:#cbd5e1;--header-bg:#fffc;--badge-bg:#f1f5f9;--line-color:#cbd5e1;--line-active-color:#6366f1}[data-theme=dark]{--bg-color:#08090d;--bg-grid:#6366f108;--card-bg:#12141ca6;--card-border:#6366f126;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-tertiary:#64748b;--accent-color:#06b6d4;--accent-hover:#0891b2;--accent-glow:#06b6d440;--success-color:#10b981;--success-glow:#10b98140;--danger-color:#f43f5e;--danger-hover:#e11d48;--warning-color:#fbbf24;--card-shadow:0 4px 30px #0006, inset 0 1px 1px #ffffff08;--hover-shadow:0 0 25px #06b6d440, inset 0 1px 1px #ffffff0d;--modal-bg:#0f1117e6;--input-bg:#151720;--input-border:#6366f133;--header-bg:#08090dd9;--badge-bg:#ffffff0d;--line-color:#ffffff14;--line-active-color:#06b6d4}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--accent-color) transparent;margin:0;padding:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-color)}body{font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-primary);min-height:100vh;transition:background-color var(--transition-speed), color var(--transition-speed);position:relative;overflow-x:hidden}body:before{content:"";background-image:linear-gradient(var(--bg-grid) 1px, transparent 1px), linear-gradient(90deg, var(--bg-grid) 1px, transparent 1px);z-index:-10;pointer-events:none;background-size:32px 32px;position:absolute;inset:0}.app-container{flex-direction:column;min-height:100vh;display:flex}.content-area{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem 1.5rem;position:relative}.glass-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius-lg);-webkit-backdrop-filter:blur(12px);box-shadow:var(--card-shadow);transition:transform var(--transition-speed), box-shadow var(--transition-speed), border-color var(--transition-speed)}.glass-card.hoverable:hover{box-shadow:var(--hover-shadow);border-color:var(--accent-color);transform:translateY(-4px)}header{z-index:100;background:var(--header-bg);border-bottom:1px solid var(--card-border);-webkit-backdrop-filter:blur(16px);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.header-logo{letter-spacing:-.5px;color:var(--text-primary);cursor:pointer;align-items:center;gap:.75rem;font-size:1.35rem;font-weight:800;text-decoration:none;display:flex}.header-logo span{background:linear-gradient(135deg, var(--accent-color), #8b5cf6);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.header-actions{align-items:center;gap:1rem;display:flex}.btn{font-family:var(--font-family);border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-speed);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent-color);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--accent-glow);transform:translateY(-1px)}.btn-secondary{background:var(--badge-bg);border-color:var(--card-border);color:var(--text-primary)}.btn-secondary:hover{background:var(--card-border);transform:translateY(-1px)}.btn-icon{background:var(--badge-bg);border:1px solid var(--card-border);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-speed);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.btn-icon:hover{background:var(--card-border);color:var(--accent-color);transform:scale(1.05)}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:1.5rem;display:grid}.tournament-card{flex-direction:column;justify-content:space-between;min-height:200px;padding:1.5rem;display:flex}.tournament-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.tournament-title{color:var(--text-primary);font-size:1.15rem;font-weight:700;line-height:1.3}.badge{text-transform:uppercase;border-radius:20px;padding:.25rem .6rem;font-size:.75rem;font-weight:600}.badge-active{color:var(--success-color);background:#10b9811a;border:1px solid #10b98133}.badge-finished{color:var(--warning-color);background:#f59e0b1a;border:1px solid #f59e0b33}.tournament-card-body{margin-bottom:1.5rem}.progress-info{color:var(--text-secondary);justify-content:space-between;margin-bottom:.5rem;font-size:.8rem;display:flex}.progress-bar-bg{background:var(--badge-bg);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent-color), #8b5cf6);border-radius:3px;height:100%;transition:width .6s}.tournament-card-footer{border-top:1px solid var(--card-border);justify-content:space-between;align-items:center;padding-top:1rem;display:flex}.card-date{color:var(--text-tertiary);font-size:.75rem}.card-actions{gap:.5rem;display:flex}.create-container{max-width:650px;margin:0 auto;padding:2rem}.form-title{text-align:center;background:linear-gradient(135deg, var(--text-primary), var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:1.75rem;font-weight:800}.form-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:2rem;font-size:.9rem}.form-group{margin-bottom:1.5rem}.form-label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-input{width:100%;font-family:var(--font-family);color:var(--text-primary);background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--border-radius-md);transition:all var(--transition-speed);outline:none;padding:.75rem 1rem;font-size:.95rem}.form-input:focus{border-color:var(--accent-color);box-shadow:var(--accent-glow)}.radio-group{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1rem;display:grid}.radio-card{border:1px solid var(--input-border);border-radius:var(--border-radius-md);text-align:center;cursor:pointer;transition:all var(--transition-speed);background:var(--input-bg);padding:1rem;font-weight:700}.radio-card:hover{border-color:var(--accent-color)}.radio-card.active{background:var(--accent-glow);border-color:var(--accent-color);color:var(--accent-color)}.teams-list-container{border:1px solid var(--card-border);border-radius:var(--border-radius-md);background:var(--badge-bg);max-height:300px;padding:1rem;overflow-y:auto}.teams-grid-form{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.teams-actions-row{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.bracket-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.bracket-controls{gap:.75rem;display:flex}.bracket-viewport{border-radius:var(--border-radius-lg);cursor:grab;border:1px solid var(--card-border);background:#0000000d;width:100%;height:65vh;position:relative;overflow:auto}.bracket-viewport:active{cursor:grabbing}.bracket-canvas{justify-content:center;align-items:center;gap:5rem;min-width:max-content;min-height:100%;padding:3rem 4rem;display:flex;position:relative}.bracket-wing{align-items:center;gap:4rem;display:flex}.bracket-center-final{z-index:10;flex-direction:column;justify-content:center;align-items:center;gap:3rem;display:flex;position:relative}.bracket-column{flex-direction:column;justify-content:space-around;gap:1.5rem;height:100%;display:flex}.round-title-container{text-align:center;margin-bottom:1.5rem}.round-name{text-transform:uppercase;color:var(--text-secondary);letter-spacing:1px;font-size:.85rem;font-weight:700}.match-card-wrapper{width:220px;position:relative}.match-card{cursor:pointer;z-index:5;flex-direction:column;gap:4px;padding:.75rem;display:flex;position:relative}.match-team{border-radius:var(--border-radius-sm);transition:all var(--transition-speed);background:#0000000d;justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.85rem;font-weight:600;display:flex}.match-team-name{white-space:nowrap;text-overflow:ellipsis;max-width:140px;color:var(--text-primary);overflow:hidden}.match-team-score{background:var(--badge-bg);text-align:center;min-width:22px;color:var(--text-primary);border-radius:4px;padding:.15rem .4rem;font-size:.9rem;font-weight:800}.match-team.winner-team{background:var(--success-glow)}.match-team.winner-team .match-team-name{color:var(--success-color);font-weight:700}.match-team.winner-team .match-team-score{background:var(--success-color);color:#fff}.match-team.loser-team{opacity:.5}.match-card.completed{border-color:#10b98166}.connector-line{background:var(--line-color);z-index:1;pointer-events:none;position:absolute}.connector-line.active{background:var(--line-active-color);box-shadow:0 0 8px var(--line-active-color)}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{width:100%;max-width:480px;padding:2rem;position:relative}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;position:absolute;top:1rem;right:1rem}.modal-close:hover{color:var(--text-primary)}.modal-title{text-align:center;margin-bottom:1.5rem;font-size:1.35rem;font-weight:700}.modal-match-vs{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.modal-team-input-card{border-radius:var(--border-radius-md);background:var(--badge-bg);border:1px solid var(--card-border);flex-direction:column;flex:1;align-items:center;gap:.75rem;padding:1rem;display:flex}.modal-team-input-name{text-align:center;word-break:break-word;max-height:40px;font-size:.95rem;font-weight:700;overflow:hidden}.modal-score-input{text-align:center;border-radius:var(--border-radius-sm);border:1px solid var(--input-border);background:var(--input-bg);width:70px;height:50px;color:var(--text-primary);outline:none;font-size:1.5rem;font-weight:800}.modal-score-input:focus{border-color:var(--accent-color);box-shadow:var(--accent-glow)}.modal-vs-text{color:var(--text-tertiary);font-size:1.25rem;font-weight:800}.pin-verification-section{border-top:1px solid var(--card-border);margin-top:1.5rem;padding-top:1.5rem}.champion-announcement{text-align:center;border:2px solid var(--warning-color);border-radius:var(--border-radius-lg);background:linear-gradient(135deg,#fbbf241a,#d9770626);flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:500px;margin-bottom:2rem;padding:2.5rem;animation:2s infinite alternate pulseGold;display:flex;box-shadow:0 0 30px #fbbf2440}.champion-crown{color:var(--warning-color);filter:drop-shadow(0 0 10px #fbbf2499);margin-bottom:.5rem;font-size:3rem}.champion-name{color:var(--text-primary);text-shadow:0 0 15px #ffffff1a;margin-top:.5rem;font-size:2rem;font-weight:800}.projector-mode-active header,.projector-mode-active .bracket-header,.projector-mode-active .warning-banner{display:none!important}.projector-mode-active .content-area{max-width:100%!important;margin:0!important;padding:0!important}.projector-mode-active .bracket-viewport{background:0 0;border:none;border-radius:0;height:98vh}.projector-mode-active .match-team-name{max-width:170px;font-size:1.05rem;font-weight:700}.projector-mode-active .match-team-score{padding:.25rem .5rem;font-size:1.15rem}.projector-mode-active .match-card-wrapper{width:250px}.warning-banner{border:1px solid var(--warning-color);color:var(--warning-color);border-radius:var(--border-radius-md);background:#f59e0b26;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:.75rem 1.25rem;font-size:.85rem;display:flex}@keyframes pulseGold{0%{box-shadow:0 0 20px #fbbf2426}to{box-shadow:0 0 40px #fbbf2473}}@media (width<=768px){.header-actions{gap:.5rem}.btn span{display:none}.content-area{padding:1rem}.radio-group,.teams-grid-form{grid-template-columns:1fr}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}.toast-notification{animation:.35s cubic-bezier(.16,1,.3,1) forwards toastSlideIn}
