/* =========================================================================
   GOLDVISION 크루 포털 — "소프트 갤러리" 디자인 시스템 v1
   토큰: 웜 아이보리 배경 · 흰 카드 · 브론즈 포인트 · 잉크 액션
   규격: 4px 간격 배수 · 좌우 여백 22px · 라운드 10/14/18/24 · 그림자 2단
   ========================================================================= */
:root{
  --p-bg:#F5F1EA; --p-card:#FFFFFF; --p-ink:#33302A; --p-text:#3B372F;
  --p-muted:#9C9484; --p-faint:#B4AC9C; --p-line:#EFEAE0;
  --p-accent:#A8794F; --p-accent-soft:#F3E7D8; --p-soft:#EDE8DF;
  --p-success:#5F7A5C; --p-success-soft:#EAF0E6;
  --p-warn:#A98A4F; --p-warn-soft:#F5EEDD;
  --p-danger:#A05C4E; --p-danger-soft:#F6E9E4;
  --sh-sm:0 1px 1px rgba(45,38,28,.03),0 4px 12px rgba(45,38,28,.06);
  --sh-md:0 1px 1px rgba(45,38,28,.03),0 8px 22px rgba(45,38,28,.08);
  --sh-lg:0 16px 36px rgba(45,38,28,.16);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{font-size:16px}
body{
  font-family:"SUIT Variable","SUIT","Noto Sans KR","Segoe UI",sans-serif;
  background:var(--p-bg);color:var(--p-text);
  min-height:100dvh;
}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}
input,select,textarea{font-family:inherit;font-size:15px;color:var(--p-ink)}

.app{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative}
.view{flex:1;padding:0 22px calc(112px + env(safe-area-inset-bottom));display:none}
.view.on{display:block}

/* ---------- 타이포 ---------- */
.page-head{padding:24px 0 2px}
.kicker{font-size:10px;font-weight:750;letter-spacing:.18em;color:var(--p-accent);text-transform:uppercase}
h1.page-title{font-size:26px;font-weight:800;color:var(--p-ink);margin-top:5px;letter-spacing:-0.02em}
.section-head{display:flex;align-items:center;justify-content:space-between;margin:18px 2px 9px}
.section-head h3{font-size:14px;font-weight:800;color:var(--p-ink);letter-spacing:-0.01em}
.section-head .aux{font-size:11.5px;font-weight:750;color:var(--p-accent);background:none}
.num{font-variant-numeric:tabular-nums}

/* ---------- 캘린더 ---------- */
.cal-topbar{padding:22px 0 12px;display:flex;align-items:center;justify-content:space-between}
.month-nav{display:flex;align-items:center;gap:10px}
.month-nav button{width:30px;height:30px;border-radius:15px;background:var(--p-card);box-shadow:var(--sh-sm);display:flex;align-items:center;justify-content:center}
.month-nav svg{width:14px;height:14px;stroke:var(--p-muted)}
.month-label{font-size:18px;font-weight:800;color:var(--p-ink);min-width:104px;text-align:center;letter-spacing:-0.01em}
.today-pill{height:30px;padding:0 13px;border-radius:15px;background:var(--p-card);box-shadow:var(--sh-sm);font-size:11.5px;font-weight:750;color:var(--p-accent)}

.legend{display:flex;gap:7px;padding-bottom:14px;overflow-x:auto;scrollbar-width:none}
.legend::-webkit-scrollbar{display:none}
.chip{height:27px;padding:0 11px;border-radius:14px;background:var(--p-card);box-shadow:var(--sh-sm);display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:var(--p-text);white-space:nowrap;flex-shrink:0}
.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}

