/* Layout: Non-Stop employment coach. Floating pill nav over a sky + dawn wash, one 1080 column split 680 / 376, r24 cards. Every step carries a mode: 자동(NEXT24) · 원탭(confirm once) · 직접(stop point). Tokens mirror Figma v3. */
:root{
  --canvas:#f3f6f7;--surface:#ffffff;--muted:#f1f3f5;--inverse:#1f2025;
  --tp:#222326;--ts:#6b6f76;--td:#8e939b;--t-inv:#f5f7fa;--is:#8e939b;
  --divider:#e8ebef;--control:#c7ccd3;--track:#d9dee5;
  --now:#ff6b2c;--now-soft:#ffd9c6;--now-glow:#ffe7da;--ok:#2db46e;--info:#4c7df0;--stop:#e5484d;--on-accent:#ffffff;
  --sky-1:#d5e6f7;--sky-2:#eaf0f5;--glow:rgba(255,213,190,.55);
  --nav-bg:rgba(255,255,255,.8);--tabbar-bg:rgba(255,255,255,.9);--scrim:rgba(31,32,37,.4);
  --shadow-card:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06);
  --shadow-float:0 2px 6px rgba(16,24,40,.05),0 12px 32px rgba(16,24,40,.08);
  --shadow-seg:0 1px 2px rgba(16,24,40,.08),0 2px 6px rgba(16,24,40,.05);
  --font:'Nanum Gothic',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;
  --font-mark:'Manrope','Nanum Gothic',system-ui,sans-serif;
  --gutter:48px;--ring:168px;--num:44px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --canvas:#0f1215;--surface:#181c21;--muted:#22272e;--inverse:#eef1f5;
  --tp:#eef1f5;--ts:#a3abb6;--td:#7c8591;--t-inv:#15181c;--is:#7c8591;
  --divider:#262c34;--control:#4b5461;--track:#2d343e;
  --now:#ff7a3d;--now-soft:#6b3a24;--now-glow:#3b2519;--ok:#3ccf83;--info:#7fa3ff;--stop:#ff6b6b;--on-accent:#ffffff;
  --sky-1:#16233a;--sky-2:#121925;--glow:rgba(255,122,61,.16);
  --nav-bg:rgba(24,28,33,.8);--tabbar-bg:rgba(15,18,21,.9);--scrim:rgba(0,0,0,.55);
  --shadow-card:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.3);
  --shadow-float:0 2px 6px rgba(0,0,0,.35),0 12px 32px rgba(0,0,0,.4);
  --shadow-seg:0 1px 2px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.3);
  color-scheme:dark}}
:root[data-theme="dark"]{
  --canvas:#0f1215;--surface:#181c21;--muted:#22272e;--inverse:#eef1f5;
  --tp:#eef1f5;--ts:#a3abb6;--td:#7c8591;--t-inv:#15181c;--is:#7c8591;
  --divider:#262c34;--control:#4b5461;--track:#2d343e;
  --now:#ff7a3d;--now-soft:#6b3a24;--now-glow:#3b2519;--ok:#3ccf83;--info:#7fa3ff;--stop:#ff6b6b;--on-accent:#ffffff;
  --sky-1:#16233a;--sky-2:#121925;--glow:rgba(255,122,61,.16);
  --nav-bg:rgba(24,28,33,.8);--tabbar-bg:rgba(15,18,21,.9);--scrim:rgba(0,0,0,.55);
  --shadow-card:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.3);
  --shadow-float:0 2px 6px rgba(0,0,0,.35),0 12px 32px rgba(0,0,0,.4);
  --shadow-seg:0 1px 2px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.3);
  color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--tp);font-family:var(--font);font-size:16px;line-height:24px;word-break:keep-all;overflow-wrap:break-word;line-break:strict;-webkit-font-smoothing:antialiased;padding-inline:var(--gutter);padding-block:0;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit}
