:root{--foreground:#1a1a1a;--background:#fff;--bg:#f4f2ee;--paper:#fff;--ink:#1f1b17;--ink-2:#4a463f;--muted:#8b847b;--line:#e4e0d8;--line-2:#d6d0c5;--accent:#1f1b17;--focus:#6e665a;--error:#b0473a}*{box-sizing:border-box}body,html{margin:0;padding:0;color:var(--foreground);background:var(--background);font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.6}main{max-width:720px;margin:0 auto;padding:2rem 1.5rem}a{color:#2563eb}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.auth-wrap{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;background:var(--bg);color:var(--ink);font-family:Zen Kaku Gothic New,Noto Sans JP,system-ui,sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:.02em;line-height:1.7;font-weight:500}.auth-topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;color:var(--muted);font-size:12px}.auth-topbar .auth-brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--ink);letter-spacing:.04em;text-decoration:none}.auth-topbar .auth-brand-mark{width:22px;height:22px;border:1.5px solid var(--ink);border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:900}.auth-main{display:grid;place-items:center;padding:40px 22px;max-width:none}.auth-card{width:100%;max-width:420px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:40px 36px 36px;box-shadow:0 28px 60px -28px rgba(31,27,23,.18),0 2px 0 rgba(31,27,23,.02)}.auth-eyebrow{font-size:11px;color:var(--muted);letter-spacing:.32em;font-weight:800;margin:0 0 12px;text-align:center}.auth-title{margin:0 0 8px;font-size:22px;font-weight:900;letter-spacing:.06em;text-align:center;color:var(--ink)}.auth-lead{margin:0 0 28px;font-size:12.5px;color:var(--muted);text-align:center;line-height:1.85}.auth-form{display:grid;grid-gap:18px;gap:18px}.auth-field{display:grid;grid-gap:6px;gap:6px}.auth-label{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--ink-2)}.auth-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:48px;padding:0 14px;border:1px solid var(--line-2);border-radius:12px;background:#fbfaf7;font-family:inherit;font-size:15px;letter-spacing:.04em;color:var(--ink);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.auth-input::placeholder{color:#b6afa4;font-weight:500}.auth-input:hover{background:#fff}.auth-input:focus{outline:none;background:#fff;border-color:var(--focus);box-shadow:0 0 0 4px rgba(110,102,90,.12)}.auth-password-wrap{position:relative}.auth-password-wrap .auth-input{padding-right:46px}.auth-toggle-btn{position:absolute;right:0;top:0;height:48px;width:44px;display:grid;place-items:center;background:transparent;border:none;cursor:pointer;color:var(--muted);border-radius:0 12px 12px 0;transition:color .15s ease}.auth-toggle-btn:hover{color:var(--ink)}.auth-toggle-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.auth-error{display:flex;align-items:flex-start;gap:8px;background:#fbedea;border:1px solid #ecc8c2;color:var(--error);border-radius:10px;padding:10px 12px;font-size:12.5px;font-weight:700;letter-spacing:.02em}.auth-error-icon{flex-shrink:0;margin-top:1px;width:18px;height:18px;border-radius:50%;background:var(--error);color:#fff;font-weight:900;display:grid;place-items:center;font-size:11px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.auth-submit{margin-top:6px;height:50px;width:100%;border:none;border-radius:12px;background:var(--accent);color:#fff;font-family:inherit;font-size:14px;font-weight:800;letter-spacing:.18em;cursor:pointer;transition:transform .08s ease,background .15s ease,box-shadow .15s ease;box-shadow:0 12px 24px -14px rgba(31,27,23,.6)}.auth-submit:hover:not(:disabled){background:#2c2722}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-submit:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.auth-forgot{font-size:12.5px;color:var(--ink-2);text-decoration:none;font-weight:700;border-bottom:1px solid transparent;transition:border-color .15s ease}.auth-forgot:hover{border-color:var(--ink-2);color:var(--ink-2)}.auth-footer-link{margin-top:22px;padding-top:22px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;font-size:13px}.auth-footer-text{color:var(--muted);letter-spacing:.04em}.auth-signup-link{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-weight:800;letter-spacing:.06em;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:1px;transition:gap .15s ease,opacity .15s ease}.auth-signup-link:hover{gap:10px;opacity:.75;color:var(--ink)}.org-code-list{display:grid;grid-gap:8px;gap:8px}.org-code-row{display:flex;gap:8px;align-items:center}.org-code-row .auth-input{flex:1 1}.org-code-remove-btn{flex-shrink:0;height:48px;width:48px;border:1px solid var(--line-2);border-radius:12px;background:#fbfaf7;cursor:pointer;color:var(--muted);font-size:18px;display:grid;place-items:center}.org-code-remove-btn:hover{color:var(--ink)}.org-code-add-btn{height:40px;border:1px dashed var(--line-2);border-radius:12px;background:transparent;cursor:pointer;color:var(--ink-2);font-size:13px;font-weight:700;letter-spacing:.06em;font-family:inherit}.org-code-add-btn:hover{border-color:var(--focus);color:var(--ink)}.auth-admin-link-row{margin-top:14px;text-align:center}.auth-company-link{font-size:12px;font-weight:700;color:var(--muted);text-decoration:none;letter-spacing:.06em;border-bottom:1px solid transparent;transition:color .15s ease,border-color .15s ease}.auth-company-link:hover{color:var(--ink);border-color:var(--ink)}.auth-page-footer{text-align:center;padding:22px;font-size:11px;color:var(--muted);letter-spacing:.12em}.auth-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:rgba(31,27,23,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.auth-modal{width:100%;max-width:360px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:32px 26px 26px;text-align:center;box-shadow:0 30px 60px -24px rgba(31,27,23,.55);display:grid;grid-gap:12px;gap:12px;justify-items:center}.auth-spinner{width:38px;height:38px;border-radius:50%;border:3px solid var(--line-2);border-top-color:var(--accent);animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-modal-title{margin:6px 0 0;font-size:16px;font-weight:800;color:var(--ink);letter-spacing:.04em}.auth-modal-text{margin:0;font-size:13px;color:var(--muted);line-height:1.7}.auth-modal-btn{margin-top:10px;width:100%;height:46px;border:1px solid var(--line-2);border-radius:12px;background:#fff;color:var(--ink);font-family:inherit;font-size:13.5px;font-weight:800;letter-spacing:.06em;cursor:pointer;transition:border-color .15s ease,background .15s ease}.auth-modal-btn:hover{border-color:var(--accent);background:#fbfaf7}.auth-modal-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.auth-spinner{animation-duration:2s}}