/* Minimal member shell; later platform screens may extend these shared classes. */
.platform-auth { margin: 0; min-height: 100vh; background: var(--site-soft); }
.platform-shell { display: flex; align-items: center; justify-content: space-between; max-width: 1080px; margin: auto; padding: 20px 24px; }
.platform-shell .brand { font-size: 24px; letter-spacing: -.04em; }
.auth-card { box-sizing: border-box; width: min(100% - 32px, 480px); margin: 36px auto 48px; padding: 40px; border: 1px solid var(--site-line); border-radius: 24px; background: #fff; }
.auth-card h1 { margin: 8px 0 12px; font-size: clamp(28px, 5vw, 36px); line-height: 1.2; }
.auth-card h2 { font-size: 18px; margin: 0 0 12px; }
.auth-eyebrow { color: var(--site-muted); font-size: 11px; letter-spacing: .12em; }
.auth-intro, .auth-note { color: var(--site-muted); }
.auth-note { margin: 4px 0 12px; font-size: 13px; }
.auth-status { padding: 12px 14px; border-radius: 12px; background: var(--site-soft); overflow-wrap: anywhere; }
.auth-status:empty { display: none; }
.auth-status[data-state=error] { color: #a32424; background: #fff3f2; }
.auth-social, .auth-form { display: grid; gap: 12px; }
.auth-form fieldset { display: grid; gap: 12px; border: 0; padding: 0; margin: 0; min-width: 0; }
.auth-form label { font-size: 13px; font-weight: 500; margin-top: 4px; }
.auth-form input { box-sizing: border-box; width: 100%; min-height: 48px; border: 1px solid #b9b9bf; border-radius: 12px; padding: 10px 14px; color: var(--site-ink); background: #fff; }
.auth-card .button { min-height: 48px; cursor: pointer; text-decoration: none; text-align: center; }
.auth-card .auth-kakao { background: #fee500; color: #191919; }
.auth-card .auth-kakao:not(:disabled):hover { background: #f2d900; color: #191919; }
.auth-divider { text-align: center; color: var(--site-muted); margin: 24px 0; font-size: 12px; }
.auth-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--site-accent); font-size: 13px; }
.auth-signup, .auth-recovery { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--site-line); }
.auth-signup summary { min-height: 44px; cursor: pointer; }
.auth-footer, .auth-noscript { text-align: center; color: var(--site-muted); padding: 0 24px 24px; font-size: 12px; }
.auth-skip { position: fixed; left: 16px; top: -80px; padding: 12px; background: #fff; z-index: 10; }
.auth-skip:focus { top: 16px; }
@media (max-width: 520px) { .auth-card { padding: 28px 24px; margin-top: 16px; } }

/* Public SSR also receives these tokens before JavaScript runs. */
body[data-platform-page] { --site-ink:#1d1d1f; --site-muted:#626269; --site-line:#e5e5e9; --site-accent:#0071e3; --site-soft:#f5f5f7; margin:0; color:var(--site-ink); background:#fff; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Noto Sans KR",sans-serif; font-size:15px; line-height:1.65; }
[data-platform-page] *, [data-platform-page] *::before, [data-platform-page] *::after { box-sizing:border-box; }
[data-platform-page] [hidden] { display:none !important; }
[data-platform-page] :is(h1,h2,h3) { letter-spacing:-.035em; line-height:1.3; overflow-wrap:anywhere; }
[data-platform-page] :is(p,dd,dt,a,legend) { overflow-wrap:anywhere; }
[data-platform-page] :is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid var(--site-accent); outline-offset:4px; }
[data-platform-page] :is(button,input,select,textarea) { font:inherit; }
[data-platform-page] :is(button,input:not([type=checkbox]),select,textarea) { min-height:44px; }
[data-platform-page] a { color:#0066cc; }
[data-platform-page] button { cursor:pointer; }
[data-platform-page] .button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 20px; border:0; border-radius:980px; font-size:14px; line-height:1.5; text-decoration:none; background:var(--site-accent); color:#fff; }
[data-platform-page] .secondary { background:#e8e8ed; color:var(--site-ink); }
[data-platform-page] .danger { background:#fff3f2; color:#a32424; }
[data-platform-page] button:disabled { cursor:not-allowed; opacity:.65; }
[data-platform-page] .auth-link { display:inline-flex; align-items:center; min-height:44px; padding:6px 0; }
.platform-main,.platform-problem { width:min(100% - 48px,1080px); margin:0 auto; padding:40px 0 64px; }
.platform-problem { max-width:900px; }
.platform-form-main { max-width:720px; }
.platform-main > section,.platform-problem > section { margin-top:56px; }
.platform-hero { padding:32px 0 56px; margin-top:0 !important; }
.platform-hero h1 { font-size:clamp(42px,7vw,72px); font-weight:600; line-height:1.12; white-space:pre-line; margin:16px 0 24px; }
.platform-eyebrow { color:var(--site-muted); font-size:14px; }
.platform-intro { max-width:680px; color:var(--site-muted); font-size:clamp(17px,2vw,21px); line-height:1.6; }
.platform-note { color:var(--site-muted); font-size:13px; }
.platform-actions,.platform-section-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; margin:20px 0; }
.platform-section-heading { justify-content:space-between; }
.platform-main h2,.platform-problem h2 { font-size:28px; margin:0 0 24px; }
.platform-status { padding:14px 16px; border-radius:12px; background:var(--site-soft); white-space:pre-wrap; }
.platform-status:empty { display:none; }
.platform-status[data-state=error] { background:#fff3f2; color:#a32424; }
.platform-list { display:grid; gap:0; margin:20px 0; }
.platform-card { padding:28px 0; border-top:1px solid var(--site-line); }
.platform-card h2,.platform-card h3 { font-size:22px; margin:8px 0; }
.platform-card p { margin:8px 0; }
.platform-card .platform-card-link { display:inline-flex; align-items:center; min-height:44px; color:var(--site-ink); text-decoration:none; }
.platform-card-link:hover { color:var(--site-accent); }
.platform-meta { display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--site-muted); font-size:13px; }
.platform-badge { display:inline-flex; padding:5px 10px; border-radius:20px; background:var(--site-soft); font-size:13px; color:var(--site-muted); }
.platform-filters { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }
.platform-filters label { display:grid; gap:6px; font-size:13px; }
.platform-filters select { padding:10px 12px; border:1px solid #b9b9bf; border-radius:10px; background:#fff; }
.platform-tool-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.platform-tool { border:1px solid var(--site-line); border-radius:20px; padding:24px; text-decoration:none; color:var(--site-ink) !important; }
.platform-tool h3 { margin:0 0 12px; font-size:22px; }
.platform-tool p { color:var(--site-muted); min-height:64px; }
.platform-tool span { display:inline-flex; align-items:center; min-height:44px; color:var(--site-accent); }
.platform-tools { border-top:1px solid var(--site-line); padding-top:40px; }
.platform-form { display:grid; gap:12px; max-width:760px; margin:24px 0; }
.platform-form fieldset { display:grid; gap:12px; min-width:0; border:0; padding:0; margin:0; }
.platform-form legend { font-size:22px; font-weight:600; padding:0 0 16px; }
.platform-form label { font-size:14px; font-weight:500; margin-top:8px; }
.platform-form :is(input:not([type=checkbox]),select,textarea) { width:100%; max-width:100%; padding:12px 14px; border:1px solid #b9b9bf; border-radius:12px; background:#fff; font-size:16px; color:var(--site-ink); }
.platform-form textarea { resize:vertical; }
.platform-form input[type=file] { font-size:14px; padding:12px; }
.platform-form input::file-selector-button { min-height:44px; border:0; border-radius:8px; padding:8px 12px; margin-right:12px; cursor:pointer; }
.platform-form .button { justify-self:start; }
.platform-check { display:flex; align-items:center; gap:12px; min-height:44px; }
.platform-check input { width:22px; height:22px; flex:none; }
.platform-conflict { border:1px solid #d5ad5b; background:#fff9ed; padding:20px; border-radius:12px; margin:16px 0; }
.platform-problem article,.platform-file,.platform-talk,.platform-solution { padding:24px; border:1px solid var(--site-line); border-radius:16px; margin:16px 0; }
.platform-problem article h3 { margin-top:0; }
.platform-problem .platform-form { margin-bottom:0; }
[data-platform-page] dl { display:grid; grid-template-columns:minmax(100px,180px) minmax(0,1fr); gap:10px 20px; margin:20px 0; }
[data-platform-page] dt { color:var(--site-muted); font-size:13px; }
[data-platform-page] dd { margin:0; white-space:pre-wrap; }
.platform-footer { width:min(100% - 48px,1080px); margin:auto; border-top:1px solid var(--site-line); padding:24px 0 40px; color:var(--site-muted); font-size:13px; }
[data-member-menu] { display:flex; flex-wrap:wrap; gap:8px; }
[data-platform-page=problem] .platform-shell { gap:16px; border-bottom:1px solid var(--site-line); flex-wrap:wrap; }
[data-platform-page=problem] .platform-shell nav { display:flex; flex-wrap:wrap; gap:8px 16px; }
[data-platform-page=problem] .platform-shell a { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:720px) { .platform-tool-list { grid-template-columns:1fr; }.platform-tool p { min-height:0; }.platform-main,.platform-problem,.platform-footer { width:calc(100% - 32px); }.platform-hero { padding-top:8px; }.platform-main > section,.platform-problem > section { margin-top:40px; }.platform-form-main h1 { font-size:30px; }.platform-filters { display:grid; grid-template-columns:1fr; }.platform-filters select { width:100%; }[data-platform-page] dl { grid-template-columns:1fr; gap:4px; }[data-platform-page] dd { margin-bottom:12px; }.platform-problem article,.platform-file,.platform-talk,.platform-solution { padding:20px; } }
@media(prefers-reduced-motion:reduce) { [data-platform-page] *,[data-platform-page] *::before,[data-platform-page] *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }

/* Public information documents reuse the platform shell and its mobile tokens. */
.info-main { max-width:900px; }
.info-main .platform-hero h1 { font-size:clamp(36px,6vw,60px); line-height:1.25; }
.info-main > section:not(.platform-hero) { border-top:1px solid var(--site-line); padding-top:32px; }
.info-main h3 { font-size:20px; margin:24px 0 12px; }
.info-main p,.info-main li { line-height:1.85; }
.info-steps { padding-left:24px; }
.info-steps li { padding:0 0 12px 8px; }
.info-footer-links { display:flex; flex-wrap:wrap; gap:8px 24px; }
.privacy-main .platform-hero { padding-bottom:8px; }
.privacy-main .platform-hero h1 { font-size:clamp(32px,5vw,48px); }
.privacy-main h2 { font-size:clamp(23px,4vw,28px); }
.privacy-toc { display:flex; flex-wrap:wrap; gap:4px 24px; border-top:1px solid var(--site-line); padding:16px 0; }
.privacy-toc a { display:inline-flex; align-items:center; min-height:44px; }
.privacy-main section { scroll-margin-top:24px; }
.privacy-table-wrap { overflow-x:auto; border:1px solid var(--site-line); border-radius:16px; }
.privacy-table { width:100%; border-collapse:collapse; text-align:left; font-size:14px; }
.privacy-table :is(th,td) { padding:16px; vertical-align:top; border-bottom:1px solid var(--site-line); overflow-wrap:anywhere; }
.privacy-table th { background:var(--site-soft); font-weight:600; }
.privacy-table tbody tr:last-child td { border-bottom:0; }
.privacy-table th:first-child { width:22%; }
.privacy-table caption { text-align:left; padding:16px; font-weight:600; }
@media(max-width:720px) { .privacy-table :is(th,td) { padding:12px; }.privacy-table { font-size:13px; }.info-main .platform-tool { padding:20px; } }