button:disabled{cursor:default}
h1,h2,h3,p,ol,ul{margin:0}
ol,ul{padding:0;list-style:none}
hr{border:0;margin:0}
h1,h2,h3,.msg,.t-title,.t-headline,.t-strong{text-wrap:balance}
p,.t-sub,.t-body,.detail,.t-cap{text-wrap:pretty}
:focus-visible{outline:2px solid var(--info);outline-offset:3px;border-radius:10px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ic{flex:none;display:block}
.muted{color:var(--ts)}
.faint{color:var(--td)}
.grow{flex:1}
.nw{white-space:nowrap}
.t-title{font-size:22px;line-height:30px;letter-spacing:-.02em;font-weight:700}
.t-headline{font-size:18px;line-height:26px;letter-spacing:-.01em;font-weight:700}
.t-strong{font-size:16px;line-height:24px;font-weight:700}
.t-body{font-size:16px;line-height:24px}
.t-sub{font-size:15px;line-height:22px}
.t-cap{font-size:13px;line-height:18px}

.sky{position:absolute;left:0;right:0;top:0;height:620px;background:linear-gradient(180deg,var(--sky-1) 0%,var(--sky-2) 55%,var(--canvas) 100%);pointer-events:none;z-index:0;overflow:hidden}
.sky::after{content:"";position:absolute;width:980px;height:560px;right:-245px;top:-258px;border-radius:50%;background:radial-gradient(closest-side,var(--glow),transparent)}

.topnav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 16px);z-index:30;display:flex;justify-content:center;margin-top:24px;pointer-events:none}
.navpill{pointer-events:auto;display:flex;align-items:center;height:56px;padding:0 8px 0 20px;border-radius:999px;background:var(--nav-bg);box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}
.logo{font-family:var(--font-mark);font-weight:800;font-size:18px;line-height:24px;letter-spacing:-.01em;display:inline-flex;align-items:center;color:var(--tp)}
.logo .colon{display:inline-flex;flex-direction:column;gap:4px;margin:0 3px 0 4px}
.logo .colon::before,.logo .colon::after{content:"";width:4.5px;height:4.5px;border-radius:50%;background:var(--now)}
.navitems{display:flex;gap:2px;margin:0 12px 0 20px}
.navitem{font-size:14px;line-height:20px;padding:8px 14px;border-radius:999px;color:var(--ts);transition:background .15s,color .15s}
.navitem:hover{color:var(--tp)}
.navitem[aria-current="page"]{background:var(--muted);color:var(--tp);font-weight:700}
.live{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
.topbar,.tabbar{display:none}

.page{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding-block:48px 64px;display:flex;flex-direction:column;gap:40px}
.page:focus{outline:none}
.back{align-self:flex-start;margin-bottom:-12px}

.hero{display:flex;align-items:center;gap:40px}
.hero-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
.display{font-size:56px;line-height:64px;letter-spacing:-.03em;font-weight:700}
.display-long{font-size:40px;line-height:50px}
.hero .sub{font-size:18px;line-height:28px;letter-spacing:-.005em;color:var(--ts);max-width:44em}
.s{display:block}
.eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:15px;line-height:22px;color:var(--ts)}
.eyebrow .ic{color:var(--is)}
.steps{display:inline-flex;gap:3px}
.steps i{width:14px;height:4px;border-radius:2px;background:var(--track)}
.steps i.past{background:var(--tp)}
.steps i.cur{background:var(--now)}
.ringblock{display:flex;flex-direction:column;align-items:center;gap:12px;flex:none}
.ring{position:relative;width:var(--ring);height:var(--ring)}
.ring svg{width:100%;height:100%;display:block}
.seg{fill:none;stroke-width:12;stroke-linecap:round;transition:stroke .4s ease-out}
.seg-done{stroke:var(--now)}.seg-today{stroke:var(--now-soft)}.seg-next{stroke:var(--track)}.seg-ok{stroke:var(--ok)}
.ring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.ring-c .num{font-size:var(--num);line-height:1.1;letter-spacing:-.02em;font-weight:700;font-variant-numeric:tabular-nums}
.ring-c span{font-size:13px;line-height:18px;color:var(--ts)}
.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;font-size:13px;line-height:18px;color:var(--ts)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;border:1px solid transparent}
.dot-today{background:var(--now-soft);border-color:var(--now)}
.dot-next{background:var(--track);border-color:var(--control)}
.dot-done{background:var(--now);border-color:var(--now)}
.dot-ok{background:var(--ok);border-color:var(--ok)}

