:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{color-scheme:dark;--text-color: rgba(255, 255, 255, .87);--bg-color: #242424;--header-bg: #1a1a1a;--border-color: #404040;--primary-color: #646cff;--primary-hover: #535bf2;--button-bg: #1a1a1a;--button-bg-hover: #f9f9f9;--card-bg: #2a2a2a;--input-bg: #1a1a1a;--list-item-bg: #333333;color:var(--text-color);background-color:var(--bg-color)}:root[data-theme=light]{color-scheme:light;--text-color: #213547;--bg-color: #ffffff;--header-bg: #f9f9f9;--border-color: #e0e0e0;--primary-color: #646cff;--primary-hover: #747bff;--button-bg: #f9f9f9;--button-bg-hover: #e0e0e0;--card-bg: #f9f9f9;--input-bg: #ffffff;--list-item-bg: #ffffff;color:var(--text-color);background-color:var(--bg-color)}a{font-weight:500;color:var(--primary-color);text-decoration:inherit}a:hover{color:var(--primary-hover)}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--button-bg);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--primary-color)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.bracket-tree{width:100%;overflow-x:auto;padding:2rem 0;display:inline-block;min-width:100%}.bracket-container{display:flex;gap:3rem;min-width:max-content;padding:1rem;overflow:visible;position:relative}.bracket-connectors{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}.connector-path{fill:none;stroke:#646cff;stroke-width:2;opacity:.6}.bracket-round{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:100%;position:relative;z-index:1}.round-header{text-align:center;font-weight:600;font-size:1.1rem;color:#646cff;margin-bottom:.5rem;padding:.5rem;background-color:#f0f0f0;border-radius:4px}.matches{display:flex;flex-direction:column;justify-content:space-evenly;align-items:center;gap:1.5rem;flex:1}.match{display:flex;flex-direction:column;gap:2px;background-color:#f9f9f9;border-radius:4px;overflow:hidden;width:160px;box-shadow:0 2px 4px #0000001a;border:1px solid black}.participant{padding:.5rem .75rem;background-color:#fff;border-left:4px solid transparent;transition:all .2s}.participant:hover{background-color:#f9f9f9}.participant.winner{background-color:#e8f5e9;border-left-color:#4caf50;font-weight:600}.participant-name{color:#333;font-size:.95rem}.participant-name:empty:before{content:"TBD";color:#999;font-style:italic}.bracket-tree.double-elimination{display:flex;flex-direction:column;gap:3rem;position:relative;width:fit-content;min-width:100%}.grand-finals-connectors{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}.grand-finals-connector-path{stroke:#ff9800;stroke-width:3;opacity:.7}.brackets-row{display:flex;gap:2rem;align-items:center;width:fit-content;min-width:100%}.brackets-left{flex:1;display:flex;flex-direction:column;gap:3rem}.bracket-section{width:100%}.bracket-section-title{text-align:center;color:#333;font-size:1.5rem;margin-bottom:1rem;padding:.75rem;background-color:#f0f0f0;border-radius:8px}.grand-finals-section{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:350px;flex-shrink:0;align-self:center}.grand-finals-container{display:flex;flex-direction:row;gap:2rem;align-items:center;justify-content:center}.grand-finals-match-wrapper{display:flex;flex-direction:column;gap:.5rem;align-items:center}.match-label{font-weight:600;color:#646cff;font-size:1rem;text-align:center}.reset-label{color:#ff9800}.grand-finals-section .match{width:300px;max-width:90vw}.match.grand-finals-reset{border:2px solid #ff9800}.match.completed{opacity:.8}@media(max-width:768px){.bracket-container{gap:2rem}.match{min-width:150px}.participant-name{font-size:.85rem}}.file-upload-hint{text-align:end}.bracket-maker{width:800px;max-width:90vw}.bracket-maker h1{text-align:center;color:var(--text-color);margin-bottom:2rem}.competitor-input-section{margin-bottom:2rem}.competitor-input{display:flex;gap:1rem}.competitor-input input{flex:1;padding:.75rem;font-size:1rem;border:2px solid var(--border-color);border-radius:4px;background-color:var(--input-bg);color:var(--text-color)}.competitor-input input:focus{outline:none;border-color:#646cff}.competitor-input button{padding:.75rem 1.5rem;background-color:#646cff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.competitor-input button:hover{background-color:#535bf2}.file-upload-wrapper{display:flex;align-items:center;gap:.5rem;position:relative}.file-upload-btn{padding:.75rem 1.5rem;background-color:#ff9800;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.file-upload-btn:hover{background-color:#f57c00}.tooltip-trigger{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:help;font-size:1rem;font-weight:700;color:var(--text-color);background-color:transparent;border:2px solid var(--text-color);border-radius:50%;-webkit-user-select:none;user-select:none;transition:all .2s;opacity:.7}.tooltip-trigger:hover{color:var(--primary-color);border-color:var(--primary-color);opacity:1}.tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:.5rem .75rem;border-radius:4px;font-size:.875rem;white-space:nowrap;z-index:1000;box-shadow:0 2px 8px #0003}.tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#333}.competitors-list{background-color:var(--card-bg);padding:1.5rem;border-radius:8px;margin-bottom:2rem}.competitors-list h2{margin-top:0;color:var(--text-color)}.competitors-list ul{list-style:none;padding:0}.competitors-list li{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background-color:var(--list-item-bg);margin-bottom:.5rem;border-radius:4px;border:1px solid var(--border-color)}.competitors-list li span{flex:1;color:var(--text-color)}.competitors-list li button{padding:.5rem 1rem;background-color:#f44;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.competitors-list li button:hover{background-color:#c00}.empty-message{color:#999;font-style:italic}.generate-btn{width:100%;padding:1rem;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1.1rem;font-weight:700}.generate-btn:hover{background-color:#45a049}.bracket-type-selection{text-align:center;padding:2rem 0}.intro-text{max-width:600px;margin:0 auto 2rem;color:var(--text-color);opacity:.9;font-size:1.1rem;line-height:1.6}.bracket-type-selection h2{color:var(--text-color);margin-bottom:2rem}.bracket-type-options{display:flex;gap:2rem;justify-content:center}.bracket-type-btn{flex:1;max-width:300px;padding:2rem;background-color:var(--card-bg);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .3s}.bracket-type-btn:hover{border-color:#646cff;transform:translateY(-4px);box-shadow:0 4px 12px #646cff33}.bracket-type-btn h3{margin:0 0 .5rem;color:var(--text-color);font-size:1.5rem}.bracket-type-btn p{margin:0;color:var(--text-color);opacity:.8;font-size:1rem}.bracket-header{margin-bottom:2rem}.bracket-header h1{margin-bottom:1rem}.bracket-info{display:flex;flex-direction:column;align-items:center;gap:1rem}.bracket-type-label{color:#646cff;font-weight:600;font-size:1.1rem}.bracket-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.export-dropdown{position:relative}.export-btn{padding:.5rem 1rem;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.export-btn:hover{background-color:#45a049}.export-menu{position:absolute;top:100%;left:0;margin-top:.5rem;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 2px 8px #00000026;overflow:hidden;z-index:10;min-width:100%}.export-menu button{display:block;width:100%;padding:.5rem 1rem;background-color:#fff;color:#333;border:none;text-align:left;cursor:pointer;font-size:.9rem;transition:background-color .2s}.export-menu button:hover{background-color:#f0f0f0}.export-menu button:not(:last-child){border-bottom:1px solid #eee}.change-type-btn{padding:.5rem 1rem;background-color:#f0f0f0;color:#333;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.9rem}.change-type-btn:hover{background-color:#e0e0e0;border-color:#999}.bracket-view{width:100%;max-width:100%}.bracket-capture-area{display:inline-block;min-width:100%;overflow:visible}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background-color:var(--card-bg);padding:2rem;border-radius:12px;box-shadow:0 4px 20px #0000004d;max-width:500px;width:90%}.modal-content h2{margin:0 0 .5rem;color:var(--text-color);font-size:1.5rem}.modal-content p{margin:0 0 1.5rem;color:var(--text-color);opacity:.8}.title-input{width:100%;padding:.75rem;font-size:1rem;border:2px solid var(--border-color);border-radius:4px;background-color:var(--input-bg);color:var(--text-color);margin-bottom:1.5rem;box-sizing:border-box}.title-input:focus{outline:none;border-color:var(--primary-color)}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.cancel-btn{padding:.75rem 1.5rem;background-color:transparent;color:var(--text-color);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.cancel-btn:hover{background-color:var(--button-bg-hover)}.export-confirm-btn{padding:.75rem 1.5rem;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.export-confirm-btn:hover{background-color:#45a049}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background-color:var(--header-bg);border-bottom:1px solid var(--border-color);padding:1rem 2rem}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-branding{display:flex;align-items:center;gap:.75rem}.header-logo{height:64px;width:auto}.header-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-color)}.theme-toggle{background:none;border:2px solid var(--border-color);border-radius:8px;width:48px;height:48px;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;padding:0}.theme-toggle:hover{border-color:var(--primary-color);transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.theme-toggle:focus{outline:2px solid var(--primary-color);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.content{flex:1;width:100%;display:flex;justify-content:center;align-items:center;padding-top:100px}.navbar{background-color:#1a1a1a;padding:1rem 2rem;display:flex;align-items:center;gap:2rem;box-shadow:0 2px 4px #0000001a}.navbar h1{margin:0;color:#646cff;font-size:1.5rem}.nav-link{color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:background-color .3s}.nav-link:hover{background-color:#2a2a2a}
