:root{--brand-hue: 279;--brand-chroma: .17;--brand: oklch(.58 var(--brand-chroma) var(--brand-hue));--brand-soft: oklch(.95 calc(var(--brand-chroma) * .25) var(--brand-hue));--brand-line: oklch(.86 calc(var(--brand-chroma) * .4) var(--brand-hue));--brand-deep: oklch(.42 var(--brand-chroma) var(--brand-hue));--paper: #fbfaff;--card: #ffffff;--ink: #171334;--ink-soft: #4a4470;--ink-mute: #6f6894;--line: #e7e3f7;--danger: #c0343f;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Be Vietnam Pro,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}.login{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(720px 420px at 22% 18%,var(--brand-soft),transparent 70%),radial-gradient(520px 380px at 82% 78%,#e6f6ff,transparent 70%),var(--paper)}.login-card{width:min(420px,100%);background:var(--card);border:1px solid var(--line);border-radius:20px;padding:40px 34px;text-align:center;box-shadow:0 24px 60px -30px #17133459}.login-card img{height:46px;width:auto;margin-bottom:22px}.login-card h1{font-size:1.32rem;letter-spacing:-.01em}.login-card p{margin-top:8px;color:var(--ink-mute);font-size:.92rem;line-height:1.55}.gbtn{margin-top:26px;display:flex;justify-content:center;min-height:44px}.top{display:flex;align-items:center;gap:14px;padding:14px 28px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.top img{height:34px;width:auto}.top .who{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:.88rem;color:var(--ink-soft)}.top .who img{height:30px;width:30px;border-radius:50%}.page{max-width:940px;margin:0 auto;padding:34px 24px 80px}.page>h2{font-size:1.02rem;color:var(--ink-mute);font-weight:600;margin-bottom:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:22px}.card h3{font-size:1.06rem}.card .hint{margin-top:6px;color:var(--ink-mute);font-size:.88rem;line-height:1.6}.swatches{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.swatch{display:flex;align-items:center;gap:10px;padding:9px 15px 9px 10px;border-radius:999px;border:1.5px solid var(--line);background:#fff;cursor:pointer;font:inherit;font-size:.9rem;color:var(--ink-soft);transition:border-color .15s,box-shadow .15s,transform .15s}.swatch:hover{transform:translateY(-1px)}.swatch .chip{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000014}.swatch[aria-pressed=true]{border-color:var(--brand);color:var(--ink);font-weight:600;box-shadow:0 0 0 3px var(--brand-soft)}.swatch:disabled{opacity:.55;cursor:default}.rows{margin-top:18px;border-top:1px solid var(--line)}.row{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line);font-size:.94rem}.row .tag{font-size:.72rem;font-weight:700;letter-spacing:.03em;padding:3px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep)}.row .spacer{flex:1}.add{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}input[type=email]{flex:1;min-width:220px;padding:11px 14px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:.94rem;color:var(--ink);background:#fff}input[type=email]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}button.primary{padding:11px 20px;border:0;border-radius:10px;background:var(--brand);color:#fff;font:inherit;font-weight:600;font-size:.94rem;cursor:pointer}button.primary:disabled{opacity:.5;cursor:default}button.link{border:0;background:none;color:var(--danger);font:inherit;font-size:.88rem;cursor:pointer;padding:4px 6px}button.link:disabled{color:var(--ink-mute);cursor:default}button.ghost{border:1.5px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:10px;padding:8px 14px;font:inherit;font-size:.88rem;cursor:pointer}.msg{margin-top:16px;font-size:.9rem;padding:11px 14px;border-radius:10px}.msg.ok{background:#e8f7ee;color:#17603a}.msg.err{background:#fdeaec;color:var(--danger)}.loading{padding:80px 0;text-align:center;color:var(--ink-mute)}