.cols{display:grid;grid-template-columns:minmax(0,680fr) minmax(0,376fr);gap:24px;align-items:start}
.col{display:flex;flex-direction:column;gap:16px;min-width:0}
.section{display:flex;flex-direction:column;gap:12px;min-width:0}
.card{background:var(--surface);border-radius:24px;box-shadow:var(--shadow-card);padding:24px;display:flex;flex-direction:column;gap:16px;min-width:0}
.div{height:1px;background:var(--divider)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap}

.who{display:flex;align-items:center;gap:10px}
.who-t{display:flex;flex-direction:column}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--now-glow);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:none}
.avatar i{width:6px;height:6px;border-radius:50%;background:var(--now)}
.msg{font-size:20px;line-height:28px;letter-spacing:-.015em;font-weight:700}
.detail{font-size:15px;line-height:22px;color:var(--ts)}
.coach > .pill{align-self:flex-start}
.coach-banner{flex-direction:row;align-items:center;gap:24px}
.coach-banner .coach-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.coach-banner > .pill,.coach-banner > .waiting{align-self:center;flex:none}
.waiting{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:700;color:var(--ts)}

.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 20px;border-radius:999px;font-weight:700;font-size:15px;line-height:20px;white-space:nowrap;transition:transform .12s ease,box-shadow .2s,background .2s}
.pill-primary{background:var(--inverse);color:var(--t-inv)}
.pill-primary:hover{box-shadow:var(--shadow-float)}
.pill-secondary{background:var(--surface);color:var(--tp);box-shadow:var(--shadow-card)}
.pill-secondary:hover{box-shadow:var(--shadow-float)}
.pill-outline{height:36px;padding:0 14px;font-size:13px;gap:6px;background:transparent;color:var(--tp);border:1px solid var(--control)}
.pill-outline:hover{background:var(--muted)}
.pill:active{transform:scale(.98)}
.pill:disabled,.pill.is-off{background:var(--muted);color:var(--td);box-shadow:none;transform:none}
.tlink{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:15px;line-height:22px;color:var(--tp)}
.tlink:hover span{text-decoration:underline;text-underline-offset:3px}
.tbtn{font-weight:700;font-size:15px;line-height:22px;color:var(--ts)}
.tbtn:hover{color:var(--tp)}
.circle{width:36px;height:36px;border-radius:50%;background:var(--muted);display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--tp);transition:background .15s,transform .15s}
.act-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
a:hover .circle,button:hover .circle{background:var(--divider);transform:translateX(2px)}

.meta{display:inline-flex;align-items:center;gap:8px;font-size:13px;line-height:18px;color:var(--ts);white-space:nowrap}
.meta > i{width:6px;height:6px;border-radius:50%;background:var(--is);flex:none}
.meta-now > i{background:var(--now)}.meta-ready > i{background:var(--ok)}.meta-info > i{background:var(--info)}.meta-ink > i{background:var(--tp)}
.modes{display:flex;flex-wrap:wrap;gap:6px 14px}

.check{width:26px;height:26px;border-radius:50%;border:2px solid var(--control);display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--on-accent)}
.check-done{background:var(--ok);border-color:var(--ok)}
.spin{width:18px;height:18px;border-radius:50%;border:2px solid var(--track);border-top-color:var(--now);animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}

/* Route (논스톱 경로) */
.route{display:flex;flex-direction:column}
.rt{position:relative;display:flex;gap:14px;padding-bottom:20px}
.rt:last-child{padding-bottom:0}
.rt::before{content:"";position:absolute;left:12.25px;top:30px;bottom:4px;width:1.5px;background:var(--divider)}
.rt:last-child::before{display:none}
.rs{width:26px;height:26px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);position:relative;z-index:1}
.rt.done .rs{background:var(--ok);color:var(--on-accent)}
.rt.now .rs{border:2px solid var(--now)}
.rt.now .rs::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--now)}
.rt.wait .rs{border:2px solid var(--info)}
.rt.wait .rs::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--info);animation:pulse 1.4s ease-in-out infinite}
.rt.next .rs{border:1.5px dashed var(--control)}
@keyframes pulse{50%{opacity:.35}}
.rt-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.rt-head{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap}
.rt.next .t-strong{color:var(--ts)}

