.auth-page{align-items:center;background:var(--color-bg);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:12px;box-shadow:0 2px 12px #0000000f;max-width:400px;padding:40px 36px;width:100%}.auth-logo{margin-bottom:28px}.auth-logo-text{color:var(--color-accent);display:block;font-size:28px;letter-spacing:4px;line-height:1}.auth-logo-text,.auth-title{font-family:var(--font-display);font-weight:700}.auth-title{color:var(--color-text);font-size:var(--font-size-h2);letter-spacing:2px;margin:0 0 24px}.auth-field{margin-bottom:16px}.auth-label{color:var(--color-text-subtle);display:block;font-weight:600;letter-spacing:1px;margin-bottom:6px;text-transform:uppercase}.auth-input,.auth-label{font-family:var(--font-main);font-size:var(--font-size-body)}.auth-input{border:1px solid var(--color-border);border-radius:8px;box-sizing:border-box;color:var(--color-text);outline:none;padding:11px 14px;transition:border-color .15s;width:100%}.auth-input:focus{border-color:var(--color-accent)}.auth-input::placeholder{color:var(--color-text-disabled)}.auth-error{color:var(--color-error)}.auth-error,.auth-success{font-size:var(--font-size-sm);margin:8px 0}.auth-success{background:#f0faf4;border-radius:6px;color:#1a7a45;padding:10px 12px}.auth-btn{background:var(--color-accent);border:none;border-radius:8px;color:var(--color-surface);cursor:pointer;font-family:var(--font-display);font-size:var(--font-size-h3);font-weight:700;letter-spacing:3px;margin-top:8px;padding:14px;transition:background .15s;width:100%}.auth-btn:hover:not(:disabled){background:var(--color-accent-hover)}.auth-btn:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed}.auth-switch{color:var(--color-text-subtle);margin:20px 0 0;text-align:center}.auth-link,.auth-switch{font-family:var(--font-main);font-size:var(--font-size-body)}.auth-link{background:none;border:none;color:var(--color-accent);cursor:pointer;font-weight:500;padding:0;text-decoration:underline}.auth-divider{align-items:center;color:var(--color-text-subtle);display:flex;font-size:var(--font-size-sm);gap:12px;margin:16px 0}.auth-divider:after,.auth-divider:before{background:var(--color-border);content:"";flex:1 1;height:1px}.auth-btn-guest{background:none;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-subtle);cursor:pointer;font-family:var(--font-main);font-size:var(--font-size-body);padding:12px;transition:border-color .15s,color .15s;width:100%}.auth-btn-guest:hover{border-color:var(--color-text-subtle);color:var(--color-text)}.sb{background:var(--color-accent);display:flex;flex-direction:column;flex-shrink:0;min-height:100vh;width:var(--sidebar-width)}.sb-logo{border-bottom:1px solid var(--color-accent-hover);padding:28px 20px 24px}.sb-logo-text{color:var(--color-surface);font-size:18px;font-weight:700;line-height:1}.sb-logo-sub,.sb-logo-text{display:block;font-family:var(--font-display);letter-spacing:4px}.sb-logo-sub{color:var(--color-accent-muted);font-size:var(--font-size-body);font-weight:400;margin-top:2px}.sb-nav{display:flex;flex-direction:column;gap:2px;padding:12px 10px}.sb-item{align-items:center;background:none;border:none;border-radius:6px;cursor:pointer;display:flex;gap:10px;padding:10px 12px;text-align:left;transition:background .15s;width:100%}.sb-item:hover{background:var(--color-accent-hover)}.sb-item.active{background:var(--color-accent-deep)}.sb-icon{color:var(--color-accent-muted);flex-shrink:0;font-size:15px;text-align:center;width:18px}.sb-item.active .sb-icon{color:var(--color-surface)}.sb-label{color:var(--color-accent-muted);font-family:var(--font-main);font-size:var(--font-size-body);font-weight:500}.sb-item.active .sb-label{color:var(--color-surface)}.page-placeholder{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:40px 20px;text-align:center}.page-placeholder-icon{color:var(--color-text-disabled);font-size:40px;margin-bottom:16px}.page-placeholder-title{color:var(--color-text-muted);font-family:var(--font-display);font-size:var(--font-size-h2);font-weight:700;letter-spacing:2px;margin:0 0 8px}.page-placeholder-sub{color:var(--color-text-subtle);font-size:var(--font-size-body);margin:0}.sb-footer{border-top:1px solid var(--color-accent-hover);margin-top:auto;padding:12px 10px}.sb-logout{align-items:center;background:none;border:none;border-radius:6px;cursor:pointer;display:flex;gap:10px;padding:10px 12px;text-align:left;transition:background .15s;width:100%}.sb-logout:hover{background:var(--color-accent-hover)}.sb-logout .sb-icon,.sb-logout .sb-label{color:var(--color-accent-muted)}.sb-logout:hover .sb-icon,.sb-logout:hover .sb-label{color:var(--color-surface)}.sb-user{gap:10px;margin-bottom:4px;padding:10px 12px}.sb-user,.sb-user-avatar{align-items:center;display:flex}.sb-user-avatar{background:var(--color-accent-deep);border-radius:50%;color:var(--color-surface);flex-shrink:0;font-weight:700;height:28px;justify-content:center;width:28px}.sb-user-avatar,.sb-user-name{font-size:var(--font-size-body)}.sb-user-name{color:var(--color-accent-muted);font-family:var(--font-main);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-guest-avatar{background:var(--color-accent-hover)!important}.sb-guest-avatar,.sb-guest-hint{font-size:var(--font-size-body);opacity:.7}.sb-guest-hint{color:var(--color-accent-muted);display:block;margin-top:1px}.tn-setup{margin:0 auto;max-width:900px;padding:60px 20px}.tn-h1{color:var(--color-accent);font-family:var(--font-display);font-size:var(--font-size-h1);font-weight:700;letter-spacing:4px;line-height:1;margin-bottom:8px}.tn-sub{color:var(--color-text-subtle);font-size:var(--font-size-body);margin-bottom:24px}.tn-form-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:10px;box-shadow:0 2px 12px #0000000f;padding:24px}.tn-add{background:var(--color-accent);border:none;border-radius:8px;color:var(--color-surface);cursor:pointer;font-family:var(--font-display);font-size:var(--font-size-ui);font-weight:700;letter-spacing:1px;padding:0 20px;transition:background .15s}.tn-add:hover{background:var(--color-accent-hover)}.tn-list{background:var(--color-bg);border-radius:10px;margin-bottom:14px;max-height:280px;overflow-y:auto;padding:1px}.tn-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:6px;display:flex;gap:8px;margin-bottom:4px;padding:8px 10px}.tn-item:last-child{margin-bottom:0}.tn-num{color:var(--color-text-subtle);font-family:var(--font-mono);font-size:var(--font-size-sm);min-width:18px}.tn-name{color:var(--color-text);flex:1 1;font-size:var(--font-size-body);font-weight:500}.tn-del{background:none;border:none;color:var(--color-text-disabled);cursor:pointer;font-size:18px;line-height:1;padding:0 2px;transition:color .1s}.tn-del:hover{color:var(--color-error)}.tn-meta{color:var(--color-text-subtle);display:flex;font-size:var(--font-size-body);justify-content:space-between;margin-bottom:14px}.tn-gen{border:none;border-radius:10px;cursor:pointer;font-family:var(--font-display);font-size:var(--font-size-h3);font-weight:700;letter-spacing:3px;padding:16px;transition:background .15s,color .15s;width:100%}.tn-gen:not(:disabled){background:var(--color-accent);color:var(--color-surface)}.tn-gen:not(:disabled):hover{background:var(--color-accent-hover)}.tn-gen:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed}.tn-search-group{margin-bottom:20px}.tn-search-label{color:var(--color-text-subtle);display:block;font-size:var(--font-size-body);font-weight:500;letter-spacing:1px;margin-bottom:6px;text-transform:uppercase}.tn-dropdown-wrap{position:relative;width:100%}.tn-dropdown-wrap .tn-input{background:var(--color-surface);box-sizing:border-box;width:100%}.tn-dropdown-wrap .tn-input::placeholder{color:var(--color-text-disabled)}.tn-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 16px #00000014;left:0;max-height:280px;overflow:hidden;overflow-y:auto;position:absolute;right:0;top:calc(100% + 4px);z-index:100}.tn-dropdown-item{border-bottom:1px solid var(--color-border-inner);color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:10px 14px;transition:background .1s}.tn-dropdown-item:last-child{border-bottom:none}.tn-dropdown-item:hover{background:var(--color-accent-tint);color:var(--color-accent)}.tn-dropdown-new,.tn-new-hint{color:var(--color-accent);font-style:italic}.tn-new-hint{font-size:var(--font-size-sm);margin:6px 0 0}.tn-new-badge{background:var(--color-accent-tint);border-radius:4px;font-size:11px;letter-spacing:.5px;margin-right:4px;padding:2px 6px}.tn-dropdown-addall,.tn-new-badge{color:var(--color-accent);font-weight:600}.tn-bhead,.tn-dropdown-addall{border-bottom:1px solid var(--color-border-light)}.tn-bhead{align-items:center;display:flex;gap:16px;padding:16px 24px}.tn-btitle{color:var(--color-accent);font-family:var(--font-display);font-size:var(--font-size-h2);font-weight:700;letter-spacing:3px}.tn-btournament{font-weight:400}.tn-btournament,.tn-ghost{color:var(--color-text-subtle);font-family:var(--font-main);font-size:var(--font-size-body)}.tn-ghost{background:none;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;margin-left:auto;padding:6px 14px;transition:border-color .15s,color .15s}.tn-ghost:hover{border-color:var(--color-text-subtle);color:var(--color-text-subtle)}.tn-ghost:disabled{cursor:not-allowed;opacity:.4}.tn-bscroll{overflow-x:auto;padding:20px 24px}.tn-rlabels{display:flex;margin-bottom:12px}.tn-rlabel{color:var(--color-text-subtle);font-family:var(--font-display);font-size:var(--font-size-body);letter-spacing:2px;text-transform:uppercase}.tn-match{background:var(--color-surface);border:1px solid var(--color-border);border-radius:7px;overflow:hidden;position:absolute;transition:border-color .2s}.tn-match.won{border-color:var(--color-won-border)}.tn-divider{background:var(--color-border-inner);height:1px}.tn-slot{align-items:center;border-left:2px solid #0000;display:flex;height:40px;padding:0 12px;position:relative;transition:background .1s}.tn-slot.pick{cursor:pointer}.tn-slot.pick:hover,.tn-slot.w{background:var(--color-accent-tint)}.tn-slot.w{border-left-color:var(--color-accent)}.tn-slot.bye{opacity:.35}.tn-sn{color:var(--color-text-muted);flex:1 1;font-size:var(--font-size-body);font-weight:500;max-width:155px;overflow:hidden;text-overflow:ellipsis;transition:color .1s;white-space:nowrap}.tn-slot.w .tn-sn{color:var(--color-accent);font-weight:600}.tn-slot.bye .tn-sn{color:var(--color-text-disabled);font-style:italic}.tn-slot.pick:hover .tn-sn{color:var(--color-text)}.tn-arr{color:var(--color-accent);font-size:var(--font-size-body);position:absolute;right:10px}.tn-champ-slot{align-items:center;background:var(--color-surface);border:2px dashed var(--color-border);border-radius:7px;display:flex;flex-direction:column;gap:4px;justify-content:center;position:absolute;transition:border-color .3s,background .3s}.tn-champ-slot.filled{background:var(--color-accent-tint);border:2px solid var(--color-accent)}.tn-champ-name{color:var(--color-accent);font-family:var(--font-display);font-weight:700;letter-spacing:1px;max-width:100%;overflow:hidden;padding:0 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.tn-champ-empty,.tn-champ-name{font-size:var(--font-size-body)}.tn-champ-empty{color:var(--color-text-disabled);font-style:italic}.crud-page{margin:0 auto;max-width:900px;padding:40px}.crud-header{margin-bottom:28px}.crud-title{color:var(--color-accent);font-family:var(--font-display);font-size:var(--font-size-h1);font-weight:700;letter-spacing:4px;line-height:1;margin:0 0 6px}.crud-sub{color:var(--color-text-subtle);font-size:var(--font-size-body);margin:0}.crud-form{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:10px;box-shadow:0 2px 12px #0000000f;margin-bottom:24px;padding:20px 24px}.crud-form-title{color:var(--color-text-subtle);font-family:var(--font-display);font-size:var(--font-size-h2);font-weight:700;letter-spacing:2px;margin:0 0 14px}.crud-form-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.crud-form-row .tn-input{flex:1 1;min-width:160px}.crud-form-row .tn-input::placeholder{color:var(--color-text-disabled)}.crud-btn-primary{background:var(--color-accent);border:none;border-radius:8px;color:var(--color-surface);cursor:pointer;font-family:var(--font-display);font-size:var(--font-size-ui);font-weight:700;letter-spacing:1px;padding:11px 22px;transition:background .15s;white-space:nowrap}.crud-btn-primary:hover{background:var(--color-accent-hover)}.crud-btn-ghost{background:none;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-subtle);cursor:pointer;font-family:var(--font-main);font-size:var(--font-size-body);padding:7px 14px;transition:border-color .15s,color .15s;white-space:nowrap}.crud-btn-ghost:hover{border-color:var(--color-text-subtle);color:var(--color-text)}.crud-btn-danger{background:none;border:1px solid #0000;border-radius:8px;color:var(--color-error);cursor:pointer;font-family:var(--font-main);font-size:var(--font-size-body);padding:7px 14px;transition:border-color .15s,background .15s;white-space:nowrap}.crud-btn-danger:hover{background:#fff5f5;border-color:var(--color-error)}.crud-table-wrap{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:10px;box-shadow:0 2px 12px #0000000f;max-height:480px;overflow:hidden;overflow-y:auto}.crud-table{border-collapse:collapse;width:100%}.crud-table,.crud-table th{font-size:var(--font-size-body)}.crud-table th{background:var(--color-accent);border-bottom:1px solid var(--color-border-light);color:var(--color-surface);font-family:var(--font-display);font-weight:700;letter-spacing:1px;padding:12px 16px;position:sticky;text-align:left;text-transform:uppercase;top:0;z-index:1}.crud-table td{border-bottom:1px solid var(--color-border-inner);color:var(--color-text-muted);padding:12px 16px}.crud-table tr:last-child td{border-bottom:none}.crud-table tr:hover td{background:var(--color-accent-tint)}.crud-actions{display:flex;gap:6px;justify-content:flex-end}.crud-none{color:var(--color-text-disabled)}.crud-empty,.crud-loading{color:var(--color-text-subtle);font-size:var(--font-size-body);padding:24px 0}.crud-badge{border-radius:20px;display:inline-block;font-size:var(--font-size-body);font-weight:500;padding:3px 10px}.crud-badge-0{background:#f0f0f0;color:#666}.crud-badge-1{background:var(--color-accent-tint);color:var(--color-accent)}.crud-badge-2{background:#eafaf1;color:#1a7a45}.tournament-winner{color:var(--color-accent);font-weight:600}.bracket-modal-box{max-height:85vh!important;max-width:90vw!important;width:90vw!important}.modal-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal-box{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:12px;box-shadow:0 2px 12px #0000000f;max-height:80vh;max-width:600px;overflow-y:auto;padding:28px;width:90%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.modal-title{color:var(--color-accent);font-family:var(--font-display);font-size:var(--font-size-h2);font-weight:700;letter-spacing:2px;margin:0}.modal-close{background:none;border:none;color:var(--color-text-subtle);cursor:pointer;font-size:24px;line-height:1;padding:0 4px;transition:color .1s}.modal-close:hover{color:var(--color-text)}.record-win td{background:#f0faf4}.record-loss td{background:#fff5f5}.record-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;margin-left:8px;padding:2px 7px}.badge-win{background:#d1f5e0;color:#1a7a45}.badge-loss{background:#fde0e0;color:#a33232}.rank-cell{color:var(--color-text-subtle);font-family:var(--font-mono);font-size:var(--font-size-sm);width:32px}.stat-win{color:#1a7a45;font-weight:600}.stat-loss{color:var(--color-error);font-weight:600}.win-pct-wrap{align-items:center;display:flex;gap:8px;min-width:100px}.win-pct-bar{background:var(--color-border-light);border-radius:3px;flex:1 1;height:6px;overflow:hidden}.win-pct-fill{background:var(--color-accent);border-radius:3px;height:100%;transition:width .3s ease}.win-pct-label{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:500;min-width:32px}.settings-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:10px;box-shadow:0 2px 12px #0000000f;margin-bottom:20px;padding:24px}.settings-card-danger{border-color:#fde0e0}.settings-card-title{color:var(--color-text);font-family:var(--font-display);font-size:var(--font-size-h2);font-weight:700;letter-spacing:2px;margin:0 0 20px}.settings-card-title-danger{color:var(--color-error)}.settings-summary{align-items:center;display:flex;gap:16px}.settings-avatar{align-items:center;background:var(--color-accent);border-radius:50%;color:var(--color-surface);display:flex;flex-shrink:0;font-size:var(--font-size-h2);font-weight:700;height:52px;justify-content:center;width:52px}.settings-info-name{color:var(--color-text);font-size:var(--font-size-body);font-weight:600;margin-bottom:4px}.settings-info-email{color:var(--color-text-subtle);font-size:var(--font-size-body)}.settings-stack{display:flex;flex-direction:column;gap:10px}.settings-btn-full{width:100%}.settings-danger-desc{color:var(--color-text-subtle);font-size:var(--font-size-body);margin:0 0 16px}.settings-btn-delete{border:1px solid var(--color-error);font-size:var(--font-size-body);padding:10px 20px}.settings-msg{border-radius:6px;font-size:var(--font-size-body);margin:12px 0 0;padding:10px 14px}.settings-msg-success{background:#f0faf4;color:#1a7a45}.settings-msg-error{background:#fff5f5;color:var(--color-error)}.settings-msg-warn{background:#fff8ee;color:#b45c00}.feature-row{align-items:center;display:flex;gap:20px;justify-content:space-between}.feature-info{display:flex;flex-direction:column;gap:4px}.feature-name{color:var(--color-text);font-weight:600}.feature-desc,.feature-name{font-size:var(--font-size-body)}.feature-desc{color:var(--color-text-subtle);max-width:480px}.feature-toggle{background:var(--color-border);border:none;border-radius:12px;cursor:pointer;flex-shrink:0;height:24px;padding:0;position:relative;transition:background .2s;width:44px}.feature-toggle.on{background:var(--color-accent)}.feature-toggle-thumb{background:#fff;border-radius:50%;height:18px;left:3px;position:absolute;top:3px;transition:transform .2s;width:18px}.feature-toggle.on .feature-toggle-thumb{transform:translateX(20px)}:root{--font-main:"Aptos","Calibri","Gill Sans",sans-serif;--font-display:"Aptos","Calibri","Gill Sans",sans-serif;--font-mono:monospace;--color-bg:#f0f4f8;--color-surface:#fff;--color-accent:#0a1f5c;--color-accent-hover:#152f7a;--color-accent-deep:#1a3a8f;--color-accent-muted:#c5cfe8;--color-accent-tint:#eef2fa;--color-border:#dde3dd;--color-border-light:#e8ebe8;--color-border-inner:#eef1ee;--color-text:#1a1a1a;--color-text-muted:#444;--color-text-subtle:#888;--color-text-disabled:#ccc;--color-error:#c44;--color-won-border:#a0b0d0;--color-disabled-bg:#eaeaea;--color-disabled-text:#bbb;--sidebar-width:220px;--font-size-sm:13px;--font-size-body:14px;--font-size-ui:15px;--font-size-h3:20px;--font-size-h2:22px;--font-size-h1:52px}.tn,.tn-input{color:#1a1a1a;color:var(--color-text);font-family:Aptos,Calibri,Gill Sans,sans-serif;font-family:var(--font-main)}.tn-input{background:#fff;background:var(--color-surface);border:1px solid #dde3dd;border:1px solid var(--color-border);border-radius:8px;flex:1 1;font-size:14px;font-size:var(--font-size-body);outline:none;padding:11px 14px;transition:border-color .15s}.tn-input:focus{border-color:#0a1f5c;border-color:var(--color-accent)}.tn-err{color:#c44;color:var(--color-error);font-size:13px;font-size:var(--font-size-sm);margin-bottom:8px;min-height:18px;padding-left:2px}.dashboard{display:flex;min-height:100vh}.dashboard-main{background:var(--color-bg);color:var(--color-text);flex:1 1;font-family:var(--font-main);min-width:0;overflow-y:auto}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
/*# sourceMappingURL=main.2fed19f1.css.map*/