:root{--color-bg: #f7f8f7;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-border: #dde1de;--color-border-strong: #c3c9c4;--color-text: #1a201c;--color-text-muted: #5a635d;--color-text-faint: #6b736c;--color-primary: #1f5c4a;--color-primary-hover: #184a3b;--color-primary-contrast: #ffffff;--color-primary-soft: #e6efec;--color-accent: #b98b2e;--color-accent-soft: #f7edd9;--color-success: #1f7a4d;--color-success-soft: #e5f3ea;--color-warning: #9a6400;--color-warning-soft: #fbf0d9;--color-danger: #b3261e;--color-danger-soft: #fbe9e7;--color-info: #2b5a8c;--color-info-soft: #e8f0f9;--color-focus-ring: #2b5a8c;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--space-8: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(20, 24, 21, .06);--shadow-md: 0 4px 16px rgba(20, 24, 21, .08);--shadow-lg: 0 12px 32px rgba(20, 24, 21, .12);--page-max-width: 1120px;--sidebar-width: 248px;--header-height: 64px;--transition-fast: .12s ease;--transition-normal: .2s ease}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-normal: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:var(--line-height-tight);font-weight:600;margin:0 0 var(--space-3)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-3);color:var(--color-text-muted)}a{color:var(--color-primary)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.upload-dropzone{border:2px dashed var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-6);text-align:center;color:var(--color-text-muted);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.upload-dropzone--active{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.tab-nav{display:flex;gap:var(--space-2);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.tab-nav__link{padding:var(--space-3) var(--space-4);border:none;background:none;cursor:pointer;font:inherit;color:var(--color-text-muted);border-bottom:2px solid transparent}.tab-nav__link.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.tab-nav__link:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.evidence-quote{border-left:3px solid var(--color-border-strong);padding-left:var(--space-3);margin:var(--space-2) 0;color:var(--color-text-muted);font-style:italic}.proposal-item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}@media (max-width: 640px){.proposal-item .spread{flex-direction:column;align-items:flex-start;gap:var(--space-2)}}.page{max-width:var(--page-max-width);margin:0 auto;padding:var(--space-6) var(--space-5)}.page--narrow{max-width:640px}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack--tight{gap:var(--space-2)}.cluster{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.card--flush{padding:0}.card__header{margin-bottom:var(--space-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);border:1px solid transparent;padding:.6rem 1.1rem;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-primary-contrast)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn--secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn--ghost{background:transparent;color:var(--color-text-muted)}.btn--ghost:hover:not(:disabled){background:var(--color-primary-soft);color:var(--color-primary)}.btn--danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn--sm{padding:.4rem .75rem;font-size:var(--font-size-xs)}.btn--full{width:100%}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field__label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text)}.field__hint{font-size:var(--font-size-xs);color:var(--color-text-faint)}.field__error{font-size:var(--font-size-xs);color:var(--color-danger);font-weight:600}.input,.textarea,.select{width:100%;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);padding:.6rem .75rem;font-size:var(--font-size-md);color:var(--color-text);transition:border-color var(--transition-fast)}.input:hover,.textarea:hover,.select:hover{border-color:var(--color-text-faint)}.input:focus-visible,.textarea:focus-visible,.select:focus-visible{border-color:var(--color-focus-ring)}.input--error,.textarea--error,.select--error{border-color:var(--color-danger)}.textarea{min-height:6rem;resize:vertical}.checkbox-row{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-3)}.checkbox-row input{margin-top:3px}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 var(--space-4)}.error-summary{border:1px solid var(--color-danger);background:var(--color-danger-soft);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.error-summary h2{font-size:var(--font-size-md);color:var(--color-danger);margin-bottom:var(--space-2)}.error-summary ul{margin:0;padding-left:1.25rem}.error-summary a{color:var(--color-danger);font-weight:600}.alert{display:flex;gap:var(--space-3);align-items:flex-start;border-radius:var(--radius-md);border:1px solid transparent;padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm)}.alert__icon{flex-shrink:0;font-weight:700}.alert--info{background:var(--color-info-soft);color:var(--color-info);border-color:var(--color-info)}.alert--success{background:var(--color-success-soft);color:var(--color-success);border-color:var(--color-success)}.alert--warning{background:var(--color-warning-soft);color:var(--color-warning);border-color:var(--color-warning)}.alert--error{background:var(--color-danger-soft);color:var(--color-danger);border-color:var(--color-danger)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);border-radius:999px;padding:.15rem .6rem;font-size:var(--font-size-xs);font-weight:600;border:1px solid transparent}.badge__dot{width:6px;height:6px;border-radius:999px;background:currentColor}.badge--neutral{background:var(--color-bg);color:var(--color-text-muted);border-color:var(--color-border-strong)}.badge--success{background:var(--color-success-soft);color:var(--color-success)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge--info{background:var(--color-info-soft);color:var(--color-info)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181573;display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:100}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:480px;width:100%;padding:var(--space-5)}.modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}.modal__close{background:transparent;border:none;cursor:pointer;font-size:var(--font-size-lg);color:var(--color-text-muted);line-height:1;padding:var(--space-1)}.app-shell{display:flex;min-height:100%}.app-sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-5)}.app-wordmark{font-size:var(--font-size-lg);font-weight:700;color:var(--color-primary);text-decoration:none}.app-wordmark__tag{display:block;font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-faint);margin-top:2px}.app-nav{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.app-nav__link{display:flex;align-items:center;gap:var(--space-2);padding:.55rem .75rem;border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:var(--font-size-sm);font-weight:500}.app-nav__link:hover{background:var(--color-primary-soft);color:var(--color-primary)}.app-nav__link.is-active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-header{height:var(--header-height);border-bottom:1px solid var(--color-border);background:var(--color-surface);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-5);gap:var(--space-4)}.app-header__menu-btn{display:none;background:transparent;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:.4rem .6rem;cursor:pointer}.app-header__progress{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.progress-bar{width:120px;height:6px;border-radius:999px;background:var(--color-border);overflow:hidden}.progress-bar__fill{height:100%;background:var(--color-primary);transition:width var(--transition-normal)}.app-content{flex:1;overflow-y:auto}.mobile-nav{display:none}@media (max-width: 860px){.app-sidebar{display:none}.app-header__menu-btn{display:inline-flex}.mobile-nav.is-open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--color-surface);padding:var(--space-5);overflow-y:auto}}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted)}.loading-state{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);padding:var(--space-4)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);animation:spin .8s linear infinite}@media (prefers-reduced-motion: reduce){.spinner{animation:none}}@keyframes spin{to{transform:rotate(360deg)}}.auth-layout{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-6) var(--space-4);background:var(--color-bg)}.auth-card{width:100%;max-width:420px}.wizard-layout{display:grid;grid-template-columns:240px 1fr;gap:var(--space-6);align-items:start}@media (max-width: 860px){.wizard-layout{grid-template-columns:1fr}}.wizard-steps{display:flex;flex-direction:column;gap:var(--space-1);position:sticky;top:var(--space-5)}.wizard-step{display:flex;align-items:center;gap:var(--space-2);padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);border:none;background:transparent;text-align:left;cursor:pointer;width:100%}.wizard-step:hover{background:var(--color-primary-soft)}.wizard-step.is-active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.wizard-step__marker{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-border-strong);display:flex;align-items:center;justify-content:center;font-size:.65rem;flex-shrink:0;color:var(--color-text-faint)}.wizard-step.is-complete .wizard-step__marker{background:var(--color-success);border-color:var(--color-success);color:#fff}.wizard-step.is-active .wizard-step__marker{border-color:var(--color-primary);color:var(--color-primary)}.wizard-actions{display:flex;justify-content:space-between;margin-top:var(--space-5);gap:var(--space-3)}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:.25rem .65rem;font-size:var(--font-size-xs);font-weight:600}.chip__remove{background:none;border:none;color:inherit;cursor:pointer;font-weight:700;line-height:1;padding:0}.summary-row{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.summary-row:last-child{border-bottom:none}.summary-row__label{color:var(--color-text-muted)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.stat-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.calendar-month{width:100%;border-collapse:collapse;table-layout:fixed}.calendar-month th{text-align:left;font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-2);border-bottom:1px solid var(--color-border)}.calendar-month td{vertical-align:top;border:1px solid var(--color-border);padding:var(--space-2);height:6rem;overflow:auto}.calendar-month__day-number{font-size:var(--font-size-sm);color:var(--color-text-faint);display:block;margin-bottom:var(--space-1)}.calendar-month__item{font-size:var(--font-size-xs);background:var(--color-primary-soft);color:var(--color-text);border-radius:var(--radius-sm);padding:2px var(--space-1);margin-bottom:2px;overflow-wrap:break-word}@media (max-width: 860px){.calendar-month,.calendar-month thead,.calendar-month tbody,.calendar-month th,.calendar-month td,.calendar-month tr{display:block}.calendar-month thead{display:none}.calendar-month td{height:auto;min-height:2.5rem}}