/* rows */
.rowlist{display:flex;flex-direction:column}
.row{display:flex;align-items:center;gap:12px;padding:14px 0}
.row + .row{border-top:1px solid var(--divider)}
.row-body{flex:1;min-width:0;display:flex;flex-direction:column}
.iconwrap{width:40px;height:40px;border-radius:50%;background:var(--muted);display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--tp)}
.iconwrap.sm{width:36px;height:36px}

/* values */
.vgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}
.vrow{display:flex;align-items:center;gap:12px;min-width:0}
.vtext{display:flex;flex-direction:column;min-width:0}
.vstate{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--ok);color:var(--on-accent)}

/* intent input */
.input-box{background:var(--muted);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .15s}
.input-box:focus-within{box-shadow:0 0 0 2px var(--info)}
.input-box textarea{text-wrap:pretty;width:100%;min-height:52px;resize:none;border:0;background:transparent;font:inherit;font-size:16px;line-height:26px;color:var(--tp);padding:0;outline:none;overflow:hidden;word-break:keep-all}
.chips{display:flex;flex-wrap:wrap;gap:8px 16px}

/* form (구직신청서) */
.form{display:flex;flex-direction:column}
.fr{display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:4px 16px;padding:14px 0}
.fr + .fr{border-top:1px solid var(--divider)}
.fr .k{font-size:15px;line-height:22px;color:var(--ts)}
.fr .v{display:flex;flex-direction:column;min-width:0}
.fr .edit{font-size:14px;font-weight:700;color:var(--ts)}
.fr .edit:hover{color:var(--tp)}
.switch{position:relative;width:46px;height:28px;border-radius:999px;background:var(--control);flex:none;transition:background .2s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-seg);transition:transform .2s}
.switch[aria-checked="true"]{background:var(--ok)}
.switch[aria-checked="true"]::after{transform:translateX(18px)}

/* policies & opportunities */
.policies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.policy{gap:10px;padding:22px 24px 20px}
.policy .act-row{margin-top:auto;padding-top:8px}
.policy.flash{animation:flash 1.2s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 3px var(--now-soft),var(--shadow-card)}100%{box-shadow:var(--shadow-card)}}
.opp-section{display:flex;flex-direction:column;gap:16px}
.opp-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:0 4px}
.opp-header h2{flex:1;min-width:0}
.segmented{display:inline-flex;align-items:center;background:var(--muted);border-radius:999px;padding:4px;gap:2px}
.seg-opt{display:inline-flex;align-items:center;height:32px;padding:0 16px;border-radius:999px;font-size:14px;line-height:20px;color:var(--ts)}
.seg-opt.on{background:var(--surface);color:var(--tp);font-weight:700;box-shadow:var(--shadow-seg)}
.filter{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:0 4px;font-size:15px;line-height:22px;color:var(--ts)}
.filter .ic{color:var(--tp)}
.filter a{color:var(--tp);font-weight:700}
.opps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.opp{gap:10px;padding:24px 24px 20px;transition:box-shadow .2s}
.opp:hover{box-shadow:var(--shadow-float)}
.opp-head{display:flex;align-items:center;gap:10px}
.opp .act-row{padding-top:8px}

/* detail */
.stats{flex-direction:row;align-items:center;padding:20px 4px;gap:0}
.hero .stats{width:376px;flex:none}
.stat{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding:0 12px}
.stat + .stat{border-left:1px solid var(--divider)}
.stat .k{font-size:13px;line-height:18px;color:var(--ts)}
.stat .v{font-size:18px;line-height:26px;font-weight:700;letter-spacing:-.01em}
.checklist{display:flex;flex-direction:column;gap:12px}
.checklist li{display:flex;gap:12px;align-items:flex-start}
.ck{width:24px;height:24px;border-radius:50%;background:var(--muted);display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--tp)}
.reasons{display:flex;flex-direction:column;gap:16px}
.reasons li{display:flex;gap:12px;align-items:flex-start}
.r-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.apply{gap:14px}
.apply > .pill{align-self:flex-start}
.apply-done{display:flex;align-items:center;gap:12px}
.save-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--divider);padding-top:14px}
.saved-tag{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:700}

