/* Hallmark · shape: app screen · genre: modern-minimal · theme: Coral (by request) · redesign: full
 * nav: kept top and mobile navigation · signature: the route through the next steps · states: existing loading, empty, error and full
 * axes: light/sans/warm · posture: restrained · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 · weakest: visual hierarchy, reinforced with rules and a larger opening */
/* Hallmark · finish-review: subagent · ship · 0 findings · scope: start screen */

:root{
 --canvas:oklch(97% 0.006 55);--surface:oklch(98.8% 0.0045 80);--muted:oklch(94.5% 0.007 55);--inverse:oklch(21% 0.012 38);
 --tp:oklch(21% 0.012 38);--ts:oklch(35% 0.013 40);--td:oklch(46% 0.013 45);--t-inv:oklch(98% 0.006 70);--is:oklch(46% 0.013 45);
 --divider:oklch(85% 0.009 55);--control:oklch(60% 0.011 55);--track:oklch(87% 0.009 55);
 --now:oklch(54% 0.165 29);--now-soft:oklch(90% 0.045 30);--now-glow:oklch(95% 0.025 30);--ok:oklch(40% 0.08 165);--info:oklch(43% 0.12 30);--stop:oklch(43% 0.16 25);--on-accent:oklch(99% 0.0045 80);
 --nav-bg:var(--canvas);--tabbar-bg:var(--surface);--scrim:oklch(21% 0.012 38 / .55);
 --sky-1:var(--canvas);--sky-2:var(--canvas);--glow:transparent;
 --shadow-card:0 1px 2px oklch(32% 0.03 50 / .06),4px 6px 16px -8px oklch(32% 0.03 50 / .18);
 --shadow-float:4px 8px 24px oklch(32% 0.03 50 / .14);--shadow-seg:0 1px 2px oklch(20% 0.01 35 / .1);
 --font:'General Sans','Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;--font-mark:var(--font);
 --brand-google-bg:var(--surface);--brand-google-ink:var(--tp);--brand-naver:#03c75a;--brand-kakao:#fee500;--brand-black:var(--tp);--brand-white:var(--surface);
 --gutter:48px;--ring:168px;--num:44px;
}




*{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:clip}
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:600}
.t-headline{font-size:18px;line-height:26px;letter-spacing:-.01em;font-weight:600}
.t-strong{font-size:16px;line-height:24px;font-weight:600}
.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);}
.logo{font-family:var(--font-mark);font-weight:600;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 4px 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:0px;margin:0 12px 0 20px}
.navitem{font-size:14px;line-height:20px;padding:8px 16px;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:600}
.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:600}
.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:8px;font-size:15px;line-height:22px;color:var(--ts)}
.eyebrow .ic{color:var(--is)}
.steps{display:inline-flex;gap:4px}
.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:0px}
.ring-c .num{font-size:var(--num);line-height:1.1;letter-spacing:-.02em;font-weight:600;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:8px}
.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:8px}
.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:600}
.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:8px;font-size:15px;font-weight:600;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:600;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 16px;font-size:13px;gap:8px;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:8px;font-weight:600;font-size:15px;line-height:22px;color:var(--tp)}
.tlink:hover span{text-decoration:underline;text-underline-offset:3px}
.tbtn{font-weight:600;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:8px 16px}

.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:16px;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:0px;min-width:0;flex:1}
.rt-head{display:flex;align-items:center;gap:4px 8px;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:16px 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:8px;background:transparent;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:16px 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:600;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:8px;padding:24px 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:0px}
.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:600;box-shadow:var(--shadow-seg)}
.filter{display:flex;align-items:center;flex-wrap:wrap;gap:8px 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:600}
.opps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.opp{gap:8px;padding:24px 24px 20px;transition:box-shadow .2s}
.opp:hover{box-shadow:var(--shadow-float)}
.opp-head{display:flex;align-items:center;gap:8px}
.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:600;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:16px}
.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:16px}
.saved-tag{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600}

