:root{--color-primary:oklch(42% .16 258);--color-primary-hover:oklch(36% .15 258);--color-primary-tint:oklch(94% .025 258);--color-accent:oklch(62% .14 75);--color-accent-hover:oklch(56% .14 75);--color-accent-bg:oklch(96% .03 75);--color-white:oklch(100% 0 0);--color-bg:oklch(100% 0 0);--color-surface:oklch(97% .006 258);--color-surface-hover:oklch(94.5% .008 258);--color-ink:oklch(22% .02 258);--color-muted:oklch(53% .012 258);--color-border:oklch(89% .008 258);--color-border-dark:oklch(80% .01 258);--color-border-focus:var(--color-primary);--color-text-primary:var(--color-ink);--color-text-secondary:var(--color-muted);--color-success:oklch(45% .15 145);--color-success-bg:oklch(95% .04 145);--color-error:oklch(48% .19 25);--color-error-bg:oklch(96% .03 25);--color-warning:var(--color-accent);--color-warning-bg:var(--color-accent-bg);--color-overlay:oklch(22% .02 258/.5);--font-sans:-apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-md:1.125rem;--font-size-lg:1.375rem;--font-size-xl:1.75rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--line-height-heading:1.25;--line-height-body:1.6;--line-height-label:1.4;--letter-spacing-label:.01em;--numeric-tabular:tabular-nums;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--spacing-2xl:32px;--spacing-3xl:48px;--spacing-4xl:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-focus:0 0 0 3px oklch(42% .16 258/.15);--shadow-focus-error:0 0 0 3px oklch(48% .19 25/.15);--shadow-focus-success:0 0 0 3px oklch(45% .15 145/.15);--shadow-hover:0 4px 12px oklch(22% .02 258/.08);--motion-ease:cubic-bezier(.4, 0, .2, 1);--motion-ease-out:cubic-bezier(.25, 1, .5, 1);--motion-duration-fast:.15s;--motion-duration-normal:.22s;--z-dropdown:100;--z-sticky:200;--z-modal-backdrop:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--max-width-login-card:400px;--min-height-screen:100vh}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-body);color:var(--color-ink);background-color:var(--color-bg);min-height:var(--min-height-screen)}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);color:var(--color-ink);margin:0 0 var(--spacing-md) 0;text-wrap:balance}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-md)}p{margin:0 0 var(--spacing-md) 0;text-wrap:pretty;max-width:75ch}a{color:var(--color-primary);transition:color var(--motion-duration-fast) var(--motion-ease);text-decoration:none}a:hover{color:var(--color-primary-hover)}a:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}button{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none}.tabular-nums{font-variant-numeric:var(--numeric-tabular)}:focus-visible{box-shadow:var(--shadow-focus);outline:none}::selection{background-color:var(--color-primary);color:var(--color-white)}.container{width:100%;max-width:1200px;padding:0 var(--spacing-md);margin:0 auto}.page-container{min-height:var(--min-height-screen);flex-direction:column;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--color-primary);color:var(--color-white);padding:var(--spacing-sm) var(--spacing-md);z-index:var(--z-tooltip);transition:top var(--motion-duration-fast) var(--motion-ease);position:absolute;top:-40px;left:0}.skip-link:focus{top:0}@media (prefers-reduced-motion:reduce){a,.skip-link{transition:none}}.confirmation-dialog-overlay{background:var(--color-overlay);z-index:var(--z-modal-backdrop);padding:var(--spacing-md);animation:dialogFadeIn var(--motion-duration-fast) var(--motion-ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes dialogFadeIn{0%{opacity:0}to{opacity:1}}.confirmation-dialog{z-index:var(--z-modal);background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-hover);width:100%;max-width:440px;padding:var(--spacing-xl);animation:dialogSlideUp var(--motion-duration-normal) var(--motion-ease-out);position:relative}@keyframes dialogSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.confirmation-dialog-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-ink);margin:0 0 var(--spacing-sm) 0}.confirmation-dialog-message{font-size:var(--font-size-sm);line-height:var(--line-height-body);color:var(--color-muted);margin:0 0 var(--spacing-xl) 0}.confirmation-dialog-footer{gap:var(--spacing-sm);justify-content:flex-end;display:flex}.confirmation-button{padding:10px var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--motion-duration-fast) var(--motion-ease), border-color var(--motion-duration-fast) var(--motion-ease);border:1px solid #0000}.confirmation-button--cancel{background:var(--color-white);border-color:var(--color-border);color:var(--color-ink)}.confirmation-button--cancel:hover{background:var(--color-surface-hover)}.confirmation-button--primary{background:var(--color-primary);color:var(--color-white)}.confirmation-button--primary:hover{background:var(--color-primary-hover)}.confirmation-button--danger{background:var(--color-error);color:var(--color-white)}.confirmation-button--danger:hover{opacity:.9}.confirmation-button:focus-visible{box-shadow:var(--shadow-focus);outline:none}@media (prefers-reduced-motion:reduce){.confirmation-dialog-overlay,.confirmation-dialog,.confirmation-button{transition:none;animation:none}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn-primary.loading:after{animation:none}}@media (prefers-reduced-motion:reduce){.form-input,.form-input-icon,.form-link{transition:none}}.landing-page{background:var(--color-bg);color:var(--color-ink)}.landing-container{max-width:1200px;padding:0 var(--spacing-xl);margin:0 auto}.landing-section{padding:var(--spacing-4xl) 0}.landing-section-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;text-wrap:balance;margin-bottom:var(--spacing-xl)}.landing-section-title-center{text-align:center}.landing-reveal.is-revealing{animation:landingReveal .6s var(--motion-ease-out) calc(var(--i,0) * 90ms) both}@keyframes landingReveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.landing-nav{z-index:var(--z-sticky);background:var(--color-white);border-bottom:1px solid var(--color-border);position:sticky;top:0}.landing-nav-inner{justify-content:space-between;align-items:center;gap:var(--spacing-sm) var(--spacing-lg);padding-top:var(--spacing-md);padding-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.landing-nav-logo{flex-shrink:0;width:auto;height:22px}.landing-nav-actions{align-items:center;gap:var(--spacing-md);margin-left:auto;display:flex}.landing-hero{background:var(--color-primary);padding:var(--spacing-4xl) 0;--landing-on-primary:oklch(100% 0 0);--landing-on-primary-muted:oklch(86% .03 258);--shadow-focus:0 0 0 3px oklch(100% 0 0/.7)}.landing-hero-inner{align-items:center;gap:var(--spacing-2xl);flex-direction:column;display:flex}.landing-hero-copy{color:var(--landing-on-primary);text-align:center;max-width:640px}.landing-hero-title{font-size:clamp(2.25rem,5vw,3.25rem);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;text-wrap:balance;margin-bottom:var(--spacing-lg);color:var(--landing-on-primary);animation:landingHeroEnter .45s var(--motion-ease-out) both;line-height:1.15}.landing-hero-title-break{display:none}@media (width<=900px){.landing-hero-title-break{display:block}}.landing-hero-sub{color:var(--landing-on-primary-muted);max-width:min(46ch,88vw);margin:0 auto var(--spacing-xl);text-wrap:pretty;animation:landingHeroEnter .45s var(--motion-ease-out) 80ms both;font-size:clamp(.9375rem,.82rem + .55vw,1.125rem);line-height:clamp(1.45,1.3rem + .6vw,1.65)}.landing-hero-actions{justify-content:center;align-items:center;gap:var(--spacing-md);animation:landingHeroEnter .45s var(--motion-ease-out) .16s both;flex-wrap:wrap;display:flex}.landing-hero .btn-primary,.landing-cta .btn-primary{background:var(--color-white);color:var(--color-primary)}.landing-hero .btn-primary:hover:not(:disabled),.landing-cta .btn-primary:hover:not(:disabled){background:var(--landing-on-primary-muted)}.landing-hero-signin{gap:var(--spacing-xs);color:var(--landing-on-primary)!important}.landing-hero-signin:hover:not(:disabled){color:var(--landing-on-primary-muted)!important}.landing-hero-preview{width:100%;max-width:480px;animation:landingHeroEnter .45s var(--motion-ease-out) .22s both;margin:0 auto}@media (width>=1024px){.landing-hero-inner{align-items:center;gap:var(--spacing-3xl);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);display:grid}.landing-hero-copy{text-align:left;max-width:none}.landing-hero-sub{margin:0 0 var(--spacing-xl)}.landing-hero-actions{justify-content:flex-start}.landing-hero-copy .landing-contact-group{align-items:flex-start}.landing-hero-preview{margin:0}}@keyframes landingHeroEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.landing-preview-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-hover)}.landing-preview-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);display:flex}.landing-preview-logo{flex-shrink:0;width:auto;height:16px}.landing-preview-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.landing-preview-tag{flex-shrink:0;margin-left:auto}.landing-preview-panel .balance-hero{padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.landing-preview-panel .balance-hero-value{font-size:clamp(1.5rem,3.5vw,2.25rem)}.landing-preview-stats{margin-bottom:var(--spacing-lg);grid-template-columns:repeat(2,1fr)}.landing-preview-stats .stat-tile{padding:var(--spacing-md)}.landing-preview-stats .stat-tile-value{font-size:var(--font-size-lg)}@media (width<=480px){.landing-preview-panel .data-table thead{display:none}.landing-preview-panel .data-table,.landing-preview-panel .data-table tbody{width:100%;display:block}.landing-preview-panel .data-table tbody tr{column-gap:var(--spacing-sm);padding:var(--spacing-sm) 0;grid-template-columns:1fr auto;grid-template-areas:"member status""item amount";row-gap:2px;display:grid}.landing-preview-panel .data-table td{padding:0}.landing-preview-panel .data-table td:first-child{grid-area:member}.landing-preview-panel .data-table td:nth-child(2){color:var(--color-muted);font-size:var(--font-size-xs);grid-area:item}.landing-preview-panel .data-table td:nth-child(3){font-size:var(--font-size-xs);color:var(--color-muted);grid-area:amount;justify-self:end}.landing-preview-panel .data-table td:nth-child(4){grid-area:status;justify-self:end}}.landing-problem-inner{max-width:700px;margin:0 auto}.landing-problem-stack{position:relative}.landing-problem-panel{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-2xl);font-size:var(--font-size-base);color:var(--color-ink);line-height:1.65}.landing-problem-panel-before{position:sticky;top:96px}.landing-problem-panel-after{margin-top:var(--spacing-2xl);box-shadow:var(--shadow-hover);position:relative}@media (prefers-reduced-motion:reduce){.landing-problem-panel-before{position:static}}.landing-problem-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);color:var(--color-muted);margin-bottom:var(--spacing-sm);display:block}.landing-overview{background:var(--color-surface)}.landing-overview-sub{max-width:min(60ch,88vw);margin:0 auto var(--spacing-2xl);text-align:center;color:var(--color-muted);line-height:1.6}.landing-overview-panel{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.landing-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.landing-overview-item{padding:var(--spacing-2xl);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border)}.landing-overview-item:nth-child(2n){border-right:none}.landing-overview-item:nth-last-child(-n+2){border-bottom:none}.landing-overview-icon{width:40px;height:40px;margin-bottom:var(--spacing-md);border-radius:var(--radius-md);background:var(--color-primary-tint);color:var(--color-primary);justify-content:center;align-items:center;display:flex}.landing-overview-item h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs)}.landing-overview-item p{font-size:var(--font-size-sm);color:var(--color-muted);max-width:none;line-height:1.6}.landing-spine-wrap{position:relative}.landing-spine-track{background:var(--color-border);border-radius:1px;width:2px;position:absolute;top:20px;bottom:20px;left:19px;overflow:hidden}.landing-spine-fill{background:var(--color-primary);transform-origin:top;width:100%;height:100%;transform:scaleY(0)}.landing-how-steps{gap:var(--spacing-2xl);flex-direction:column;list-style:none;display:flex;position:relative}.landing-how-step{padding-left:56px;position:relative}.landing-how-number{background:var(--color-primary-tint);width:40px;height:40px;color:var(--color-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.landing-how-step h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm)}.landing-how-step p{font-size:var(--font-size-sm);color:var(--color-muted);max-width:none;line-height:1.6}.landing-cluster{margin-bottom:var(--spacing-4xl)}.landing-cluster:last-of-type{margin-bottom:0}.landing-cluster-image-wrap{width:100%;height:min(60vh,520px);margin-bottom:var(--spacing-2xl);position:relative;overflow:hidden}.landing-cluster-image-parallax{height:calc(100% + 140px);position:relative;top:-70px}.landing-cluster-image{object-fit:cover;clip-path:inset(12% round 4px);width:100%;height:100%;display:block;transform:scale(1.08)}@media (prefers-reduced-motion:reduce){.landing-cluster-image{clip-path:none;transform:none}}.landing-cluster-copy{text-align:center;max-width:640px;margin:0 auto}.landing-cluster-copy h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm)}.landing-cluster-copy p{color:var(--color-muted);line-height:1.65}.landing-cluster-contained{align-items:center;gap:var(--spacing-xl);flex-direction:column;display:flex}.landing-cluster-visual{width:100%;max-width:480px}.landing-term-list{max-width:900px;margin:var(--spacing-2xl) auto 0;gap:var(--spacing-2xl) var(--spacing-3xl);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:relative}.landing-term-spine-track{display:none}.landing-term-item dt{color:var(--color-primary);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs)}.landing-term-item dd{color:var(--color-muted);max-width:none;margin:0;line-height:1.6}.landing-analytics-mock-banner{margin-bottom:var(--spacing-lg)}.landing-budget-mock-wrap{width:100%;max-width:480px;margin:0 auto var(--spacing-3xl)}.landing-budget-mock-receipt{align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-muted);display:flex}.landing-budget-mock-receipt svg{color:var(--color-primary);flex-shrink:0}.landing-cta{background:var(--color-primary);padding:var(--spacing-4xl) 0 var(--spacing-2xl);--landing-on-primary:oklch(100% 0 0);--landing-on-primary-muted:oklch(86% .03 258);--shadow-focus:0 0 0 3px oklch(100% 0 0/.7);color:var(--landing-on-primary)}.landing-cta-inner{text-align:center;max-width:640px;margin:0 auto}.landing-cta-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;text-wrap:balance;margin-bottom:var(--spacing-md);color:var(--landing-on-primary)}.landing-cta-sub{color:var(--landing-on-primary-muted);margin-bottom:var(--spacing-xl);line-height:1.65}.landing-cta .landing-hero-actions{animation:none}.landing-lead-form{gap:var(--spacing-md);text-align:left;flex-direction:column;max-width:420px;margin:0 auto;display:flex}.landing-lead-form .form-label{color:var(--landing-on-primary)}.landing-lead-form-submit{margin-top:var(--spacing-xs)}.landing-lead-form-success{align-items:center;gap:var(--spacing-xs);max-width:420px;padding:var(--spacing-2xl) var(--spacing-lg);text-align:center;color:var(--landing-on-primary-muted);animation:landingHeroEnter .35s var(--motion-ease-out) both;flex-direction:column;margin:0 auto;display:flex}.landing-lead-form-success-icon{color:var(--color-success);margin-bottom:var(--spacing-xs)}.landing-lead-form-success-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--landing-on-primary);margin:0}.landing-contact-group{align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-lg);flex-direction:column;display:flex}.landing-contact-line{align-items:center;gap:var(--spacing-xs);color:var(--landing-on-primary-muted);font-size:var(--font-size-sm);display:flex}.landing-contact-line a{color:var(--landing-on-primary);font-weight:var(--font-weight-medium)}.landing-contact-line a:hover,.landing-contact-line a:active{text-decoration:underline}.landing-footer-meta{justify-content:center;align-items:center;gap:var(--spacing-lg);margin-top:var(--spacing-3xl);padding-top:var(--spacing-lg);font-size:var(--font-size-xs);color:var(--landing-on-primary-muted);border-top:1px solid oklch(100% 0 0/.15);display:flex}.landing-footer-logo{width:auto;height:16px}.landing-footer-signin{color:var(--landing-on-primary-muted)}.landing-footer-signin:hover{color:var(--landing-on-primary)}.landing-page .btn{transition:transform .2s var(--motion-ease-out), background-color var(--motion-duration-fast) var(--motion-ease), border-color var(--motion-duration-fast) var(--motion-ease), color var(--motion-duration-fast) var(--motion-ease)}.landing-page .btn:hover:not(:disabled){transform:translateY(-1px)scale(1.02)}.landing-page .btn:active:not(:disabled){transform:scale(.97)}.landing-preview-panel{transition:transform .3s var(--motion-ease-out), box-shadow .3s var(--motion-ease-out)}.landing-preview-panel:hover{transform:translateY(-4px);box-shadow:0 12px 28px oklch(22% .02 258/.14)}@media (width<=900px){.landing-section{padding:var(--spacing-2xl) 0}.landing-hero,.landing-cta{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.landing-how-steps{gap:var(--spacing-xl)}.landing-overview-grid{grid-template-columns:1fr}.landing-overview-item{border-right:none}.landing-overview-item:nth-last-child(-n+2){border-bottom:1px solid var(--color-border)}.landing-overview-item:last-child{border-bottom:none}.landing-preview-stats{grid-template-columns:1fr}.landing-term-list{gap:var(--spacing-xl);grid-template-columns:1fr;padding-left:20px}.landing-term-spine-track{background:var(--color-border);border-radius:1px;width:2px;display:block;position:absolute;top:4px;bottom:4px;left:0;overflow:hidden}.landing-term-spine-fill{background:var(--color-primary);transform-origin:top;width:100%;height:100%;transform:scaleY(0)}.landing-problem-panel-before{position:static}.landing-problem-panel-after{box-shadow:none}}@media (width<=640px){.landing-hero-actions,.landing-cta .landing-hero-actions{flex-direction:column;align-items:stretch}.landing-hero-actions .btn,.landing-cta .landing-hero-actions .btn{width:100%}.landing-footer-meta{gap:var(--spacing-sm);flex-direction:column}}@media (width<=480px){.landing-nav-inner{gap:var(--spacing-xs) var(--spacing-md)}.landing-nav-logo{height:18px}.landing-nav-actions .btn-primary{font-size:var(--font-size-sm);padding:12px 14px}}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn-primary.loading:after{animation:none}}@media (prefers-reduced-motion:reduce){.form-input,.form-input-icon,.form-link{transition:none}}.alert{align-items:flex-start;gap:var(--spacing-xs);padding:var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);display:flex}.alert-error{background:var(--color-error-bg);color:var(--color-error)}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning)}.alert-info{background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-border)}.alert-success{background:var(--color-success-bg);color:var(--color-success)}.alert svg{flex-shrink:0;width:16px;height:16px;margin-top:2px}.success-message{justify-content:center;align-items:center;gap:var(--spacing-xs);background:var(--color-success-bg);color:var(--color-success);padding:var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);text-align:center;margin:var(--spacing-md) 0;display:flex}.success-message svg{flex-shrink:0;width:20px;height:20px}.result-list{border:1px solid var(--color-border);border-radius:var(--radius-sm);max-height:180px;font-size:var(--font-size-sm);color:var(--color-ink);margin:0;padding:0;list-style:none;overflow-y:auto}.result-list li{padding:6px var(--spacing-md)}.result-list li:not(:last-child){border-bottom:1px solid var(--color-border)}.login-page{min-height:100vh;padding:var(--spacing-md);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:var(--max-width-login-card);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-xl)}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-mark-image{object-fit:contain;width:40px;height:40px;margin-bottom:var(--spacing-md)}.login-title{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-ink);margin:0 0 var(--spacing-sm) 0;text-wrap:balance}.login-subtitle{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-muted);margin:0}.login-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.alternative-auth{gap:var(--spacing-xs);flex-direction:column;display:flex}.alternative-auth .btn-secondary{padding-left:var(--spacing-md);padding-right:var(--spacing-md);justify-content:flex-start}@media (width<=640px){.login-card{padding:var(--spacing-lg)}.login-title{font-size:var(--font-size-md)}}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--motion-duration-fast) var(--motion-ease), border-color var(--motion-duration-fast) var(--motion-ease), color var(--motion-duration-fast) var(--motion-ease);border:none;padding:12px 24px;text-decoration:none;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{background:var(--color-border-dark);color:var(--color-muted);cursor:not-allowed}.btn-primary.loading{color:#0000;position:relative}.btn-primary.loading:after{content:"";border:2px solid var(--color-white);border-radius:var(--radius-full);border-top-color:#0000;width:16px;height:16px;animation:.6s linear infinite spin;position:absolute}.btn-secondary{color:var(--color-primary);border:1px solid var(--color-border);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--color-primary-tint);border-color:var(--color-primary)}.btn-secondary:disabled{color:var(--color-muted);cursor:not-allowed}.btn-ghost{color:var(--color-muted);font-weight:var(--font-weight-regular);background:0 0;border:none}.btn-ghost:hover:not(:disabled){color:var(--color-primary);background:0 0}.btn-full{width:100%}.btn-icon{gap:var(--spacing-sm)}.btn-icon-left,.btn-icon-right{display:flex}.btn-icon svg{width:16px;height:16px}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn-primary.loading:after{animation:none}}.form-stack{gap:var(--spacing-lg);flex-direction:column;display:flex}.form-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.form-label{font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-ink);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-label)}.form-input{width:100%;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-ink);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--motion-duration-fast) var(--motion-ease);padding:10px 14px}.form-input:hover{border-color:var(--color-border-dark)}.form-input:focus{border-color:var(--color-border-focus);border-width:2px;outline:none;padding:9px 13px}.form-input::placeholder{color:var(--color-muted)}.form-input.error{border-color:var(--color-error)}.form-input.error:focus{box-shadow:var(--shadow-focus-error)}.form-input.valid{border-color:var(--color-success)}.form-input.valid:focus{box-shadow:var(--shadow-focus-success)}.form-input:disabled{background:var(--color-surface);color:var(--color-muted);cursor:not-allowed}.form-input[type=file]{cursor:pointer;padding:8px 14px}.form-input[type=file]::file-selector-button{margin-right:var(--spacing-md);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--motion-duration-fast) var(--motion-ease), border-color var(--motion-duration-fast) var(--motion-ease);background:0 0;padding:6px 12px}.form-input[type=file]::file-selector-button:hover{background:var(--color-primary-tint);border-color:var(--color-primary)}.form-input[type=file]:disabled::file-selector-button{color:var(--color-muted);cursor:not-allowed}.checkbox-list{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-white);max-height:180px;overflow-y:auto}.checkbox-row{align-items:center;gap:var(--spacing-sm);padding:8px var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-ink);border-bottom:1px solid var(--color-border);cursor:pointer;display:flex}.checkbox-row:last-child{border-bottom:none}.checkbox-row:hover{background:var(--color-surface-hover)}.form-input-currency{align-items:center;display:flex;position:relative}.form-input-currency-prefix{left:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-muted);pointer-events:none;position:absolute}.form-input-currency .form-input{padding-left:44px}.form-input-currency .form-input:focus{padding-left:43px}.form-input-with-icon{align-items:center;display:flex;position:relative}.form-input-with-icon .form-input{padding-right:44px}.form-input-with-icon .form-input:focus{padding-right:43px}.form-input-icon{right:var(--spacing-sm);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-muted);cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-ease), background-color var(--motion-duration-fast) var(--motion-ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.form-input-icon:hover:not(:disabled){color:var(--color-primary);background-color:var(--color-surface)}.form-input-icon:focus-visible{box-shadow:var(--shadow-focus);outline:none}.form-input-icon:disabled{cursor:not-allowed;opacity:.5}.form-error{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-error);margin:var(--spacing-xs) 0 0 0}.form-hint{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-muted);margin:var(--spacing-xs) 0 0 0}.form-hint svg{vertical-align:-2px;margin-right:4px}.form-hint-column{background:var(--color-surface);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);color:var(--color-ink);padding:1px 5px;display:inline-block}.form-footer{margin-top:calc(var(--spacing-xs) * -1);justify-content:space-between;align-items:center;display:flex}.form-link{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-primary);transition:color var(--motion-duration-fast) var(--motion-ease);background:0 0;border:none;padding:0;text-decoration:none}.form-link:hover:not(:disabled){color:var(--color-primary-hover);text-decoration:underline}.form-link:disabled{color:var(--color-muted);cursor:not-allowed}@media (prefers-reduced-motion:reduce){.form-input,.form-input-icon,.form-link{transition:none}}.divider{margin:var(--spacing-xl) 0;color:var(--color-muted);font-size:var(--font-size-sm);align-items:center;display:flex}.divider:before,.divider:after{content:"";background:var(--color-border);flex:1;height:1px}.divider span{padding:0 var(--spacing-md);white-space:nowrap}.dashboard-layout{grid-template-columns:var(--sidebar-width,240px) 1fr;background:var(--color-bg);min-height:100vh;transition:grid-template-columns var(--motion-duration-normal) var(--motion-ease);grid-template-rows:auto 1fr;grid-template-areas:"sidebar header""sidebar main";display:grid}.dashboard-header{z-index:var(--z-sticky);background:var(--color-white);padding:0 var(--spacing-xl);border-bottom:1px solid var(--color-border);grid-area:header;justify-content:space-between;align-items:center;height:60px;display:flex;position:sticky;top:0}.dashboard-header-content{align-items:center;gap:var(--spacing-md);min-width:0;display:flex}.dashboard-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-ink);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.dashboard-context{align-items:center;gap:var(--spacing-xs);color:var(--color-muted);font-size:var(--font-size-sm);padding-left:var(--spacing-md);border-left:1px solid var(--color-border);white-space:nowrap;text-overflow:ellipsis;display:flex;overflow:hidden}.dashboard-header-actions{align-items:center;gap:var(--spacing-md);flex-shrink:0;display:flex}.dashboard-user{align-items:center;gap:var(--spacing-sm);display:flex}.dashboard-user-avatar{border-radius:var(--radius-full);background:var(--color-primary);width:32px;height:32px;color:var(--color-white);font-weight:var(--font-weight-medium);font-size:var(--font-size-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex}.dashboard-user-info{flex-direction:column;line-height:1.2;display:flex}.dashboard-user-name{color:var(--color-ink);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.dashboard-user-role{color:var(--color-muted);font-size:var(--font-size-xs);text-transform:capitalize}.dashboard-sign-out{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-muted);cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-ease), background-color var(--motion-duration-fast) var(--motion-ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dashboard-sign-out:hover{color:var(--color-error);background-color:var(--color-error-bg)}.dashboard-sign-out svg{width:18px;height:18px}.sidebar-collapse-toggle{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-muted);cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-ease), background-color var(--motion-duration-fast) var(--motion-ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.sidebar-collapse-toggle:hover{color:var(--color-ink);background-color:var(--color-surface)}.sidebar-collapse-toggle svg{width:20px;height:20px}.mobile-menu-toggle{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-ink);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:none}.mobile-menu-toggle svg{width:22px;height:22px}.mobile-menu-backdrop{background:var(--color-overlay);z-index:var(--z-modal-backdrop);opacity:0;transition:opacity var(--motion-duration-normal) var(--motion-ease);display:none;position:fixed;inset:0}@media (width<=900px){.dashboard-layout.mobile-menu-open .mobile-menu-backdrop{opacity:1;display:block}}.dashboard-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);height:100vh;padding:var(--spacing-lg) 0;gap:var(--spacing-lg);transition:width var(--motion-duration-normal) var(--motion-ease), padding var(--motion-duration-normal) var(--motion-ease);flex-direction:column;grid-area:sidebar;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{padding:var(--spacing-sm) var(--spacing-lg) var(--spacing-md);margin-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border);justify-content:center;align-items:center;display:flex}.sidebar-brand-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:100%;height:48px}.sidebar-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);padding:0 var(--spacing-lg);margin:0 0 var(--spacing-sm) 0}.sidebar-nav{padding:0 var(--spacing-sm);flex-direction:column;gap:2px;display:flex}.sidebar-link{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-muted);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);transition:background-color var(--motion-duration-fast) var(--motion-ease), color var(--motion-duration-fast) var(--motion-ease);text-decoration:none;display:flex}.sidebar-link:hover{color:var(--color-ink);background:var(--color-surface-hover)}.sidebar-link.active{color:var(--color-primary);background:var(--color-primary-tint);font-weight:var(--font-weight-medium)}.sidebar-link svg{flex-shrink:0;width:18px;height:18px}.dashboard-layout.sidebar-collapsed{--sidebar-width:0px}.dashboard-layout.sidebar-collapsed .dashboard-sidebar{border-right:none;width:0;min-width:0;padding:0;overflow:hidden}.dashboard-main{min-width:0;padding:var(--spacing-2xl);grid-area:main}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);display:flex}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-ink);margin:0 0 var(--spacing-xs) 0}.page-description{font-size:var(--font-size-sm);color:var(--color-muted);max-width:60ch;margin:0}.coming-soon{align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-3xl) var(--spacing-2xl);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.coming-soon-icon{border-radius:var(--radius-md);background:var(--color-primary-tint);width:44px;height:44px;color:var(--color-primary);justify-content:center;align-items:center;display:flex}.coming-soon-icon svg{width:22px;height:22px}.coming-soon-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-ink);margin:0}.coming-soon-message{font-size:var(--font-size-sm);color:var(--color-muted);max-width:60ch;margin:0}.dashboard-loading{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);width:20px;height:20px;animation:.6s linear infinite spin}@media (prefers-reduced-motion:reduce){.dashboard-layout,.dashboard-sidebar,.mobile-menu-backdrop,.sidebar-link,.sidebar-collapse-toggle,.dashboard-sign-out{transition:none}.spinner{animation:none}}@media (width<=1024px){.dashboard-layout{grid-template-columns:208px 1fr}.dashboard-main{padding:var(--spacing-xl)}}@media (width<=900px){.dashboard-layout{grid-template:"header""main"1fr/1fr}.mobile-menu-toggle{display:flex}.sidebar-collapse-toggle,.dashboard-context{display:none}.dashboard-sidebar{width:260px;max-width:82vw;z-index:var(--z-modal);transition:transform var(--motion-duration-normal) var(--motion-ease);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.dashboard-layout.mobile-menu-open .dashboard-sidebar{transform:translate(0)}.dashboard-header{padding:0 var(--spacing-md)}.dashboard-main{padding:var(--spacing-lg) var(--spacing-md)}.dashboard-user-info{display:none}.dashboard-layout.mobile-menu-open{overflow:hidden}}.drawer-overlay{background:var(--color-overlay);z-index:var(--z-modal-backdrop);animation:drawerFadeIn var(--motion-duration-normal) var(--motion-ease-out);justify-content:flex-end;display:flex;position:fixed;inset:0}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}.drawer{z-index:var(--z-modal);background:var(--color-white);width:480px;max-width:100vw;height:100vh;box-shadow:var(--shadow-hover);animation:drawerSlideIn var(--motion-duration-normal) var(--motion-ease-out);flex-direction:column;display:flex;position:relative}@keyframes drawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.drawer-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-ink);margin:0}.drawer-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-muted);cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-ease), background-color var(--motion-duration-fast) var(--motion-ease);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.drawer-close:hover{color:var(--color-ink);background-color:var(--color-surface)}.drawer-close svg{width:18px;height:18px}.drawer-body{padding:var(--spacing-xl);gap:var(--spacing-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer{justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}@media (prefers-reduced-motion:reduce){.drawer-overlay,.drawer,.drawer-close{transition:none;animation:none}}@media (width<=560px){.drawer{width:100vw}}.page-toolbar{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-wrap:wrap;display:flex}.filter-panel{align-items:center;gap:var(--spacing-lg) var(--spacing-xl);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.filter-panel-icon{color:var(--color-muted);flex-shrink:0}.filter-field{align-items:center;gap:var(--spacing-xs);display:flex}.filter-panel-actions{align-items:center;gap:var(--spacing-sm);margin-left:auto;display:flex}.page-toolbar-label{font-size:var(--font-size-sm);color:var(--color-muted);flex-shrink:0}.page-toolbar-select{width:auto;min-width:220px}.page-toolbar-search{min-width:240px;margin-left:auto;position:relative}.page-toolbar-search svg{color:var(--color-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.page-toolbar-search .form-input{padding-left:34px}.pagination-bar{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);display:flex}.pagination-summary{font-size:var(--font-size-sm);color:var(--color-muted)}.pagination-controls{align-items:center;gap:var(--spacing-sm);display:flex}.page-actions{align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.page-tabs{align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);display:flex}.data-table-wrapper{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table thead th{text-align:left;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);background:var(--color-surface);border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table th.data-table-actions-col,.data-table td.data-table-actions{text-align:right}.data-table th.data-table-numeric-col,.data-table td.data-table-numeric{text-align:right;font-variant-numeric:tabular-nums}.data-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--motion-duration-fast) var(--motion-ease)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:var(--color-surface-hover)}.table-row-clickable{cursor:pointer}.data-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-ink);vertical-align:middle}.table-entity{align-items:center;gap:var(--spacing-sm);min-width:0;display:flex}.table-avatar{border-radius:var(--radius-sm);background:var(--color-primary-tint);width:32px;height:32px;color:var(--color-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.table-avatar img{object-fit:cover;width:100%;height:100%}.table-cell-primary{font-weight:var(--font-weight-medium);color:var(--color-ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.table-cell-secondary{color:var(--color-muted);font-size:var(--font-size-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.table-cell-stack{flex-direction:column;gap:2px;min-width:0;display:flex}.table-link{color:var(--color-primary);text-decoration:none}.table-link:hover{text-decoration:underline}.table-icon-button{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-muted);cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-ease), background-color var(--motion-duration-fast) var(--motion-ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.table-icon-button:hover{color:var(--color-primary);background:var(--color-primary-tint)}.table-icon-button.danger:hover{color:var(--color-error);background:var(--color-error-bg)}.table-icon-button svg{width:16px;height:16px}.status-badge{padding:3px var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;gap:5px;display:inline-flex}.status-badge:before{content:"";border-radius:var(--radius-full);background:currentColor;width:6px;height:6px}.status-badge.active{background:var(--color-success-bg);color:var(--color-success)}.status-badge.inactive,.status-badge.ended{background:var(--color-surface-hover);color:var(--color-muted)}.status-badge.graduated{background:var(--color-success-bg);color:var(--color-success)}.status-badge.deferred{background:var(--color-warning-bg);color:var(--color-warning)}.status-badge.withdrawn{background:var(--color-error-bg);color:var(--color-error)}.status-badge.cleared{background:var(--color-success-bg);color:var(--color-success)}.status-badge.pending{background:var(--color-warning-bg);color:var(--color-warning)}.skeleton-bar{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-surface) 25%, var(--color-surface-hover) 50%, var(--color-surface) 75%);background-size:200% 100%;height:14px;animation:1.4s ease-in-out infinite skeletonShimmer}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.data-table tbody tr,.table-icon-button{transition:none}.skeleton-bar{background:var(--color-surface-hover);animation:none}}@media (width<=640px){.data-table th,.data-table td{padding:var(--spacing-sm) var(--spacing-md)}}.stat-tile-grid{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-tile{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);gap:var(--spacing-xs);flex-direction:column;display:flex}.stat-tile-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-label)}.stat-tile-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-ink);font-variant-numeric:tabular-nums}.stat-tile-value.warning{color:var(--color-warning)}.debtors-banner{justify-content:space-between;align-items:center;gap:var(--spacing-md);background:var(--color-warning-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-2xl);display:flex}.debtors-banner-text{font-size:var(--font-size-sm);color:var(--color-ink)}.debtors-banner-text strong{font-variant-numeric:tabular-nums;color:var(--color-warning)}.dashboard-columns{gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-ink);margin:0 0 var(--spacing-md) 0}.activity-list{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 var(--spacing-lg);flex-direction:column;display:flex}.activity-row{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-border);display:flex}.activity-row:last-child{border-bottom:none}.activity-amount{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium);flex-shrink:0}.activity-row-end{align-items:center;gap:var(--spacing-xs);flex-shrink:0;display:flex}.icon-spin{animation:.8s linear infinite spin}.activity-amount.credit{color:var(--color-success)}.activity-empty{padding:var(--spacing-lg) 0;color:var(--color-muted);font-size:var(--font-size-sm)}.balance-hero{gap:var(--spacing-xs);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-2xl);margin-bottom:var(--spacing-2xl);flex-direction:column;display:flex}.balance-hero-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-muted)}.balance-hero-value{font-size:clamp(2.5rem,6vw,3.5rem);font-weight:var(--font-weight-semibold);color:var(--color-warning);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.balance-hero.settled .balance-hero-value{color:var(--color-success)}.balance-hero-caption{font-size:var(--font-size-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}.balance-hero-action{margin-top:var(--spacing-md)}.simulation-banner{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-xl);background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-md);color:var(--color-ink);display:flex}.simulation-banner svg{color:var(--color-warning);flex-shrink:0}.simulation-banner-text{font-size:var(--font-size-sm);flex:1}.simulation-user-list{gap:var(--spacing-xs);margin-top:var(--spacing-md);flex-direction:column;display:flex}.simulation-user-row{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;transition:border-color var(--motion-duration-fast) var(--motion-ease);display:flex}.simulation-user-row:hover{border-color:var(--color-border-dark)}.simulation-user-row:disabled{opacity:.6;cursor:not-allowed}.toast-container{top:var(--spacing-lg);right:var(--spacing-lg);z-index:var(--z-toast);gap:var(--spacing-sm);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--spacing-sm);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);box-shadow:var(--shadow-hover);pointer-events:auto;min-width:280px;max-width:400px;animation:toastIn var(--motion-duration-normal) var(--motion-ease-out);display:flex}@keyframes toastIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.toast-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.toast--success .toast-icon{color:var(--color-success)}.toast--error .toast-icon{color:var(--color-error)}.toast--warning .toast-icon{color:var(--color-warning)}.toast--info .toast-icon{color:var(--color-primary)}.toast-message{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-ink);flex:1;line-height:1.4}.toast-close{cursor:pointer;width:20px;height:20px;color:var(--color-muted);border-radius:var(--radius-sm);transition:color var(--motion-duration-fast) var(--motion-ease);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.toast-close:hover{color:var(--color-ink)}.toast-close:focus-visible{box-shadow:var(--shadow-focus);outline:none}.toast-close svg{width:14px;height:14px}@media (prefers-reduced-motion:reduce){.toast{animation:none}.toast-close{transition:none}}@media (width<=480px){.toast-container{top:var(--spacing-md);right:var(--spacing-md);left:var(--spacing-md)}.toast{min-width:0;max-width:none}}.clearance-letterhead{display:none}@media print{.clearance-no-print{display:none!important}.clearance-letterhead{display:block!important}:is(body:has(.student-clearance-page) .dashboard-sidebar,body:has(.student-clearance-page) .dashboard-header){display:none!important}body:has(.student-clearance-page) .dashboard-main{padding:0!important}}.preview-question{gap:var(--spacing-xs);flex-direction:column;display:flex}.preview-option-group{gap:var(--spacing-xs);margin-top:var(--spacing-xs);flex-direction:column;display:flex}.preview-option-row{align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-ink);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--motion-duration-fast) var(--motion-ease);padding:8px 12px;display:flex}.preview-option-row:hover{border-color:var(--color-border-dark)}.preview-likert-row{flex-flow:wrap}.preview-likert-row .preview-option-row{flex:auto;justify-content:center}.preview-version-note{margin-top:var(--spacing-lg);text-align:center}.broadcast-editor{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-white);overflow:hidden}.broadcast-editor.error{border-color:var(--color-error)}.broadcast-editor .ql-toolbar{border:none;border-bottom:1px solid var(--color-border);font-family:var(--font-sans);background:var(--color-surface);white-space:normal}.broadcast-editor .ql-toolbar button{min-width:24px}.broadcast-editor .ql-container{min-height:480px;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-ink);background:var(--color-white);border:none}.broadcast-editor .ql-editor{line-height:1.6}.broadcast-editor .ql-editor.ql-blank:before{color:var(--color-muted);font-style:normal}.broadcast-body-frame{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-white);width:100%;display:block}.broadcast-meta-grid{font-size:var(--font-size-sm);grid-template-columns:minmax(90px,auto) 1fr;gap:6px 16px;display:grid}.broadcast-meta-grid dt{color:var(--color-muted);margin:0}.broadcast-meta-grid dd{color:var(--color-ink);overflow-wrap:anywhere;margin:0}.broadcast-form{flex-direction:column;gap:20px;max-width:860px;display:flex}.broadcast-form .form-group{margin:0}.broadcast-filter-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px;display:grid}.ql-container{box-sizing:border-box;height:100%;margin:0;font-family:Helvetica,Arial,sans-serif;font-size:13px;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{height:1px;position:absolute;top:50%;left:-100000px;overflow-y:hidden}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word;outline:none;height:100%;padding:12px 15px;line-height:1.42;overflow-y:auto}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor ol{padding-left:1.5em}.ql-editor li{padding-left:1.5em;list-style-type:none;position:relative}.ql-editor li>.ql-ui:before{text-align:right;white-space:nowrap;width:1.2em;margin-left:-1.5em;margin-right:.3em;display:inline-block}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:"•"}.ql-editor li[data-list=checked]>.ql-ui:before{content:"☑"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:"☐"}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered]>.ql-ui:before{content:counter(list-0, decimal) ". "}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1>.ql-ui:before{content:counter(list-1, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2>.ql-ui:before{content:counter(list-2, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3>.ql-ui:before{content:counter(list-3, decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4>.ql-ui:before{content:counter(list-4, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5>.ql-ui:before{content:counter(list-5, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6>.ql-ui:before{content:counter(list-6, decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7>.ql-ui:before{content:counter(list-7, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8>.ql-ui:before{content:counter(list-8, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9>.ql-ui:before{content:counter(list-9, decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl>.ql-ui:before{text-align:left;margin-left:.3em;margin-right:-1.5em}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{max-width:100%;display:block}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{text-align:inherit;direction:rtl}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);pointer-events:none;font-style:italic;position:absolute;left:15px;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{cursor:pointer;float:left;background:0 0;border:none;width:28px;height:24px;padding:3px 5px;display:inline-block}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{vertical-align:middle;display:inline-block}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2px}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1px}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-top:5px;margin-bottom:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor .ql-code-block-container{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor .ql-code-block-container{margin-top:5px;margin-bottom:5px;padding:5px 10px}.ql-snow .ql-editor code{padding:2px 4px;font-size:85%}.ql-snow .ql-editor .ql-code-block-container{color:#f8f8f2;background-color:#23241f;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;float:left;vertical-align:middle;height:24px;font-size:14px;font-weight:500;display:inline-block;position:relative}.ql-snow .ql-picker-label{cursor:pointer;width:100%;height:100%;padding-left:8px;padding-right:2px;display:inline-block;position:relative}.ql-snow .ql-picker-label:before{line-height:22px;display:inline-block}.ql-snow .ql-picker-options{white-space:nowrap;background-color:#fff;min-width:100%;padding:4px 8px;display:none;position:absolute}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;padding-top:5px;padding-bottom:5px;display:block}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{z-index:1;margin-top:-1px;display:block;top:100%}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{width:24px;height:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{width:152px;padding:3px 5px}.ql-snow .ql-color-picker .ql-picker-item{float:left;border:1px solid #0000;width:16px;height:16px;margin:2px;padding:0}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{width:18px;margin-top:-9px;position:absolute;top:50%;right:0}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-code-block-container{position:relative}.ql-code-block-container .ql-ui{top:5px;right:5px}.ql-toolbar.ql-snow{box-sizing:border-box;border:1px solid #ccc;padding:8px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{color:#444;white-space:nowrap;background-color:#fff;border:1px solid #ccc;padding:5px 12px;box-shadow:0 0 5px #ddd}.ql-snow .ql-tooltip:before{content:"Visit URL:";margin-right:8px;line-height:26px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;width:170px;height:26px;margin:0;padding:3px 5px;font-size:13px;display:none}.ql-snow .ql-tooltip a.ql-preview{text-overflow:ellipsis;vertical-align:top;max-width:200px;display:inline-block;overflow-x:hidden}.ql-snow .ql-tooltip a.ql-action:after{content:"Edit";border-right:1px solid #ccc;margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{content:"Save";border-right:0;padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.survey-report-section{margin-bottom:var(--spacing-2xl)}.survey-report-section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-ink);margin:0 0 var(--spacing-md) 0}.stat-card-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.stat-card{gap:var(--spacing-xs);padding:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.stat-card-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-ink)}.stat-card-label{font-size:var(--font-size-sm);color:var(--color-muted)}.survey-report-meta{gap:var(--spacing-lg);margin-top:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-muted);flex-wrap:wrap;display:flex}.trend-chart{align-items:flex-end;gap:var(--spacing-sm);height:140px;padding:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;overflow-x:auto}.trend-bar-column{justify-content:flex-end;align-items:center;gap:var(--spacing-xs);flex-direction:column;min-width:36px;height:100%;display:flex}.trend-bar-count{font-size:var(--font-size-xs);color:var(--color-muted)}.trend-bar{background:var(--color-primary);border-radius:var(--radius-sm) var(--radius-sm) 0 0;width:20px;min-height:2px}.trend-bar-date{font-size:var(--font-size-xs);color:var(--color-muted);white-space:nowrap}.survey-report-questions{gap:var(--spacing-lg);flex-direction:column;display:flex}.survey-report-card{padding:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.survey-report-card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-ink);margin:0 0 var(--spacing-md) 0}.bar-chart{gap:var(--spacing-sm);flex-direction:column;display:flex}.bar-chart-row{align-items:center;gap:var(--spacing-md);font-size:var(--font-size-sm);grid-template-columns:minmax(120px,200px) 1fr auto;display:grid}.bar-chart-label{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bar-chart-track{background:var(--color-border);border-radius:var(--radius-full);height:10px;overflow:hidden}.bar-chart-fill{background:var(--color-primary);border-radius:var(--radius-full);height:100%}.bar-chart-value{color:var(--color-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.breakdown-block{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.breakdown-block-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-ink);margin:0 0 var(--spacing-sm) 0}.breakdown-groups{gap:var(--spacing-md);padding-left:var(--spacing-md);border-left:2px solid var(--color-border);flex-direction:column;display:flex}.breakdown-group-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);margin:0 0 var(--spacing-xs) 0}@media print{.survey-report-no-print,:is(body:has(.survey-report) .dashboard-sidebar,body:has(.survey-report) .dashboard-header){display:none!important}body:has(.survey-report) .dashboard-main{padding:0!important}}.searchable-select{position:relative}.searchable-select-listbox{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-sm);max-height:240px;box-shadow:var(--shadow-hover);z-index:var(--z-dropdown);padding:var(--spacing-xs) 0;margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.searchable-select-option{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-ink);cursor:pointer}.searchable-select-option.highlighted{background:var(--color-surface-hover)}.searchable-select-option.selected{color:var(--color-primary);font-weight:var(--font-weight-medium)}.searchable-select-empty{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-muted)}