/* saved */
.saved-group{display:flex;flex-direction:column;gap:16px}
.saved-group > .segmented{align-self:flex-start}
.saved-card{padding:4px 24px;gap:0}
.saved-row{display:flex;align-items:center;gap:16px;padding:20px 0}
.saved-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.saved-body .meta{margin-top:6px}
.saved-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--divider);padding:14px 0 16px}
.empty{align-items:center;text-align:center;gap:20px;padding:56px 40px}
.empty .dash{width:112px;height:112px;border-radius:50%;border:2px dashed var(--control);display:inline-flex;align-items:center;justify-content:center;color:var(--is)}
.empty-t{display:flex;flex-direction:column;gap:8px;align-items:center}

.goal{flex-direction:row;align-items:center;gap:16px;padding:20px 24px}
.goal-body{flex:1;min-width:0;display:flex;flex-direction:column}

/* footer */
.foot{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding-block:24px 56px;border-top:1px solid var(--divider);display:flex;flex-direction:column;gap:12px}
.foot-head{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}
.foot h2{font-size:13px;line-height:18px;font-weight:700;color:var(--tp)}
.foot-actions{display:inline-flex;gap:16px;flex-wrap:wrap}
.foot-actions .tbtn{font-size:13px;line-height:18px}
.sources{display:flex;flex-direction:column;gap:8px}
.sources li{display:flex;align-items:baseline;gap:10px;font-size:13px;line-height:18px;color:var(--ts)}

/* live data · sandbox tags */
.live-tag,.sbx-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:16px;font-weight:700;white-space:nowrap;flex:none}
.live-tag{color:var(--ok)}
.live-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
.sbx-tag{color:var(--td)}
.sbx-tag::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px dashed var(--td);box-sizing:border-box}
.meta-stop > i{background:var(--stop)}.meta-muted > i{background:var(--is)}

/* analysis */
.chips .meta b{color:var(--tp);font-weight:700}
.chips .meta{white-space:normal}
.an-status{display:flex;align-items:center;gap:8px;font-size:13px;line-height:18px;color:var(--td);min-height:18px}
.an-status .spin{width:14px;height:14px}

