:root{--bg:#f6f7f5;--surface:#fff;--text:#1c2420;--muted:#5d6a63;--border:#d9dfdb;--accent:#1f7a4d;--accent-text:#fff;--accent-soft:#e4f2ea;--user-bubble:#1f7a4d;--user-text:#fff;--danger:#b3261e;--danger-soft:#fbeae8;--focus:#1a5fb4;--font:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#131815;--surface:#1d2420;--text:#e8ede9;--muted:#9aa8a0;--border:#34403a;--accent:#4cc38a;--accent-text:#0b1a12;--accent-soft:#1d3328;--user-bubble:#2f8f5f;--user-text:#fff;--danger:#ff8a80;--danger-soft:#3a1f1d;--focus:#8ab4f8}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;font-size:16px;line-height:1.7}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.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}.inner{width:100%;max-width:720px;margin:0 auto;padding:0 16px}.btn{appearance:none;border:1px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);font:inherit;text-align:center;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:10px 20px;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{color:var(--muted);background:0 0;font-weight:400}.btn.block{width:100%;display:flex}.btn.small{min-height:36px;padding:4px 12px;font-size:14px}.field{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:10px;padding:12px 14px;line-height:1.6;display:block}.field:disabled{opacity:.6}.field-label{margin-bottom:6px;font-weight:600;display:block}.optional{color:var(--muted);margin-left:6px;font-weight:400}.field-meta{color:var(--muted);justify-content:space-between;gap:12px;margin:4px 0 10px;font-size:13px;display:flex}.counter.over{color:var(--danger);font-weight:700}.hint{color:var(--muted);margin:0;font-size:13px}.inline-error,.inline-notice{border-radius:8px;margin:0 0 10px;padding:8px 12px;font-size:14px}.inline-error{background:var(--danger-soft);color:var(--danger)}.inline-notice{background:var(--accent-soft);color:var(--text)}.chat-page #app{flex-direction:column;min-height:100dvh;display:flex}.chat-header{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 0 8px;position:sticky;top:0}.title-row{flex-wrap:wrap;align-items:baseline;gap:2px 12px;display:flex}.brand{font-size:15px;font-weight:700}.company{color:var(--muted);font-size:13px}.progress-row{align-items:center;gap:10px;margin-top:6px;display:flex}.progress-bar{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{background:var(--accent);width:0;height:100%;transition:width .4s}.progress-text{text-align:right;font-variant-numeric:tabular-nums;min-width:3.5em;color:var(--muted);font-size:13px}.thread{flex:1;width:100%;max-width:720px;margin:0 auto;padding:16px 16px 24px}.messages{flex-direction:column;gap:12px;display:flex}.row{display:flex}.row.user{justify-content:flex-end}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px;max-width:88%;padding:10px 14px}.row.assistant .bubble{background:var(--surface);border:1px solid var(--border);border-top-left-radius:4px}.row.user .bubble{background:var(--user-bubble);color:var(--user-text);border-top-right-radius:4px}.typing .bubble{align-items:center;gap:5px;padding:14px 16px;display:inline-flex}.dot{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite blink}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@media (prefers-reduced-motion:reduce){.dot{opacity:.6;animation:none}.progress-fill{transition:none}}.prompt-wrap{z-index:10;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);position:sticky;bottom:0;box-shadow:0 -4px 12px #0000000d}.prompt-wrap.done{background:var(--accent-soft)}.prompt-text{white-space:pre-wrap;margin:0 0 12px}.done-text{font-size:17px}.privacy{margin:0 0 12px;font-size:14px}.prompt-area a:not(.btn){color:var(--accent)}.prompt-heading{margin:0 0 4px;font-size:17px}.choices{flex-wrap:wrap;gap:8px;display:flex}.btn.choice{text-align:left;flex:auto;justify-content:flex-start}@media (width<=560px){.choices{flex-direction:column}.btn.choice{width:100%}}.actions{flex-wrap:wrap;gap:8px;display:flex}.field.summary{min-height:140px;max-height:50vh}.fatal{text-align:center;max-width:560px;margin:0 auto;padding:64px 20px}.fatal-text{margin:16px 0 24px;font-size:17px}.admin{max-width:1100px;margin:0 auto;padding:24px 16px 64px}.admin-header h1{margin:0 0 4px;font-size:22px}.admin section{margin-top:24px}.admin .actions{margin:8px 0}.summary-line{margin:0 0 8px;font-weight:600}.table-scroll{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow-x:auto}.result-table{border-collapse:collapse;width:100%;font-size:14px}.result-table th,.result-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:8px 10px}.result-table th{white-space:nowrap;color:var(--muted);font-weight:600}.result-table tr:last-child td{border-bottom:0}.badge{background:var(--border);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px;display:inline-block}.badge.issued{background:var(--accent-soft);color:var(--accent)}.badge.error,.badge.invalid_email{background:var(--danger-soft);color:var(--danger)}.row-msg{color:var(--muted);margin-top:4px;font-size:12px}.url-cell{gap:6px;min-width:280px;display:flex}.url-input{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);font:inherit;border-radius:6px;flex:1;padding:4px 8px;font-size:12px}.login-form{gap:8px;max-width:360px;display:grid}
