:root { color-scheme: light; --ink:#102a31; --muted:#60747a; --brand:#003946; --brand-2:#075f70; --gold:#efbd3f; --line:#dfe7e9; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; min-height:100dvh; color:var(--ink); background:radial-gradient(circle at 15% 10%,#d8ebea,transparent 32%),linear-gradient(145deg,#f5f8f8,#e6efef); }
button,input,select,textarea { font:inherit; }
.auth-shell { min-height:100vh; min-height:100dvh; display:grid; place-items:center; padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom)); }
.auth-card { width:min(100%,470px); background:rgba(255,255,255,.96); border:1px solid rgba(0,57,70,.1); border-radius:22px; padding:clamp(22px,5vw,38px); box-shadow:0 24px 70px rgba(0,42,53,.14); }
.auth-card--wide { width:min(100%,820px); }
.brand { display:flex; align-items:center; gap:14px; margin-bottom:22px; }.brand__mark { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(145deg,var(--brand),var(--brand-2)); color:var(--gold); font-size:1.35rem; font-weight:800; }.brand h1 { margin:0; font-size:1.45rem; letter-spacing:-.03em; }.brand p { margin:3px 0 0; color:var(--muted); font-size:.9rem; }
.notice { border-radius:10px; padding:11px 13px; margin:0 0 16px; font-size:.82rem; line-height:1.45; }.notice--info { color:#334d54; background:#f1f6f6; border:1px solid #dce8e8; }.notice--error { color:#922828; background:#fff0f0; border:1px solid #f2caca; }.notice--success { color:#17623d; background:#edf9f2; border:1px solid #c9ead7; }
.tabs { display:grid; grid-template-columns:1fr 1fr; background:#edf3f3; padding:4px; border-radius:11px; margin-bottom:20px; }.tab { border:0; background:transparent; border-radius:8px; padding:9px; color:var(--muted); cursor:pointer; }.tab.is-active { color:var(--brand); background:#fff; box-shadow:0 2px 8px rgba(0,57,70,.08); font-weight:700; }
.stack { display:grid; gap:15px; }.field { display:grid; gap:6px; }.field label { font-size:.82rem; font-weight:700; }.field input,.field select,.field textarea { width:100%; min-height:46px; padding:11px 12px; border:1px solid #cad7da; border-radius:10px; background:#fff; color:var(--ink); outline:none; }.field textarea { resize:vertical; }.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--brand-2); box-shadow:0 0 0 3px rgba(7,95,112,.13); }
fieldset { border:1px solid var(--line); border-radius:13px; padding:17px; display:grid; gap:14px; } legend { padding:0 7px; font-weight:800; color:var(--brand); }.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.choice { display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid var(--line); border-radius:10px; }.choice input { margin-top:3px; accent-color:var(--brand); }.choice span { font-size:.85rem; line-height:1.4; }.choice small { display:block; color:var(--muted); margin-top:3px; }.choice--consent { background:#f5f8f8; }.section-note { margin:0 0 10px; color:var(--muted); font-size:.8rem; }
.btn { min-height:46px; border:0; border-radius:10px; padding:11px 16px; font-weight:750; cursor:pointer; }.btn:disabled { opacity:.55; cursor:wait; }.btn--primary { background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff; }.btn--secondary { background:#e6eff0; color:var(--brand); }
.subpanel { border-top:1px solid var(--line); margin-top:20px; padding-top:20px; }.subpanel h2 { margin:0 0 6px; font-size:1.05rem; }.subpanel>p,.hint { color:var(--muted); font-size:.8rem; line-height:1.45; }.auth-links { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 16px; border-top:1px solid var(--line); margin-top:22px; padding-top:17px; }.auth-links a,.link-button { color:var(--brand-2); font-size:.8rem; text-decoration:none; background:none; border:0; padding:0; cursor:pointer; }.auth-links a:hover,.link-button:hover { text-decoration:underline; }[hidden] { display:none!important; }
@media(max-width:620px){.auth-shell{padding-inline:0;align-items:stretch}.auth-card{border-radius:0;border-inline:0;min-height:100dvh}.field input,.field select{font-size:16px}.form-grid{grid-template-columns:1fr}}
.policy-shell { width:min(100% - 28px,850px); margin:32px auto; }.policy-card { background:#fff; border:1px solid var(--line); border-radius:20px; padding:clamp(22px,5vw,48px); box-shadow:0 18px 50px rgba(0,42,53,.1); }.policy-card h2 { color:var(--brand); font-size:1.08rem; margin:28px 0 8px; }.policy-card p,.policy-card li { color:#3e555b; line-height:1.7; font-size:.92rem; }.policy-card a { color:var(--brand-2); }.policy-card li+li { margin-top:7px; }
