/* ===========================================================================
   Law Time · 변호사 전용 AI 법무일정관리 — 랜딩 + 인증 화면
   =========================================================================== */
:root{
  --navy-900:#0f1923; --navy-800:#10243e; --navy-700:#14365c; --navy-600:#1c4470;
  --navy-500:#2a5a8c; --sky-400:#4da3ff; --sky-300:#7cc0ff;
  --paper:#f6f5f1; --paper-2:#edece6; --paper-3:#e2e0d8; --white:#ffffff;
  --ink:#14181d; --ink-2:#3d454e; --ink-3:#6b7480; --ink-4:#98a1ab;
  --line:rgba(20,36,62,.14); --line-soft:rgba(20,36,62,.08); --line-dark:rgba(255,255,255,.14);
  --gold:#9a7b3f; --gold-2:#c9a869; --danger:#c0453d;
  --shadow-1:0 1px 2px rgba(15,25,35,.05),0 4px 14px rgba(15,25,35,.06);
  --shadow-2:0 2px 6px rgba(15,25,35,.07),0 14px 34px rgba(15,25,35,.10);
  --shadow-3:0 8px 20px rgba(15,25,35,.10),0 30px 70px rgba(15,25,35,.16);
  --radius:6px; --radius-lg:14px; --radius-xl:22px;
  --ease:cubic-bezier(.16,1,.3,1);
  --serif:"Noto Serif KR","Nanum Myeongjo",Georgia,serif;
  --sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Malgun Gothic",sans-serif;
  --display:"Montserrat",var(--sans);
  --wrap:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.75;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.2;letter-spacing:-.02em}
p{margin:0}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}

/* ---------- 헤더 ---------- */
.site-head{position:fixed;inset:0 0 auto 0;z-index:50;height:70px;display:flex;align-items:center;
  background:rgba(15,25,35,0);transition:background .4s var(--ease),box-shadow .4s var(--ease),backdrop-filter .4s var(--ease)}