/* 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:8px}
.saved-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--divider);padding:16px 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:600;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:8px;font-size:13px;line-height:18px;color:var(--ts)}

/* live data · sandbox tags */
.live-tag,.sbx-tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;line-height:16px;font-weight:600;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:600}
.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:8px 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:8px}
.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:52px;border-radius:14px;font-weight:600;font-size:15px;border:1px solid transparent;position:relative;width:100%}
.login-btn small{position:absolute;right:16px;font-size:12px;font-weight:600;opacity:.8}
.login-btn:disabled{opacity:.45;cursor:not-allowed}
.login-google{background:var(--brand-google-bg);color:var(--brand-google-ink);border-color:var(--control)}
.login-naver{background:var(--brand-naver);color:var(--brand-black)}
.login-kakao{background:var(--brand-kakao);color:var(--brand-black)}
.login-apple{background:var(--brand-black);color:var(--brand-white)}
.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:8px;font-size:13px;line-height:18px;font-weight:600;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:8px;padding:8px 20px 8px 8px;border-radius:999px;background:var(--inverse);color:var(--t-inv);font-weight:600;font-size:15px;line-height:22px;box-shadow:var(--shadow-float);transition:opacity .2s,transform .2s,visibility .2s;max-width:calc(100% - 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:600;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:16px}
.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:8px}
.choice-row{display:flex;align-items:center;gap:12px;width:100%;padding:16px 16px 16px 16px;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:0px;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(8px + env(safe-area-inset-bottom,0px));background:var(--tabbar-bg);border-top:1px solid var(--divider);}
  .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:600}
  .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:8px 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 8px}
}
@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-visible{outline:2px solid var(--info);outline-offset:2px}
.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:8px}
.sheet .choices .choice-row{padding-block:12px}


