:root{--c-bg: #ffffff;--c-surface: #f6f4ef;--c-text: #1a1a1a;--c-text-muted: #555555;--c-border: #c8c4ba;--c-border-strong: #6b6b6b;--c-accent: #1e4d8f;--c-accent-hover: #163a6c;--c-error: #b32d2d;--c-error-bg: #fde7e7;--c-success: #2d7a2d;--c-success-bg: #e6f4e6;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fz-sm: 16px;--fz-base: 19px;--fz-lg: 22px;--fz-xl: 28px;--fz-2xl: 36px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08)}*,*:before,*:after{box-sizing:border-box}html{font-size:var(--fz-base);line-height:1.55;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);color:var(--c-text);background:var(--c-bg);font-feature-settings:"kern","liga"}h1,h2,h3{color:var(--c-text);line-height:1.2;margin:0 0 var(--space-4)}h1{font-size:var(--fz-2xl)}h2{font-size:var(--fz-xl)}h3{font-size:var(--fz-lg)}p{margin:0 0 var(--space-4)}a{color:var(--c-accent);text-decoration-thickness:2px;text-underline-offset:3px}a:hover{color:var(--c-accent-hover)}a:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px;border-radius:var(--r-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 var(--space-5);font-size:var(--fz-base);font-weight:600;font-family:inherit;border:2px solid var(--c-accent);border-radius:var(--r-md);background:var(--c-accent);color:#fff;cursor:pointer;text-decoration:none;transition:background .1s ease,border-color .1s ease}.btn:hover{background:var(--c-accent-hover);border-color:var(--c-accent-hover)}.btn:focus-visible{outline:3px solid #000;outline-offset:2px}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn--secondary{background:#fff;color:var(--c-accent)}.btn--secondary:hover{background:var(--c-surface);color:var(--c-accent-hover)}.btn--danger{background:var(--c-error);border-color:var(--c-error)}.btn--danger:hover{background:#8e2424;border-color:#8e2424}.btn--full{width:100%}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5)}.field>label{font-weight:600;font-size:var(--fz-base)}.field>.hint{font-size:var(--fz-sm);color:var(--c-text-muted)}.input{font-family:inherit;font-size:var(--fz-base);padding:var(--space-3) var(--space-4);min-height:56px;border:2px solid var(--c-border-strong);border-radius:var(--r-md);background:#fff;color:var(--c-text);width:100%}.input:focus{outline:3px solid var(--c-accent);outline-offset:0;border-color:var(--c-accent)}.alert{padding:var(--space-4) var(--space-5);border-radius:var(--r-md);margin-bottom:var(--space-5);border-left:6px solid;font-size:var(--fz-base)}.alert--error{background:var(--c-error-bg);border-color:var(--c-error);color:#5e1a1a}.alert--success{background:var(--c-success-bg);border-color:var(--c-success);color:#1d4d1d}.container{max-width:720px;margin:0 auto;padding:var(--space-5) var(--space-4)}.card{background:#fff;border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.site-header{background:var(--c-surface);border-bottom:1px solid var(--c-border)}.site-header__inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);gap:var(--space-4);flex-wrap:wrap}.site-header__brand{font-size:var(--fz-lg);font-weight:700;color:var(--c-text);text-decoration:none}.site-header__nav{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.site-header__nav a,.site-header__nav button{font-size:var(--fz-base);min-height:48px;padding:0 var(--space-3);display:inline-flex;align-items:center}.site-header__nav .btn{padding:0 var(--space-4)}.stack>*+*{margin-top:var(--space-4)}.text-muted{color:var(--c-text-muted)}.text-center{text-align:center}.mt-6{margin-top:var(--space-6)}.mb-6{margin-bottom:var(--space-6)}@media (max-width: 480px){:root{--fz-2xl: 30px;--fz-xl: 24px}.container{padding:var(--space-4) var(--space-3)}.card{padding:var(--space-5)}}