.site-head.scrolled{background:rgba(11,18,26,.82);backdrop-filter:saturate(140%) blur(14px);box-shadow:0 1px 0 var(--line-dark)}
.site-head.solid{background:rgba(11,18,26,.95);box-shadow:0 1px 0 var(--line-dark)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:11px;color:#fff}
.brand-mark{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(140deg,var(--navy-500),var(--sky-400));box-shadow:0 6px 18px rgba(77,163,255,.4);position:relative}
.brand-mark::after{content:"";position:absolute;inset:0;border-radius:9px;border:1px solid rgba(255,255,255,.35)}
.brand-mark svg{width:19px;height:19px}
.brand-name{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:.02em}
.brand-name b{color:var(--sky-300)}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{color:rgba(255,255,255,.72);font-size:14.5px;font-weight:500;transition:color .2s}
.nav-links a:hover{color:#fff}
.nav-cta{padding:9px 18px;border-radius:999px;background:#fff;color:var(--navy-800)!important;font-weight:700;font-size:14px;transition:transform .2s var(--ease),box-shadow .2s}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(0,0,0,.25)}
@media(max-width:820px){.nav-links a:not(.nav-cta){display:none}}

/* ---------- 히어로 + 로그인 ---------- */
.hero{position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(1200px 600px at 78% -8%,#1c4470 0%,transparent 55%),
             radial-gradient(900px 500px at 8% 8%,#14365c 0%,transparent 50%),
             linear-gradient(160deg,#0c141d 0%,#0f1c2e 46%,#10243e 100%)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:46px 46px;mask-image:radial-gradient(70% 70% at 50% 20%,#000 0%,transparent 78%)}
.orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none}
.orb.a{width:420px;height:420px;left:-80px;top:40px;background:radial-gradient(circle,#2a5a8c,transparent 70%);animation:float1 16s var(--ease) infinite}
.orb.b{width:360px;height:360px;right:-60px;bottom:-40px;background:radial-gradient(circle,#4da3ff,transparent 70%);animation:float2 20s var(--ease) infinite}
@keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,40px)}}
@keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(-40px,-30px)}}

.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;
  padding:150px 0 108px;min-height:100vh}
@media(max-width:960px){.hero-inner{grid-template-columns:1fr;gap:44px;padding:128px 0 72px;min-height:auto}}

.eyebrow{display:inline-flex;align-items:center;gap:9px;padding:7px 15px;border-radius:999px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);font-size:13px;font-weight:600;
  letter-spacing:.02em;color:var(--sky-300);margin-bottom:26px}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--sky-400);box-shadow:0 0 0 0 rgba(77,163,255,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(77,163,255,.55)}70%{box-shadow:0 0 0 9px rgba(77,163,255,0)}100%{box-shadow:0 0 0 0 rgba(77,163,255,0)}}

.hero h1{font-size:clamp(26px,3.2vw,42px);letter-spacing:-.03em;line-height:1.12;margin-bottom:22px}
@media(min-width:961px){.hero h1 .l1{white-space:nowrap}}
.hero h1 .grad{background:linear-gradient(100deg,#7cc0ff,#e9f4ff 60%,#c9a869);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-lead{font-size:clamp(16px,1.7vw,19px);color:rgba(233,240,247,.82);max-width:520px;margin-bottom:34px;line-height:1.7}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:38px}
.btn{display:inline-flex;align-items:center;gap:9px;padding:14px 26px;border-radius:999px;font-weight:700;font-size:15px;
  cursor:pointer;border:0;transition:transform .22s var(--ease),box-shadow .22s var(--ease),background .22s;font-family:var(--sans)}
.btn-primary{background:linear-gradient(120deg,var(--sky-400),#3f7fd6);color:#fff;box-shadow:0 12px 30px rgba(77,163,255,.4)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(77,163,255,.55)}
.btn-ghost{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.hero-trust{display:flex;gap:26px;flex-wrap:wrap}
.hero-trust .t{display:flex;flex-direction:column}
.hero-trust .t b{font-family:var(--display);font-size:24px;color:#fff;line-height:1}
.hero-trust .t span{font-size:12.5px;color:rgba(233,240,247,.6);margin-top:5px}

/* 로그인/가입 카드 */
.auth-card{position:relative;background:rgba(255,255,255,.98);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-3);padding:8px 8px 30px;color:var(--ink);overflow:hidden}
.auth-card::before{content:"";position:absolute;inset:0;border-radius:var(--radius-xl);padding:1px;
  background:linear-gradient(160deg,rgba(124,192,255,.7),rgba(201,168,105,.4),transparent);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--paper-2);border-radius:16px;padding:5px;margin-bottom:26px;position:relative}
.auth-tabs .ind{position:absolute;top:5px;bottom:5px;left:5px;width:calc(50% - 5px);border-radius:12px;background:#fff;
  box-shadow:var(--shadow-1);transition:transform .34s var(--ease)}
.auth-tabs.signup .ind{transform:translateX(100%)}
.auth-tabs button{position:relative;z-index:1;border:0;background:transparent;padding:11px 0;font-family:var(--sans);
  font-weight:700;font-size:14.5px;color:var(--ink-3);cursor:pointer;transition:color .3s}
.auth-tabs button.on{color:var(--navy-700)}
.auth-body{padding:0 22px}
.auth-pane{display:none;animation:fadein .4s var(--ease)}
.auth-pane.on{display:block}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.auth-pane h3{font-size:21px;letter-spacing:-.02em;margin-bottom:5px}
.auth-pane .sub{font-size:13.5px;color:var(--ink-3);margin-bottom:20px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:7px}
.field input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:11px;font-family:var(--sans);
  font-size:14.5px;background:var(--paper);transition:border-color .2s,box-shadow .2s,background .2s}
.field input:focus{outline:0;border-color:var(--sky-400);background:#fff;box-shadow:0 0 0 3px rgba(77,163,255,.16)}
.field input.err{border-color:var(--danger);background:#fff5f4}
.field.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.err-msg{display:block;color:var(--danger);font-size:12px;margin-top:6px}
.auth-sub{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--ink-3);margin:4px 0 18px;gap:10px}
.auth-sub a{color:var(--navy-600);font-weight:600}
.check{display:flex;align-items:center;gap:7px;cursor:pointer;line-height:1.4}
.check input{margin:0;flex:0 0 auto}
.btn-block{width:100%;justify-content:center;padding:14px;font-size:15px}
.auth-foot{font-size:12px;color:var(--ink-4);text-align:center;margin-top:18px;line-height:1.6}
.flash{padding:11px 14px;border-radius:11px;font-size:13px;margin-bottom:16px;line-height:1.5}
.flash-ok{background:rgba(31,111,92,.12);color:#1f6f5c;border:1px solid rgba(31,111,92,.28)}
.flash-info{background:rgba(28,68,112,.10);color:var(--navy-600);border:1px solid rgba(28,68,112,.22)}

/* ---------- 마퀴 ---------- */
.marquee-wrap{background:var(--navy-900);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);padding:20px 0;overflow:hidden}
.marquee{display:flex;gap:56px;white-space:nowrap;animation:scrollx 26s linear infinite;color:rgba(255,255,255,.42);font-size:14px;font-weight:600;letter-spacing:.03em}
.marquee span{display:inline-flex;align-items:center;gap:11px}
.marquee span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold-2)}
@keyframes scrollx{to{transform:translateX(-50%)}}

/* ---------- 섹션 공통 ---------- */
.section{padding:104px 0}
.sec-head{max-width:680px;margin:0 auto 62px;text-align:center}
.kicker{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.sec-head h2{font-size:clamp(28px,3.4vw,40px);letter-spacing:-.03em;color:var(--navy-800);margin-bottom:16px}
.sec-head p{font-size:16.5px;color:var(--ink-2)}

/* 스크롤 리빌 */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}.reveal[data-d="5"]{transition-delay:.40s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.orb{animation:none}}

/* ---------- 기능 그리드 ---------- */
.features{background:linear-gradient(180deg,#fff 0%,var(--paper) 100%)}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.feat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.feat-grid{grid-template-columns:1fr}}
.feat{position:relative;background:#fff;border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:30px 26px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;overflow:hidden}
.feat::after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);opacity:0;transition:opacity .4s;
  background:radial-gradient(420px 200px at 50% -20%,rgba(77,163,255,.10),transparent 70%)}
.feat:hover{transform:translateY(-6px);box-shadow:var(--shadow-2);border-color:rgba(77,163,255,.35)}
.feat:hover::after{opacity:1}
.feat .ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;margin-bottom:18px;
  background:linear-gradient(140deg,var(--navy-700),var(--navy-500));box-shadow:0 8px 20px rgba(20,54,92,.28);color:#fff;position:relative;z-index:1}
.feat .ic svg{width:24px;height:24px}
.feat.g1 .ic{background:linear-gradient(140deg,#14365c,#2a5a8c)}
.feat.g2 .ic{background:linear-gradient(140deg,#1f6f5c,#37a884)}
.feat.g3 .ic{background:linear-gradient(140deg,#7a5cb8,#a37fe0)}
.feat.g4 .ic{background:linear-gradient(140deg,#b5852f,#d8b25a)}
.feat.g5 .ic{background:linear-gradient(140deg,#b5453f,#e07a6a)}
.feat.g6 .ic{background:linear-gradient(140deg,#2a5a8c,#4da3ff)}
.feat h3{font-size:18.5px;color:var(--navy-800);margin-bottom:9px;position:relative;z-index:1}
.feat p{font-size:14.5px;color:var(--ink-2);position:relative;z-index:1}
.feat .tag{display:inline-block;margin-top:15px;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:var(--gold);
  border:1px solid rgba(154,123,63,.3);border-radius:999px;padding:3px 10px;position:relative;z-index:1}

/* ---------- 워크플로우 ---------- */
.flow{background:var(--navy-900);color:#fff;position:relative;overflow:hidden}
.flow::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 400px at 80% 0,#14365c,transparent 60%);opacity:.7}
.flow .sec-head h2{color:#fff}
.flow .sec-head p{color:rgba(233,240,247,.75)}
.flow .kicker{color:var(--gold-2)}
.steps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}
.step{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:26px 22px;position:relative;transition:transform .4s var(--ease),background .4s}
.step:hover{transform:translateY(-5px);background:rgba(255,255,255,.07)}
.step .num{font-family:var(--display);font-weight:800;font-size:15px;color:var(--navy-900);
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--gold-2),var(--gold));margin-bottom:16px}
.step h3{font-size:17px;margin-bottom:8px}
.step p{font-size:14px;color:rgba(233,240,247,.72)}

/* ---------- 데모 미리보기 ---------- */
.preview{background:var(--paper)}
.preview-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center}
@media(max-width:900px){.preview-grid{grid-template-columns:1fr;gap:34px}}
.preview-copy h2{font-size:clamp(26px,3vw,36px);color:var(--navy-800);letter-spacing:-.03em;margin-bottom:18px}
.preview-copy p{color:var(--ink-2);font-size:16px;margin-bottom:22px}
.plist{list-style:none;padding:0;margin:0 0 28px}
.plist li{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;font-size:15px;color:var(--ink)}
.plist li svg{width:22px;height:22px;flex:0 0 auto;margin-top:2px;color:#2f9e6d}
.mock{background:#fff;border-radius:16px;box-shadow:var(--shadow-3);overflow:hidden;border:1px solid var(--line-soft)}
.mock-bar{display:flex;align-items:center;gap:7px;padding:13px 16px;background:var(--navy-800);border-bottom:1px solid rgba(255,255,255,.06)}
.mock-bar i{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.28)}
.mock-bar .u{margin-left:12px;font-size:12px;color:rgba(255,255,255,.6);font-family:var(--display)}
.mock-body{padding:20px}
.mock-row{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:12px;background:var(--paper);margin-bottom:11px;
  border:1px solid var(--line-soft);opacity:0;transform:translateX(14px);animation:rowIn .6s var(--ease) forwards}
.mock-row:nth-child(1){animation-delay:.15s}.mock-row:nth-child(2){animation-delay:.35s}
.mock-row:nth-child(3){animation-delay:.55s}.mock-row:nth-child(4){animation-delay:.75s}
@keyframes rowIn{to{opacity:1;transform:none}}
.mock-row .dt{width:46px;height:46px;border-radius:10px;flex:0 0 auto;display:grid;place-content:center;text-align:center;color:#fff;font-family:var(--display);line-height:1}
.mock-row .dt b{font-size:16px}.mock-row .dt span{font-size:10px;opacity:.85}
.mr1 .dt{background:linear-gradient(140deg,#14365c,#2a5a8c)}
.mr2 .dt{background:linear-gradient(140deg,#b5453f,#e07a6a)}
.mr3 .dt{background:linear-gradient(140deg,#1f6f5c,#37a884)}
.mr4 .dt{background:linear-gradient(140deg,#b5852f,#d8b25a)}
.mock-row .mt{flex:1;min-width:0}
.mock-row .mt b{display:block;font-size:14px;color:var(--ink);font-weight:600}
.mock-row .mt span{font-size:12px;color:var(--ink-3)}
.mock-row .chip{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.chip-b{background:rgba(28,68,112,.12);color:var(--navy-600)}
.chip-r{background:rgba(181,69,63,.12);color:#b5453f}
.chip-g{background:rgba(31,111,92,.14);color:#1f6f5c}

/* ---------- CTA ---------- */
.cta{background:linear-gradient(150deg,#0c141d,#12294a);color:#fff;text-align:center;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 300px at 50% 0,rgba(77,163,255,.28),transparent 60%)}
.cta .wrap{position:relative;z-index:1}
.cta h2{font-size:clamp(28px,3.4vw,42px);letter-spacing:-.03em;margin-bottom:18px}
.cta h2 .grad{background:linear-gradient(100deg,#7cc0ff,#c9a869);-webkit-background-clip:text;background-clip:text;color:transparent}
.cta p{color:rgba(233,240,247,.8);font-size:17px;max-width:540px;margin:0 auto 32px}

/* ---------- 푸터 ---------- */
.site-foot{background:var(--navy-900);color:rgba(255,255,255,.62);padding:54px 0 40px;border-top:1px solid var(--line-dark)}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid var(--line-dark)}
.foot-brand{display:flex;align-items:center;gap:11px;color:#fff;margin-bottom:12px}
.foot-brand .brand-name{font-size:18px}
.foot-desc{font-size:13.5px;max-width:320px;line-height:1.7}
.foot-nav{display:flex;gap:44px;flex-wrap:wrap}
.foot-nav .col b{display:block;color:#fff;font-size:13px;margin-bottom:14px;letter-spacing:.02em}
.foot-nav .col a{display:block;font-size:13.5px;margin-bottom:9px;transition:color .2s}
.foot-nav .col a:hover{color:var(--sky-300)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:26px;font-size:13px}
.maker{display:flex;align-items:center;gap:10px}
.maker .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:14px;
  color:#0c141d;background:linear-gradient(140deg,var(--gold-2),var(--gold));flex:0 0 auto}
.maker b{color:#fff;font-weight:700}
.maker a{color:var(--sky-300)}
.maker .role{color:var(--ink-4);font-size:12px}
.copyr{color:var(--ink-4)}

/* ===========================================================================
   인증 보조 화면 (verify-notice / forgot / reset) + 대시보드
   =========================================================================== */
.page{min-height:100vh;display:flex;flex-direction:column;
  background:radial-gradient(1000px 500px at 80% -10%,#14365c 0%,transparent 55%),linear-gradient(160deg,#0c141d,#10243e)}
.page-head{height:70px;display:flex;align-items:center}
.card-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px 70px}
.pane{width:100%;max-width:440px;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-3);padding:38px 34px}
.pane .ic-badge{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin-bottom:20px;color:#fff;
  background:linear-gradient(140deg,var(--navy-600),var(--sky-400));box-shadow:0 10px 24px rgba(77,163,255,.35)}
.pane .ic-badge svg{width:27px;height:27px}
.pane h1{font-size:23px;color:var(--navy-800);margin-bottom:10px;letter-spacing:-.02em}
.pane p{font-size:14.5px;color:var(--ink-2);line-height:1.7;margin-bottom:8px}
.pane .muted{font-size:13px;color:var(--ink-3)}
.pane .email{font-weight:700;color:var(--navy-700)}
.pane form{margin-top:20px}
.pane .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.link-btn{background:none;border:0;color:var(--navy-600);font-weight:600;font-size:13.5px;cursor:pointer;font-family:var(--sans);padding:0}
.link-row{margin-top:18px;font-size:13px;color:var(--ink-3);text-align:center}
.link-row a{color:var(--navy-600);font-weight:600}

/* 대시보드 */
.dash{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}
.dash-head{background:var(--navy-900);color:#fff;height:64px;display:flex;align-items:center;flex:0 0 auto}
.dash-head .wrap{display:flex;align-items:center;justify-content:space-between;width:100%}
.dash-user{display:flex;align-items:center;gap:12px;font-size:13.5px;color:rgba(255,255,255,.8)}
.dash-user .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:800;
  font-size:13px;color:#0c141d;background:linear-gradient(140deg,var(--gold-2),var(--gold))}
.dash-user b{color:#fff}
.logout-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;font-weight:600;font-size:13px;
  padding:8px 14px;border-radius:999px;cursor:pointer;font-family:var(--sans);transition:background .2s}
.logout-btn:hover{background:rgba(255,255,255,.2)}
.dash-bar{background:#fff;border-bottom:1px solid var(--line);padding:14px 0}
.dash-bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dash-bar .who{font-size:14px;color:var(--ink-2)}
.dash-bar .who b{color:var(--navy-800)}
.dash-bar .tagpill{display:inline-block;margin-left:8px;font-size:11.5px;font-weight:700;color:var(--gold);
  border:1px solid rgba(154,123,63,.3);border-radius:999px;padding:2px 9px}
.embed-frame{flex:1;background:#0c141d}
.embed-frame iframe{width:100%;height:100%;min-height:calc(100vh - 64px - 57px);border:0;display:block;background:#fff}
.dash-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:60px 20px;text-align:center}
.dash-empty .box{max-width:440px}
.dash-empty h2{font-size:22px;color:var(--navy-800);margin-bottom:12px}
.dash-empty p{color:var(--ink-2);margin-bottom:24px}

/* ===========================================================================
   법적 문서 (이용약관 / 개인정보 처리방침)
   =========================================================================== */
.legal{min-height:100vh;background:var(--paper)}
.legal .topbar{background:var(--navy-900);height:64px;display:flex;align-items:center}
.legal-doc{max-width:820px;margin:36px auto 80px;background:#fff;border:1px solid var(--line-soft);
  border-radius:16px;box-shadow:var(--shadow-1);padding:48px 46px}
@media(max-width:640px){.legal-doc{padding:32px 22px;margin:20px 14px 60px}}
.legal-doc h1{font-size:27px;color:var(--navy-800);letter-spacing:-.02em;margin-bottom:8px}
.legal-doc .meta{font-size:13px;color:var(--ink-3);margin-bottom:20px}
.legal-doc .lead{font-size:14.5px;color:var(--ink-2);line-height:1.8;padding-bottom:18px;border-bottom:1px solid var(--line-soft);margin-bottom:8px}
.legal-doc h2{font-size:17px;color:var(--navy-700);margin:30px 0 10px;letter-spacing:-.01em}
.legal-doc h3{font-size:15px;color:var(--navy-700);margin:18px 0 8px}
.legal-doc p{font-size:14.5px;color:var(--ink-2);line-height:1.85;margin:8px 0}
.legal-doc ul,.legal-doc ol{padding-left:20px;margin:8px 0}
.legal-doc li{font-size:14.5px;color:var(--ink-2);line-height:1.8;margin:5px 0}
.legal-doc .fill{background:rgba(154,123,63,.14);color:#6f5628;border-radius:4px;padding:1px 6px;font-weight:600;font-size:13.5px}
.legal-doc table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13.5px}
.legal-doc th,.legal-doc td{border:1px solid var(--line);padding:9px 11px;text-align:left;color:var(--ink-2);vertical-align:top}
.legal-doc th{background:var(--paper-2);color:var(--navy-700);font-weight:700;white-space:nowrap}
.legal-doc .callout{background:rgba(28,68,112,.06);border:1px solid rgba(28,68,112,.16);border-radius:10px;padding:14px 16px;margin:16px 0;font-size:13.5px;color:var(--ink-2);line-height:1.75}
.legal-doc .callout b{color:var(--navy-700)}
.legal-back{margin-top:30px;padding-top:20px;border-top:1px solid var(--line-soft);font-size:13.5px}
.legal-back a{color:var(--navy-600);font-weight:600}
.check a{color:var(--navy-600);font-weight:600;text-decoration:underline}
