.welcome-view[data-v-d67ac3d6]{min-height:100%;position:relative}.welcome-folio[data-v-d67ac3d6]{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:linear-gradient(#fffdf9fa 0%,#f1ebe2f0 100%);position:relative;overflow:hidden}.welcome-header[data-v-d67ac3d6]{z-index:1;border-bottom:1px solid #baae9f73;padding:32px 32px 18px;position:relative}.welcome-rule[data-v-d67ac3d6]{background:var(--accent);width:64px;height:2px;margin-bottom:14px}.welcome-intro[data-v-d67ac3d6]{max-width:70ch}.welcome-header h1[data-v-d67ac3d6]{letter-spacing:-.03em;color:#2f2219;margin:0;font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,Palatino,serif;font-size:40px;font-weight:700;line-height:1}.welcome-layout[data-v-d67ac3d6]{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start;gap:24px;padding:24px 32px 32px;display:grid}.welcome-letter[data-v-d67ac3d6]{z-index:1;padding:8px 0 0;position:relative}.welcome-copy[data-v-d67ac3d6]{color:var(--text);text-wrap:pretty;margin:0;font-size:16px;line-height:1.85}.welcome-copy+.welcome-copy[data-v-d67ac3d6]{margin-top:12px}.welcome-copy-lead[data-v-d67ac3d6]{color:#382b22;font-size:17px}.welcome-copy-lead+.welcome-copy-opening[data-v-d67ac3d6]{margin-top:18px}.welcome-copy-signoff[data-v-d67ac3d6]{color:#4b392d;font-weight:600}.welcome-copy-note[data-v-d67ac3d6]{color:var(--text-muted);border-top:1px solid #baae9f8c;margin-top:22px;padding-top:14px;font-weight:600}.welcome-figure[data-v-d67ac3d6]{z-index:1;align-self:stretch;position:relative}.welcome-image-frame[data-v-d67ac3d6]{background:#2f221914;border:1px solid #baae9f73;height:100%;min-height:500px;padding:10px}.welcome-image[data-v-d67ac3d6]{filter:sepia(.04)saturate()contrast(1.02);background-position:top;background-repeat:no-repeat;background-size:cover;border:1px solid #baae9f4d;min-height:100%}@media (width<=900px){.welcome-header[data-v-d67ac3d6]{padding-bottom:18px}.welcome-layout[data-v-d67ac3d6]{grid-template-columns:1fr;padding-top:24px}.welcome-image-frame[data-v-d67ac3d6]{min-height:340px}.welcome-image[data-v-d67ac3d6]{min-height:316px}}@media (width<=768px){.welcome-header[data-v-d67ac3d6]{padding:24px 22px 18px}.welcome-header h1[data-v-d67ac3d6]{font-size:34px}.welcome-copy[data-v-d67ac3d6]{font-size:15px;line-height:1.75}.welcome-layout[data-v-d67ac3d6]{gap:20px;padding:20px 22px 22px}.welcome-letter[data-v-d67ac3d6]{padding-top:4px}.welcome-image-frame[data-v-d67ac3d6]{min-height:280px;padding:10px}.welcome-image[data-v-d67ac3d6]{min-height:258px}}.login-header[data-v-aeda2af3]{margin-bottom:22px}.login-intro[data-v-aeda2af3]{color:var(--text-muted);margin-top:8px;line-height:1.5}.login-form[data-v-aeda2af3]{box-shadow:none;background:0 0;border:none;padding:0}.form-group[data-v-aeda2af3]{margin-bottom:20px}.password-wrapper[data-v-aeda2af3]{position:relative}.password-wrapper input[data-v-aeda2af3]{padding-right:44px}.toggle-password[data-v-aeda2af3]{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.error-message[data-v-aeda2af3]{margin-bottom:20px;padding:12px 16px;font-size:14px}.btn-login[data-v-aeda2af3]{cursor:pointer;width:100%;padding:14px;font-size:16px;font-weight:600}.forgot-password-link[data-v-aeda2af3]{text-align:center;margin-top:16px;font-size:14px;font-weight:500;display:block}.btn-google[data-v-aeda2af3]{cursor:pointer;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px;font-size:16px;font-weight:600;display:flex}.login-versions[data-v-aeda2af3]{flex-direction:column;align-items:center;gap:2px;margin-top:20px;display:flex}.login-version[data-v-aeda2af3]{color:var(--text-muted);font-size:12px}.btn-menu[data-v-18c49509]{cursor:pointer;line-height:0;display:none}@media (width<=768px){.topbar-brand[data-v-18c49509]{font-size:14px}.topbar-usercopy[data-v-18c49509]{display:none}.btn-menu[data-v-18c49509]{display:flex}}.sidebar[data-v-4fbc23e2]{flex-direction:column;flex-shrink:0;height:100%;transition:width .25s;display:flex;overflow:hidden}.sidebar.collapsed[data-v-4fbc23e2]{width:64px}.sidebar-nav[data-v-4fbc23e2]{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-link[data-v-4fbc23e2]{white-space:nowrap;color:inherit;align-items:center;gap:10px;text-decoration:none;transition:all .15s;display:flex;position:relative}.sidebar-group-toggle[data-v-4fbc23e2]{cursor:pointer;text-align:left;color:#f5ede4;width:100%;font:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;display:flex}.sidebar-group-label-wrap[data-v-4fbc23e2]{align-items:center;gap:10px;min-width:0;display:inline-flex}.sidebar-group-children[data-v-4fbc23e2]{flex-direction:column;display:flex}.sidebar-group-chevron[data-v-4fbc23e2]{flex-shrink:0;width:16px;height:16px;transition:transform .2s}.sidebar-group-chevron.open[data-v-4fbc23e2]{transform:rotate(90deg)}.sidebar-icon[data-v-4fbc23e2]{flex-shrink:0;width:18px;height:18px}.sidebar-label[data-v-4fbc23e2]{font-size:13px;font-weight:500}.sidebar-sublink[data-v-4fbc23e2]{padding-left:18px}.sidebar.collapsed .sidebar-sublink[data-v-4fbc23e2]{justify-content:center;padding-left:12px;padding-right:12px}.tournament-icon-circle[data-v-4fbc23e2]{flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tournament-icon-img[data-v-4fbc23e2]{object-fit:cover;width:100%;height:100%}.tournament-icon-initial[data-v-4fbc23e2]{font-size:10px;font-weight:700;line-height:1}.sidebar-sublabel[data-v-4fbc23e2]{text-overflow:ellipsis;max-width:140px;overflow:hidden}.btn-toggle[data-v-4fbc23e2]{cursor:pointer;white-space:nowrap;align-items:center;gap:8px;margin:auto 8px 8px;transition:all .15s;display:flex}.toggle-icon[data-v-4fbc23e2]{flex-shrink:0;transition:transform .25s}.toggle-icon.flipped[data-v-4fbc23e2]{transform:rotate(180deg)}.toggle-label[data-v-4fbc23e2]{font-size:12px;font-weight:500}.sidebar-versions[data-v-4fbc23e2]{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.sidebar-version[data-v-4fbc23e2]{color:var(--text-muted);opacity:.8;padding:0 16px 4px;font-size:11px}@media (width<=768px){.sidebar[data-v-4fbc23e2]{display:none}.sidebar.mobile-open[data-v-4fbc23e2]{z-index:var(--z-sidebar);display:flex;position:fixed;bottom:0;left:0}.sidebar.mobile-open .btn-toggle[data-v-4fbc23e2]{display:none}.sidebar-backdrop[data-v-4fbc23e2]{z-index:calc(var(--z-sidebar) - 1);display:block;position:fixed;bottom:0;left:0;right:0}}@media (width>=769px){.sidebar.collapsed .sidebar-link[data-v-4fbc23e2]:after{content:attr(title);color:#f5ede4;white-space:nowrap;opacity:0;pointer-events:none;z-index:var(--z-dropdown);background:#2a2521;border:1px solid #3a332d;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.2;transition:opacity .12s;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);box-shadow:0 1px 2px #1a140e29}.sidebar.collapsed .sidebar-link[data-v-4fbc23e2]:hover:after,.sidebar.collapsed .sidebar-link[data-v-4fbc23e2]:focus-visible:after{opacity:1}.sidebar-backdrop[data-v-4fbc23e2]{display:none}}.global-toaster[data-v-87daa165]{z-index:var(--z-toast);pointer-events:none;width:min(360px,100vw - 32px);position:fixed;top:20px;right:20px}.toast-card[data-v-87daa165]{border:1px solid var(--border);pointer-events:auto;border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex;box-shadow:0 14px 30px #211c1724}.toast-copy[data-v-87daa165]{flex:1;min-width:0}.toast-message[data-v-87daa165]{margin:0;font-size:14px;font-weight:600;line-height:1.4}.toast-dismiss[data-v-87daa165]{width:28px;min-width:28px;height:28px;min-height:28px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;font-size:18px;line-height:1;display:inline-flex}.toast-dismiss[data-v-87daa165]:hover{background:#211c1714}.toast-fade-enter-active[data-v-87daa165],.toast-fade-leave-active[data-v-87daa165]{transition:opacity .2s,transform .2s}.toast-fade-enter-from[data-v-87daa165],.toast-fade-leave-to[data-v-87daa165]{opacity:0;transform:translateY(-8px)}@media (width<=768px){.global-toaster[data-v-87daa165]{width:auto;top:12px;left:12px;right:12px}}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}#app{flex-direction:column;min-height:100vh;display:flex}#app.has-shell{height:100vh;overflow:hidden}.app-body{background:0 0;flex:1;height:calc(100vh - 56px);min-height:calc(100vh - 56px);display:flex;overflow:hidden}.app-content{flex:1;height:100%;min-height:0;overflow-y:auto}@media (width<=768px){.app-body{flex-direction:column;height:calc(100vh - 52px);min-height:calc(100vh - 52px)}}:root{--app-bg:#f4efe8;--app-bg-strong:#ebe4db;--surface:#fbf8f3;--surface-strong:#fffdf9;--surface-muted:#f1ebe2;--border:#d7cec2;--border-strong:#baae9f;--text:#211c17;--text-muted:#655c52;--accent:#c45a1b;--accent-hover:#a64a14;--accent-soft:#f1dfd2;--danger-bg:#f7e4de;--danger-border:#d39c88;--danger-text:#7b3113;--success-bg:#e5eee1;--success-border:#a6ba9a;--success-text:#335029;--info-bg:#ece6dc;--info-border:#cfc2b3;--info-text:#4f453b;--shell-bg:#1f1b18;--shell-bg-muted:#2a2521;--shell-border:#3a332d;--shell-text:#f5ede4;--shell-text-muted:#c6b9aa;--shadow-sm:0 1px 2px #1a140e0f;--tournament-accent:#667eea;--tournament-accent-alt:#764ba2;--tournament-me-bg:linear-gradient(90deg, #667eea14, #764ba214);--tournament-me-bg-hover:linear-gradient(90deg, #667eea24, #764ba224);--win-color:#166534;--loss-color:#dc2626;--draw-color:#d97706;--draw-color-dark:#854d0e;--overlay-dark:18, 14, 10;--overlay-bg:#120e0a6b;--spinner-track:#e1d8cd;--z-dropdown:20;--z-sidebar:100;--z-modal:300;--z-toast:400}html,body,#app{min-height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(180deg, var(--app-bg) 0%, var(--app-bg-strong) 100%);color:var(--text);font-family:Avenir Next,Avenir,Helvetica Neue,sans-serif}body:before{content:"";pointer-events:none;opacity:.35;background-image:linear-gradient(#ffffff29 1px,#0000 1px);background-size:100% 32px;position:fixed;inset:0}#app{color:var(--text);position:relative}#app a{color:var(--accent)}#app button,#app input,#app select,#app textarea{font:inherit}#app .container{width:100%;max-width:1320px;margin:0 auto}#app .topbar{background:var(--shell-bg);height:56px;color:var(--shell-text);border-bottom:1px solid var(--shell-border);justify-content:space-between;align-items:center;padding:0 20px;display:flex}#app .topbar-left,#app .topbar-right{align-items:center;gap:12px;display:flex}#app .topbar-right{min-width:0}#app .topbar-brand{color:var(--shell-text);letter-spacing:-.01em;font-size:15px;font-weight:700}#app .topbar-profile-link{min-width:0;color:inherit;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;text-decoration:none;display:inline-flex}#app .topbar-profile-link:hover{background:var(--shell-bg-muted);border-color:#52483f}#app .topbar-usercopy{flex-direction:column;min-width:0;line-height:1.2;display:flex}#app .topbar-username{color:var(--shell-text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}#app .topbar-language{color:var(--shell-text-muted);text-transform:none;letter-spacing:0;background:0 0;border-radius:0;padding:0;font-size:11px;font-weight:500}#app .topbar-avatar{border:1px solid var(--shell-border);object-fit:cover;border-radius:8px;width:32px;height:32px}#app .topbar-avatar-fallback{color:var(--shell-text);background:#342d27;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}#app .btn-logout,#app .btn-toggle{border:1px solid var(--shell-border);min-height:36px;color:var(--shell-text-muted);box-shadow:none;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0 12px;display:inline-flex}#app .btn-menu{border:1px solid var(--shell-border);min-height:36px;color:var(--shell-text-muted);box-shadow:none;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0 12px}#app .btn-logout{width:36px;min-width:36px;padding:0}#app .btn-menu:hover,#app .btn-logout:hover,#app .btn-toggle:hover{background:var(--shell-bg-muted);color:var(--shell-text);border-color:#52483f}#app .sidebar{background:var(--shell-bg);border-right:1px solid var(--shell-border);align-self:stretch;width:248px;height:100%;min-height:100%}#app .sidebar.collapsed{width:64px}#app .sidebar-nav{gap:6px;padding:14px 10px;overflow-y:auto}#app .sidebar-link{min-height:40px;color:var(--shell-text-muted);border-radius:8px;padding:9px 12px}#app .sidebar-link+.sidebar-link{margin-top:1px}#app .sidebar-link:hover{background:var(--shell-bg-muted);color:var(--shell-text)}#app .sidebar-link.router-link-active{color:var(--shell-text);background:#342d27}#app .sidebar-sublink{border-left:1px solid #3a332d;border-radius:0 8px 8px 0;min-height:34px;margin-left:10px;padding-top:7px;padding-bottom:7px;padding-left:18px}#app .tournament-icon-circle{background:#3a332d;border-radius:6px;width:20px;height:20px}#app .sidebar-sublabel{font-size:12px}#app .tournament-icon-initial{color:var(--shell-text-muted)}#app .sidebar-backdrop{background:#120e0a6b}#app .login-view,#app .register-view,#app .recover-view,#app .restore-view{justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex}#app .auth-shell{background:#171715;border:1px solid #2a2d29;border-radius:10px;grid-template-columns:minmax(0,1.2fr) minmax(360px,420px);width:min(1120px,100%);margin:0 auto;display:grid;overflow:hidden;box-shadow:0 1px 2px #0b0c0a3d}#app .auth-art-panel{background:#101311;min-height:640px;position:relative}#app .auth-art-image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}#app .auth-art-panel:after{content:"";background:linear-gradient(#0a0e0d1f 0%,#0a0e0da3 100%);position:absolute;inset:0}#app .auth-panel{background:#f6f1e7;flex-direction:column;justify-content:center;padding:34px 32px;display:flex}#app .login-container,#app .register-container,#app .recover-container,#app .restore-container{width:100%;max-width:420px}#app .login-header,#app .register-header,#app .recover-header,#app .restore-header{text-align:left;color:var(--text);margin-bottom:20px}#app .login-header h1,#app .register-header h1,#app .recover-header h1,#app .restore-header h1{margin:0;font-size:30px}#app .login-form,#app .register-form-wrapper,#app .recover-form-wrapper,#app .restore-form-wrapper{padding:28px}#app .login-divider{color:var(--text-muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:20px 0;font-size:13px;display:grid}#app .login-divider:before,#app .login-divider:after{content:"";background:var(--border);height:1px}#app .login-divider span{padding:0}#app .toggle-password{color:var(--text-muted)}#app .toggle-password:hover{color:var(--accent)}#app .forgot-password-link,#app .back-link{text-align:center;color:var(--accent);margin-top:16px;font-size:14px;font-weight:500;text-decoration:none;display:block}#app .forgot-password-link:hover,#app .back-link:hover{text-decoration:underline}#app .welcome-view,#app .menu-view,#app .characters-view{min-height:100%;padding:20px}#app .menu-actions{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px}#app .auth-art-copy,#app .login-art-copy,#app .recover-art-copy,#app .restore-art-copy{z-index:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#121512bd;border:1px solid #758a7c38;border-radius:10px;padding:18px 20px;position:absolute;bottom:24px;left:24px;right:24px}#app .auth-art-copy h1,#app .login-art-copy h1,#app .recover-art-copy h1,#app .restore-art-copy h1{color:#f1f3ed;text-shadow:0 1px 2px #00000059;margin:0 0 8px;font-size:30px}#app .auth-art-copy p,#app .login-art-copy p,#app .recover-art-copy p,#app .restore-art-copy p{color:#c7d2c8;margin:0;line-height:1.5}#app .menu-actions{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:stretch;gap:16px;padding:28px;display:grid}#app .btn-main{min-height:56px;padding:16px 18px;font-size:16px}#app .toolbar{padding:18px}#app .btn-retry{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger-text);border-radius:8px}body .overlay-backdrop{background:#120e0a80;padding:20px}body .overlay-content{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px}body .btn-close{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px}body .btn-close:hover{background:var(--surface-muted)}body .overlay-image{border:1px solid var(--border);box-shadow:none;border-radius:8px}body .overlay-badge,body .overlay-grid-item{background:var(--surface-muted);border:1px solid var(--border);color:var(--text)}body .overlay-item-label,body .overlay-header-info p,body .overlay-loading,body .overlay-section h3{color:var(--text-muted)}body .overlay-header,body .confirm-dialog{border-color:var(--border)}body .confirm-overlay{background:#120e0a6b}body .confirm-dialog{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px}body .confirm-message{color:var(--text)}#app .btn-back-link{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:16px;padding:0;font-size:14px;font-weight:500;text-decoration:none;transition:color .16s;display:inline-flex}#app .btn-back-link:hover{color:var(--text)}#app .page-header{color:var(--text);justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}#app .page-header h1,#app .page-header h2,#app h1,#app h2,#app h3{color:var(--text);letter-spacing:-.02em}#app .page-header h1{margin:0;font-size:32px;font-weight:700}#app .section-title,#app .form-card h2,#app .organizer-form-card h2,#app .manage-card h2,#app .editions-card h2,#app .crews-header h2,#app .actions-card h2,#app .registrations-list-card h2,#app .info-card h2,#app .action-card h2,#app .danger-zone-title,#app .rounds-section h2,#app .warband-cards-title,#app .result-title,#app .modal-title{color:var(--text);letter-spacing:-.02em;margin:0 0 16px;font-size:20px;font-weight:700}#app .modal-subtitle,#app .manage-hint,#app .recover-description,#app .login-intro,#app .empty-state p,#app .error-message p,#app .success-message,#app .info-text,#app .pagination-info,#app .pagination-size,#app .field-hint,#app .input-hint,#app .warband-hint,#app .crew-member-count,#app .crews-empty,#app .edition-id,#app .no-crew,#app .empty-info,#app .round-date,#app .result-waiting,#app .tiebreaker-perfect-tie,#app .warband-name-text,#app .player-hero p,#app .login-art-copy p{color:var(--text-muted);font-size:14px;line-height:1.5}#app .form-group label,#app .edition-field label,#app .field-label,#app .result-field-label,#app .warband-slot-label,#app .pagination-jump-label,#app .password-rules-title,#app .permissions-title,#app .cards-section-title{color:var(--text);font-size:13px;font-weight:600}#app .card,#app .toolbar,#app .login-form,#app .recover-form-wrapper,#app .restore-form-wrapper,#app .register-form-wrapper,#app .notification-banner,#app .empty-state,#app .character-count,#app .error-message,#app .success-message,#app .feedback-message{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px}#app .form-group label,#app label{color:var(--text);margin-bottom:6px;font-size:13px;font-weight:600;display:block}#app input:not([type=checkbox]):not([type=radio]):not([type=file]),#app select,#app textarea{background:var(--surface-strong);width:100%;min-height:44px;color:var(--text);border:1px solid var(--border-strong);border-radius:8px;outline:none;padding:10px 12px;transition:border-color .16s,background-color .16s}#app input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,#app select:focus,#app textarea:focus{border-color:var(--accent);background:#fff}#app input:disabled,#app select:disabled,#app textarea:disabled,#app button:disabled{cursor:not-allowed;opacity:.65}#app .btn-primary,#app .btn-header,#app .btn-main,#app .btn-submit,#app .btn-login,#app .btn-header-large,#app .btn-level-up,#app .btn-confirm-accept{border:1px solid var(--accent);background:var(--accent);color:#fff;box-shadow:none;border-radius:8px}#app .btn-secondary,#app .btn-google,#app .btn-sort,#app .btn-confirm-cancel{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);box-shadow:none;border-radius:8px}#app .btn-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;text-decoration:underline}#app .btn-link:hover{color:var(--text)}#app .btn-counter{border:1px solid var(--border);background:var(--surface-muted);width:28px;height:28px;color:var(--text);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;transition:background .1s;display:inline-flex}#app .btn-counter:hover:not(:disabled){background:var(--border)}#app .btn-counter:disabled{opacity:.35;cursor:default}#app .btn-back,#app .btn-view-tournament,#app .btn-register,#app .btn-detail,#app .btn-edit,#app .btn-manage,#app .btn-archive,#app .btn-create-edition,#app .btn-icon-upload,#app .btn-manage-edition,#app .btn-submit-sm,#app .btn-cancel-sm,#app .btn-create,#app .btn-reset,#app .btn-delete,#app .btn-edit-scopes,#app .btn-page,#app .btn-retry,#app .btn-action-sm,#app .table-action-btn{appearance:none;cursor:pointer;border-style:solid;border-radius:8px;outline:none;justify-content:center;align-items:center;gap:6px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex;position:relative;transform:none;box-shadow:none!important}#app .btn-back,#app .btn-view-tournament,#app .btn-register,#app .btn-detail,#app .btn-edit,#app .btn-manage,#app .btn-archive,#app .btn-create-edition,#app .btn-icon-upload,#app .btn-manage-edition,#app .btn-submit-sm,#app .btn-cancel-sm,#app .btn-create,#app .btn-reset,#app .btn-delete,#app .btn-edit-scopes,#app .btn-retry,#app .btn-action-sm{min-height:32px;padding:0 12px;font-size:13px}#app .btn-page{min-width:32px;min-height:32px;padding:0 10px;font-size:12px}#app .table-action-btn{border:1px solid var(--border);background:var(--surface);width:32px;min-width:32px;height:32px;min-height:32px;color:var(--text-muted);padding:0;font-size:0;line-height:0}#app .btn-page-icon,#app .btn-page-jump,#app .btn-copy-email,#app .btn-edit-name,#app .btn-fullscreen{border-radius:8px;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;display:inline-flex}#app .table-action-btn svg,#app .btn-page-icon svg,#app .btn-page-jump svg,#app .btn-copy-email svg,#app .btn-edit-name svg,#app .btn-action svg{flex-shrink:0;width:16px;height:16px}#app .table-action-btn:hover,#app .table-action-btn:focus,#app .table-action-btn:focus-visible,#app .table-action-btn:active{outline:none;box-shadow:none!important}#app .table-actions-cell{text-align:right}#app .table-actions-row{white-space:nowrap;justify-content:flex-end;align-items:center;gap:4px;min-height:30px;display:inline-flex}#app .table-badge{border:1px solid var(--border);background:var(--surface-muted);color:var(--text);border-radius:8px;align-items:center;padding:2px 6px;font-size:10px;font-weight:700;line-height:1.1;display:inline-flex}#app .btn-back,#app .btn-detail,#app .btn-cancel,#app .btn-cancel-sm,#app .btn-page,#app .btn-edit-scopes,#app .btn-reset,#app .btn-manage,#app .btn-create-edition,#app .btn-icon-upload{border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}#app .btn-view-tournament,#app .btn-register,#app .btn-manage-edition,#app .btn-submit-sm,#app .btn-create{border:1px solid var(--accent);background:var(--accent);color:#fff}#app .btn-archive,#app .btn-reset{color:#7a4b11;background:#f3e6cd;border-color:#ccb080}#app .btn-edit,#app .btn-manage{color:#4f453b;background:#ece6dc;border:1px solid #d4c9ba}#app .btn-delete,#app .btn-retry{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}#app .btn-back:hover,#app .btn-detail:hover,#app .btn-cancel:hover,#app .btn-cancel-sm:hover,#app .btn-page:hover:not(:disabled),#app .btn-edit-scopes:hover,#app .btn-create-edition:hover,#app .btn-icon-upload:hover,#app .btn-manage:hover:not(:disabled){background:var(--surface-muted);border-color:var(--text-muted);color:var(--text);box-shadow:none;transform:none}#app .btn-edit:hover:not(:disabled),#app .btn-manage:hover:not(:disabled){color:#4f453b;background:#e4dccf;border-color:#c5b7a6}#app .btn-reset:hover:not(:disabled),#app .btn-archive:hover:not(:disabled){color:#7a4b11;box-shadow:none;background:#ead8b8;border-color:#b9965f;transform:none}#app .btn-view-tournament:hover,#app .btn-register:hover:not(:disabled),#app .btn-manage-edition:hover,#app .btn-submit-sm:hover:not(:disabled),#app .btn-create:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:none;transform:none}#app .btn-delete:hover:not(:disabled),#app .btn-retry:hover{border-color:var(--danger-border);color:var(--danger-text);background:#eed0c6}#app .btn-primary:hover:not(:disabled),#app .btn-header:hover:not(:disabled),#app .btn-main:hover:not(:disabled),#app .btn-submit:hover:not(:disabled),#app .btn-login:hover:not(:disabled),#app .btn-header-large:hover:not(:disabled),#app .btn-level-up:hover:not(:disabled),#app .btn-confirm-accept:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:none;transform:none}#app .btn-secondary:hover:not(:disabled),#app .btn-google:hover:not(:disabled),#app .btn-sort:hover:not(:disabled),#app .btn-confirm-cancel:hover:not(:disabled){background:var(--surface-muted);border-color:var(--text-muted);box-shadow:none;transform:none}#app .error-message,#app .feedback-error,#app .notification-error{color:var(--danger-text);background:var(--danger-bg);border-color:var(--danger-border)}#app .success-message,#app .feedback-success,#app .notification-success{color:var(--success-text);background:var(--success-bg);border-color:var(--success-border)}#app .notification-info{color:var(--info-text);background:var(--info-bg);border-color:var(--info-border)}#app .tournaments-list-view,#app .tournament-view,#app .tournament-detail-view,#app .admin-tournaments-view,#app .manage-edition-view,#app .match-view,#app .tournament-standings-view,#app .admin-warband-view,#app .warband-detail-view,#app .tournament-register-view,#app .player-in-edition-view,#app .round-view,#app .faction-detail-view,#app .users-view{min-height:100%;padding:20px}#app .tournaments-list,#app .surface-list{flex-direction:column;gap:16px;display:flex}#app .tournament-card,#app .tab-content,#app .form-card,#app .tournaments-table-wrapper,#app .standings-wrapper,#app .round-pairings-wrapper,#app .round-info-card,#app .actions-section,#app .info-card,#app .action-card,#app .danger-zone,#app .vs-arena,#app .action-bar,#app .warband-cards-section,#app .result-section,#app .player-hero,#app .stat-card,#app .warband-card,#app .match-card,#app .invite-form-wrapper,#app .create-form-wrapper,#app .loading-card,#app .edition-info-card,#app .actions-card,#app .registrations-list-card,#app .search-wrapper,#app .users-table-wrapper,#app .empty-state{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px}#app .player-hero{color:var(--text)}#app .search-wrapper{padding:12px}#app .inline-form,#app .edition-inline-form,#app .edit-scopes-panel{background:var(--surface-muted);border-top:1px solid var(--border)}#app .invite-dropdown,#app .invite-no-results,#app .tiebreaker-notice,#app .elimination-tiebreak-section,#app .result-opponent-summary,#app .result-game-entry,#app .report-pending-notice,#app .result-disputed-badge,#app .result-waiting-badge,#app .bracket-match,#app .bracket-match-placeholder{background:var(--surface);border:1px solid var(--border);color:var(--text)}#app .invite-chip,#app .warband-name-badge,#app .result-matchup-winner,#app .pairing-warband-name,#app .warband-name-fallback,#app .bracket-score-pair{background:var(--surface-muted);color:var(--text);border-radius:8px}#app .invite-chip{border:1px solid var(--border);padding:4px 10px}#app .invite-chip-remove{color:var(--text-muted)}#app .invite-chip-remove:hover{color:var(--text)}#app .tournament-header,#app .overlay-header{border-bottom:1px solid var(--border)}#app .tournament-header,#app .edition-title-row,#app .header-title{align-items:center;gap:12px;display:flex}#app .tournament-name,#app .edition-name,#app .header-title h1,#app .edition-title-row h2,#app .actions-card h2,#app .registrations-list-card h2,#app .form-card h2{color:var(--text)}#app .tournament-game-type,#app .info-label,#app .edition-row-meta,#app .input-hint,#app .field-hint,#app .edition-field label,#app .warband-hint,#app .info-text,#app .pagination-info,#app .warband-name-text,#app .no-icon,#app .field-label,#app .org-select-player-label,#app .round-date,#app .result-glory-label,#app .result-opponent-label,#app .result-waiting,#app .tiebreaker-perfect-tie,#app .step-label,#app .empty-round-cell,#app .report-game-title,#app .report-glory-prefix,#app .report-glory-label,#app .result-empty,#app .bracket-vs-label,#app .bracket-draw-label,#app .bracket-player-bye,#app .bracket-player-tbd,#app .bracket-bye-label,#app .cards-section-title,#app .match-vs,#app .match-pending,#app .action-hint{color:var(--text-muted)}#app .tournament-game-type,#app .badge,#app .status-badge,#app .registrations-table th{text-transform:none;letter-spacing:0}#app .badge,#app .status-badge,#app .scope-badge,#app .overlay-badge,#app .match-outcome-badge,#app .result-winner-badge,#app .result-disputed-badge,#app .result-waiting-badge{border:1px solid var(--border);background:var(--surface-muted);color:var(--text);border-radius:8px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex}#app .badge-registration-open,#app .badge-active,#app .badge-reg-confirmed,#app .status-badge.finished,#app .status-badge.confirmed,#app .badge-win,#app .result-matchup-mine,#app .result-waiting-badge,#app .success-message-inline,#app .round-status-finished,#app .pairing-status-completed,#app .result-status-confirmed,#app .calendar-row-generated,#app .step-done .step-dot,#app .bracket-player-winner{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}#app .badge-finished,#app .badge-reg-replaced,#app .badge-edition-status,#app .status-badge.replaced,#app .status-badge.in_progress,#app .match-in-progress,#app .round-status-in_progress,#app .pairing-status-ready,#app .pairing-status-in_progress,#app .result-status-submitted,#app .step-active .step-dot,#app .connector-done,#app .btn-step-finish,#app .btn-step-action,#app .btn-select-warband,#app .btn-confirm-warband,#app .btn-validate-result,#app .btn-select-warband-org,#app .btn-confirm,#app .btn-report,#app .btn-action,#app .btn-action-sm,#app .btn-visibility,#app .btn-copy-url,#app .bracket-match-active,#app .bracket-match-mine,#app .result-matchup-draw,#app .badge-draw{color:#5a4d3d;background:#e9e4dc;border-color:#cdc0af}#app .badge-cancelled,#app .status-badge.cancelled,#app .status-badge.withdrawn,#app .badge-reg-withdrawn,#app .match-loss,#app .badge-loss,#app .error-message-inline,#app .pairing-status-disputed,#app .result-status-disputed,#app .result-dispute-label,#app .action-error,#app .report-form-error,#app .round-status-pending,#app .pairing-status-awaiting_selection,#app .result-status-pending,#app .btn-withdraw,#app .btn-resolve,#app .btn-danger,#app .danger-zone{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-text)}#app .status-badge.pending,#app .result-status-pending{color:#6f6a61;background:#f1f0ec;border-color:#d7d3cb}#app .badge-draft,#app .badge-reg-pending,#app .status-badge.draft,#app .match-draw,#app .round-status-pending,#app .pairing-status-awaiting_result,#app .report-pending-notice,#app .elimination-tiebreak-section,#app .tiebreaker-notice,#app .btn-start,#app .btn-reactivate,#app .btn-step-start{color:#6d5837;background:#eee6d8;border-color:#d4c6af}#app .tabs,#app .sub-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}#app .tab,#app .sub-tab{min-height:38px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:8px 12px;font-size:14px;font-weight:600;display:inline-flex}#app .tab:hover,#app .sub-tab:hover,#app .tab.active,#app .sub-tab.active{color:var(--text);border-bottom-color:var(--accent)}#app .tab-dot,#app .dot-open,#app .dot-active,#app .dot-finished,#app .dot-default{width:8px;height:8px;box-shadow:none;border-radius:999px}#app .dot-open,#app .dot-active{background:var(--accent)}#app .dot-finished{background:#8d7862}#app .dot-default{background:#b7ab9c}#app .registrations-table th,#app .editions-sub-table th,#app .tournaments-table th,#app .users-table th{background:var(--surface-muted);color:var(--text);border-bottom:1px solid var(--border)}#app .registrations-table td,#app .editions-sub-table td,#app .tournaments-table td,#app .users-table td{color:var(--text);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}#app .tournaments-table tbody tr:hover,#app .users-table tbody tr:hover{background:#f6f0e8}#app .warband-list-item{background:var(--surface-muted);border:1px solid var(--border);color:var(--text)}#app .warband-chip,#app .btn-warband,#app .warband-picker-option,#app .match-game-row,#app .result-game-row,#app .report-game-row,#app .report-glory-row,#app .result-game-entry,#app .result-opponent-summary,#app .lifecycle-step,#app .bracket-player,#app .result-game-entry{border-radius:8px}#app .warband-chip,#app .btn-warband,#app .warband-picker-option,#app .match-game-row,#app .result-opponent-summary,#app .result-game-entry,#app .bracket-match,#app .bracket-match-placeholder{border:1px solid var(--border);background:var(--surface-muted)}#app .btn-warband-active,#app .warband-picker-option--selected,#app .drop-target tr{background:var(--accent-soft);border-color:var(--accent);border-width:2px}#app .step-dot{border:2px solid var(--border);background:var(--surface-muted)}#app .step-check{color:var(--text)}#app .lifecycle-connector,#app .player-side:first-child,#app .pairing-id-row,#app .action-group,#app .subsection,#app .round-pairings-header,#app .bracket-column-header,#app .bracket-action{border-color:var(--border)}#app .drop-target tr,#app tbody.drop-target{outline-color:#b89b7d}#app .vs-badge,#app .result-confirmed-label,#app .elimination-tiebreak-title,#app .tiebreaker-title,#app .bracket-round-name,#app .round-title,#app .match-player.is-me,#app .select-hint,#app .faction-sheet-hint-sm{color:var(--accent-hover);-webkit-text-fill-color:initial}#app .vs-badge:before,#app .vs-badge:after{display:none}#app .lightbox-overlay{background:#120e0ad6}#app .lightbox-close,#app .btn-fullscreen{color:#fff;background:#120e0a94;border:1px solid #fff3}#app .lightbox-img,#app .sheet-img,#app .fighter-card-img{box-shadow:none;border-radius:8px}#app .warband-select,#app .search-input,#app .inline-input,#app .inline-select{background:var(--surface-strong);border:1px solid var(--border-strong);color:var(--text);border-radius:8px}#app .warband-select:focus,#app .search-input:focus,#app .inline-input:focus,#app .inline-select:focus{border-color:var(--accent);box-shadow:none}body .modal-overlay{background:var(--overlay-bg);z-index:var(--z-modal);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}body .modal-box{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;width:min(100%,560px);padding:24px}body .modal-box-wide{width:min(100%,980px)}body .modal-title{color:var(--text);margin:0 0 20px;font-size:18px;font-weight:700}#app .loading,#app .overlay-loading,#app .empty-state p,#app .character-count,#app .recover-description,#app .welcome-subtitle,#app .welcome-hint{color:var(--text-muted)}#app .spinner{border:4px solid var(--spinner-track);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto 12px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:where(#app) table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}:where(#app) th,:where(#app) td{text-align:left;border-bottom:1px solid var(--border);padding:12px 14px}:where(#app) th{background:var(--surface-muted);color:var(--text);font-size:13px;font-weight:700}:where(#app) td{color:var(--text)}:where(#app) tr:last-child td{border-bottom:none}@media (width<=900px){#app .page-header{flex-direction:column;align-items:flex-start}#app .auth-shell{grid-template-columns:1fr}#app .auth-art-panel{min-height:260px}}@media (width<=768px){body:before{opacity:.2}#app .topbar{height:52px;padding:0 12px}#app .topbar-right{gap:8px}#app .sidebar.mobile-open{width:248px;height:calc(100vh - 52px);min-height:calc(100vh - 52px);position:fixed;top:52px}#app .sidebar-backdrop{top:52px}#app .container{max-width:100%}#app .auth-shell{border-left:none;border-right:none;border-radius:0}#app .auth-art-panel{min-height:220px}#app .auth-panel{padding:24px 20px}#app .page-header h1{font-size:28px}}