/* Coral: cards carry the work; plain groups carry supporting information. */
html,body{overflow-x:clip}
.sky{display:none}
.topnav{top:0;margin:0;pointer-events:auto}
.navpill{width:min(100%,1120px);height:76px;padding:0;background:var(--nav-bg);border-bottom:1px solid var(--divider);border-radius:0;box-shadow:none}
.logo{font-size:21px;font-weight:600;letter-spacing:-.04em}
.navitems{margin-left:auto;gap:4px}.navitem{padding:12px;border-radius:8px}
.navitem[aria-current="page"]{background:var(--muted);color:var(--tp)}
.page{max-width:1120px;padding-block:36px 72px;gap:32px}
.hero{align-items:center;padding:8px 0 0}.hero-text{gap:12px}
.display{font-family:var(--font);font-weight:600;font-size:44px;line-height:1.25;letter-spacing:-.04em;max-width:22ch;overflow-wrap:break-word;min-width:0}
.display-long{font-size:36px}.hero .sub{max-width:38em;font-size:17px;line-height:1.65;color:var(--ts)}
.cols{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px}.col{gap:32px}
.card{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;gap:20px}
.t-title,.t-headline{font-family:var(--font);font-weight:600;letter-spacing:-.025em}.t-title{font-size:24px;line-height:1.4}.t-headline{font-size:20px;line-height:1.4}
.card.start-input,.card.start-connect,.card.coach,.card.apply{background:var(--surface);border-radius:8px;padding:28px;box-shadow:var(--shadow-card)}
.start-connect .rowlist{margin-top:-8px}.start-connect .row{padding:12px 0}
.start-connect .iconwrap{width:28px;height:28px;background:transparent;color:var(--ts)}
.start-connect > div:last-child{padding-top:4px}.start-connect .pill-primary{width:100%}
.start-input .input-box{background:var(--canvas);border:1px solid var(--control);border-radius:6px;padding:16px;box-shadow:none}
.start-input textarea{min-height:88px}.start-input .t-cap{font-size:12px}
.start-path{padding:0 4px;gap:20px}.start-path .t-headline{font-size:17px;color:var(--ts)}
.start-path .route{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.start-path .rt{padding-bottom:0;gap:12px}.start-path .rt::before{display:none}
.start-path .rt-head{gap:4px 8px}.start-path .rt-body .t-strong{font-size:15px}.start-path .t-sub{font-size:13px;line-height:1.6}
.pill{border-radius:8px;min-height:48px;border:0;box-shadow:var(--shadow-card);font-weight:500}
.pill-primary{background:var(--inverse);color:var(--t-inv)}
.pill-secondary,.pill-outline{background:var(--surface);color:var(--tp)}
.pill:hover{transform:translateY(-1px);box-shadow:var(--shadow-float)}.pill:active{transform:translateY(1px)}
.input-box{border-radius:6px}.input-box:focus-within{outline:2px solid var(--info);outline-offset:2px;box-shadow:none}
.iconwrap,.avatar,.circle{border-radius:8px}.circle{background:var(--muted)}
.policy,.opp{border-top:1px solid var(--divider);padding:20px 0;gap:12px}.policies,.opps{column-gap:28px;row-gap:20px}
.opp:hover,.link-card:hover{box-shadow:none}.opp:hover .t-headline{text-decoration:underline;text-decoration-color:var(--now);text-underline-offset:4px}
.saved-card,.note,.goal,.link-card{padding:20px 0;border-top:1px solid var(--divider)}
.col > .card:not(:first-child):not(.start-input):not(.start-connect):not(.start-path):not(.coach):not(.apply){border-top:1px solid var(--divider);padding-top:24px}
.sheet{border-radius:12px}.choice-row,.fld input,.login-btn,.toast{border-radius:8px}
.foot{max-width:1120px;border-top:1px solid var(--divider)}.brand-credit{font-size:13px;line-height:20px}
:focus-visible{outline:2px solid var(--info);outline-offset:3px}
@media(max-width:899px){
 .topbar{max-width:600px;height:64px;margin-top:0;border-bottom:1px solid var(--divider)}
 .tabbar{background:var(--tabbar-bg);border-top:1px solid var(--divider)}.tab[aria-current="page"]{color:var(--now)}
 .page{padding-top:24px;gap:28px}.display{font-size:32px;line-height:1.3}.display-long{font-size:28px}.hero .sub{font-size:15px}
 .cols{gap:28px}.card.start-input,.card.start-connect,.card.coach,.card.apply{padding:24px}
 .start-connect{order:1}.start-input{order:0}.start-path{order:2}
 .start-path .route{grid-template-columns:minmax(0,1fr);gap:20px}
 .start-path .rt::before{display:block}.start-path .rt{padding-bottom:0}
 .foot{max-width:600px}
}

.tbtn{display:inline-flex;align-items:center;min-height:44px}

.fld input{border:1px solid var(--control)}
button.tlink,a.tlink{min-height:44px}

.stats-venue .stat:last-child{flex:2}
.saved-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:20px 0}
.saved-card .saved-row{padding:0}.saved-card .saved-foot{border:0;padding:0;flex-direction:column;align-items:flex-end;gap:4px}
@media(max-width:899px){
 .upcoming{order:-1}
 .saved-card{grid-template-columns:minmax(0,1fr);gap:8px}
 .saved-card .saved-foot{flex-direction:row;align-items:center;justify-content:space-between}
 .stats-venue .stat:last-child{flex:auto}
}
.hero .stats-venue{width:440px;display:grid;grid-template-columns:88px 112px minmax(0,1fr)}
.stats-venue .stat:nth-child(2) .v{white-space:nowrap}
.stats-venue .stat:last-child .v{font-size:16px;line-height:24px;word-break:keep-all}
@media(max-width:1099px){.hero.with-stats .stats-venue{width:auto}}
@media(max-width:899px){.hero .stats-venue{display:flex;width:auto}}
