:root{--brand:#123a63;--brand-accent:#1b6ec2;--text:#16202c;--text-muted:#5b6875;--bg:#ffffff;--bg-subtle:#eef2f6;--border:#dfe5ec;--border-strong:#7d8794;--alert-poor-condition:#d1495b;--alert-stress:#e07a25;--alert-fatigue:#b5892a;--alert-mental:#7b5ea7;--alert-risky-driving:#c0392b;--alert-work-error:#2c7a7b;--focus-ring:#1b6ec2;--error-bg:#fdf2f4;--error-text:#a4132b}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Hiragino Kaku Gothic ProN,Yu Gothic UI,Yu Gothic,Meiryo,Noto Sans JP,sans-serif;line-height:1.7;font-size:15px}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}tr[tabindex="0"]{cursor:pointer}a{color:var(--brand-accent)}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg-subtle)}.auth-card{width:100%;max-width:420px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:28px 24px 24px}.auth-card h1{margin:0 0 4px;font-size:20px;color:var(--brand)}.lead{margin:0 0 20px;color:var(--text-muted);font-size:14px}.field{margin-bottom:16px}.field label{display:block;margin-bottom:4px;font-weight:600;font-size:14px}.field input{width:100%;font-size:16px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg);color:var(--text)}.hint{margin:6px 0 0;font-size:13px;color:var(--text-muted)}.form-error{margin:0 0 16px;padding:10px 12px;border-left:4px solid var(--alert-poor-condition);background:var(--error-bg);color:var(--error-text);font-size:14px}button.primary{width:100%;font-size:16px;font-weight:600;padding:12px 16px;border:0;border-radius:6px;background:var(--brand);color:#ffffff;cursor:pointer}button.primary:disabled{background:var(--text-muted);cursor:progress}button.link-button{margin-top:24px;padding:8px 4px;border:0;background:none;font-size:14px;color:var(--brand);text-decoration:underline;cursor:pointer}button.link-button:disabled{color:var(--text-muted);cursor:progress}button.link-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.page{max-width:1100px;margin:0 auto;padding:20px 16px 64px}.page-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px;border-bottom:1px solid var(--border)}.page-head h1{margin:0;font-size:20px;color:var(--brand)}.page section{margin-top:28px}.page h2{font-size:16px;margin:0 0 8px}.notice{margin:12px 0 0;padding:10px 12px;border-left:4px solid var(--brand-accent);background:var(--bg-subtle);font-size:14px}.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;list-style:none;margin:0;padding:0}.kpi li{border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--bg)}.kpi-label{display:block;font-size:13px;color:var(--text-muted)}.kpi-value{font-size:28px;font-weight:700;color:var(--brand)}.kpi-unit{margin-left:4px;font-size:13px;color:var(--text-muted)}.table-scroll{overflow-x:auto;position:relative}.page table{width:100%;border-collapse:collapse;font-size:14px}.page td,.page th{border-bottom:1px solid var(--border);padding:8px 10px;text-align:left;white-space:nowrap}.page thead th{font-size:13px}.page tbody tr:hover,.page thead th{background:var(--bg-subtle)}.stack{display:grid;grid-gap:6px;gap:6px;max-width:520px}.stack label{font-weight:600;font-size:14px;margin-top:8px}.inline-form select,.stack input,.stack select{font-size:16px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg);color:var(--text)}.inline-form button,.stack button{margin-top:12px;justify-self:start;font-size:15px;font-weight:600;padding:10px 18px;border:0;border-radius:6px;background:var(--brand);color:#ffffff;cursor:pointer}.inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.sparkline{margin:12px 0}.auth-footer{margin-top:16px}.token{width:100%;margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:16px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg);color:var(--text)}.inline-form button{margin-top:0;padding:6px 12px;font-size:13px}.inline-form button:disabled,.stack button:disabled{background:var(--text-muted);cursor:progress}.form-ok{border-left:4px solid var(--alert-work-error)}.form-ok,.form-warn{margin:12px 0 0;padding:10px 12px;background:var(--bg-subtle);font-size:14px}.form-warn{border-left:4px solid var(--alert-stress)}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}