/* opportunity groups */
.opp-group{display:flex;flex-direction:column;gap:12px}
.group-head{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;padding:0 4px}
.group-head h3{flex:1 1 auto;min-width:0}
.group-head .t-cap{flex-basis:100%}
.opp.skeleton{min-height:188px;pointer-events:none;background:linear-gradient(90deg,var(--surface) 0%,var(--muted) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}
.opp .t-headline{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.opp .t-sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.opp-head .t-cap{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.note{flex-direction:row;align-items:center;gap:16px}
.note-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.link-card{flex-direction:row;align-items:center;gap:16px;transition:box-shadow .2s}
.link-card:hover{box-shadow:var(--shadow-float)}

/* route / checks */
.rt.stop .rs{background:var(--stop);color:var(--on-accent)}
.check-stop{background:var(--stop);border-color:var(--stop)}
.check-ask{border-style:dashed}
.vstate.miss{background:var(--muted);color:var(--td);border:1.5px dashed var(--control)}
.apply .t-cap.faint{margin-top:-4px}
.ext-row{display:flex;flex-wrap:wrap;gap:8px 20px}

/* login */
.logins{display:flex;flex-direction:column;gap:10px}
.login-btn{display:flex;align-items:center;justify-content:center;gap:10px;height:52px;border-radius:14px;font-weight:700;font-size:15px;border:1px solid transparent;position:relative;width:100%}
.login-btn small{position:absolute;right:16px;font-size:12px;font-weight:700;opacity:.8}
.login-btn:disabled{opacity:.45;cursor:not-allowed}
.login-google{background:#fff;color:#1f1f1f;border-color:#dadce0}
.login-naver{background:#03c75a;color:#fff}
.login-kakao{background:#fee500;color:rgba(0,0,0,.85)}
.login-apple{background:#000;color:#fff}
:root[data-theme="dark"] .login-apple{background:#fff;color:#000}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .login-apple{background:#fff;color:#000}}
.ulink{text-decoration:underline;text-underline-offset:2px}
.sheet-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.foot-account{display:inline-flex}
/* integrations sheet */
.integ{display:flex;flex-direction:column}
.integ li{display:flex;align-items:center;gap:12px;padding:12px 0}
.integ li + li{border-top:1px solid var(--divider)}
.integ .c-body{flex:1}
.st{display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:18px;font-weight:700;white-space:nowrap;flex:none}
.st > i{width:8px;height:8px;border-radius:50%;background:var(--control)}
.st-ok > i{background:var(--ok)}.st-restricted > i{background:var(--now)}.st-error > i{background:var(--stop)}.st-sandbox > i{background:transparent;border:1.5px dashed var(--td)}
/* toast */
.toast{position:fixed;left:50%;bottom:calc(32px + env(safe-area-inset-bottom,0px));transform:translate(-50%,16px);opacity:0;visibility:hidden;z-index:60;display:flex;align-items:center;gap:10px;padding:10px 20px 10px 10px;border-radius:999px;background:var(--inverse);color:var(--t-inv);font-weight:700;font-size:15px;line-height:22px;box-shadow:var(--shadow-float);transition:opacity .2s,transform .2s,visibility .2s;max-width:calc(100vw - 32px);white-space:nowrap}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
.toast-check{width:26px;height:26px;border-radius:50%;background:var(--ok);display:inline-flex;align-items:center;justify-content:center;color:var(--on-accent);flex:none}
.toast-msg{overflow:hidden;text-overflow:ellipsis}
.toast-sep{width:1px;height:16px;background:currentColor;opacity:.24;flex:none}
.toast-act{display:inline-flex;align-items:center;gap:4px;color:var(--t-inv);font-weight:700;flex:none}

/* sheet */
.sheet-layer{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:24px}
.scrim{position:absolute;inset:0;background:var(--scrim);opacity:0;transition:opacity .2s}
.sheet{position:relative;width:min(480px,100%);max-height:calc(100% - 16px);overflow:auto;background:var(--surface);border-radius:28px;padding:32px;box-shadow:var(--shadow-float);transform:translateY(12px) scale(.98);opacity:0;transition:transform .22s ease,opacity .22s}
.sheet-body{display:flex;flex-direction:column;gap:20px}
.sheet-layer.open .scrim{opacity:1}
.sheet-layer.open .sheet{transform:none;opacity:1}
.grabber{display:none}
.sheet-top{display:flex;align-items:center;justify-content:space-between;min-height:36px}
.close-btn{width:36px;height:36px;border-radius:50%;background:var(--muted);display:inline-flex;align-items:center;justify-content:center;color:var(--tp)}
.sheet-texts{display:flex;flex-direction:column;gap:8px}
.pull{display:flex;flex-direction:column;gap:14px}
.pull li{display:flex;align-items:flex-start;gap:12px}
.pull .ps{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.pull .ps .check{width:22px;height:22px;border:0;background:var(--muted);color:var(--tp)}
.pull li.done .ps .check{background:var(--ok);color:var(--on-accent)}
.pull li.todo .t-strong{color:var(--ts)}
.choices{display:flex;flex-direction:column;gap:10px}
.choice-row{display:flex;align-items:center;gap:12px;width:100%;padding:14px 18px 14px 14px;border-radius:16px;background:var(--muted);border:1.5px solid transparent;transition:background .15s,border-color .15s}
.choice-row:hover{border-color:var(--control)}
.choice-row[aria-checked="true"]{background:var(--surface);border-color:var(--tp)}
.radio{width:22px;height:22px;border-radius:50%;border:2px solid var(--control);flex:none;display:inline-flex;align-items:center;justify-content:center}
.choice-row[aria-checked="true"] .radio{border-color:var(--tp)}
.choice-row[aria-checked="true"] .radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--tp)}
.c-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.sheet .pill-primary{align-self:stretch}

@media (max-width:1099px){
  :root{--ring:148px;--num:40px}
  .page{gap:36px;padding-top:40px}
  .cols{grid-template-columns:minmax(0,1fr) 340px}
  .hero.with-stats{flex-direction:column;align-items:stretch;gap:20px}
  .hero.with-stats .stats{width:auto}
  .sky{height:580px}
  .sky::after{width:760px;height:460px;right:-190px;top:-212px}
}
@media (max-width:899px){
  :root{--gutter:20px;--ring:136px;--num:36px}
  body{padding-bottom:72px}
  .sky{height:440px}
  .sky::after{width:440px;height:300px;right:-110px;top:-138px}
  .topnav{display:none}
  .topbar{display:flex;align-items:center;justify-content:space-between;height:56px;position:relative;z-index:2;margin-top:8px;max-width:600px;margin-inline:auto}
  .logo{font-size:16px}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(3,1fr);padding:8px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--tabbar-bg);border-top:1px solid var(--divider);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
  .tab{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;line-height:14px;color:var(--td);padding:4px 0}
  .tab[aria-current="page"]{color:var(--tp);font-weight:700}
  .page{max-width:600px;gap:28px;padding-block:12px 40px}
  .back{margin-bottom:-8px}
  .hero{flex-direction:column;align-items:stretch;gap:20px}
  .display{font-size:30px;line-height:38px;letter-spacing:-.025em}
  .display-long{font-size:24px;line-height:32px}
  .hero .sub{font-size:15px;line-height:22px}
  .ringblock{align-self:center}
  .cols{display:flex;flex-direction:column;align-items:stretch;gap:28px}
  .opp-header h2{flex-basis:100%}
  .col{display:contents}
  .m-top{order:-1}
  .policies,.opps,.vgrid{grid-template-columns:1fr}
  .coach-banner{flex-direction:column;align-items:stretch;gap:16px}
  .coach-banner > .pill,.coach-banner > .waiting{align-self:flex-start}
  .stats{flex-direction:column;align-items:stretch;padding:4px 20px}
  .stat{flex-direction:row;justify-content:space-between;align-items:center;padding:12px 0;gap:8px}
  .stat + .stat{border-left:0;border-top:1px solid var(--divider)}
  .stat .k{font-size:15px;line-height:22px}
  .stat .v{font-size:16px;line-height:24px}
  .goal{flex-wrap:wrap}
  .goal .tlink{flex-basis:100%;padding-left:56px}
  .fr{grid-template-columns:minmax(0,1fr) auto}
  .fr .k{grid-column:1 / -1;font-size:13px;line-height:18px}
  .empty{padding:40px 24px}
  .empty .dash{width:96px;height:96px}
  .empty .t-title{font-size:18px;line-height:26px}
  .foot{max-width:600px;padding-bottom:32px}
  .note,.link-card{flex-wrap:wrap}
  .toast{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
  .sheet-layer{align-items:flex-end;padding:0}
  .sheet{width:100%;max-height:92%;border-radius:28px 28px 0 0;padding:10px 20px calc(28px + env(safe-area-inset-bottom,0px));transform:translateY(100%);opacity:1}
  .grabber{display:block;width:40px;height:5px;border-radius:3px;background:var(--control);margin:0 auto 10px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
/* 내 상황 확인 */
.sit{display:flex;flex-direction:column;gap:16px}
.fld{display:flex;flex-direction:column;gap:8px;min-width:0;border:0;padding:0;margin:0}
.fld legend{padding:0;margin-bottom:8px}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fld input{width:100%;min-width:0;height:52px;border-radius:14px;border:1.5px solid transparent;background:var(--muted);color:var(--tp);font:inherit;font-size:16px;padding:0 16px;outline:none;transition:border-color .15s}
.fld input:focus{border-color:var(--info)}
.unit{position:relative;display:block}
.unit input{padding-right:52px;font-variant-numeric:tabular-nums}
.unit i{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--ts);pointer-events:none}
.choice-pair{display:flex;flex-wrap:wrap;gap:10px}
.sheet .choices .choice-row{padding-block:12px}