.cal-card{background:var(--p-card);border-radius:22px;padding:16px 12px 10px;box-shadow:var(--sh-md)}
.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:6px}
.weekday-row span{text-align:center;font-size:10px;font-weight:750;color:var(--p-faint)}
.weekday-row span:first-child{color:#C29085}
.day-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}
.day{height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:12px;background:none}
.day .n{font-size:12px;color:var(--p-text);font-weight:650;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.day.muted .n{color:var(--p-faint);font-weight:500}
.day.today .n{background:var(--p-ink);color:#F5F1EA}
.day.selected{background:var(--p-accent-soft)}
.day.selected .n{color:var(--p-accent);font-weight:800}
.dots{display:flex;gap:2px;height:5px}
.dots i{width:4px;height:4px;border-radius:50%;display:block}

.day-detail-head{display:flex;align-items:baseline;justify-content:space-between;margin:16px 2px 10px}
.day-detail-head h3{font-size:13.5px;font-weight:800;color:var(--p-ink)}
.day-detail-head span{font-size:11px;color:var(--p-faint);font-weight:650}

.event-card{background:var(--p-card);border-radius:16px;padding:13px 14px;display:flex;gap:12px;box-shadow:var(--sh-sm);margin-bottom:8px;width:100%;text-align:left}
.event-card .bar{width:3.5px;border-radius:2px;align-self:stretch;flex-shrink:0}
.event-card .ev-body{flex:1;min-width:0}
.ev-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ev-title{font-size:13px;font-weight:750;color:var(--p-ink)}
.ev-meta{font-size:11px;color:var(--p-muted);margin-top:4px;font-weight:550}
.badge{font-size:10px;font-weight:750;padding:3px 9px;border-radius:10px;flex-shrink:0}
.badge.confirmed{background:var(--p-success-soft);color:var(--p-success)}
.badge.available{background:var(--p-accent-soft);color:var(--p-accent)}
.badge.unavailable{background:var(--p-danger-soft);color:var(--p-danger)}

.empty{background:var(--p-card);border-radius:20px;padding:26px 20px;text-align:center;box-shadow:var(--sh-sm)}
.empty .ring{width:52px;height:52px;border-radius:26px;background:var(--p-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.empty .ring svg{width:22px;height:22px;stroke:var(--p-faint)}
.empty h5{font-size:14px;font-weight:800;color:var(--p-ink)}
.empty p{font-size:11.5px;color:var(--p-muted);margin-top:5px;font-weight:550}
.empty .cta{margin-top:14px;height:42px;padding:0 18px;border-radius:12px;background:var(--p-ink);color:#F5F1EA;font-size:12.5px;font-weight:750}

/* ---------- FAB / 내비 ---------- */
.fab{position:fixed;right:max(22px,calc(50% - 238px));bottom:calc(104px + env(safe-area-inset-bottom));width:54px;height:54px;border-radius:27px;background:var(--p-ink);display:flex;align-items:center;justify-content:center;box-shadow:0 14px 28px rgba(51,48,42,.32);z-index:30}
.fab svg{width:20px;height:20px;stroke:#F5F1EA}
.fab:active{transform:scale(.94)}

.navwrap{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;padding:0 22px calc(18px + env(safe-area-inset-bottom));z-index:40;pointer-events:none}
.nav-inner{pointer-events:auto;width:100%;max-width:476px;height:58px;border-radius:29px;background:var(--p-card);box-shadow:0 12px 28px rgba(70,58,35,.16);display:flex;align-items:center;padding:0 8px}
.n{flex:1;height:46px;border-radius:23px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--p-faint)}
.n svg{width:18px;height:18px}
.n span{font-size:9px;font-weight:750}
.n.on{background:var(--p-ink);color:#F5F1EA}

/* ---------- 시트 ---------- */
.sheet-scrim{position:fixed;inset:0;background:rgba(45,38,28,.32);z-index:50;opacity:0;pointer-events:none;transition:opacity .18s ease}
.sheet{position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:520px;max-height:88dvh;background:#F7F4EE;border-radius:28px 28px 0 0;box-shadow:0 -20px 48px rgba(45,38,28,.20);z-index:51;display:flex;flex-direction:column;transform:translateY(102%);transition:transform .22s cubic-bezier(.32,.72,.35,1)}
body.sheet-open .sheet-scrim{opacity:1;pointer-events:auto}
body.sheet-open .sheet{transform:translateY(0)}
.grabber{width:36px;height:5px;border-radius:3px;background:#D9D2C4;margin:9px auto 2px;flex-shrink:0}
.sheet-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 18px 12px;flex-shrink:0}
.sheet-head .s-cancel{font-size:15px;color:var(--p-muted);font-weight:600;justify-self:start}
.sheet-head .s-title{font-size:15px;font-weight:750;color:var(--p-ink)}
.sheet-head .s-save{font-size:15px;color:var(--p-accent);font-weight:800;justify-self:end}
.sheet-body{flex:1;overflow-y:auto;padding:2px 18px calc(20px + env(safe-area-inset-bottom))}

/* ---------- 폼 (iOS 인셋 그룹) ---------- */
.seg{display:flex;background:var(--p-soft);border-radius:11px;padding:2.5px;margin-bottom:16px}
.seg button{flex:1;height:34px;border-radius:9px;font-size:12.5px;font-weight:700;color:var(--p-muted)}
.seg button.on{background:#FFF;color:var(--p-ink);box-shadow:0 1px 1px rgba(45,38,28,.06),0 3px 8px rgba(45,38,28,.08)}
.seg button.on.good{color:var(--p-success)}
.seg button.on.bad{color:var(--p-danger)}

.group-label{font-size:11px;font-weight:700;color:var(--p-muted);margin:0 4px 6px;display:block}
.group{background:#FFF;border-radius:14px;margin-bottom:14px;box-shadow:0 1px 1px rgba(45,38,28,.03),0 4px 14px rgba(45,38,28,.05);overflow:hidden}
.frow{display:flex;align-items:center;min-height:46px;padding:0 15px;border-bottom:.5px solid var(--p-line);gap:10px}
.frow:last-child{border-bottom:none}
.frow .k{font-size:13.5px;font-weight:600;color:var(--p-ink);flex-shrink:0;min-width:72px}
.frow input[type=date],.frow input[type=time],.frow input[type=text],.frow input[type=number],.frow input[type=tel]{
  flex:1;border:none;background:none;text-align:right;font-size:14px;font-weight:600;color:var(--p-ink);min-width:0;outline:none
}
.frow input::placeholder{color:var(--p-faint);font-weight:500}
.frow select{flex:1;border:none;background:none;text-align:right;text-align-last:right;font-size:14px;font-weight:600;color:var(--p-ink);min-width:0;outline:none;-webkit-appearance:none;appearance:none;padding-right:2px}
.frow select:invalid,.frow select.ph{color:var(--p-faint);font-weight:500}
.chips{display:flex;gap:7px;padding:11px 15px;flex-wrap:wrap}
.chips .a-chip{height:32px;padding:0 12px;border-radius:16px;box-shadow:inset 0 0 0 1px var(--p-line);background:#FFF;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650;color:var(--p-text);cursor:pointer;user-select:none}
.chips .a-chip.on{box-shadow:inset 0 0 0 1.5px currentColor;background:var(--p-accent-soft);color:var(--p-accent)}
.chips .a-chip.add{box-shadow:inset 0 0 0 1px var(--p-accent);color:var(--p-accent);background:#FFF}
.mini-btn{flex:0 0 auto;height:26px;padding:0 10px;border-radius:8px;background:var(--p-soft);color:var(--p-muted);font-size:11.5px;font-weight:700}
.place-results{display:flex;flex-direction:column}
.place-results .pr-item{display:block;text-align:left;padding:9px 15px;border-bottom:.5px solid var(--p-line)}
.place-results .pr-item:last-child{border-bottom:none}
.place-results .pr-item .pn{font-size:13.5px;font-weight:700;color:var(--p-ink)}
.place-results .pr-item .pa{font-size:11.5px;color:var(--p-muted);margin-top:1px}
.place-results .pr-note{padding:9px 15px;font-size:12px;color:var(--p-faint);font-weight:500}
.map-link{color:var(--p-accent)!important;font-weight:650;text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.map-link:after{content:"↗";font-size:11px}
.add-row{width:calc(100% - 30px);margin:6px 15px 2px;height:38px;border-radius:11px;border:1px dashed var(--p-line);color:var(--p-accent);font-size:13px;font-weight:700;background:#FFF}
.sess-row{display:flex;align-items:center;gap:8px;padding:7px 15px;border-bottom:.5px solid var(--p-line)}
.sess-row select{flex:0 0 84px;font-size:13px;font-weight:650;color:var(--p-ink);border:none;background:none;-webkit-appearance:none;appearance:none;outline:none}
.sess-row input[type=date]{flex:1;min-width:0;border:none;background:none;font-size:12.5px;font-weight:600;color:var(--p-ink);outline:none}
.sess-row input[type=time]{flex:0 0 74px;border:none;background:none;font-size:12.5px;font-weight:600;color:var(--p-ink);outline:none}
.sess-row .rm{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--p-soft);color:var(--p-muted);font-size:13px;font-weight:700;line-height:1}
.sess-chip{display:inline-flex;height:22px;padding:0 8px;border-radius:11px;background:var(--p-soft);color:var(--p-text);font-size:10px;font-weight:750;align-items:center;gap:4px;margin-right:5px}
.seg3{display:flex;background:var(--p-soft);border-radius:10px;padding:2.5px;margin:10px 15px 12px}
.seg3 button{flex:1;height:31px;border-radius:8px;font-size:12px;font-weight:700;color:var(--p-muted)}
.seg3 button.on{background:#FFF;box-shadow:0 1px 1px rgba(45,38,28,.06),0 3px 8px rgba(45,38,28,.08)}
.seg3 button.on[data-v=available]{color:var(--p-accent)}
.seg3 button.on[data-v=confirmed]{color:var(--p-success)}
.seg3 button.on[data-v=unavailable]{color:var(--p-danger)}
.tax{display:flex;gap:6px;justify-content:flex-end;flex:1}
.tax button{font-size:11px;font-weight:700;padding:5px 10px;border-radius:12px;color:var(--p-muted);background:var(--p-soft)}
.tax button.on{background:var(--p-ink);color:#F5F1EA}
textarea.memo{width:100%;min-height:64px;border:none;background:#FFF;padding:12px 15px;font-size:13.5px;resize:none;outline:none}
.danger-row{width:100%;height:46px;color:var(--p-danger);font-size:13.5px;font-weight:700;background:#FFF}

/* ---------- 정산 ---------- */
.hero{background:var(--p-ink);border-radius:24px;padding:22px 20px 18px;color:#F5F1EA;margin-top:16px;box-shadow:0 16px 36px rgba(51,48,42,.22);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-50px;top:-60px;width:180px;height:180px;border-radius:90px;background:rgba(245,241,234,.04)}
.hero .lbl{font-size:11.5px;color:#B5AE9E;font-weight:650}
.hero .amt{font-size:32px;font-weight:800;margin-top:7px;letter-spacing:-0.02em}
.hero .sub{font-size:11px;color:#96907F;margin-top:6px;font-weight:550}
.agency-list{margin-top:16px;padding-top:14px;border-top:1px solid rgba(245,241,234,.10);display:flex;flex-direction:column;gap:11px}
.agency-row{display:flex;align-items:center;gap:9px}
.agency-row .dot{width:7px;height:7px}
.agency-row .name{font-size:12.5px;font-weight:650;color:#E9E4D8;flex:1}
.agency-row .cnt{font-size:10.5px;color:#96907F;font-weight:600}
.agency-row .amt2{font-size:13px;font-weight:750;color:#F5F1EA}

.ev-row{background:var(--p-card);border-radius:16px;padding:13px 15px;margin-bottom:9px;display:flex;gap:13px;align-items:center;box-shadow:var(--sh-sm)}
.ev-row .d-col{width:38px;text-align:center;flex-shrink:0}
.ev-row .d-col .d{font-size:17px;font-weight:800;color:var(--p-ink)}
.ev-row .d-col .w{font-size:9px;color:var(--p-faint);font-weight:750;letter-spacing:.08em}
.ev-row .sep{width:.5px;align-self:stretch;background:var(--p-line)}

/* ---------- 프로필 ---------- */
.stats{display:flex;background:var(--p-card);border-radius:16px;box-shadow:var(--sh-sm);margin-top:14px}
.stat{flex:1;padding:13px 4px;text-align:center;border-right:.5px solid var(--p-line)}
.stat:last-child{border-right:none}
.stat .k{font-size:8.5px;font-weight:750;color:var(--p-faint);letter-spacing:.12em;text-transform:uppercase}
.stat .v{font-size:15px;font-weight:800;color:var(--p-ink);margin-top:4px}
.stat .v small{font-size:9.5px;font-weight:650;color:var(--p-muted)}
.info-card{background:var(--p-card);border-radius:16px;overflow:hidden;box-shadow:var(--sh-sm);margin-top:12px}
.irow{display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:.5px solid var(--p-line)}
.irow:last-child{border-bottom:none}
.irow .k{width:52px;font-size:11px;font-weight:700;color:var(--p-faint);flex-shrink:0}
.irow .v{flex:1;font-size:12.5px;font-weight:650;color:var(--p-ink)}
.irow .v.faint{color:var(--p-faint);font-weight:500}
.lang-chip{display:inline-flex;height:24px;padding:0 9px;border-radius:12px;background:var(--p-accent-soft);font-size:10.5px;font-weight:750;color:var(--p-accent);align-items:center;gap:4px;margin-right:6px}
.lang-chip small{font-weight:650;color:var(--p-muted);font-size:9.5px}
.id-row{display:flex;align-items:center;gap:10px;margin-top:18px}
.id-row .nm{font-size:22px;font-weight:800;color:var(--p-ink);letter-spacing:-0.015em}
.kakao-tag{height:21px;padding:0 9px;border-radius:11px;background:#FBF0C4;display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:750;color:#8A7A1E}
.kakao-tag i{width:5px;height:5px;border-radius:50%;background:#FEE500;border:1px solid #E8CE00}
.out-row{text-align:center;margin-top:18px}
.out-row button{font-size:11.5px;color:var(--p-faint);font-weight:650}

/* ---------- 공고 카드 ---------- */
.job-card{background:var(--p-card);border-radius:20px;padding:17px 17px 15px;margin-bottom:12px;box-shadow:var(--sh-md)}
.job-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.brand-tag{font-size:9.5px;font-weight:800;letter-spacing:.12em;color:var(--p-faint);text-transform:uppercase}
.d-badge{font-size:10px;font-weight:750;padding:3.5px 9px;border-radius:10px}
.d-badge.hot{background:var(--p-danger-soft);color:var(--p-danger)}
.d-badge.open{background:var(--p-accent-soft);color:var(--p-accent)}
.d-badge.done{background:var(--p-soft);color:var(--p-muted)}
.job-title{font-size:16px;font-weight:800;color:var(--p-ink);letter-spacing:-0.015em}
.job-meta{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:9px}
.m-item{font-size:11.5px;color:var(--p-muted);font-weight:600}
.role-line{display:flex;gap:6px;margin-top:11px;flex-wrap:wrap}
.role-pill{font-size:10.5px;font-weight:750;padding:4.5px 11px;border-radius:11px;background:var(--p-soft);color:var(--p-text)}
.job-actions{display:flex;gap:8px;margin-top:14px}
.btn-apply{flex:2;height:46px;border-radius:13px;background:var(--p-ink);color:#F5F1EA;font-size:13.5px;font-weight:750}
.btn-pass{flex:1;height:46px;border-radius:13px;background:transparent;box-shadow:inset 0 0 0 1px #DED7C9;color:var(--p-muted);font-size:12px;font-weight:700}
.applied-strip{display:flex;align-items:center;gap:8px;margin-top:14px;min-height:46px;border-radius:13px;background:var(--p-success-soft);padding:0 14px}
.applied-strip svg{width:15px;height:15px;stroke:var(--p-success);flex-shrink:0}
.applied-strip .s{font-size:12.5px;font-weight:750;color:var(--p-success);white-space:nowrap}
.applied-strip .sub{font-size:10px;color:var(--p-muted);margin-left:auto;font-weight:550;text-align:right;line-height:1.35}

/* ---------- 프로필 사진 ---------- */
.photos{display:flex;gap:8px;margin-top:16px}
.photo-main{flex:1.6;border-radius:20px;overflow:hidden;position:relative;height:196px;box-shadow:0 12px 28px rgba(70,58,35,.14);background:var(--p-soft);padding:0}
.photo-main img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.photo-side{flex:1;display:flex;flex-direction:column;gap:8px;height:196px}
.photo-side .p{flex:1;border-radius:14px;overflow:hidden;position:relative;box-shadow:0 6px 16px rgba(70,58,35,.10);background:var(--p-soft);padding:0}
.photo-side img{width:100%;height:100%;object-fit:cover;display:block}
.b-rep{position:absolute;left:9px;top:9px;height:22px;padding:0 9px;border-radius:11px;background:rgba(51,48,42,.72);backdrop-filter:blur(4px);color:#F5F1EA;font-size:9.5px;font-weight:750;display:flex;align-items:center;gap:4px}
.b-rep i{width:5px;height:5px;border-radius:50%;background:#D8B48C}
.b-cat{position:absolute;left:9px;bottom:9px;height:21px;padding:0 8px;border-radius:11px;background:rgba(255,255,255,.85);backdrop-filter:blur(4px);color:var(--p-ink);font-size:9px;font-weight:750;display:flex;align-items:center}
.photo-add-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--p-faint);font-size:10px;font-weight:750;border:1.5px dashed #D9D2C4;border-radius:14px;background:transparent!important;box-shadow:none!important}
.photo-add-tile svg{width:18px;height:18px;stroke:var(--p-faint)}
.act-row{width:100%;text-align:left;background:#FFF}
.act-row .k{font-weight:650}

/* ---------- 사진 편집기 ---------- */
.photo-editor{position:fixed;inset:0;background:#1D1A16;z-index:70;display:none;flex-direction:column}
.photo-editor.on{display:flex}
.pe-top{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0}
.pe-top button{font-size:14px;font-weight:600;color:#96907F}
.pe-top .pe-title{font-size:14px;font-weight:800;color:#F5F1EA}
.pe-top .pe-done{color:#D8B48C;font-weight:800}
.pe-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:8px 28px;min-height:0}
.pe-frame{position:relative;height:100%;max-height:100%;aspect-ratio:4/5;border-radius:6px;overflow:hidden;touch-action:none}
.pe-frame canvas{width:100%;height:100%;display:block;cursor:grab}
.pe-grid{position:absolute;inset:0;border:1.5px solid rgba(255,255,255,.9);pointer-events:none}
.pe-grid::before{content:"";position:absolute;left:33.3%;right:33.3%;top:0;bottom:0;border-left:.5px solid rgba(255,255,255,.4);border-right:.5px solid rgba(255,255,255,.4)}
.pe-grid::after{content:"";position:absolute;top:33.3%;bottom:33.3%;left:0;right:0;border-top:.5px solid rgba(255,255,255,.4);border-bottom:.5px solid rgba(255,255,255,.4)}
.pe-tag{position:absolute;top:10px;left:50%;transform:translateX(-50%);height:24px;padding:0 11px;border-radius:12px;background:rgba(0,0,0,.5);font-size:10px;font-weight:750;color:#FFF;display:flex;align-items:center;white-space:nowrap;backdrop-filter:blur(4px);pointer-events:none}
.pe-panel{padding:14px 22px calc(24px + env(safe-area-inset-bottom));flex-shrink:0}
.pe-slider{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pe-slider .k{width:44px;font-size:11px;font-weight:700;color:#96907F}
.pe-slider .v{width:36px;text-align:right;font-size:11px;font-weight:750;color:#EDE8DF}
.pe-slider input[type=range]{flex:1;-webkit-appearance:none;appearance:none;height:3px;border-radius:2px;background:rgba(237,232,223,.18);outline:none}
.pe-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:9px;background:#FFF;box-shadow:0 2px 6px rgba(0,0,0,.35);cursor:pointer}
.pe-actions{display:flex;gap:9px;margin-top:4px}
.pe-actions button{flex:1;height:48px;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(237,232,223,.18);color:#EDE8DF;font-size:12.5px;font-weight:750}
.pe-actions button.primary{background:#F5F1EA;color:#1D1A16;box-shadow:none}

/* ---------- 공유 시트 버튼 / 경력 ---------- */
.share-opt-btn{width:100%;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:750;margin-bottom:9px;background:#FFF;box-shadow:inset 0 0 0 1px #DED7C9;color:var(--p-text)}
.share-opt-btn svg{width:16px;height:16px;stroke:currentColor}
.share-opt-btn.primary{background:var(--p-ink);color:#F5F1EA;box-shadow:none}
.share-opt-btn.ghost{background:transparent;box-shadow:none;color:var(--p-faint);font-size:11.5px;font-weight:700;height:40px}
.career-card{background:var(--p-card);border-radius:16px;padding:2px 15px;box-shadow:var(--sh-sm)}
.year-tag{font-size:9.5px;font-weight:800;color:var(--p-faint);letter-spacing:.1em;padding:10px 0 2px}
.career-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:.5px solid var(--p-line);width:100%;text-align:left;background:none}
.career-row:last-of-type{border-bottom:none}
.career-row .t{flex:1;font-size:12px;font-weight:650;color:var(--p-ink);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.career-row .ag{font-size:9.5px;color:var(--p-faint);font-weight:650;flex-shrink:0}
.role-badge{font-size:9.5px;font-weight:750;padding:3px 8px;border-radius:9px;flex-shrink:0;background:var(--p-soft);color:var(--p-text)}
.role-badge.usher{background:var(--p-accent-soft);color:var(--p-accent)}
.role-badge.promoter{background:var(--p-success-soft);color:var(--p-success)}
.role-badge.sales{background:var(--p-warn-soft);color:var(--p-warn)}
.role-badge.docent{background:var(--p-soft);color:var(--p-muted)}

/* ---------- 환영 오버레이 / 홈 화면 추가 배너 ---------- */
.welcome{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;padding:28px;
  background:radial-gradient(90% 46% at 50% -6%, rgba(168,121,79,.10) 0%, rgba(168,121,79,0) 60%), var(--p-bg)}
.welcome.on{display:flex}
.w-inner{text-align:center;max-width:340px;width:100%}
.w-inner .mark{width:56px;height:56px;border-radius:18px;background:var(--p-ink);display:flex;align-items:center;justify-content:center;margin:0 auto 26px;box-shadow:0 14px 30px rgba(70,58,35,.22)}
.w-inner .mark svg{width:26px;height:26px}
.w-inner h2{font-size:28px;font-weight:800;color:var(--p-ink);letter-spacing:-0.02em}
.w-inner p{font-size:13.5px;color:var(--p-muted);margin-top:14px;line-height:1.8;font-weight:550}
.w-cta{width:100%;height:54px;border-radius:16px;background:var(--p-ink);color:#F5F1EA;font-size:14.5px;font-weight:750;margin-top:30px}
.w-skip{width:100%;height:44px;color:var(--p-faint);font-size:12px;font-weight:700;margin-top:6px}

.a2hs{position:fixed;left:22px;right:22px;bottom:calc(174px + env(safe-area-inset-bottom));max-width:476px;margin:0 auto;z-index:45;
  background:var(--p-card);border-radius:18px;box-shadow:0 14px 32px rgba(45,38,28,.18);display:flex;align-items:center;gap:12px;padding:13px 14px}
.a2hs-ic{width:38px;height:38px;border-radius:12px;background:var(--p-accent-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.a2hs-ic svg{width:18px;height:18px;stroke:var(--p-accent)}
.a2hs-tx{flex:1;min-width:0}
.a2hs-tx .t{font-size:12.5px;font-weight:750;color:var(--p-ink)}
.a2hs-tx .s{font-size:10.5px;color:var(--p-muted);margin-top:3px;font-weight:550;line-height:1.5}
.a2hs-x{width:28px;height:28px;border-radius:14px;background:var(--p-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.a2hs-x svg{width:12px;height:12px;stroke:var(--p-muted)}

/* ---------- 토스트 ---------- */
.toast-wrap{position:fixed;left:0;right:0;bottom:calc(112px + env(safe-area-inset-bottom));display:flex;justify-content:center;z-index:60;pointer-events:none}
.toast{height:46px;border-radius:14px;background:var(--p-ink);color:#F5F1EA;display:flex;align-items:center;gap:9px;padding:0 16px;font-size:13px;font-weight:700;box-shadow:0 12px 28px rgba(51,48,42,.28);opacity:0;transform:translateY(8px);transition:.22s ease}
.toast.show{opacity:1;transform:translateY(0)}
.toast svg{width:15px;height:15px;stroke:#A9C79F;flex-shrink:0}

/* ---------- 로그인 ---------- */
.login-wrap{min-height:100dvh;display:flex;flex-direction:column;justify-content:space-between;padding:0 28px 42px;max-width:520px;margin:0 auto;
  background:radial-gradient(90% 46% at 50% -6%, rgba(168,121,79,.10) 0%, rgba(168,121,79,0) 60%), var(--p-bg)}
.mark-row{display:flex;justify-content:center;padding-top:72px}
.mark{width:56px;height:56px;border-radius:18px;background:var(--p-ink);display:flex;align-items:center;justify-content:center;box-shadow:0 14px 30px rgba(70,58,35,.22)}
.mark svg{width:26px;height:26px}
.brand{text-align:center;margin-top:16dvh}
.brand-kicker{font-size:11px;letter-spacing:.24em;color:var(--p-accent);font-weight:750;text-transform:uppercase}
.brand-name{font-size:34px;font-weight:800;color:var(--p-ink);letter-spacing:-0.02em;margin-top:12px}
.brand-sub{font-size:14px;color:var(--p-muted);margin-top:16px;line-height:1.75;font-weight:550}
.kakao-btn{width:100%;height:56px;background:#FEE500;border-radius:16px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:15px;font-weight:750;color:#191919;letter-spacing:-0.01em;box-shadow:0 10px 24px rgba(180,150,20,.18);text-decoration:none}
.kakao-btn svg{width:19px;height:19px}
.legal{font-size:11px;color:var(--p-faint);text-align:center;line-height:1.8;margin-top:20px;font-weight:550}
.legal b{color:var(--p-muted);font-weight:700}

/* Company merge: 기능 보조 스타일 — 기존 Portal 미감 유지 */
.day.drange{background:var(--p-accent-soft);box-shadow:inset 0 0 0 1px rgba(143,118,82,.20)}
#fEndDateClear{margin-left:8px;white-space:nowrap}
#fStage{border:0;background:transparent;text-align:right;color:var(--p-text);font-size:13px;font-weight:650;outline:none}
#gvLockedNotice .v{color:var(--p-faint);font-size:12px}
.pe-transform button{height:42px}

/* GOLDVISION official schedule: projected from Admin, read-only here */
.gv-official-chip{display:inline-flex;height:22px;padding:0 8px;border-radius:11px;background:#1D2126;color:#fff;font-size:10px;font-weight:750;align-items:center;margin-right:5px;letter-spacing:.02em}

/* ---- Phase 13 · canonical self-service ---- */
.gv-hidden-nav{display:none!important}
.self-banner{margin:12px 0;padding:14px 16px;border:1px solid var(--p-warn);border-radius:14px;background:var(--p-warn-soft)}.self-banner strong{display:block;font-size:13px;margin-bottom:4px}.self-banner p{margin:0;font-size:12.5px;line-height:1.55;color:var(--p-text)}.self-banner .self-btn{margin-top:10px}
.self-card{display:block;margin:10px 0;padding:13px 15px;border:1px solid var(--p-line);border-radius:14px;background:var(--p-card);text-decoration:none;color:inherit}.self-card.official{border-color:var(--p-accent-soft)}.self-card.unread{border-color:var(--p-accent);box-shadow:0 0 0 2px var(--p-accent-soft)}.self-card.link{cursor:pointer}
.self-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.self-card-top b{font-size:14px;line-height:1.35}.self-meta{margin-top:5px;font-size:12px;color:var(--p-muted);line-height:1.5}.self-meta b{color:var(--p-ink)}
.self-note{display:block;margin:8px 0 14px;font-size:11px;color:var(--p-muted);line-height:1.5}.self-body{margin:8px 0 0;white-space:pre-wrap;font:inherit;font-size:13px;line-height:1.6}
.pill{flex:none;padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:750;background:var(--p-soft);color:var(--p-muted)}.pill.upcoming,.pill.today{background:var(--p-accent-soft);color:var(--p-accent)}.pill.ongoing{background:var(--p-warn-soft);color:var(--p-warn)}.pill.completed,.pill.planned{background:var(--p-success-soft);color:var(--p-success)}.pill.cancelled{background:var(--p-danger-soft);color:var(--p-danger)}.pill.pending{background:var(--p-soft);color:var(--p-muted)}
.self-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.self-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:10px;border:1px solid var(--p-accent);background:var(--p-accent);color:#fff;font-size:12.5px;font-weight:750;text-decoration:none;cursor:pointer;font-family:inherit}.self-btn.ghost{background:transparent;color:var(--p-accent)}
.self-row{display:flex;justify-content:space-between;align-items:center;width:100%;margin:8px 0;padding:12px 14px;border:1px solid var(--p-line);border-radius:12px;background:var(--p-card);text-align:left;font-family:inherit;cursor:pointer}.self-row span{display:flex;flex-direction:column;gap:2px}.self-row b{font-size:13.5px}.self-row small{font-size:11.5px;color:var(--p-muted)}.self-row em{font-style:normal;font-size:12px;font-weight:750;color:var(--p-accent)}
.self-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:8px 0}.self-kpis>div{padding:10px 12px;border:1px solid var(--p-line);border-radius:12px;background:var(--p-card)}.self-kpis span,.self-kpis small{display:block;font-size:10.5px;color:var(--p-muted)}.self-kpis b{display:block;margin:3px 0;font-size:15px}
.self-line{display:flex;justify-content:space-between;padding:8px 2px;border-bottom:1px solid var(--p-line);font-size:12.5px}.self-line em{font-style:normal;color:var(--p-muted)}
.self-form .frow select,.self-form .frow input{flex:1}.member-chip{margin-left:auto;padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:750;background:var(--p-soft);color:var(--p-muted)}.member-chip[data-m="ACTIVE"]{background:var(--p-success-soft);color:var(--p-success)}
.career-row.verified .gv-official-chip{margin-left:6px}
.more-sheet{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;flex-direction:column;gap:6px;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:var(--p-card);border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.18)}.more-sheet.on{display:flex}.more-sheet button{padding:13px 14px;border:1px solid var(--p-line);border-radius:12px;background:var(--p-bg);font:inherit;font-size:14px;font-weight:700;text-align:left;cursor:pointer}