:root{--color-bg: #ffffff;--color-surface: #f7f8fa;--color-border: #cbd2d9;--color-text: #1a1f28;--color-text-muted: #47505c;--color-primary: #1454b8;--color-primary-hover: #0d3d8a;--color-primary-contrast: #ffffff;--color-success-bg: #eaf7ee;--color-success-border: #2f8a3f;--color-success-text: #1e5c29;--color-danger-bg: #fdecea;--color-danger-border: #c62828;--color-danger-text: #8a1c1c;--color-warning-bg: #fff6e0;--color-warning-border: #b8860b;--color-warning-text: #6b4c00;--color-focus-ring: #0d3d8a;--font-size-base: 1rem;--font-size-sm: .9375rem;--font-size-lg: 1.25rem;--font-size-xl: 1.75rem;--line-height-base: 1.55;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--radius-sm: 4px;--radius-md: 8px;--max-width-content: 40rem;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Malgun Gothic,Apple SD Gothic Neo,sans-serif;font-size:var(--font-size-base);line-height:var(--line-height-base)}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}a{color:var(--color-primary)}a:hover,a:focus-visible{color:var(--color-primary-hover)}.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}.skip-link{position:absolute;left:var(--space-2);top:-3rem;z-index:100;background:var(--color-primary);color:var(--color-primary-contrast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);transition:top .15s ease-in-out}.skip-link:focus{top:var(--space-2)}.app-shell{max-width:var(--max-width-content);margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.app-header h1{font-size:var(--font-size-xl);margin:0 0 var(--space-2)}.app-header p{color:var(--color-text-muted);margin:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.card h2{font-size:var(--font-size-lg);margin:0}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-weight:600}.field input[type=text],.field input[type=date]{font-size:var(--font-size-base);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);width:100%;max-width:20rem}.field input[aria-invalid=true]{border-color:var(--color-danger-border);border-width:2px}.field-checkbox label{display:flex;align-items:center;gap:var(--space-2);font-weight:400;cursor:pointer}.field-checkbox input[type=checkbox]{width:1.25rem;height:1.25rem;flex-shrink:0}.field-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--font-size-base);font-weight:600;padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);border:1px solid transparent;background:var(--color-primary);color:var(--color-primary-contrast);cursor:pointer;min-height:2.75rem;align-self:flex-start}.button:hover:not(:disabled){background:var(--color-primary-hover)}.button:disabled{cursor:not-allowed;opacity:.65}.notice{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid;font-size:var(--font-size-sm)}.notice-error{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger-text)}.notice-success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-text)}.notice-warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning-text)}.notice strong{display:block;margin-bottom:var(--space-1)}.notice p{margin:0}@media (max-width: 30rem){.app-shell{padding:var(--space-4) var(--space-3) var(--space-5)}.card{padding:var(--space-4)}.field input[type=text],.field input[type=date]{max-width:none}.button{align-self:stretch}}@media (prefers-reduced-motion: reduce){.skip-link{transition:none}}
