:root{--color-primary: #be185d;--color-primary-light: #e11d73;--color-primary-dark: #9d174d;--color-primary-50: #fef1f6;--color-primary-100: #fce4ef;--color-secondary: #7e22ce;--color-secondary-light: #a855f7;--color-secondary-dark: #6b21a8;--color-secondary-50: #faf5ff;--color-tartan: #1e3a5f;--color-tartan-light: #2d5a8a;--color-bg: #fdf8fa;--color-bg-card: #ffffff;--color-bg-muted: #f5eff2;--color-text: #1f1225;--color-text-muted: #6b5f73;--color-text-inverse: #fdf8fa;--color-border: #d6cdd9;--color-border-light: #ebe5ed;--color-success: #15803d;--color-success-light: #dcfce7;--color-warning: #a16207;--color-warning-light: #fef9c3;--color-error: #b91c1c;--color-error-light: #fee2e2;--color-info: #7e22ce;--color-info-light: #f3e8ff;--color-gold: #ca8a04;--color-gold-bg: rgba(202, 138, 4, .1);--color-silver: #71717a;--color-silver-bg: rgba(113, 113, 122, .1);--color-bronze: #a16207;--color-bronze-bg: rgba(161, 98, 7, .1);--font-display: "DM Serif Display", Georgia, "Times New Roman", serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "DM Mono", "SF Mono", "Fira Code", "Consolas", monospace;--font-family: var(--font-body);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-2xs: .125rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-xs: .375rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(31, 18, 37, .05);--shadow-sm: 0 2px 4px rgba(31, 18, 37, .08);--shadow-md: 0 4px 12px rgba(31, 18, 37, .1);--shadow-lg: 0 8px 24px rgba(31, 18, 37, .14);--shadow-xl: 0 16px 48px rgba(31, 18, 37, .18);--shadow-glow-primary: 0 0 20px rgba(190, 24, 93, .25);--shadow-glow-success: 0 0 16px rgba(21, 128, 61, .2);--shadow-focus: 0 0 0 3px rgba(190, 24, 93, .2);--shadow-focus-error: 0 0 0 3px rgba(185, 28, 28, .15);--max-width: 480px;--nav-height: 56px;--header-height: 56px;--tap-target: 44px;--duration-instant: .1s;--duration-fast: .15s;--duration-base: .25s;--duration-slow: .4s;--duration-slower: .6s;--easing-default: cubic-bezier(.4, 0, .2, 1);--easing-bounce: cubic-bezier(.34, 1.56, .64, 1);--easing-spring: cubic-bezier(.22, 1, .36, 1);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--tartan-pattern: repeating-linear-gradient( 0deg, transparent, transparent 22px, rgba(190, 24, 93, .07) 22px, rgba(190, 24, 93, .07) 24px, transparent 24px, transparent 44px ), repeating-linear-gradient( 90deg, transparent, transparent 22px, rgba(126, 34, 206, .05) 22px, rgba(126, 34, 206, .05) 24px, transparent 24px, transparent 44px ), repeating-linear-gradient( 0deg, transparent, transparent 42px, rgba(30, 58, 95, .04) 42px, rgba(30, 58, 95, .04) 46px, transparent 46px, transparent 88px ), repeating-linear-gradient( 90deg, transparent, transparent 42px, rgba(30, 58, 95, .04) 42px, rgba(30, 58, 95, .04) 46px, transparent 46px, transparent 88px );--tartan-stripe: linear-gradient( 90deg, var(--color-primary) 0%, var(--color-primary) 20%, var(--color-tartan) 20%, var(--color-tartan) 25%, var(--color-secondary) 25%, var(--color-secondary) 40%, var(--color-tartan) 40%, var(--color-tartan) 45%, var(--color-primary) 45%, var(--color-primary) 60%, var(--color-primary-dark) 60%, var(--color-primary-dark) 65%, var(--color-secondary) 65%, var(--color-secondary) 80%, var(--color-primary-dark) 80%, var(--color-primary-dark) 85%, var(--color-primary) 85%, var(--color-primary) 100% )}@media(prefers-color-scheme:dark){:root{--color-bg: #1a1118;--color-bg-card: #261e2a;--color-bg-muted: #322a36;--color-text: #f5eff2;--color-text-muted: #a89aae;--color-text-inverse: #1a1118;--color-border: #463d4a;--color-border-light: #3a3240;--color-primary: #f472b6;--color-primary-light: #f9a8d4;--color-primary-dark: #ec4899;--color-primary-50: rgba(244, 114, 182, .1);--color-primary-100: rgba(244, 114, 182, .15);--color-secondary: #c084fc;--color-secondary-light:#d8b4fe;--color-secondary-dark: #a855f7;--color-secondary-50: rgba(192, 132, 252, .1);--color-tartan: #60a5fa;--color-tartan-light: #93c5fd;--color-success: #4ade80;--color-success-light: rgba(74, 222, 128, .15);--color-warning: #fbbf24;--color-warning-light: rgba(251, 191, 36, .15);--color-error: #f87171;--color-error-light: rgba(248, 113, 113, .15);--color-info: #a855f7;--color-info-light: rgba(168, 85, 247, .15);--color-gold: #eab308;--color-gold-bg: rgba(234, 179, 8, .15);--color-silver: #a1a1aa;--color-silver-bg: rgba(161, 161, 170, .15);--color-bronze: #d97706;--color-bronze-bg: rgba(217, 119, 6, .15);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .25);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .35);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .4);--shadow-glow-primary: 0 0 20px rgba(244, 114, 182, .3);--shadow-glow-success: 0 0 16px rgba(74, 222, 128, .25);--shadow-focus: 0 0 0 3px rgba(244, 114, 182, .3);--shadow-focus-error: 0 0 0 3px rgba(248, 113, 113, .25);--tartan-pattern: repeating-linear-gradient( 0deg, transparent, transparent 22px, rgba(244, 114, 182, .06) 22px, rgba(244, 114, 182, .06) 24px, transparent 24px, transparent 44px ), repeating-linear-gradient( 90deg, transparent, transparent 22px, rgba(192, 132, 252, .05) 22px, rgba(192, 132, 252, .05) 24px, transparent 24px, transparent 44px ), repeating-linear-gradient( 0deg, transparent, transparent 42px, rgba(96, 165, 250, .04) 42px, rgba(96, 165, 250, .04) 46px, transparent 46px, transparent 88px ), repeating-linear-gradient( 90deg, transparent, transparent 42px, rgba(96, 165, 250, .04) 42px, rgba(96, 165, 250, .04) 46px, transparent 46px, transparent 88px )}}@media(min-width:481px){:root{--max-width: 600px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes glowPulse{0%{box-shadow:var(--shadow-glow-primary)}50%{box-shadow:0 0 30px #be185d59}to{box-shadow:var(--shadow-glow-primary)}}@keyframes checkDraw{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);background-image:var(--tartan-pattern);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;min-height:100dvh}img,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold);color:var(--color-text)}#app{display:flex;flex-direction:column;min-height:100dvh;max-width:var(--max-width);margin:0 auto;background:var(--color-bg)}#app-header{position:sticky;top:0;z-index:100;height:var(--header-height);background:var(--color-primary);color:var(--color-text-inverse);display:flex;align-items:center;padding:0 var(--space-md);box-shadow:var(--shadow-sm)}#app-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:var(--tartan-stripe)}#app-main{flex:1;padding:var(--space-md);padding-bottom:calc(var(--nav-height) + var(--space-md))}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--max-width);height:var(--nav-height);background:var(--color-bg-card);border-top:1px solid var(--color-border-light);display:flex;justify-content:space-around;align-items:center;z-index:100;padding-bottom:env(safe-area-inset-bottom);box-shadow:var(--shadow-sm)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:var(--tap-target);min-height:var(--tap-target);justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);transition:color var(--transition-fast)}.bottom-nav a.active{color:var(--color-primary);font-weight:var(--font-weight-bold)}.page{animation:fadeIn var(--transition-base)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.loading-spinner{display:flex;justify-content:center;padding:var(--space-2xl)}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.skip-link{position:absolute;top:-100px;left:var(--space-md);background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);z-index:200;transition:top var(--transition-fast)}.skip-link:focus{top:var(--space-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--tap-target);padding:var(--space-sm) var(--space-lg);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-primary-light);box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--color-bg-muted);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-card);border-color:var(--color-primary);color:var(--color-primary)}.btn-danger{background:var(--color-error);color:var(--color-text-inverse)}.btn-full{width:100%}.btn-sm{min-height:36px;padding:var(--space-xs) var(--space-md);font-size:var(--font-size-sm)}.btn-lg{min-height:52px;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.link-btn{background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;padding:var(--space-xs);text-decoration:underline}.spinner-inline{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--color-text-inverse);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:var(--space-xs)}.card{background:var(--color-bg-card);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-xs);border:1px solid var(--color-border-light);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.card:hover{box-shadow:var(--shadow-sm)}.card+.card{margin-top:var(--space-md)}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.form-input{width:100%;min-height:var(--tap-target);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);font-size:var(--font-size-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form-input.error{border-color:var(--color-error);box-shadow:var(--shadow-focus-error)}.form-error{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-xs);min-height:1em}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-xs)}.form-row{display:flex;gap:var(--space-md)}.form-group--half{flex:1}.form-group--third{flex:0 0 30%}.form-group--two-thirds{flex:1}textarea.form-input{resize:vertical;min-height:60px}select.form-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.password-strength{height:4px;background:var(--color-border-light);border-radius:2px;margin-top:var(--space-xs);overflow:hidden}.password-strength-bar{height:100%;border-radius:2px;transition:width var(--transition-base),background var(--transition-base);width:0}.strength-weak{background:var(--color-error)}.strength-fair{background:var(--color-warning)}.strength-good{background:var(--color-info)}.strength-strong{background:var(--color-success)}.position-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-sm);margin:var(--space-md) 0}.position-btn{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);background:var(--color-bg-muted);border:2px solid var(--color-border);border-radius:var(--radius-sm);min-height:var(--tap-target);transition:all var(--transition-fast);cursor:pointer;user-select:none;-webkit-user-select:none}.position-btn:hover{border-color:var(--color-primary-light);background:var(--color-bg-card)}.position-btn.selected{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary);box-shadow:var(--shadow-glow-primary);animation:popIn var(--duration-base) var(--easing-bounce)}.position-btn:active{transform:scale(.93)}.position-btn--np{font-size:var(--font-size-sm)}.position-grid--compact{gap:var(--space-xs)}.position-grid--compact .position-btn{font-size:var(--font-size-base);min-height:38px}.medal-selector{display:flex;gap:var(--space-sm);padding:var(--space-sm) 0;flex-wrap:wrap}.medal-option{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);border:2px solid var(--color-border);font-size:var(--font-size-sm);transition:all var(--transition-fast);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:40px}.medal-option.selected{border-color:currentColor;font-weight:var(--font-weight-bold);background:var(--color-bg-muted)}.medal-option[data-medal=gold]{color:var(--color-gold)}.medal-option[data-medal=silver]{color:var(--color-silver)}.medal-option[data-medal=bronze]{color:var(--color-bronze)}#toast-container{position:fixed;top:var(--space-md);left:50%;transform:translate(-50%);z-index:1000;width:100%;max-width:var(--max-width);padding:0 var(--space-md);pointer-events:none}.toast{padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-sm);font-size:var(--font-size-sm);animation:slideDown var(--transition-base);pointer-events:auto;box-shadow:var(--shadow-md)}.toast-success{background:var(--color-primary);color:var(--color-text-inverse)}.toast-error{background:var(--color-error);color:var(--color-text-inverse)}.toast-info{background:var(--color-secondary);color:var(--color-text-inverse)}.offline-bar{background:var(--color-warning);color:var(--color-text);text-align:center;padding:var(--space-xs) var(--space-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.empty-state{text-align:center;padding:var(--space-2xl) var(--space-md);color:var(--color-text-muted)}.empty-state h3{margin-bottom:var(--space-sm)}.page-title{font-size:var(--font-size-xl);margin-bottom:var(--space-lg)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.stat-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-xs)}.auth-page{display:flex;flex-direction:column;min-height:calc(100dvh - var(--header-height) - var(--space-md) * 2)}.auth-hero{text-align:center;padding:var(--space-2xl) 0 var(--space-lg);background-image:var(--tartan-pattern);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.auth-hero--compact{padding:var(--space-lg) 0 var(--space-md)}.auth-logo{font-family:var(--font-display);font-size:var(--font-size-2xl);color:var(--color-primary);margin-bottom:var(--space-sm)}.auth-title{font-size:var(--font-size-xl);color:var(--color-primary);margin-bottom:var(--space-xs)}.auth-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.auth-form{flex:1}.auth-links{text-align:center;margin-top:var(--space-md)}.auth-footer{text-align:center;margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border-light)}.auth-footer p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-sm)}.consent-fieldset{border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.consent-legend{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);padding:0 var(--space-sm);color:var(--color-text)}.consent-item{display:flex;gap:var(--space-sm);align-items:flex-start;padding:var(--space-sm) 0;cursor:pointer}.consent-checkbox{flex-shrink:0;width:22px;height:22px;margin-top:2px;accent-color:var(--color-primary)}.consent-text{font-size:var(--font-size-sm);line-height:1.4}.consent-text em{color:var(--color-text-muted);font-style:normal;font-size:var(--font-size-xs)}.comp-header{margin-bottom:var(--space-lg)}.comp-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-sm)}.comp-notes{margin-top:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-muted)}.back-link{display:inline-flex;align-items:center;font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-sm);min-height:var(--tap-target)}.dance-list{display:flex;flex-direction:column;gap:var(--space-sm)}.dance-list-item{display:flex;align-items:center;justify-content:space-between;text-decoration:none;padding:var(--space-md);transition:background var(--transition-fast)}.dance-list-item:active{background:var(--color-bg-muted)}.dance-list-info{flex:1}.dance-list-name{display:block;font-size:var(--font-size-base)}.dance-list-status{display:block;font-size:var(--font-size-xs);margin-top:var(--space-xs)}.status-done{color:var(--color-success)}.status-done:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-success);margin-right:var(--space-xs);vertical-align:middle}.status-pending{color:var(--color-text-muted)}.dance-list-arrow{font-size:var(--font-size-xl);color:var(--color-text-muted);font-weight:var(--font-weight-normal);padding-left:var(--space-sm)}.dance-selection{border:none;padding:0;margin-bottom:var(--space-md)}.dance-group-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin:var(--space-md) 0 var(--space-sm)}.dance-checkbox-grid{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.dance-chip{display:inline-flex;align-items:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);border:2px solid var(--color-border);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);user-select:none;-webkit-user-select:none}.dance-chip.selected{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.dance-chip:active{transform:scale(.95)}.dance-chip--disabled{opacity:.45;cursor:not-allowed;pointer-events:none;border-style:dashed}.btn:focus-visible,.dance-chip:focus-visible,.position-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:var(--shadow-focus)}.results-page{padding-bottom:var(--space-md)}.results-header{margin-bottom:var(--space-sm)}.results-dance-name{font-size:var(--font-size-xl);margin-bottom:0}.edit-badge{display:inline-block;background:var(--color-info);color:var(--color-text-inverse);font-size:var(--font-size-xs);padding:2px var(--space-sm);border-radius:var(--radius-full);margin-left:var(--space-sm);vertical-align:middle}.dance-tabs{display:flex;gap:var(--space-xs);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:var(--space-sm) 0;margin-bottom:var(--space-md)}.dance-tabs::-webkit-scrollbar{display:none}.dance-tab{flex-shrink:0;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:var(--color-bg-muted);border:1px solid var(--color-border-light);white-space:nowrap;text-decoration:none;min-height:32px;display:flex;align-items:center;transition:all var(--transition-fast)}.dance-tab.active{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.dance-tab.has-results:not(.active){color:var(--color-success);border-color:var(--color-success)}.dance-tab.has-results:not(.active):before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-success);margin-right:var(--space-xs);flex-shrink:0}.results-section{margin-bottom:var(--space-lg)}.results-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.results-section-header h3{font-size:var(--font-size-lg)}.dancer-badge{display:inline-block;background:var(--color-gold);color:var(--color-text-inverse);font-size:var(--font-size-sm);padding:2px var(--space-sm);border-radius:var(--radius-full);font-weight:var(--font-weight-bold)}.trophy-row{margin-top:var(--space-sm);transition:all var(--transition-base)}.hidden{display:none!important}.other-dancer-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}.other-dancer-info{flex:1;min-width:0}.other-dancer-number{font-weight:var(--font-weight-bold);color:var(--color-primary);margin-right:var(--space-xs)}.other-dancer-name{font-size:var(--font-size-sm);color:var(--color-text-muted)}.other-dancer-position{display:flex;align-items:center;gap:var(--space-xs)}.position-badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);background:var(--color-bg-muted);border:1px solid var(--color-border)}.position-badge.position-top3{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.medal-mini{font-size:var(--font-size-base)}.other-dancer-remove{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:var(--font-size-lg);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.other-dancer-remove:hover{color:var(--color-error);background:var(--color-error-light)}.add-dancer-form{margin-top:var(--space-sm);border:2px dashed var(--color-border);background:var(--color-bg-muted)}.results-actions{margin:var(--space-lg) 0 var(--space-md)}.link-section{margin-bottom:var(--space-xl)}.link-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.link-section-header h3{font-size:var(--font-size-lg)}.link-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.link-card-info{flex:1;min-width:0}.link-card-info strong{display:block}.link-card-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.link-card-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.share-code-card{text-align:center;background:var(--color-bg-muted);border:2px dashed var(--color-primary);margin-bottom:var(--space-md)}.share-code-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.share-code-value{font-size:var(--font-size-2xl);font-family:var(--font-mono);font-weight:var(--font-weight-bold);color:var(--color-primary);letter-spacing:4px;padding:var(--space-sm) 0;-webkit-user-select:all;user-select:all}.share-code-expiry{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-md)}.info-card{margin-top:var(--space-lg);background:var(--color-bg-muted);border:1px solid var(--color-border-light)}.info-card h4{margin-bottom:var(--space-sm);font-size:var(--font-size-base)}.info-steps{padding-left:var(--space-lg);list-style:decimal;font-size:var(--font-size-sm);line-height:1.8}.info-note{margin-top:var(--space-md);font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.settings-section{margin-bottom:var(--space-xl)}.settings-section-title{font-size:var(--font-size-lg);margin-bottom:var(--space-md)}.settings-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.settings-item p{margin-top:var(--space-xs)}.settings-actions-card{margin-top:var(--space-sm)}.settings-danger-card{margin-top:var(--space-md);border-color:var(--color-error);border-width:2px}.danger-title{color:var(--color-error);margin-bottom:var(--space-sm)}.toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0;cursor:pointer}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-border);border-radius:28px;transition:background var(--transition-fast)}.toggle-slider:before{content:"";position:absolute;height:22px;width:22px;left:3px;bottom:3px;background:var(--color-text-inverse);border-radius:50%;transition:transform var(--transition-fast);box-shadow:var(--shadow-sm)}.toggle input:checked+.toggle-slider{background:var(--color-primary)}.toggle input:checked+.toggle-slider:before{transform:translate(24px)}.toggle input:focus-visible+.toggle-slider{box-shadow:var(--shadow-focus)}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.skip-link{position:absolute;top:-100%;left:var(--space-md);background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);z-index:9999;transition:top var(--transition-fast)}.skip-link:focus{top:var(--space-md)}.legal-page{padding-bottom:var(--space-xl)}.legal-back{display:inline-block;margin-bottom:var(--space-md);font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:none}.legal-back:hover{text-decoration:underline}.legal-content{max-width:640px;line-height:1.7;font-size:var(--font-size-base);color:var(--color-text)}.legal-section{margin-bottom:var(--space-lg)}.legal-section h3{font-family:var(--font-heading);font-size:var(--font-size-lg);color:var(--color-primary-dark);margin-bottom:var(--space-sm)}.legal-section h4{font-weight:var(--font-weight-semibold);margin-top:var(--space-md);margin-bottom:var(--space-xs);color:var(--color-text)}.legal-section ul,.legal-section ol{padding-left:var(--space-lg);margin-bottom:var(--space-sm)}.legal-section li{margin-bottom:var(--space-xs)}.legal-rights-list li{margin-bottom:var(--space-md)}.legal-summary-box{background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-md);padding:var(--space-md)}.legal-divider{border:none;border-top:1px solid var(--color-border-light);margin:var(--space-xl) 0}.legal-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--space-md)}.legal-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.legal-table th,.legal-table td{text-align:left;padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--color-border-light)}.legal-table th{background:var(--color-bg-muted);font-weight:var(--font-weight-semibold);color:var(--color-text);position:sticky;top:0}.legal-table td{color:var(--color-text)}.legal-table tr:last-child td{border-bottom:none}.legal-updated{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-lg)}.consent-text a{color:var(--color-primary);text-decoration:underline;font-weight:var(--font-weight-medium)}.consent-text a:hover{color:var(--color-primary-dark)}@media(min-width:481px){:root{--max-width: 600px}.stats-grid{grid-template-columns:repeat(4,1fr)}.position-grid{max-width:320px}.form-row{flex-wrap:nowrap}}.roster-page{padding-bottom:var(--space-2xl)}.roster-header{margin-bottom:var(--space-md)}.roster-count{font-weight:var(--font-weight-normal);color:var(--color-text-muted);font-size:var(--font-size-sm)}.roster-add-form{padding:var(--space-md);margin-bottom:var(--space-md);background:var(--color-bg-card)}.roster-add-label{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.05em}.roster-add-row{display:flex;gap:var(--space-sm);align-items:stretch}.roster-number-input{width:72px;flex-shrink:0;text-align:center;font-weight:var(--font-weight-bold);font-size:var(--font-size-lg)}.roster-name-input{flex:1}.roster-add-btn{flex-shrink:0;min-width:64px}.roster-error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--space-xs);min-height:1.2em}.roster-list{margin-bottom:var(--space-md)}.roster-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs);min-height:var(--tap-target)}.roster-item--editing{padding:var(--space-md)}.roster-item-info{display:flex;align-items:center;gap:var(--space-sm);flex:1}.roster-self-star{color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);background:var(--color-primary-50);padding:1px var(--space-xs);border-radius:var(--radius-xs)}.roster-item-number{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);color:var(--color-primary);min-width:48px}.roster-item-name{color:var(--color-text)}.roster-item-actions{display:flex;gap:var(--space-sm)}.roster-edit-btn,.roster-delete-btn{background:none;border:none;font-size:var(--font-size-lg);cursor:pointer;padding:var(--space-xs);min-width:var(--tap-target);min-height:var(--tap-target);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.roster-edit-btn:hover{background:var(--color-bg-muted)}.roster-delete-btn:hover{background:var(--color-error-light)}.roster-edit-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-sm)}.roster-edit-number{width:72px;flex-shrink:0}.roster-edit-name{flex:1}.roster-edit-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.roster-hint{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-md)}.roster-actions{margin-top:var(--space-md)}.tap-to-place-page{padding-bottom:var(--space-2xl)}.results-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.dance-progress-badge{background:var(--color-secondary);color:var(--color-text-inverse);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);white-space:nowrap}.section-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:var(--space-sm)}.section-divider{border:none;border-top:1px solid var(--color-border-light);margin:var(--space-md) 0}.placed-section,.placed-list{margin-bottom:var(--space-sm)}.placed-empty{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-md);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.placed-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);min-height:var(--tap-target);background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);margin-bottom:2px;cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.placed-item:hover,.placed-item:focus-visible{background:var(--color-bg-muted)}.placed-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.placed-item--pos1{border-left:4px solid var(--color-gold);background:var(--color-gold-bg)}.placed-item--pos2{border-left:4px solid var(--color-silver);background:var(--color-silver-bg)}.placed-item--pos3{border-left:4px solid var(--color-bronze);background:var(--color-bronze-bg)}.placed-position{font-weight:var(--font-weight-bold);font-size:var(--font-size-base);min-width:36px;color:var(--color-primary)}.placed-dancer{flex:1;display:flex;align-items:center;gap:var(--space-xs)}.placed-number{font-weight:var(--font-weight-bold);color:var(--color-text)}.placed-name{color:var(--color-text-muted);font-size:var(--font-size-sm)}.placed-points{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-gold);background:var(--color-gold-bg);padding:2px 8px;border-radius:var(--radius-full);white-space:nowrap}.undo-btn{display:flex;align-items:center;justify-content:center;margin:var(--space-sm) auto;min-height:48px;min-width:120px}.tap-next-header{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);text-align:center;padding:var(--space-sm) 0;margin-bottom:var(--space-sm)}.dancer-card-grid{display:grid;gap:var(--space-sm);margin-bottom:var(--space-md)}.dancer-card-grid--cols-2{grid-template-columns:repeat(2,1fr)}.dancer-card-grid--cols-3{grid-template-columns:repeat(3,1fr)}.dancer-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;padding:var(--space-sm);background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);position:relative}.dancer-card:hover{border-color:var(--color-primary);background:var(--color-primary-50)}.dancer-card:active{transform:scale(.95);background:var(--color-primary-100);border-color:var(--color-primary);box-shadow:var(--shadow-glow-primary)}.dancer-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.dancer-card-number{font-size:20px;font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1}.dancer-card-name{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:2px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.dancer-card-self{position:absolute;top:2px;right:4px;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);background:var(--color-primary-50);padding:0 var(--space-xs);border-radius:var(--radius-xs)}.results-bottom-actions{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}.dance-order-list{margin-bottom:var(--space-md)}.dance-order-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs);min-height:var(--tap-target)}.dance-order-number{font-weight:var(--font-weight-bold);color:var(--color-primary);min-width:24px}.dance-order-name{flex:1}.dance-order-buttons{display:flex;gap:var(--space-xs)}.dance-order-up,.dance-order-down{min-width:var(--tap-target);min-height:var(--tap-target);padding:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.custom-dance-inline{margin-top:var(--space-sm)}.comp-section{margin-bottom:var(--space-md)}.comp-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.comp-section-header h3{margin:0}.comp-state-badge{display:inline-block;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full)}.comp-state--setup{background:var(--color-bg-muted);color:var(--color-text-muted)}.comp-state--ready{background:var(--color-success-light);color:var(--color-success)}.comp-state--recording{background:var(--color-warning-light);color:var(--color-warning)}.comp-state--complete{background:var(--color-success-light);color:var(--color-success)}.comp-dancer-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.dancer-chip{display:inline-block;font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-muted);border-radius:var(--radius-full);color:var(--color-text)}.dancer-chip--self{background:var(--color-primary-50);color:var(--color-primary-dark);font-weight:var(--font-weight-medium)}.leaderboard-page{padding-bottom:var(--space-2xl)}.leaderboard-header{margin-bottom:var(--space-md)}.leaderboard-complete-badge{display:inline-block;background:var(--color-success-light);color:var(--color-success);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);margin-top:var(--space-xs)}.leaderboard-progress{display:inline-block;color:var(--color-text-muted);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.leaderboard-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border-light)}.leaderboard-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);min-width:360px}.leaderboard-table th{background:var(--color-primary);color:var(--color-text-inverse);font-weight:var(--font-weight-bold);padding:var(--space-sm);text-align:center;white-space:nowrap;position:sticky;top:0}.leaderboard-table th.lb-dancer{text-align:left}.leaderboard-table td{padding:var(--space-sm);border-bottom:1px solid var(--color-border-light);text-align:center;vertical-align:middle}.leaderboard-table td.lb-dancer{text-align:left}.leaderboard-table td.lb-rank{font-weight:var(--font-weight-bold);white-space:nowrap}.lb-row--self{background:var(--color-primary-50)}.lb-row--self td{border-bottom-color:var(--color-primary-100)}.lb-dancer-number{font-weight:var(--font-weight-bold);color:var(--color-primary);margin-right:var(--space-xs)}.lb-dancer-name{color:var(--color-text)}.lb-dance--top3{font-weight:var(--font-weight-medium)}.lb-dance--empty{color:var(--color-text-muted)}.lb-dance-pos{display:block;font-size:var(--font-size-xs);color:var(--color-text-muted)}.lb-dance-pts{display:block;font-weight:var(--font-weight-bold);color:var(--color-gold)}.lb-total{font-size:var(--font-size-base)}.leaderboard-key{padding:var(--space-md);margin-bottom:var(--space-md);font-size:var(--font-size-sm)}.points-key-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.points-key-item{display:flex;gap:var(--space-xs);align-items:baseline}.points-key-pos{font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.points-key-pts{font-weight:var(--font-weight-bold);color:var(--color-gold)}.leaderboard-remaining{padding:var(--space-md);margin-bottom:var(--space-md);font-size:var(--font-size-sm)}.leaderboard-remaining ul{margin:var(--space-sm) 0 0;padding-left:var(--space-lg)}.leaderboard-remaining li{margin-bottom:var(--space-xs)}.leaderboard-remaining a{color:var(--color-primary);text-decoration:underline}.leaderboard-actions{margin-top:var(--space-md)}.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}@media(min-width:481px){.dancer-card-grid--cols-3{grid-template-columns:repeat(3,1fr)}.leaderboard-table{font-size:var(--font-size-base)}}.history-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:calc(-1 * var(--space-md));margin-bottom:var(--space-lg)}.history-card{background:var(--color-bg-card);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-xs);border:1px solid var(--color-border-light);border-left:4px solid var(--color-border);transition:box-shadow var(--transition-fast),transform var(--transition-fast);animation:fadeInUp var(--duration-base) var(--easing-default) both}.history-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.history-card+.history-card{margin-top:var(--space-md)}.history-card--first{border-left-color:var(--color-gold);background:linear-gradient(135deg,var(--color-bg-card) 0%,var(--color-gold-bg) 100%)}.history-card--second{border-left-color:var(--color-silver);background:linear-gradient(135deg,var(--color-bg-card) 0%,var(--color-silver-bg) 100%)}.history-card--third{border-left-color:var(--color-bronze);background:linear-gradient(135deg,var(--color-bg-card) 0%,var(--color-bronze-bg) 100%)}.history-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.history-card__date{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em}.history-card__position{display:flex;align-items:center;justify-content:center;min-width:48px;height:32px;border-radius:var(--radius-full);background:var(--color-bg-muted);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-text)}.history-card--first .history-card__position{background:var(--color-gold);color:var(--color-text-inverse)}.history-card--second .history-card__position{background:var(--color-silver);color:var(--color-text-inverse)}.history-card--third .history-card__position{background:var(--color-bronze);color:var(--color-text-inverse)}.history-card__position-number{line-height:1}.history-card__title{font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--space-sm);line-height:var(--line-height-tight)}.history-card__stats{display:flex;gap:var(--space-md);align-items:baseline;margin-bottom:var(--space-md);flex-wrap:wrap}.history-card__stat{display:flex;flex-direction:column;gap:var(--space-2xs)}.history-card__stat--venue{margin-left:auto}.history-card__stat-value{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-primary)}.history-card__stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.history-card__link{display:inline-flex;text-decoration:none}.feedback-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f122599;display:flex;align-items:center;justify-content:center;z-index:600;padding:var(--space-md);animation:feedbackFadeIn var(--duration-fast) var(--easing-default)}@keyframes feedbackFadeIn{0%{opacity:0}to{opacity:1}}.feedback-dialog{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90vw;max-width:500px;max-height:90vh;overflow-y:auto;padding:var(--space-lg);animation:feedbackSlideUp var(--duration-base) var(--easing-spring);position:relative}@keyframes feedbackSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.feedback-dialog__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.feedback-dialog__title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.feedback-dialog__close{background:none;border:none;cursor:pointer;width:var(--tap-target);height:var(--tap-target);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-lg);transition:background var(--transition-fast),color var(--transition-fast);flex-shrink:0}.feedback-dialog__close:hover,.feedback-dialog__close:focus-visible{background:var(--color-bg-muted);color:var(--color-text)}.feedback-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.feedback-context{background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-normal)}.feedback-context__label{font-weight:var(--font-weight-semibold);color:var(--color-primary-dark)}.feedback-form{display:flex;flex-direction:column;gap:var(--space-md)}.feedback-form .form-group{margin-bottom:0}.feedback-char-counter{text-align:right;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-xs);transition:color var(--transition-fast)}.feedback-char-counter--warning{color:var(--color-warning)}.feedback-char-counter--error{color:var(--color-error)}.feedback-textarea{min-height:100px;max-height:200px;resize:vertical}.feedback-checkbox-row{display:flex;align-items:flex-start;gap:var(--space-sm)}.feedback-checkbox-row input[type=checkbox]{width:20px;height:20px;margin-top:2px;accent-color:var(--color-primary);flex-shrink:0;cursor:pointer}.feedback-checkbox-row label{font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;line-height:var(--line-height-normal)}.feedback-checkbox-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-2xs)}.feedback-submit{margin-top:var(--space-sm)}.feedback-fallback{text-align:center;padding:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-muted)}.feedback-fallback a{color:var(--color-primary);text-decoration:underline;font-weight:var(--font-weight-medium)}.feedback-fallback a:hover{color:var(--color-primary-dark)}.header-feedback-btn{background:none;border:1px solid var(--color-border);cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);font-family:var(--font-body);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.header-feedback-btn:hover,.header-feedback-btn:focus-visible{background:var(--color-primary-50);border-color:var(--color-primary);color:var(--color-primary)}.header-feedback-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.feedback-field-error{color:var(--color-error);font-size:var(--font-size-xs);margin-top:var(--space-xs)}
