:root{--color-cream:#fdf6e3;--color-cream-dark:#f5e6c8;--color-coconut:#5c3d1e;--color-coconut-dark:#3b2410;--color-coconut-light:#8b5e3c;--color-green:#2d7a4f;--color-green-light:#4caf78;--color-green-dark:#1a5235;--color-text-primary:#1a1a1a;--color-text-secondary:#4a4a4a;--color-text-muted:#666;--color-text-on-dark:#fdf6e3;--color-text-on-coconut:#fdf6e3;--color-error:#c0392b;--color-error-bg:#fdecea;--color-success:#1e7e34;--color-success-bg:#e8f5e9;--color-warning:#856404;--color-warning-bg:#fff3cd;--color-surface:#fff;--color-surface-raised:#fdf6e3;--color-border:#d4b896;--color-border-focus:var(--color-coconut);--font-family-base:"Georgia", "Times New Roman", serif;--font-family-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1.125rem;--font-size-md:1.25rem;--font-size-lg:1.5rem;--font-size-xl:2rem;--font-size-2xl:2.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-bold:700;--line-height-tight:1.25;--line-height-base:1.6;--line-height-relaxed:1.8;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-full:9999px;--border-width:1px;--border-width-thick:2px;--shadow-sm:0 1px 3px #0000001f;--shadow-md:0 4px 12px #00000026;--shadow-lg:0 8px 24px #0000002e;--transition-fast:.15s ease;--transition-base:.25s ease;--touch-target-min:44px;--max-width-content:640px;--max-width-form:60rem;--max-width-wide:75rem;--gutter:var(--space-4)}@media (width>=40em){:root{--gutter:var(--space-6)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:100%}body{font-family:var(--font-family-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text-primary);background-color:var(--color-cream);min-height:100dvh}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-base);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-coconut-dark)}h1{font-size:clamp(var(--font-size-xl), 1.25rem + 2vw, var(--font-size-2xl))}h2{font-size:clamp(var(--font-size-lg), 1rem + 1.5vw, var(--font-size-xl))}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}p{margin-bottom:var(--space-4)}a{color:var(--color-green-dark);text-decoration:underline}a:hover,a:focus{color:var(--color-green)}ul,ol{padding-left:var(--space-6)}img{max-width:100%;height:auto;display:block}input,select,textarea,button{font-family:var(--font-family-ui);font-size:var(--font-size-base);line-height:var(--line-height-base)}button{cursor:pointer;min-height:var(--touch-target-min);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast), transform var(--transition-fast);border:none}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:var(--border-width-thick) solid var(--color-coconut);outline-offset:2px}.page-wrapper{width:100%;max-width:var(--max-width-content);padding:var(--space-6) var(--gutter);margin:0 auto}.card{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.app-banner{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--gutter);border-bottom:var(--border-width) solid currentColor;font-size:var(--font-size-sm);display:flex}.app-banner--warn{background-color:var(--color-warning-bg);color:var(--color-warning)}.app-banner--error{background-color:var(--color-error-bg);color:var(--color-error)}.app-banner__close{min-width:var(--touch-target-min);min-height:var(--touch-target-min);color:inherit;font-size:var(--font-size-lg);background:0 0;flex-shrink:0;padding:0;line-height:1}.not-found{max-width:var(--max-width-content);margin:var(--space-16) auto 0;text-align:center}.not-found__link{min-height:var(--touch-target-min);justify-content:center;align-items:center;display:inline-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}.text-muted{color:var(--color-text-muted);font-size:var(--font-size-sm)}.text-error{color:var(--color-error);font-size:var(--font-size-sm)}#app{min-height:100dvh}.form-field{margin-bottom:var(--space-6)}.form-field label,.form-field legend{font-weight:var(--font-weight-medium);font-size:var(--font-size-base);color:var(--color-text-primary);margin-bottom:var(--space-2);display:block}.form-field fieldset{border:none;padding:0}.form-field fieldset legend{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-3);float:none;width:100%}input[type=text],input[type=email],input[type=number],input[type=date],input[type=time]{width:100%;padding:var(--space-3) var(--space-4);border:var(--border-width-thick) solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-fast);min-height:var(--touch-target-min)}input:focus{border-color:var(--color-coconut);outline:none;box-shadow:0 0 0 3px #5c3d1e33}input.input--error{border-color:var(--color-error)}.field-error{margin-top:var(--space-1);color:var(--color-error);font-size:var(--font-size-sm);display:block}.form-error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4);font-size:var(--font-size-base)}.field-pair{gap:0 var(--space-4);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=40em){.field-pair{grid-template-columns:1fr 1fr}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min);padding:var(--space-3) var(--space-6);border:var(--border-width-thick) solid transparent;border-radius:var(--radius-md);font-family:var(--font-family-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);text-decoration:none;display:inline-flex}.btn:focus-visible{outline:var(--border-width-thick) solid var(--color-coconut);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary,.btn--primary:focus{background-color:var(--color-coconut);border-color:var(--color-coconut);color:var(--color-text-on-dark)}.btn--primary:hover:not(:disabled){background-color:var(--color-coconut-dark);border-color:var(--color-coconut-dark);color:var(--color-text-on-dark)}.btn--secondary,.btn--secondary:focus{background-color:var(--color-surface);border-color:var(--color-coconut);color:var(--color-coconut)}.btn--secondary:hover:not(:disabled){background-color:var(--color-cream-dark);color:var(--color-coconut-dark)}.app-header{background-color:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border)}.app-header__inner{align-items:center;gap:var(--space-2) var(--space-4);max-width:var(--max-width-wide);padding:var(--space-2) var(--gutter);flex-wrap:wrap;margin:0 auto;display:flex}.app-header__brand,.app-header__brand:focus{min-height:var(--touch-target-min);font-family:var(--font-family-base);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-coconut-dark);align-items:center;margin-right:auto;text-decoration:none;display:inline-flex}.app-header__brand:hover{color:var(--color-coconut)}.app-header__nav{gap:var(--space-2);flex-wrap:wrap;flex-basis:100%;order:3;display:flex}.app-header__link,.app-header__link:focus{min-height:var(--touch-target-min);padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-coconut);align-items:center;text-decoration:none;display:inline-flex}.app-header__link:hover{background-color:var(--color-cream);color:var(--color-coconut-dark)}.app-header__link[aria-current=page]{font-weight:var(--font-weight-bold);color:var(--color-coconut-dark);text-underline-offset:.3em;text-decoration:underline}.app-header__logout{font-size:var(--font-size-sm);padding-block:var(--space-2)}@media (width>=40em){.app-header__nav{flex-basis:auto;order:0}}
