  :root{
    color-scheme:light;
    /* v5.38 RC12 · 사진 없는 장소 상세의 정보 위계와 밝은 지도 톤을 정리한다. */
    --brand-deep:#071a2e; --brand-deep-2:#0d2e48; --brand-glow:#2272eb;
    --bg-canvas:#e8eef3; --bg-app:#f5f8fa;
    --surface-section:#edf3f7; --surface-card:#ffffff; --surface-raised:#edf3f7; --control-bg:#f2f6f9;
    --surface-interactive:#ffffff; --surface-info:#e8f3ff;
    --border-subtle:#d5e0e8; --border-default:#ccd9e3; --border-control:#72899b; --border-interactive:#b8ccda;
    --text-primary:#172a3a; --text-secondary:#536779; --text-muted:#5f7281;
    --canvas:var(--bg-canvas); --app:var(--bg-app);
    --surface-1:var(--surface-card); --surface-2:var(--surface-section); --surface-muted:var(--surface-raised);
    --border:var(--border-subtle); --border-strong:var(--border-default); --input-border:var(--border-control);
    --action:#1b64da; --action-fill:#1b64da; --action-hover:#1957c2; --action-weak:#e8f3ff; --on-action:#ffffff;
    --focus:#3182f6;
    --success:#147a52; --success-bg:#e7f7ef; --success-fill:#147a52; --on-success:#ffffff;
    --warning:#805800; --warning-bg:#fff4d6; --warning-fill:#f6c453; --on-warning:#352500;
    --danger:#b83c38; --danger-bg:#ffeded; --danger-fill:#b83c38; --on-danger:#ffffff;
    --info:#1b64da; --info-bg:#e8f3ff;
    --fixed:#526675; --fixed-bg:#edf2f5;
    --manual:#147a52; --manual-bg:#e7f7ef;
    --ai:#4f5fc7; --ai-bg:#eef0ff;
    --idea:#5b6f7f; --idea-bg:#eef2f5;
    --category-sea:#30b6b6; --category-soup:#f66570; --category-local:#6f7bf7; --category-market:#e45d91;
    --category-meal:#15b978; --category-bar:#6d5ce7; --category-cafe:#a855d1; --category-tour:#4593fc; --category-etc:#6d8191;
    --day-1-a:#164f91; --day-1-b:#1b64da; --day-2-a:#176049; --day-2-b:#247356; --day-3-a:#4c469f; --day-3-b:#5c55b9;
    --shadow-sm:0 2px 7px rgba(7,26,46,.08);
    --shadow-md:0 10px 26px rgba(7,26,46,.16);
    --shadow-card:0 2px 0 rgba(80,105,120,.11),0 9px 20px rgba(7,26,46,.09);
    --shadow-card-hover:0 3px 0 rgba(80,105,120,.16),0 12px 26px rgba(7,26,46,.13);
    --shadow-card-pressed:0 1px 0 rgba(80,105,120,.12),0 4px 10px rgba(7,26,46,.07);
    /* 기존 규칙과의 호환 별칭. 신규 규칙은 위 의미 토큰만 사용한다. */
    --navy:var(--brand-deep); --blue:var(--info); --sky:var(--surface-2); --sand:var(--surface-1);
    --accent:var(--warning-fill); --green:var(--success); --red:var(--danger);
    --text:var(--text-primary); --sub:var(--text-secondary);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{font-family:'Apple SD Gothic Neo','Noto Sans KR','Malgun Gothic',sans-serif;background:var(--canvas);color:var(--text);line-height:1.6;}
  .wrap{max-width:480px;margin:0 auto;background:var(--app);min-height:100vh;box-shadow:0 0 30px rgba(0,0,0,.1);padding-bottom:calc(64px + env(safe-area-inset-bottom));}
  /* 하단 탭바 */
  .bnav{position:fixed;bottom:0;left:0;right:0;z-index:90;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid #e2e8f0;display:flex;max-width:480px;margin:0 auto;padding-bottom:env(safe-area-inset-bottom);}
  .bnav button{flex:1;background:none;border:none;margin:5px 4px;padding:5px 0 6px;font-size:11.5px;font-weight:700;color:#718096;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;font-family:inherit;border-radius:12px;transition:background .2s,color .2s;}
  .bnav button .bi{font-size:20px;line-height:1;}
  .bnav button.on{color:var(--navy);font-weight:800;background:linear-gradient(135deg,#dbe9f9,#e8f1fa);box-shadow:inset 0 0 0 1.5px #b7d1ec;}
  .tabpage{display:none;}
  /* 탭 전환은 위치 이동 없이 아주 짧은 페이드만 — 화면이 밀려 올라오는 느낌을 없앤다 */
  .tabpage.active{display:block;animation:fadein .14s ease;}
  @keyframes fadein{from{opacity:.35}to{opacity:1}}
  /* header */
  .hero{background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--brand-glow) 28%,transparent) 0,transparent 43%),linear-gradient(150deg,var(--brand-deep) 0%,var(--brand-deep-2) 70%,#123b69 100%);color:#fff;padding:26px 20px 18px;position:relative;overflow:hidden;}
  .hero::after{content:"🌊";position:absolute;font-size:104px;right:-16px;bottom:-30px;opacity:.12;}
  .hero .tag{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);padding:3px 11px;border-radius:20px;font-size:11px;letter-spacing:1px;margin-bottom:8px;}
  .hero h1{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:28px;font-weight:800;letter-spacing:-1px;line-height:1.2;}
  .hero .hero-mark{font-size:.82em;line-height:1;}
  .hero .date{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:13.5px;margin-top:5px;opacity:.92;font-weight:600;}
  .htop{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;position:relative;z-index:2;}
  .htop-l{min-width:0;}
  .hero-aside{flex:0 0 142px;width:142px;display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:-4px;}
  .hero .members{display:flex;flex-wrap:wrap;gap:3px 11px;margin-top:9px;font-size:12px;opacity:.88;position:relative;z-index:1;}
  .hero .members span{white-space:nowrap;}
  .hero .dday{display:inline-block;margin-top:8px;background:var(--accent);color:#5b3a00;font-weight:800;font-size:13px;padding:4px 12px;border-radius:20px;position:relative;z-index:1;}
  /* 히어로 우측 실시간 날씨 카드 */
  .hwnow{flex:0 0 auto;text-align:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:14px;padding:9px 10px 8px;min-width:88px;backdrop-filter:blur(4px);}
  .hwnow .hw-i{font-size:27px;line-height:1.05;}
  .hwnow .hw-t{font-size:19px;font-weight:800;line-height:1.15;margin-top:2px;}
  .hwnow .hw-l{font-size:10.5px;opacity:.82;margin-top:3px;letter-spacing:.2px;}
  .hwnow:empty{display:none;}
  .chip.now{background:#c53030;color:#fff;animation:nowblink 1.2s ease infinite;}
  @keyframes nowblink{0%,100%{opacity:1}50%{opacity:.55}}
  .keys{display:flex;gap:7px;margin-top:12px;position:relative;z-index:1;}
  .keys .kbox{flex:1;min-width:0;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.23);border-radius:10px;padding:7px 5px;text-align:center;}
  .keys .kd{font-size:10.5px;opacity:.8;}
  .keys .kt{font-size:15px;font-weight:800;margin-top:1px;}
  .keys .kl{font-size:10.5px;opacity:.85;}
  .hero-alert{display:flex;min-height:46px;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;margin:0;padding:6px 8px;border:1px solid rgba(255,255,255,.27);border-radius:11px;background:rgba(7,27,47,.28);color:rgba(255,255,255,.92);line-height:1.25;position:relative;z-index:1;box-sizing:border-box;}
  .hero-alert-title{display:flex;align-items:center;gap:5px;white-space:nowrap;}
  .hero-alert-icon{font-size:15px;line-height:1;}
  .hero-alert-title b{color:#ffe29b;font-size:10.5px;font-weight:850;}
  .hero-alert-text{font-size:10.5px;letter-spacing:-.15px;white-space:nowrap;}
  /* quick nav (탭 내부 소메뉴) */
  .qnav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);display:flex;gap:7px;padding:11px 12px;border-bottom:1px solid #e2e8f0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .qnav::-webkit-scrollbar{display:none;}
  .qnav a{flex:0 0 auto;font-size:13.5px;font-weight:700;color:var(--navy);background:#eef4fb;border:1px solid #d6e4f5;border-radius:20px;padding:8px 14px;text-decoration:none;white-space:nowrap;transition:background .25s,color .25s;}
  .qnav a:active{background:#dbe9f9;}
  /* 일정표 Day 1·2·3은 같은 44px·3등분 규격을 쓴다. */
  #tab-plan > .plan-qnav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;}
  #tab-plan > .plan-qnav a{display:inline-flex;width:100%;min-width:0;min-height:44px;box-sizing:border-box;align-items:center;justify-content:center;padding:0 10px;}
  /* 일정표↔지도, 장소 리스트↔지도 — 보기 모드만 하단 중앙 세그먼트 캡슐로 전환 */
  .mode-switcher{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));z-index:1100;width:max-content;height:44px;max-width:calc(100vw - 24px);box-sizing:border-box;transform:translateX(-50%);padding:0 3px;border:1px solid #d6e0ee;border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 4px 14px rgba(11,37,69,.20);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
  .mode-switcher[hidden],.mode-switcher-group[hidden]{display:none!important;}
  .mode-switcher-group{--mode-thumb-x:0px;--mode-thumb-width:0px;position:relative;display:flex;width:max-content;max-width:100%;height:44px;align-items:stretch;isolation:isolate;}
  .mode-switcher-group::before{content:'';position:absolute;left:0;top:3px;bottom:3px;z-index:0;width:var(--mode-thumb-width);transform:translateX(var(--mode-thumb-x));border-radius:19px;background:#1b64da;box-shadow:0 2px 7px rgba(27,100,218,.25);transition:transform 150ms ease,width 150ms ease;pointer-events:none;}
  .mode-segment{position:relative;z-index:1;display:flex;min-width:44px;height:44px;box-sizing:border-box;align-items:center;justify-content:center;gap:4px;padding:0 16px;border:0;border-radius:19px;background:transparent;color:#475569;font-family:inherit;font-size:12.5px;font-weight:800;line-height:1;white-space:nowrap;overflow:visible;cursor:pointer;touch-action:manipulation;transition:color 150ms ease;}
  .mode-segment.is-selected{color:#fff;}
  .mode-segment:focus-visible{outline:3px solid var(--focus);outline-offset:2px;}
  .mode-icon{flex:0 0 auto;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:14px;line-height:1;}
  .mode-label{display:block;flex:0 0 auto;line-height:1;white-space:nowrap;}
  .mode-badge{position:absolute;right:-2px;top:-4px;z-index:2;min-width:17px;height:17px;box-sizing:border-box;padding:0 4px;border:2px solid #fff;border-radius:9px;background:#ff5c5c;color:#fff;font-size:9px;font-weight:900;line-height:13px;text-align:center;box-shadow:0 2px 5px rgba(11,37,69,.22);pointer-events:none;}
  .mode-badge[hidden]{display:none!important;}
  html[data-theme="dark"] .mode-switcher{border-color:#2b3d5c;background:rgba(19,27,40,.94);}
  html[data-theme="dark"] .mode-segment{color:#9fb3c8;}
  html[data-theme="dark"] .mode-segment.is-selected{color:#fff;}
  html[data-theme="dark"] .mode-badge{border-color:#fff;}
  /* 계획하기·장소 추가는 같은 우측 레일의 파란 주 행동이다. */
  .schedule-action-fab,.place-add-fab{position:fixed;right:max(12px,calc(50% - 228px));bottom:calc(126px + env(safe-area-inset-bottom));z-index:1080;display:inline-flex;min-width:44px;height:44px;box-sizing:border-box;align-items:center;justify-content:center;gap:5px;padding:0 14px;border:0;border-radius:22px;background:#1b64da;color:#fff;font-family:inherit;font-size:13px;font-weight:800;line-height:1;white-space:nowrap;box-shadow:0 4px 12px rgba(27,100,218,.32);cursor:pointer;touch-action:manipulation;opacity:1;transition:transform .12s ease,filter .2s,opacity 150ms ease;}
  .schedule-action-fab[hidden]{display:none!important;}
  .schedule-action-fab:active,.place-add-fab:active{transform:scale(.96);filter:brightness(1.06);}
  .schedule-action-fab:focus-visible,.place-add-fab:focus-visible{outline:3px solid var(--focus);outline-offset:3px;}
  .schedule-action-icon{display:block;flex:0 0 auto;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:14px;line-height:1;}
  .schedule-action-label{line-height:1;white-space:nowrap;}
  body.floating-rail-scrolling .schedule-action-fab,body.floating-rail-scrolling .place-add-fab{opacity:.6;}
  body.route-sheet-open .mode-switcher,body.route-sheet-open .schedule-action-fab,body.route-sheet-open .place-add-fab,body.route-sheet-open .gotop,body.places-sheet-open .mode-switcher,body.places-sheet-open .schedule-action-fab,body.places-sheet-open .place-add-fab,body.places-sheet-open .gotop,body.place-detail-open .mode-switcher,body.place-detail-open .schedule-action-fab,body.place-detail-open .place-add-fab,body.place-detail-open .gotop{visibility:hidden;pointer-events:none;}
  #tab-plan,#tab-basket,#tab-pick{padding-bottom:calc(68px + env(safe-area-inset-bottom));}
  @media(max-width:360px){
    .mode-segment{padding-right:12px;padding-left:12px;font-size:12px;}
  }
  /* 맨 위로 — 400px 이상 내려갔을 때만 나타나는 반투명 보조 유틸리티.
     레이아웃 흐름 밖(fixed)이라 세로 공간을 쓰지 않는다. */
  .gotop{position:fixed;right:max(12px,calc(50% - 228px));bottom:calc(76px + env(safe-area-inset-bottom));z-index:70;
    width:40px;height:40px;border-radius:50%;border:1px solid #d6e0ee;background:rgba(255,255,255,.92);color:#0b2545;
    font-family:inherit;font-size:13px;font-weight:900;line-height:1;cursor:pointer;
    box-shadow:0 3px 10px rgba(11,37,69,.18);touch-action:manipulation;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    display:flex;align-items:center;justify-content:center;}
  .gotop .ar{display:block;font-size:13px;line-height:1;}
  .gotop[hidden]{display:none;}
  .qnav a.on{background:var(--navy);color:#fff;border-color:var(--navy);}
  #day1,#day2,#day3,#resv,#money,#pack,#pickmul,#picksoup,#picklocal,#pickmarket,#pickmeal,#pickbar,#pickcafe,#picktour{scroll-margin-top:66px;}
  section{padding:22px 20px 6px;}
  h2{font-size:16px;color:var(--navy);letter-spacing:.5px;margin-bottom:14px;display:flex;align-items:center;gap:8px;
     border-radius:8px;background-image:linear-gradient(90deg,#ffe9b8,#fff3d6);background-repeat:no-repeat;background-position:left center;background-size:0% 100%;transition:background-size .45s ease;}
  h2::after{content:"";flex:1;height:1px;background:#e2e8f0;}
  .heading-hint{font-weight:400;font-size:11px;color:var(--text-muted);}
  h2.hl{background-size:100% 100%;}
  .day-head{transition:filter .4s ease;}
  .day.hl>.day-head{filter:brightness(1.28) saturate(1.15);}
  /* day card (accordion) */
  .day{border:1px solid var(--border);border-radius:14px;margin-bottom:14px;overflow:hidden;background:var(--surface-1);box-shadow:var(--shadow-sm);}
  .day-head{width:100%;padding:12px 16px;border:0;color:#fff;display:flex;justify-content:space-between;align-items:center;cursor:pointer;user-select:none;font-family:inherit;text-align:left;box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -1px 0 rgba(5,28,46,.22);text-shadow:0 1px 1px rgba(5,28,46,.24);}
  .d1 .day-head{background:linear-gradient(90deg,var(--day-1-a),var(--day-1-b));}
  .d2 .day-head{background:linear-gradient(90deg,var(--day-2-a),var(--day-2-b));}
  .d3 .day-head{background:linear-gradient(90deg,var(--day-3-a),var(--day-3-b));}
  .day-head .dnum{font-weight:800;font-size:15.5px;}
  .day-head .rgt{display:flex;align-items:center;gap:8px;font-size:13px;opacity:.92;}
  .day-head .arr{font-size:12px;transition:transform .25s;}
  .day.closed .arr{transform:rotate(-90deg);}
  .day.closed .tl{display:none;}
  .tl{padding:8px 16px 14px;}
  .item{display:flex;gap:12px;padding:10px 0;border-bottom:1px dashed #edf2f7;}
  .item:last-child{border-bottom:none;}
  .time{flex:0 0 62px;font-size:12px;font-weight:700;color:var(--blue);padding-top:2px;}
  .d2 .time{color:var(--green);}
  .d3 .time{color:#6b46c1;}
  .cont{flex:1;}
  .cont .t{font-weight:700;font-size:14.5px;}
  .cont .s{font-size:12.5px;color:var(--sub);margin-top:2px;}
  .cont a{color:var(--blue);text-decoration:none;font-size:12px;font-weight:600;}
  .schedule-details{display:grid;gap:5px;margin-top:6px!important;}
  .schedule-detail-line{display:grid;grid-template-columns:61px minmax(0,1fr);gap:7px;align-items:start;line-height:1.55;}
  .schedule-detail-label{color:var(--text-muted);font-size:10.5px;font-weight:850;letter-spacing:-.15px;white-space:nowrap;}
  .schedule-detail-caution .schedule-detail-label,.schedule-detail-caution b{color:var(--warning);}
  .schedule-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;padding-top:7px;border-top:1px solid var(--border);}
  .schedule-actions a{display:inline-flex;min-height:44px;align-items:center;padding:5px 9px;border:1px solid var(--border-default);border-radius:9px;background:var(--control-bg);color:var(--info);font-size:13px;font-weight:800;text-decoration:none;}
  .chip{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:10px;margin-left:6px;vertical-align:1px;}
  .chip.ok{background:#e6fffa;color:#2c7a7b;}
  /* (구 .chip.ai / .item.ai — 정적 'AI 제안' 세대 폐지) */
  /* 일정표 범례 — 한 줄에 하나씩, 라벨과 설명을 세로로 정렬해 읽기 쉽게 */
  .legend{margin:-2px 0 14px;padding:10px 12px;background:#f7fafd;border:1px solid #e2ecf7;border-radius:12px;}
  .lg{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--sub);line-height:1.6;}
  .lg+.lg{margin-top:6px;}
  .lgv{flex:1;min-width:0;}
  .lgv b{color:var(--navy);}
  /* 미확정 — 회의에서 나왔지만 아직 못 정한 것 (🟢확정 · 🤖AI제안 과 구분) */
  .chip.hold{background:#fef3c7;color:#92400e;}
  .item.hold{background:linear-gradient(90deg,#fffbeb,#fffdf6);border-left:3px solid #f6a821;border-radius:0 8px 8px 0;padding-left:9px;margin-left:-3px;}
  .chip.lock{background:#eef2f7;color:#475569;}
  .item.hold .s b{color:#92400e;}
  .meeting-route-label{display:flex;align-items:center;gap:5px;margin:2px 0 4px;padding:4px 2px 6px;color:var(--text-secondary);font-size:10.5px;font-weight:750;letter-spacing:-.1px;}
  .meeting-route-item{margin:3px -4px;padding:10px 8px;border-bottom:0;border-left:3px solid var(--info);border-radius:9px;background:color-mix(in srgb,var(--surface-info) 78%,var(--surface-1));}
  .meeting-route-item+.meeting-route-item{margin-top:5px;}
  .meeting-route-choice{border-left-color:var(--warning);background:color-mix(in srgb,var(--warning-bg) 76%,var(--surface-1));}
  .chip.meeting{background:var(--info-bg);color:var(--info);}
  .chip.choice{background:var(--warning-bg);color:var(--warning);}
  .meeting-route-item .s b{color:var(--text-primary);}
  /* 날짜에 억지로 넣지 않은 실제 회의 안건만 일정 아래에 모은다. */
  .meeting-decisions{margin:4px 0 0;border:1px solid #d6e0ee;border-radius:12px;background:#f7f9fc;overflow:hidden;}
  .meeting-decisions summary{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;list-style:none;cursor:pointer;color:var(--navy);font-size:13px;font-weight:800;}
  .meeting-decisions summary::-webkit-details-marker{display:none;}
  .meeting-count{flex:0 0 auto;padding:2px 8px;border-radius:999px;background:#eef4fb;color:var(--blue);font-size:11px;}
  .meeting-decision-list{display:grid;gap:8px;padding:0 12px 12px;}
  .meeting-decision{padding:10px 11px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;}
  .meeting-decision strong{display:block;color:var(--navy);font-size:13px;}
  .meeting-decision span{display:block;margin-top:3px;color:var(--sub);font-size:11.5px;line-height:1.55;}
  .meeting-decision span b{color:#92400e;}
  /* 타임라인 인라인 주입 — AI 추천/적용(별색 파랑) · 회의확정 하양·정적AI 보라·미확정 노랑과 구분 */
  .item.bk-injected{background:linear-gradient(90deg,#eef4fc,#f8fbff);border-left:3px solid #4a90d9;border-radius:0 8px 8px 0;padding-left:9px;margin-left:-3px;}
  .chip.bkai{background:#e4edfb;color:#2b5f9e;}
  .chip.bkpin{background:#e6f6ec;color:#1f7a43;}
  .chip.bktm{background:#fff3d6;color:#9a6b00;}
  .item.bk-injected .bk-reason{color:#4a6a9c;}
  .item.bk-injected .bkact{margin-top:6px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
  .item.bk-injected .bknav,.item.bk-injected .bkrm{font-family:inherit;font-size:11.5px;font-weight:700;border-radius:9px;padding:7px 11px;text-decoration:none;cursor:pointer;align-items:center;justify-content:center;touch-action:manipulation;}
  .item.bk-injected .bknav{color:var(--blue);background:#eef4fb;}
  .item.bk-injected .bkrm{display:none;min-height:44px;color:#c53030;background:#fff5f5;border:1px solid #fca5a5;margin-left:auto;}
  #tab-plan.plan-editing .item.bk-injected .bkrm{display:inline-flex;}
  #tab-plan:not(.plan-editing) .item.bk-injected .bkact-no-nav{display:none;}
  /* 범례 컴팩트(기본 접힘, ⓘ 표시 설명) */
  .plan-tools{margin:-2px 0 14px;}
  .plan-tools .legend{margin:0;}
  .legend .lg-sum{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:800;color:var(--navy);}
  .legend .lg-sum::-webkit-details-marker{display:none;}
  .legend .lg-hint{font-size:10.5px;font-weight:700;color:var(--sub);white-space:nowrap;}
  .legend[open] .lg-hint{display:none;}
  .legend .lg-body{margin-top:9px;}
  /* 일정표와 계획하기는 사용자에게 한 영역, 내부 plan/basket 라우트는 그대로 유지 */
  .plan-heading{display:flex;align-items:flex-start;gap:10px;}
  .plan-heading h2{flex:1;min-width:0;}
  .plan-edit-toggle{flex:0 0 auto;min-height:40px;border:1px solid #d6e4f5;border-radius:11px;padding:8px 11px;background:#eef4fb;color:var(--navy);font-family:inherit;font-size:11.5px;font-weight:800;cursor:pointer;touch-action:manipulation;}
  .plan-edit-toggle[hidden]{display:none;}
  .plan-edit-toggle[aria-pressed="true"]{background:#e6f6ec;border-color:#9bd4b0;color:#1f7a43;}
  .plan-edit-note{display:none;margin:-3px 0 10px;padding:8px 10px;border:1px solid #b7d1ec;border-radius:10px;background:#eef6ff;color:#315d87;font-size:11.5px;font-weight:700;line-height:1.5;}
  #tab-plan.plan-editing .plan-edit-note{display:block;}
  .plan-edit-toggle:focus-visible{outline:3px solid #f6a821;outline-offset:3px;}
  body[data-cur="pick"]:has(#tab-pick.mapmode) .gotop{display:none!important;}
  /* info blocks */
  .card{background:var(--sky);border-radius:12px;padding:14px 16px;margin-bottom:12px;font-size:13px;}
  .card h3{font-size:13.5px;color:var(--navy);margin-bottom:6px;}
  .card .row{display:flex;justify-content:space-between;padding:3px 0;gap:10px;}
  .card .row .k{color:var(--sub);flex:0 0 auto;}
  .card .row .v{font-weight:600;text-align:right;}
  .card a{color:var(--blue);text-decoration:none;font-weight:700;}
  .warn{background:#fff5f5;border-radius:12px;padding:12px 16px;margin-bottom:12px;font-size:12.5px;color:#822727;}
  .warn b{color:var(--red);}
  /* settle table */
  table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:8px;}
  th{background:var(--navy);color:#fff;padding:8px 10px;font-size:12px;text-align:left;}
  th:last-child,td:last-child{text-align:right;}
  td{padding:8px 10px;border-bottom:1px solid #edf2f7;}
  tr.total td{font-weight:800;background:var(--sand);border-top:2px solid var(--accent);font-size:14px;}
  .fn{font-size:11.5px;color:var(--sub);margin-top:6px;}
  .fn-list{margin-top:8px;display:flex;flex-direction:column;gap:5px;}
  .fn-li{font-size:11.5px;color:var(--sub);line-height:1.55;padding-left:15px;position:relative;}
  .fn-li::before{content:'※';position:absolute;left:0;top:0;color:#a0aec0;}
  .fn-src{font-size:11px;opacity:.85;}
  /* checklist */
  .checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .chk{background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:600;}
  .chk.must{background:#fffbeb;border-color:#f6d365;}
  .chk small{display:block;font-weight:400;font-size:11px;color:var(--sub);}
  /* 홈: 다음일정 카드 */
  .nowcard{background:linear-gradient(140deg,#f0f9ff,#e8f1fa);border:1px solid #d6e4f5;border-radius:14px;padding:14px 16px;margin-bottom:12px;}
  .nowcard .nc-l{font-size:11px;font-weight:800;color:var(--blue);letter-spacing:1px;}
  .nowcard .nc-t{font-size:15.5px;font-weight:800;color:var(--navy);margin-top:2px;}
  .nowcard .nc-s{font-size:12px;color:var(--sub);margin-top:2px;}
  .gobtn{display:block;width:100%;text-align:center;background:var(--navy);color:#fff;border:none;border-radius:10px;padding:11px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;margin-top:6px;}
  /* 홈 대시보드 — 날씨·다음일정·예약정산·맛집장소·SOS 순서로 핵심 정보를 제공 */
  #tab-home .home-section{padding:18px 18px 0;}
  .home-section-head{display:flex;align-items:center;gap:10px;margin-bottom:11px;}
  .home-section-head h2{flex:1;min-width:0;margin-bottom:0;}
  .home-more{flex:0 0 auto;min-height:44px;border:1px solid var(--border);border-radius:12px;padding:0 12px;background:var(--surface-2);color:var(--action);font-size:12.5px;font-weight:800;cursor:pointer;touch-action:manipulation;}
  .home-more span{font-size:18px;vertical-align:-1px;margin-left:2px;}
  #tab-home .home-section-head .home-more{padding:0 2px 0 8px;border:0;border-radius:10px;background:transparent;box-shadow:none;}
  #tab-home .home-section-head .home-more:active{background:var(--action-weak);}
  .home-now .nowcard,.home-resv-card,.home-place-card{margin-bottom:0;}
  .home-resv-card{padding:10px 12px 9px;}
  .home-resv-status{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;padding:0 1px 8px;border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:11.5px;font-weight:700;}
  .home-resv-label{padding:2px 7px;border-radius:8px;background:var(--success-bg);color:var(--success);font-size:10.5px;font-weight:800;}
  .home-spend-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 2px 7px;}
  .home-spend-total>span{color:var(--text-secondary);font-size:12px;font-weight:750;}
  .home-spend-total>b{color:var(--text-primary);font-size:16px;font-weight:900;letter-spacing:-.2px;}
  .home-spend-split{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);}
  .home-spend-item{display:grid;min-width:0;gap:1px;padding:7px 4px 1px;}
  .home-spend-item+.home-spend-item{padding-left:11px;border-left:1px solid var(--border);}
  .home-spend-item>span{color:var(--text-secondary);font-size:11px;font-weight:750;}
  .home-spend-item>b{overflow:hidden;color:var(--text-primary);font-size:13px;font-weight:850;text-overflow:ellipsis;white-space:nowrap;}
  .home-spend-item small{color:var(--text-muted);font-size:10.5px;line-height:1.35;}
  #home-prepaid-pp{font-size:11px;font-weight:750;}
  .home-place-card{display:flex;width:100%;min-height:68px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;text-align:left;color:inherit;cursor:pointer;touch-action:manipulation;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;}
  .home-place-card:active{transform:translateY(1px);border-color:var(--info);box-shadow:inset 0 0 0 1px var(--info);}
  .home-place-icon{flex:0 0 36px;width:36px;height:36px;border:0;border-radius:0;background:none;display:grid;place-items:center;line-height:1;}
  .home-place-symbol{width:29px;height:29px;overflow:visible;filter:drop-shadow(0 2px 2px rgba(24,43,56,.12));}
  .home-place-symbol-left{fill:color-mix(in srgb,var(--info) 22%,var(--surface-card));}
  .home-place-symbol-mid{fill:color-mix(in srgb,var(--success) 24%,var(--surface-card));}
  .home-place-symbol-right{fill:color-mix(in srgb,var(--warning) 22%,var(--surface-card));}
  .home-place-symbol-line{fill:none;stroke:var(--action);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
  .home-place-symbol-dot{fill:var(--danger);stroke:var(--surface-card);stroke-width:1.1;}
  .home-place-copy{display:block;flex:1;min-width:0;}
  .home-place-copy .nc-t{display:block;margin-top:0;font-size:14px;line-height:1.35;}
  .home-place-copy .nc-t b{color:var(--info);font-size:15px;font-weight:900;}
  .home-place-copy .nc-s{display:block;margin-top:2px;font-size:11.5px;line-height:1.4;}
  .home-place-arrow{flex:0 0 auto;color:var(--action);font-size:23px;font-weight:800;line-height:1;}
  .home-emergency-section{padding-bottom:2px!important;}
  .home-pack-section{padding-bottom:22px!important;}
  .home-pack-section .home-section-head{margin-bottom:10px;}
  .home-emergency{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden;}
  .home-emergency>summary{min-height:64px;padding:10px 14px;display:flex;align-items:center;gap:11px;cursor:pointer;list-style:none;touch-action:manipulation;}
  .home-emergency>summary::-webkit-details-marker{display:none;}
  .home-emergency-icon{flex:0 0 auto;font-size:23px;line-height:1;}
  .home-emergency-copy{display:flex;flex:1;min-width:0;flex-direction:column;line-height:1.4;}
  .home-emergency-copy b{font-size:14px;color:var(--text-primary);}
  .home-emergency-copy small{font-size:11.5px;color:var(--text-secondary);}
  .home-caret{flex:0 0 auto;font-size:20px;color:var(--text-secondary);transition:transform .2s;}
  .home-emergency[open] .home-caret{transform:rotate(180deg);}
  .home-emergency-body{padding:0 12px 13px;border-top:1px solid var(--border);}
  .emergency-group{padding-top:12px;}
  .emergency-group h3{margin:0 0 7px;color:var(--text-primary);font-size:12px;font-weight:850;}
  .emergency-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .emergency-call{min-width:0;min-height:58px;padding:8px 9px;border:1px solid var(--border);border-radius:11px;background:var(--surface-raised);color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;text-decoration:none;font-size:10.5px;line-height:1.35;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface-card) 75%,transparent);}
  .emergency-number,.emergency-name{overflow:hidden;color:var(--text-primary);font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap;}
  .emergency-hospital{position:relative;padding-right:43px;}
  .emergency-hospital>a:first-child{min-width:0;min-height:40px;color:inherit;text-decoration:none;display:flex;flex-direction:column;justify-content:center;}
  .emergency-map{position:absolute;top:7px;right:7px;bottom:7px;width:34px;border-left:1px solid var(--border);color:var(--action);display:grid;place-items:center;font-size:10.5px;font-weight:850;text-decoration:none;}
  .home-emergency-body .fn{padding:11px 2px 0;line-height:1.55;}
  /* 추천 위키 카드 */
  .pk{border:1px solid #e2e8f0;border-radius:14px;padding:14px 16px;margin-bottom:12px;background:#fff;box-shadow:0 1px 5px rgba(22,50,79,.06);}
  .pk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
  .meeting-route-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 7px;margin:8px 0 1px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--action) 24%,var(--border-default));border-radius:9px;background:color-mix(in srgb,var(--action-weak) 66%,var(--surface-1));line-height:1.35;}
  .meeting-route-tag{font-size:10px;font-weight:850;color:var(--action);letter-spacing:-.02em;}
  .meeting-route-time{font-size:10.5px;font-weight:750;color:var(--text-secondary);}
  .meeting-route-meta.role-choice,.meeting-route-meta.role-alternative{border-style:dashed;background:var(--surface-muted);}
  .meeting-route-meta.role-choice .meeting-route-tag,.meeting-route-meta.role-alternative .meeting-route-tag{color:var(--warning);}
  .pk-name{font-size:15.5px;font-weight:800;color:var(--navy);}
  .pk-one{font-size:12px;color:var(--sub);margin-top:1px;}
  .pk-badge{flex:0 0 auto;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:10px;background:#eef4fb;color:var(--blue);white-space:nowrap;}
  .pk-badge.hot{background:#fff5f5;color:var(--red);}
  .pk-badge.pick{background:#fffbeb;color:#975a16;}
  .pk-badge.sns{background:#faf5ff;color:#6b46c1;}
  .pk-diet{display:flex;align-items:center;gap:7px;width:max-content;max-width:100%;margin-top:8px;padding:4px 9px;border:1px solid color-mix(in srgb,var(--category-bar) 24%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--category-bar) 8%,var(--surface-card));color:var(--text-secondary);font-size:11px;line-height:1.25;}
  .pk-diet span{font-weight:700;color:var(--text-muted);}
  .pk-diet b{min-width:0;color:var(--category-bar);font-weight:850;overflow-wrap:anywhere;}
  .pk-menu{margin-top:9px;background:#f8fafc;border-radius:8px;padding:8px 11px;font-size:12.5px;}
  .pk-menu .m{display:flex;justify-content:space-between;gap:10px;padding:1.5px 0;}
  .pk-menu .m b{font-weight:600;}
  .pk-menu .m span{color:var(--sub);flex:0 0 auto;}
  .pk-info{font-size:12px;color:var(--sub);margin-top:8px;line-height:1.65;}
  .pk-tip{margin-top:8px;background:#fffbeb;border-left:3px solid var(--accent);padding:7px 11px;font-size:12px;color:#7b5800;border-radius:0 8px 8px 0;line-height:1.6;}
  .pk-info .pf{display:block;padding:1.5px 0;}
  .pk-info .pf.warn{color:#c05621;font-weight:600;}
  .pk-tip.warn{background:#fef2f2;border-left-color:#e53e3e;color:#9b2c2c;}
  .pk-src{font-size:10.5px;color:#a0aec0;margin-top:8px;line-height:1.5;}
  .pk-links{margin-top:10px;display:flex;gap:8px;}
  .pk-links a{flex:1;text-align:center;font-size:12px;font-weight:700;color:var(--blue);background:#eef4fb;border-radius:9px;padding:7px 0;text-decoration:none;}
  /* 목록은 비교용 중간 밀도, 전문은 탭 내부 상세 화면에서 제공한다. 원본 DOM은 검색 데이터로 보존한다. */
  .pk .pk-src,.pk .pk-links{display:none;}
  .pk .pk-menu{display:block;}
  .pk .pk-menu .m:not(:first-child){display:none;}
  .pk .pk-menu .m span{max-width:58%;white-space:normal;text-align:right;line-height:1.35;}
  .pk .pk-info{display:block;margin-top:8px;line-height:1.4;}
  .pk .pk-info .pf{display:none;}
  .pk .pk-info .pk-compact-hours,.pk .pk-info .pk-compact-warning{display:block;}
  .pk .pk-menu .m:first-child{display:grid;grid-template-columns:18px minmax(0,1fr) minmax(0,58%);align-items:start;gap:4px 6px;}
  .pk .pk-menu .m:first-child::before{content:'🍽️';grid-column:1;font-size:13px;line-height:1.35;}
  .pk .pk-menu .m:first-child b{grid-column:2;min-width:0;}
  .pk .pk-menu .m:first-child span{grid-column:3;max-width:none;}
  .pk .pk-info{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;}
  .pk .pk-info>.dist{display:inline-flex;min-height:23px;align-items:center;margin:0;}
  .pk .pk-info .pk-compact-hours{flex:1 1 170px;min-width:0;padding:1px 0;}
  .pk .pk-info .pk-compact-warning{flex:1 1 100%;padding:1px 0;}
  .pk .pk-tip{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
  .pk.pk-has-date-warning .pk-tip.warn{display:none;}
  .pk{isolation:isolate;cursor:pointer;}
  .pk-open-detail{position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0;border-radius:14px;background:transparent;color:transparent;cursor:pointer;touch-action:manipulation;}
  .pk-open-detail:active{background:color-mix(in srgb,var(--action) 7%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--action) 42%,transparent);}
  .pk-open-detail:focus-visible{outline:3px solid var(--focus);outline-offset:3px;}
  .pk-enter-cue{display:flex;min-height:44px;align-items:center;justify-content:space-between;margin-top:10px;padding:0 12px;border:1.5px solid color-mix(in srgb,var(--action) 45%,var(--border-default));border-radius:10px;background:var(--info-bg);color:var(--action);font-size:13px;font-weight:800;line-height:1.3;pointer-events:none;}
  .pk-enter-cue::after{content:'›';margin-left:8px;font-size:20px;font-weight:700;line-height:1;}
  .pk a[href^="tel:"]{position:relative;z-index:3;}
  .pk .starbtn{z-index:3;}
  /* 맛집·장소 탭 내부 전체 화면 상세 */
  body.place-detail-open .gotop,body.place-detail-open .place-add-fab{display:none!important;}
  #tab-pick.place-detail-mode{min-height:calc(100vh - 64px - env(safe-area-inset-bottom));padding-bottom:0;background:var(--app);}
  #tab-pick.place-detail-mode>:not(.place-detail){display:none!important;}
  .place-detail[hidden]{display:none;}
  .place-detail{--detail-accent:var(--category-sea);min-height:calc(100vh - 64px);background:var(--app);color:var(--text-primary);}
  html[data-theme="dark"] .place-detail{--app:#0f2738;--surface-card:#17364a;--surface-section:#1a3a4f;--surface-raised:#1e4055;--border:#35566b;--border-default:#486b80;--text-secondary:#c2d0d9;--text-muted:#a8bac6;}
  .place-detail[data-detail-tone="sea"]{--detail-accent:var(--category-sea);}
  .place-detail[data-detail-tone="soup"]{--detail-accent:var(--category-soup);}
  .place-detail[data-detail-tone="local"]{--detail-accent:var(--category-local);}
  .place-detail[data-detail-tone="market"]{--detail-accent:var(--category-market);}
  .place-detail[data-detail-tone="meal"]{--detail-accent:var(--category-meal);}
  .place-detail[data-detail-tone="bar"]{--detail-accent:var(--category-bar);}
  .place-detail[data-detail-tone="cafe"]{--detail-accent:var(--category-cafe);}
  .place-detail[data-detail-tone="tour"]{--detail-accent:var(--category-tour);}
  .place-detail-head{position:sticky;top:0;z-index:40;display:flex;box-sizing:border-box;min-height:calc(56px + env(safe-area-inset-top));align-items:center;justify-content:space-between;gap:12px;padding:env(safe-area-inset-top) 12px 0;background:color-mix(in srgb,var(--surface-card) 96%,var(--detail-accent));border-bottom:1px solid color-mix(in srgb,var(--detail-accent) 35%,var(--border));box-shadow:0 3px 12px rgba(7,26,46,.1);}
  .place-detail-back,.place-detail-star{min-height:44px;font-family:inherit;font-weight:800;cursor:pointer;touch-action:manipulation;}
  .place-detail-back{display:inline-flex;align-items:center;justify-content:flex-start;gap:4px;min-width:44px;padding:0 9px 0 3px;border:0;border-radius:12px;background:transparent;color:var(--text-primary);font-size:13px;text-shadow:none;}
  .place-detail-back:active{background:var(--surface-raised);}
  .place-detail-back span{margin-top:-2px;color:var(--action);font-size:27px;font-weight:500;line-height:.8;}
  .place-detail-star{position:relative;display:inline-flex;min-width:44px;align-items:center;justify-content:center;gap:2px;border:1px solid var(--border-default);border-radius:13px;background:var(--surface-raised);color:var(--action);font-size:20px;box-shadow:var(--shadow-sm);}
  .place-detail-star.on{background:var(--action-fill);border-color:var(--action-fill);color:#fff;}
  .place-detail-star .n{font-size:10.5px;line-height:1;}
  .place-detail-star .place-bookmark-emoji{width:25px;height:27px;}
  .place-detail-star .bookmark-glyph{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:22px;line-height:1;filter:saturate(.92);}
  .place-detail-star:not(.on) .bookmark-glyph{opacity:.78;filter:saturate(.72);}
  .place-detail-summary{padding:20px 18px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--detail-accent) 7%,var(--surface-card)),var(--surface-card) 62%);border:0;border-radius:0;box-shadow:none;}
  .place-detail-identity{display:flex;align-items:flex-start;gap:12px;min-width:0;}
  .place-detail-mark{width:48px;height:48px;flex:0 0 48px;border:1px solid color-mix(in srgb,var(--detail-accent) 42%,var(--border));border-radius:15px;display:grid;place-items:center;background:color-mix(in srgb,var(--detail-accent) 13%,var(--surface-raised));font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:27px;line-height:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.58),0 4px 10px rgba(7,26,46,.11);transform:rotate(-2deg);}
  .place-detail-title{min-width:0;flex:1 1 auto;}
  .place-detail-eyebrow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--action);font-size:11px;font-weight:850;letter-spacing:-.1px;}
  .place-detail-title h2{display:block;margin:5px 0 0;padding:0;background:none;color:var(--text-primary);font-size:26px;line-height:1.24;letter-spacing:-.65px;}
  .place-detail-title h2:focus{outline:none!important;}
  .place-detail-title h2::after{display:none;}
  .place-detail-content{position:relative;z-index:2;display:flex;flex-direction:column;gap:0;margin-top:0;padding:0 0 28px;overflow:visible;border-radius:0;background:var(--app);box-shadow:none;}
  .place-detail-one{margin:8px 0 0;color:var(--text-secondary);font-size:14px;font-weight:700;line-height:1.6;}
  .place-detail-one:empty{display:none;}
  .place-detail-badges{display:flex;flex-wrap:wrap;align-items:flex-start;gap:7px;margin-top:11px;}
  .place-detail-badges:empty{display:none;}
  .place-detail-badges .closed-warn{order:-1;flex:1 1 100%;margin:0;}
  .place-detail-badges .meeting-route-meta{flex:1 1 100%;margin:2px 0 0;padding:8px 10px;}
  .place-detail-badges .pk-diet{margin:0;}
  .place-detail-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0 18px 18px;background:var(--surface-card);border-bottom:1px solid var(--border);}
  .place-detail-actions[hidden]{display:none;}
  .place-detail-actions.has-primary.links-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .place-detail-actions.has-primary.links-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .place-detail-actions.has-primary.links-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .place-detail-actions.links-4:not(.has-primary){grid-template-columns:repeat(2,minmax(0,1fr));}
  .place-detail-actions a{display:flex;min-width:0;min-height:46px;align-items:center;justify-content:center;gap:7px;padding:8px 6px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-raised);color:var(--action);font-size:12.5px;font-weight:850;text-align:center;text-decoration:none;white-space:nowrap;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface-card) 75%,transparent);}
  .place-detail-actions .place-action-primary{grid-column:auto;min-height:46px;background:var(--action-fill);border-color:var(--action-fill);color:#fff;font-size:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18);}
  .place-detail-actions a:active{transform:translateY(1px);}
  .place-action-emoji{flex:0 0 auto;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:19px;line-height:1;}
  .place-action-label{min-width:0;}
  .place-detail-sections{overflow:visible;padding:0 0 12px;background:var(--app);border:0;border-radius:0;box-shadow:none;}
  .place-detail-sections[hidden]{display:none;}
  .place-detail-panel{margin:10px 12px 0;padding:17px 16px;background:var(--surface-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm);}
  .place-detail-panel:not(.is-first-visible){margin-top:10px;}
  .place-detail-panel:not(.is-last-visible){border-bottom:1px solid var(--border);}
  .place-detail-panel[hidden]{display:none;}
  .place-detail-panel h3{margin:0 0 11px;color:var(--text-primary);font-size:15px;line-height:1.35;}
  #tab-pick .place-detail-panel .pk-menu{margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;}
  #tab-pick .place-detail-panel .pk-menu .m{display:flex;padding:9px 0;background:transparent;border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none;}
  #tab-pick .place-detail-panel .pk-menu .m:first-child{padding-top:0;border-top:0;}
  .place-detail-panel .pk-info{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.72;}
  .place-detail-panel .pk-info .pf{display:block;padding:5px 0;}
  .place-detail-panel .pk-info>.dist{margin-bottom:6px;}
  #tab-pick .place-detail-panel .pk-tip{display:grid;margin:0;padding:0;gap:7px;overflow:visible;background:transparent;border:0;border-radius:0;color:var(--text-secondary);overflow-wrap:anywhere;-webkit-line-clamp:unset;}
  #tab-pick .place-detail-panel .pk-tip.warn{background:transparent;border:0;color:var(--text-secondary);}
  .place-tip-line{position:relative;margin:0;padding-left:13px;color:var(--text-secondary);font-size:13px;font-weight:600;line-height:1.65;}
  .place-tip-line:not(.place-tip-lead):not(.place-tip-dash)::before{content:'';position:absolute;top:.72em;left:1px;width:4px;height:4px;border-radius:50%;background:var(--text-muted);}
  .place-tip-lead{padding:9px 11px;border-left:3px solid var(--warning);border-radius:0 9px 9px 0;background:var(--warning-bg);color:var(--text-primary);font-weight:850;line-height:1.55;}
  .place-detail-panel .pk-tip.warn .place-tip-lead{border-left-color:var(--danger);background:var(--danger-bg);color:var(--danger);}
  .place-tip-line a{color:var(--action);font-weight:850;text-underline-offset:2px;}
  .place-detail-panel .pk-src{margin:0;color:var(--text-secondary);font-size:11.5px;line-height:1.6;}
  .place-detail-panel[data-slot="tip"]{background:linear-gradient(145deg,color-mix(in srgb,var(--detail-accent) 7%,var(--surface-card)),var(--surface-card) 72%);border-color:color-mix(in srgb,var(--detail-accent) 28%,var(--border));}
  .place-detail-panel[data-slot="tip"] h3::before{content:'✦';margin-right:6px;color:var(--detail-accent);font-size:14px;}
  .place-detail-source{background:var(--surface-section);}
  @media (max-width:360px){
    .place-detail-summary{padding-left:15px;padding-right:15px;}
    .place-detail-actions{padding-left:15px;padding-right:15px;}
    .place-detail-panel{margin-left:10px;margin-right:10px;padding-left:15px;padding-right:15px;}
    .place-detail-actions a{font-size:11px;}
  }
  /* 추천 compact rows */
  .spot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:6px;}
  .spot .sn{font-size:13px;font-weight:700;}
  .spot .sd{font-size:11.5px;color:var(--sub);margin-top:1px;}
  .spot a{flex:0 0 auto;font-size:11.5px;font-weight:700;color:var(--blue);text-decoration:none;background:#eef4fb;border-radius:12px;padding:3px 10px;}
  .subhead{font-size:12px;font-weight:800;color:#a0aec0;margin:14px 0 8px;letter-spacing:.5px;}
  footer{padding:20px;text-align:center;font-size:11.5px;color:var(--sub);}
  footer .crew{margin-bottom:10px;line-height:1.9;}
  footer .crew a{color:var(--sub);text-decoration:none;font-weight:600;}
  /* 숙소 기준 거리 배지 */
  .dist{display:inline-block;font-weight:800;font-size:11px;padding:1px 8px;border-radius:9px;margin-right:7px;vertical-align:1px;}
  .d-walk{background:#e6fffa;color:#2c7a7b;}
  .d-near{background:#e8f1fa;color:#2b6cb0;}
  .d-mid{background:#fff7e6;color:#975a16;}
  .d-far{background:#fff5f5;color:#c53030;}
  .dist-s{font-size:10.5px;font-weight:800;margin-left:6px;white-space:nowrap;}
  .t-walk{color:#2c7a7b;} .t-near{color:#2b6cb0;} .t-mid{color:#975a16;} .t-far{color:#c53030;}
  /* 여행일 휴무 경고 */
  /* 카드 전체 폭을 쓰게 한다 — pk-top 안에 두면 배지에 밀려 좁아진다 */
  .closed-warn{display:block;margin-top:7px;background:#fff5f5;border:1.5px solid #fca5a5;color:#c53030;font-weight:800;font-size:11.5px;padding:5px 10px;border-radius:9px;line-height:1.5;}
  .closed-warn-s{color:#c53030;font-weight:800;}
  /* 추천탭 필터바 */
  /* 검색·정렬·보기를 한 카드로 묶는다 — 줄마다 왼쪽 라벨로 역할을 표시 */
  .fpanel{margin:12px 20px 4px;background:#f7fafd;border:1px solid #e2ecf7;border-radius:14px;padding:12px 12px 10px;}
  .frow{display:flex;align-items:flex-start;gap:8px;margin-top:10px;}
  .flabel{flex:0 0 30px;font-size:11px;font-weight:800;color:var(--sub);padding-top:7px;letter-spacing:.5px;}
  .fbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-width:0;}
  .fbar .fsort{border:1px solid #d6e4f5;background:#fff;color:var(--navy);font-weight:700;font-size:12.5px;border-radius:16px;padding:6px 12px;cursor:pointer;font-family:inherit;transition:background .2s,color .2s;}
  .fbar .fsort.on{background:var(--navy);color:#fff;border-color:var(--navy);}
  .fbar .fchk{display:flex;align-items:center;gap:5px;font-weight:700;font-size:12.5px;color:var(--sub);cursor:pointer;
    background:#fff;border:1px solid #d6e4f5;border-radius:16px;padding:6px 12px;}
  .fbar .fchk input{accent-color:var(--navy);width:15px;height:15px;cursor:pointer;margin:0;}
  .fbar .fchk b{color:var(--navy);}
  .fbar .fchk[hidden]{display:none;}
  .starlab{display:inline-flex;align-items:center;gap:4px;}
  .filter-bookmark{width:15px;height:18px;}
  .filter-bookmark .bookmark-icon{width:15px;height:18px;}
  .fchk-bookmark input:checked+.starlab .bookmark-icon{fill:currentColor;}
  .fchk-bookmark input:checked+.starlab .bookmark-check{display:grid;}
  /* 결과 수는 읽기 전용 정보라 기본 높이를 작게 잡고, 초기화 버튼이 보일 때만 버튼의 44px 높이만큼 자연스럽게 늘어난다. */
  .fresult{display:flex;min-height:32px;align-items:center;gap:8px;margin-top:6px;border-top:1px dashed #d6e4f5;}
  .fresult .qhit{flex:1;min-width:0;padding-top:0;}
  .freset{flex:0 0 auto;min-width:44px;min-height:44px;padding:4px 9px;border:0;background:transparent;color:var(--sub);font-family:inherit;font-size:11.5px;font-weight:800;cursor:pointer;}
  .freset[hidden]{display:none;}
  /* 공유 관심 수와 현재 UID의 내 관심 수를 분리해 보여준다 */
  .star-own{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;margin:8px 0 0 38px;
    padding-top:8px;border-top:1px dashed #d6e4f5;}
  .star-own[hidden]{display:none;}
  .star-own-status{font-size:11.5px;font-weight:800;color:var(--sub);}
  .star-own .fclear{font-family:inherit;font-size:11.5px;font-weight:700;color:#c53030;background:#fff5f5;
    border:1px solid #fca5a5;border-radius:16px;padding:6px 11px;cursor:pointer;}
  .star-own .fclear[hidden]{display:none;}
  @media (max-width:360px){
    .star-own{align-items:stretch;flex-direction:column;}
    .star-own .fclear{width:100%;min-height:44px;}
  }
  /* 카드 숨김은 JS 가 .qoff 하나로 통합 관리한다 (검색·관심목록·휴무 모두) */
  /* 추천탭 검색바 */
  .fsearch{position:relative;padding:0;}
  .fsearch input{width:100%;box-sizing:border-box;font-family:inherit;font-size:14px;font-weight:600;color:var(--navy);
    background:#fff;border:1px solid #d6e4f5;border-radius:22px;padding:10px 40px 10px 16px;-webkit-appearance:none;}
  .fsearch input::placeholder{color:#a0aec0;font-weight:500;}
  /* 브라우저가 자동으로 넣는 ✕ 를 숨긴다 (우리 버튼과 두 개로 겹쳐 보임) */
  .fsearch input::-webkit-search-cancel-button,
  .fsearch input::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none;}
  .fsearch input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(43,108,176,.12);}
  .fsearch button{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:#e2e8f0;color:#4a5568;
    width:22px;height:22px;border-radius:50%;font-size:12px;line-height:1;cursor:pointer;font-family:inherit;}
  .qhit{padding:8px 2px 0;font-size:11.5px;color:var(--sub);}
  .qhit b{color:var(--navy);}
  /* 관심목록 별표 — 우측 상단 고정.
     배지(.pk-badge)는 줄바꿈이 안 되는 요소라, 겹치지 않도록 상단 줄의 오른쪽을 미리 비워둔다 */
  .pk{position:relative;}
  .pk-top{gap:6px;padding-right:44px;}
  .pk-top>div:first-child{min-width:0;}
  .pk .starbtn{position:absolute;right:10px;top:10px;z-index:2;}
  .starbtn{border:1px solid #e2ecf7;background:#fff;color:#8293a0;
    border-radius:16px;padding:4px 8px;font-size:13px;line-height:1.2;cursor:pointer;font-family:inherit;font-weight:800;
    display:flex;align-items:center;gap:3px;min-width:34px;min-height:30px;justify-content:center;transition:transform .15s;}
  .bookmark-mark{position:relative;width:19px;height:21px;display:inline-grid;place-items:center;flex:0 0 auto;pointer-events:none;}
  .bookmark-icon{width:19px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;}
  .bookmark-mark>.bookmark-check{position:absolute;right:-5px;bottom:-3px;width:13px;height:13px;border:1.5px solid var(--surface-1);border-radius:50%;background:var(--success);color:#fff;display:none;place-items:center;font-size:8px;font-weight:950;line-height:1;}
  .starbtn.on .bookmark-icon,.place-detail-star.on .bookmark-icon{fill:currentColor;}
  .starbtn.on .bookmark-mark>.bookmark-check,.place-detail-star.on .bookmark-mark>.bookmark-check{display:grid;}
  .starbtn .n{font-size:11.5px;color:var(--sub);}
  .starbtn.on{background:#fff8e6;border-color:#f6a821;color:#f6a821;}
  .starbtn.on .n{color:#b8801a;}
  .starbtn:active{transform:scale(.9);}
  .spot .starbtn{flex:0 0 auto;margin-left:6px;padding:2px 7px;min-width:44px;min-height:44px;}
  .starsync{padding:6px 2px 0;font-size:11px;color:#9a6b00;}
  /* 필터로 아무것도 안 남았을 때 — 아래가 흰 여백으로 휑해 보이지 않게 화면을 채운다 */
  .qempty{margin:16px 20px 24px;padding:28px 18px;background:#f7fafd;border:1px dashed #cfdae6;border-radius:14px;
    text-align:center;font-size:13px;color:var(--sub);line-height:1.8;
    min-height:44vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;}
  .qempty[hidden]{display:none;}
  .qempty .em{font-size:38px;line-height:1;}
  .qempty .em .bookmark-mark{width:31px;height:34px;}
  .qempty .em .bookmark-icon{width:31px;height:34px;}
  .qempty b{color:var(--navy);}
  .qempty .emt{font-size:15px;font-weight:800;color:var(--navy);}
  .qempty button{font-family:inherit;font-size:12.5px;font-weight:800;color:#fff;background:var(--navy);
    border:0;border-radius:18px;padding:9px 18px;cursor:pointer;}
  /* 검색에 걸리지 않은 카드·빈 섹션 숨김 */
  #tab-pick .pk.qoff,#tab-pick .spot.qoff,#tab-pick>section.qoff,#tab-pick .subhead.qoff{display:none;}
  /* 거리 배지의 기준 안내 (숙소 / 현재위치) */
  /* 결과 수와 같은 보조정보 묶음으로 붙여 중복 구분선과 빈 세로 공간을 없앤다. */
  .dbasis{margin-top:0;padding:2px 2px 0;border-top:0;font-size:11.5px;color:var(--sub);line-height:1.5;}
  .dbasis b{color:var(--navy);}
  .dbasis.est{color:#9a6b00;}
  /* 여행 날씨 위젯 */
  .wbox{display:flex;gap:8px;}
  .wday{flex:1;min-width:0;background:var(--sky);border-radius:12px;padding:10px 6px;text-align:center;border:1.5px solid transparent;transition:transform .2s;}
  .wday.today{background:linear-gradient(160deg,#fff7e6,#fffdf7);border-color:var(--accent);box-shadow:0 2px 10px rgba(246,168,33,.22);position:relative;}
  .wday.today::after{content:"TODAY";position:absolute;top:-8px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;font-size:9px;font-weight:800;letter-spacing:.5px;padding:1.5px 8px;border-radius:8px;}
  .wday.today .wd{color:#975a16;}
  .wday .wd{font-size:11px;color:var(--sub);font-weight:700;}
  .wday .wi{font-size:26px;line-height:1.4;}
  .wday .wt{font-size:12.5px;font-weight:800;color:var(--navy);}
  .wday .wr{font-size:10.5px;color:var(--blue);font-weight:700;}
  .wnote{font-size:12px;color:var(--sub);background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;line-height:1.6;flex:1;}
  .weather-notes{display:grid;gap:8px;margin-top:8px;}
  .weather-brief{display:grid;gap:5px;padding:9px 11px;}
  .weather-brief-kicker{color:var(--info);font-size:10.5px;font-weight:850;letter-spacing:.1px;}
  .weather-brief-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 6px;color:var(--text-primary);font-size:12.5px;line-height:1.45;}
  .weather-brief-main strong{color:var(--info);font-size:13px;font-weight:900;}
  .weather-brief-advice{padding:5px 7px;border-left:3px solid var(--warning);border-radius:0 7px 7px 0;background:var(--warning-bg);color:var(--warning);font-size:11.75px;font-weight:750;line-height:1.5;}
  .weather-brief-advice span{display:block;}
  .weather-brief-next{color:var(--text-secondary);font-size:11.5px;line-height:1.4;}
  .wday.trip{background:linear-gradient(160deg,#eef4fb,#f7fbff);border-color:var(--blue);}
  .wday.trip .wd{color:var(--blue);font-weight:800;}
  .wday.today.trip{background:linear-gradient(160deg,#fff7e6,#fffdf7);border-color:var(--accent);}
  /* 은은한 인터랙션 (과하지 않게) */
  @media (prefers-reduced-motion: no-preference){
    .hero .dday{animation:ddayBreath 3.2s ease-in-out infinite;}
    @keyframes ddayBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
    .hwnow .hw-i{animation:floaty 4s ease-in-out infinite;display:inline-block;}
    @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
    /* 탭을 열 때 섹션이 아래에서 위로 밀려 올라오던 연출 제거 —
       탭 전환은 '그 화면이 이미 거기 있던 것처럼' 보여야 한다 */
  }
  .pk:active,.spot:active,.card:active{transform:scale(.985);}
  .pk,.spot,.card{transition:transform .12s ease;}
  .gobtn{transition:transform .12s ease,filter .2s;}
  .gobtn:active{transform:scale(.97);filter:brightness(1.1);}
  /* 다크모드 최적화 */
  /* 구 OS 테마 규칙은 v5.38부터 비활성화한다. 실제 테마 정본은 theme.css의 data-theme 하나다. */
  @media not all{
    body{background:#070d18;color:#d5deeb;}
    .wrap{background:#0e1726;box-shadow:none;}
    h2{color:#cfe0f5;background-image:linear-gradient(90deg,#3a3115,#2e2711);}
    h2::after{background:#22314a;}
    section{color:#d5deeb;}
    .notice{background:#241d0b;color:#e8c87e;border-left-color:#a97e1f;}
    .notice b{color:#f0d18a;}
    .qnav{background:rgba(14,23,38,.97);border-bottom-color:#22314a;}
    .qnav a{background:#18253f;border-color:#2b3d5c;color:#cfe0f5;}
    .gotop{border-color:#2b3d5c;background:rgba(19,27,40,.92);color:#9fb3c8;box-shadow:0 3px 10px rgba(0,0,0,.34);}
    .qnav a.on{background:#4aa3df;border-color:#4aa3df;color:#07121f;}
    .bnav{background:rgba(14,23,38,.98);border-top-color:#22314a;}
    .bnav button{color:#5c7291;}
    .bnav button.on{background:#1c2c48;box-shadow:inset 0 0 0 1.5px #35507a;color:#e8f1fa;}
    .day{border-color:#22314a;}
    .item{border-bottom-color:#1c2942;}
    .cont .s{color:#8ea3bd;}
    .cont a{color:#6db3e8;}
    .time{color:#6db3e8;}
    .d2 .time{color:#5fc98e;}
    .d3 .time{color:#a98ce8;}
    .card{background:#152238;}
    .card h3{color:#cfe0f5;}
    .card .row .k{color:#8ea3bd;}
    .card a{color:#6db3e8;}
    .warn{background:#2a1414;color:#f0b6b6;}
    table td{border-bottom-color:#22314a;}
    tr.total td{background:#241d0b;color:#f0d18a;}
    .fn{color:#7186a3;}
    .fn-li{color:#7186a3;}
    .chk{background:#152238;border-color:#22314a;color:#d5deeb;}
    .chk small{color:#8ea3bd;}
    .chk.must{background:#241d0b;border-color:#5d4a19;}
    .nowcard{background:#152238;border-color:#2b3d5c;}
    .nowcard .nc-t{color:#e8f1fa;}
    .nowcard .nc-s{color:#8ea3bd;}
    .nowcard .nc-l{color:#6db3e8;}
    #tab-pick{background:linear-gradient(180deg,#0b1322 0%,#0e1726 100%);}
    #tab-pick .pk{background:#152238;border-color:#2b3d5c;box-shadow:0 2px 10px rgba(0,0,0,.35);}
    .pk-name{color:#e8f1fa;}
    .pk-one{color:#8ea3bd;}
    .pk-badge{background:#1c2c48;color:#8fc2ee;}
    .pk-badge.hot{background:#3a1620;color:#ff9d9d;}
    .pk-badge.pick{background:#2e2711;color:#e8c87e;}
    .pk-badge.sns{background:#241a3a;color:#c4a7f5;}
    #tab-pick .pk-menu{background:#0e1726;border-color:#22314a;}
    .pk-menu .m span{color:#8ea3bd;}
    .pk-info{color:#8ea3bd;}
    .pk-tip{background:#241d0b;color:#e8c87e;border-left-color:#a97e1f;}
    .pk-info .pf.warn{color:#f6ad55;}
    .pk-tip.warn{background:#2a1518;border-left-color:#c53030;color:#feb2b2;}
    .pk-src{color:#5c7291;}
    .pk-links a{background:#1c2c48;color:#8fc2ee;}
    #tab-pick .spot{background:#152238;border-color:#2b3d5c;}
    .spot .sn{color:#d5deeb;}
    .spot .sd{color:#8ea3bd;}
    .spot a{background:#1c2c48;color:#8fc2ee;}
    .subhead,#tab-pick .subhead{color:#5c7291;}
    .gobtn{background:#2b6cb0;}
    .d-walk{background:#0e2b26;color:#5fd3c0;}
    .d-near{background:#152a45;color:#7ab8ef;}
    .d-mid{background:#2e2711;color:#e8c87e;}
    .d-far{background:#2a1414;color:#f09a9a;}
    .t-walk{color:#5fd3c0;} .t-near{color:#7ab8ef;} .t-mid{color:#e8c87e;} .t-far{color:#f09a9a;}
    .closed-warn{background:#2a1414;border-color:#7a2e2e;color:#ff9d9d;}
    .closed-warn-s{color:#ff9d9d;}
    .fsearch input{background:#18253f;border-color:#2b3d5c;color:#e6eefc;}
    .fsearch input::placeholder{color:#7f93b5;}
    .fsearch button{background:#2b3d5c;color:#cfe0f5;}
    .fpanel{background:#111c2e;border-color:#22314c;}
    .fbar .fsort{background:#18253f;border-color:#2b3d5c;color:#cfe0f5;}
    .fbar .fsort.on{background:#4aa3df;border-color:#4aa3df;color:#07121f;}
    .starbtn{background:#18253f;border-color:#2b3d5c;color:#5a6b85;}
    .starbtn.on{background:#3a2f12;border-color:#b8860b;color:#f0c674;}
    .starbtn.on .n{color:#e0b45a;}
    .starsync{color:#e0b45a;}
    .qempty{background:#111c2e;border-color:#2b3d5c;}
    .qempty b,.qempty .emt{color:#9fc6e8;}
    .qempty button{background:#4aa3df;color:#07121f;}
    .legend{background:#111c2e;border-color:#22314c;}
    .lgv b{color:#9fc6e8;}
    .fbar .fchk{background:#18253f;border-color:#2b3d5c;}
    .fbar .fchk b{color:#9fc6e8;}
    .star-own{border-top-color:#22314c;}
    .star-own .fclear{background:#2a1414;border-color:#7a2e2e;color:#ff9d9d;}
    .dbasis{border-top-color:#22314c;}
    .dbasis b{color:#9fc6e8;}
    .dbasis.est{color:#e0b45a;}
    .fbar .fchk{color:#8ea3bd;}
    .wday{background:#152238;}
    .wday.today{background:linear-gradient(160deg,#2e2711,#1d1a12);border-color:#a97e1f;box-shadow:0 2px 12px rgba(169,126,31,.28);}
    .wday.today .wd{color:#e8c87e;}
    .wday.trip{background:linear-gradient(160deg,#152a45,#101b2c);border-color:#4aa3df;}
    .wday.trip .wd{color:#7ab8ef;}
    .wday.today.trip{background:linear-gradient(160deg,#2e2711,#1d1a12);border-color:#a97e1f;}
    .wday.today.trip .wd{color:#e8c87e;}
    .wday .wt{color:#e8f1fa;}
    .wday .wr{color:#7ab8ef;}
    .wnote{background:#152238;border-color:#22314a;color:#8ea3bd;}
    /* (구 .chip.ai / .item.ai 다크 — 폐지) */
    .chip.hold{background:#42340f;color:#f0c674;}
    .item.hold{background:linear-gradient(90deg,#2a2312,#1c1a13);border-left-color:#b8860b;}
    .chip.lock{background:#22314c;color:#9fb3c8;}
    .meeting-decisions{background:#111c2e;border-color:#2b3d5c;}
    .meeting-decisions summary{color:#cfe0f5;}
    .meeting-count{background:#1c2c48;color:#8fc2ee;}
    .meeting-decision{background:#152238;border-color:#2b3d5c;}
    .meeting-decision strong{color:#e8f1fa;}
    .meeting-decision span{color:#8ea3bd;}
    .meeting-decision span b{color:#f0c674;}
    .item.hold .s b{color:#f0c674;}
    .item.bk-injected{background:linear-gradient(90deg,#111f34,#0f1a2b);border-left-color:#3d6fa8;}
    .chip.bkai{background:#16294a;color:#8fb6ec;}
    .chip.bkpin{background:#12301e;color:#7fd6a4;}
    .chip.bktm{background:#2e2410;color:#e8c87e;}
    .item.bk-injected .bk-reason{color:#8ea3bd;}
    .item.bk-injected .bknav{background:#1c2c48;color:#8fc2ee;}
    .item.bk-injected .bkrm{background:#2a1414;border-color:#7a2e2e;color:#ff9d9d;}
    .legend .lg-sum{color:#cfe0f5;}
    .legend .lg-hint{color:#8ea3bd;}
    .plan-edit-toggle{background:#1c2c48;border-color:#2b3d5c;color:#cfe0f5;}
    .plan-edit-toggle[aria-pressed="true"]{background:#12301e;border-color:#2f6f49;color:#7fd6a4;}
    .plan-edit-note{background:#152a45;border-color:#35507a;color:#9fc6e8;}
    .kbox2{background:#152238;color:#d5deeb;}
    .kbox2 h3{color:#e8f1fa;}
    .kbox2 p{color:#8ea3bd;}
    footer,footer .crew a{color:#5c7291;}
  }

  /* ═══════════ 👥 팀원 공유 장소 추가 ═══════════ */
  .place-add-fab-icon{display:block;flex:0 0 auto;font-size:16px;font-weight:850;line-height:1;}
  .place-add-fab-label{display:block;line-height:1;white-space:nowrap;}
  body.places-sheet-open .place-add-fab{visibility:hidden;pointer-events:none;}
  #tab-pick .team-place-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--action) 20%,var(--border));border-radius:10px;background:var(--action-weak);color:var(--action);font-size:12px;letter-spacing:0;}
  #tab-pick .team-place-head b{font-size:10.5px;color:var(--text-secondary);}
  #tab-pick .team-place{border-color:color-mix(in srgb,var(--action) 27%,var(--border-default));}
  #tab-pick .team-place .pk-badge.team{background:var(--action-weak);color:var(--action);}
  #tab-pick .team-place .place-location-missing{color:var(--warning);font-weight:750;}
  body.places-sheet-open{overflow:hidden;}
  .places-sheet{position:fixed;inset:0;z-index:280;display:flex;align-items:flex-end;justify-content:center;background:rgba(4,20,31,.56);padding-top:env(safe-area-inset-top);}
  .places-sheet[hidden]{display:none;}
  .places-sheet-in{display:flex;flex-direction:column;width:100%;max-width:480px;max-height:94vh;border:1px solid var(--border-default);border-bottom:0;border-radius:20px 20px 0 0;background:var(--surface-card);color:var(--text-primary);box-shadow:0 -16px 45px rgba(4,20,31,.25);overflow:hidden;}
  .places-sheet-head{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--border);background:var(--surface-card);}
  .places-sheet-head p{margin:0;color:var(--text-muted);font-size:10.5px;font-weight:750;line-height:1.3;}
  .places-sheet-head h3{margin:1px 0 0;color:var(--text-primary);font-size:18px;font-weight:900;line-height:1.35;}
  .places-sheet-close{flex:0 0 44px;width:44px;height:44px;border:0;border-radius:50%;background:var(--surface-raised);color:var(--text-secondary);font-family:inherit;font-size:16px;font-weight:800;cursor:pointer;}
  .places-sheet-scroll{flex:1 1 auto;min-height:0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .places-intro,.places-manage-note{margin:0 0 14px;padding:10px 12px;border-radius:11px;background:var(--info-bg);color:var(--text-secondary);font-size:12px;line-height:1.55;}
  .places-error{margin:0 0 12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 42%,var(--border));border-radius:10px;background:var(--danger-bg);color:var(--danger);font-size:12px;font-weight:750;line-height:1.5;}
  .places-error[hidden],.places-draft[hidden],.places-manage-loading[hidden]{display:none;}
  .places-draft,.places-manage-loading{margin:0 0 12px;padding:8px 11px;border-radius:9px;background:var(--success-bg);color:var(--success);font-size:11.5px;font-weight:750;}
  .place-field{margin-bottom:14px;}
  .place-field>label,.place-location>legend{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--text-secondary);font-size:12px;font-weight:850;}
  .place-field>label b{color:var(--danger);font-size:10px;}
  .place-field>label span,.place-location>legend span{color:var(--text-muted);font-size:10.5px;font-weight:700;}
  .place-field input,.place-field select,.place-field textarea,.place-location input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--input-border);border-radius:11px;outline:0;background:var(--surface-interactive);color:var(--text-primary);font-family:inherit;font-size:14px;font-weight:600;line-height:1.45;-webkit-appearance:none;appearance:none;}
  .place-field textarea{min-height:82px;resize:vertical;}
  .place-field input:focus,.place-field select:focus,.place-field textarea:focus,.place-location input:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 18%,transparent);}
  .place-field small{display:block;margin-top:5px;color:var(--text-muted);font-size:10.5px;line-height:1.45;}
  .place-search-help{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;}
  .place-search-help>span{flex:0 0 auto;color:var(--text-muted);font-size:10.5px;font-weight:700;}
  .place-search-help>div{display:flex;min-width:0;justify-content:flex-end;gap:5px;}
  .place-search-help a{display:inline-flex;min-height:36px;align-items:center;padding:0 9px;border:1px solid var(--border-control);border-radius:9px;background:var(--surface-raised);color:var(--action);font-size:10.5px;font-weight:800;text-decoration:none;}
  .place-search-help a[aria-disabled="true"]{color:var(--text-muted);cursor:not-allowed;opacity:.52;}
  .place-more{margin:2px 0 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-section);overflow:hidden;}
  .place-more summary{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;color:var(--text-primary);font-size:13px;font-weight:850;cursor:pointer;list-style:none;}
  .place-more summary::-webkit-details-marker{display:none;}
  .place-more summary::after{content:'⌄';margin-left:auto;color:var(--action);font-size:16px;}
  .place-more[open] summary::after{transform:rotate(180deg);}
  .place-more summary span{margin-left:7px;color:var(--text-muted);font-size:10px;font-weight:700;}
  .place-more-body{padding:12px 12px 2px;border-top:1px solid var(--border);background:var(--surface-card);}
  .place-menu-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(82px,.7fr) 44px;align-items:end;gap:6px;margin-bottom:9px;}
  .place-menu-cell{display:flex;min-width:0;flex-direction:column;gap:4px;color:var(--text-muted);font-size:10px;font-weight:750;}
  .place-menu-cell span{display:flex;align-items:center;justify-content:space-between;gap:5px;}
  .place-menu-cell em{font-style:normal;font-weight:650;}
  .place-menu-row input{min-width:0;}
  .place-menu-row button{width:44px;height:44px;border:1px solid var(--border);border-radius:10px;background:var(--danger-bg);color:var(--danger);font-size:19px;font-weight:900;cursor:pointer;}
  .place-menu-add{min-height:40px;padding:0 12px;border:1px dashed var(--border-control);border-radius:10px;background:transparent;color:var(--action);font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;}
  .place-location{margin:0 0 13px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-section);}
  .place-location p{margin:-1px 0 9px;color:var(--text-muted);font-size:10.5px;line-height:1.45;}
  .place-location>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
  .place-location label{color:var(--text-secondary);font-size:10.5px;font-weight:750;}
  .place-location label input{margin-top:4px;}
  #place-location-clear{min-height:40px;margin-top:7px;padding:0 11px;border:0;background:transparent;color:var(--text-muted);font-family:inherit;font-size:11.5px;font-weight:750;cursor:pointer;}
  .place-auto-interest{display:flex;min-height:58px;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--action) 25%,var(--border));border-radius:12px;background:var(--action-weak);cursor:pointer;}
  .place-auto-interest[hidden]{display:none;}
  .place-auto-interest input{flex:0 0 auto;width:19px;height:19px;accent-color:var(--action);}
  .place-auto-interest span{display:flex;min-width:0;flex-direction:column;}
  .place-auto-interest b{color:var(--text-primary);font-size:12.5px;}
  .place-auto-interest small{color:var(--text-muted);font-size:10.5px;line-height:1.4;}
  .places-sheet-actions{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:8px;padding-top:2px;}
  .places-sheet-actions button{min-height:48px;padding:7px 10px;border-radius:12px;font-family:inherit;font-size:12.5px;font-weight:850;cursor:pointer;}
  .places-manage-open{border:1px solid var(--border-default);background:var(--surface-raised);color:var(--text-secondary);}
  #place-save{border:1px solid var(--action-fill);background:var(--action-fill);color:var(--on-action);}
  #place-save:disabled{opacity:.58;cursor:wait;}
  .places-manage-back{min-height:44px;margin:0 0 8px;padding:0 7px;border:0;background:transparent;color:var(--action);font-family:inherit;font-size:13px;font-weight:850;cursor:pointer;}
  .places-manage-item{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;padding:11px 10px 11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-card);box-shadow:var(--shadow-sm);}
  .places-manage-item.archived{background:var(--surface-section);opacity:.82;}
  .places-manage-copy{display:flex;min-width:0;flex:1;flex-direction:column;}
  .places-manage-copy b{overflow:hidden;color:var(--text-primary);font-size:13px;text-overflow:ellipsis;white-space:nowrap;}
  .places-manage-copy span{color:var(--text-muted);font-size:10.5px;}
  .places-manage-actions{display:flex;flex:0 0 auto;gap:5px;}
  .places-manage-actions button{min-width:44px;min-height:44px;padding:0 9px;border:1px solid var(--border-default);border-radius:10px;background:var(--surface-raised);color:var(--action);font-family:inherit;font-size:11.5px;font-weight:850;cursor:pointer;}
  .places-manage-actions button[data-next-status="archived"]{color:var(--danger);}
  .places-manage-actions button:disabled{opacity:.38;cursor:not-allowed;}
  .places-manage-empty{padding:28px 14px;border:1px dashed var(--border-default);border-radius:12px;background:var(--surface-section);color:var(--text-muted);font-size:12px;text-align:center;}
  @media (max-width:360px){
    .places-sheet-scroll{padding-left:13px;padding-right:13px;}
    .place-search-help{align-items:flex-start;flex-direction:column;}
    .place-search-help>div{width:100%;justify-content:stretch;}
    .place-search-help a{flex:1;justify-content:center;}
    .place-menu-row{grid-template-columns:minmax(0,1fr) 44px;}
    .place-menu-name{grid-column:1;grid-row:1;}
    .place-menu-price{grid-column:1 / -1;grid-row:2;}
    .place-menu-row button{grid-column:2;grid-row:1;}
    .place-menu-add{width:100%;}
    .places-sheet-actions{grid-template-columns:1fr;}
    .places-manage-item{align-items:flex-start;flex-direction:column;}
    .places-manage-actions{width:100%;}
    .places-manage-actions button{flex:1;}
  }
  @media (prefers-reduced-motion:reduce){
    .place-add-fab,.place-add-fab-label,.places-sheet *{scroll-behavior:auto!important;transition:none!important;animation:none!important;}
  }
  /* 추천 탭: 톤 다운 배경 + 카드 윤곽 강화 (가독성) — 라이트모드 전용 */
  @media not all{
    #tab-pick{background:linear-gradient(180deg,#edf2f7 0%,#e7edf5 100%);}
    #tab-pick .pk{border:1px solid #cfdae6;box-shadow:0 2px 10px rgba(22,50,79,.09);}
    #tab-pick .pk-menu{background:#f1f5f9;border:1px solid #e2e8f0;}
    #tab-pick .spot{background:#fff;border-color:#cfdae6;box-shadow:0 1px 4px rgba(22,50,79,.06);}
    #tab-pick .subhead{color:#7f95ab;}
  }
  #tab-pick section:last-child{padding-bottom:18px;}
  /* ── 스플래시 (앱 시작 연출) ── */
  .splash{position:fixed;inset:0;z-index:1400;background:radial-gradient(circle at 76% 16%,color-mix(in srgb,var(--brand-glow) 24%,transparent),transparent 42%),linear-gradient(170deg,var(--brand-deep) 0%,var(--brand-deep-2) 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .splash[hidden]{display:none;}
  .splash.out{animation:spOut .55s ease forwards;}
  @keyframes spOut{to{opacity:0;transform:scale(1.06);visibility:hidden;}}
  /* 영상 계층 — 전체화면 채우기(잘림 없이) */
  .sp-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:var(--brand-deep);}
  .sp-video[hidden]{display:none;}
  /* 영상 위 D-day 가독성 확보용 하단 그라데이션 */
  .splash::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(to bottom,rgba(6,20,38,0) 60%,rgba(6,20,38,.45) 100%);}
  /* 영상에 '속초여행 / (여름휴가 8/15~8/17)' 이 이미 들어 있으므로,
     매일 바뀌어서 영상에 넣을 수 없는 D-day 배지만 하단에 얹는다 */
  .sp-body{position:absolute;left:0;right:0;bottom:calc(9% + env(safe-area-inset-bottom));z-index:3;text-align:center;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.55);}
  .sp-dday{display:inline-block;background:var(--accent);color:#4a2f00;font-weight:800;font-size:15px;padding:7px 20px;border-radius:22px;opacity:0;animation:spPop .45s cubic-bezier(.34,1.56,.64,1) 1.75s forwards;box-shadow:0 6px 20px rgba(246,168,33,.4);}
  @keyframes spPop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
  @media (prefers-reduced-motion: reduce){
    .splash *{animation-duration:.01s !important;animation-delay:0s !important;opacity:1 !important;}
    .mode-switcher-group::before,.mode-segment,.schedule-action-fab,.place-add-fab,.place-add-fab-label{transition:none!important;}
  }
  /* 카톡 인앱 감지 팝업 */
  .kmodal{position:fixed;inset:0;background:rgba(10,20,35,.62);z-index:1400;display:flex;align-items:center;justify-content:center;padding:26px;}
  .kmodal[hidden]{display:none;}
  .kbox2{background:#fff;border-radius:18px;padding:26px 22px 22px;max-width:340px;width:100%;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.25);}
  .kbox2 .ki{font-size:40px;line-height:1;}
  .kbox2 h3{font-size:17px;color:var(--navy);margin:10px 0 8px;}
  .kbox2 p{font-size:13px;color:var(--sub);line-height:1.75;margin-bottom:16px;}
  .kbox2 .kgo{display:block;width:100%;background:var(--navy);color:#fff;border:none;border-radius:12px;padding:13px;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;}
  .kbox2 .kskip{display:inline-block;margin-top:12px;font-size:12px;color:#a0aec0;text-decoration:underline;cursor:pointer;}
  /* ═══════════ 💸 실시간 정산 (4단계) — 독립 스타일 ═══════════ */
  #paylive{padding-top:22px;}
  /* A. 요약 카드 */
  .pay-summary{background:var(--sky);border-radius:14px;padding:16px 16px 14px;margin-bottom:12px;}
  .pay-total-row{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px;border-bottom:1px solid #d6e4f5;margin-bottom:12px;}
  .pay-total-l{font-size:13px;color:var(--sub);font-weight:700;}
  .pay-total-n{font-size:22px;font-weight:800;color:var(--navy);}
  .pay-paid-cap{font-size:12px;font-weight:800;color:var(--sub);margin:2px 2px 7px;}
  .pay-teams{display:flex;gap:8px;margin-bottom:12px;}
  .pay-team{flex:1;min-width:0;background:#fff;border:1px solid #d6e4f5;border-radius:12px;padding:11px 13px;}
  .pay-team-nm{font-size:12px;font-weight:700;color:var(--sub);}
  .pay-team-fig{margin-top:4px;line-height:1.2;}
  .pay-team-fig b{color:var(--navy);font-weight:800;font-size:17px;}
  /* 결론(누가 누구에게)을 히어로로 — 크게, 위에, 여백 */
  /* 결론 = 전광판(LED) 느낌 — 지출추가 버튼(네이비)과 확실히 구분 */
  .pay-verdict{text-align:center;font-size:16.5px;font-weight:800;color:#ffd43b;background:linear-gradient(145deg,#111b29,#0b121d);border:1px solid #536679;border-radius:13px;padding:15px 12px;line-height:1.5;margin-bottom:14px;letter-spacing:.3px;text-shadow:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.55),0 3px 10px rgba(0,0,0,.22);}
  .pay-verdict-route,.pay-verdict-result{display:block;text-align:center;}
  .pay-verdict-route{font-size:clamp(14px,4vw,16.5px);white-space:nowrap;}
  .pay-verdict-team{font-weight:900;}
  .pay-verdict-team.pay-team-a{color:#bfefff;text-shadow:0 0 8px rgba(191,239,255,.28);}
  .pay-verdict-team.pay-team-b{color:#ffdae3;text-shadow:0 0 8px rgba(255,218,227,.28);}
  .pay-verdict-arrow{color:rgba(255,255,255,.82);}
  .pay-verdict-result{margin-top:2px;}
  .pay-verdict b{color:#ffe08a;font-size:1.08em;text-shadow:0 0 10px rgba(255,224,138,.45);}
  .pay-verdict.zero{color:#fff;background:linear-gradient(135deg,#2f855a,#48bb78);border-color:transparent;box-shadow:0 3px 12px rgba(47,133,90,.2);text-shadow:none;animation:none;}
  .pay-persons{display:flex;gap:6px;margin-top:12px;}
  .pay-person{flex:1;min-width:0;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:7px 4px;}
  .pay-person .pp-n{font-size:11px;color:var(--sub);font-weight:700;}
  .pay-person .pp-v{font-size:12px;font-weight:800;color:var(--navy);margin-top:1px;}
  /* A-2. 선결제/현장 분해 */
  .pay-breakdown{margin:-4px 0 12px;padding:9px 11px;background:#fff;border:1px solid #d6e4f5;border-radius:11px;}
  .pay-bd-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px;font-size:12px;line-height:1.5;}
  .pay-bd-row + .pay-bd-row{margin-top:5px;}
  .pay-bd-l{font-weight:800;color:var(--navy);flex:0 0 auto;}
  .pay-bd-n{font-weight:800;color:var(--navy);flex:0 0 auto;}
  .pay-bd-note{font-size:11px;color:var(--sub);flex:1 1 100%;}
  .pay-resv-hint{font-size:11px;color:var(--sub);line-height:1.5;margin-top:9px;}
  /* A-3. 선결제 소그룹 (목록 최상단, 현장 지출과 동일하게 수정·삭제 가능) */
  .pay-resv-group{margin-bottom:10px;}
  .pay-resv-cap{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:var(--navy);margin:2px 2px 6px;}
  .pay-resv-badge{font-size:10px;font-weight:800;color:#2f855a;background:#e6fffa;border:1px solid #9ae6c4;border-radius:8px;padding:1px 7px;}
  .pay-row.pay-resv-row{background:#f7fafd;border-style:dashed;border-color:#cfdae6;}
  .pay-group-empty{font-size:11.5px;color:var(--sub);background:#f7fafd;border:1px dashed #cfdae6;border-radius:10px;padding:9px 11px;margin-bottom:8px;}
  /* A-4. 현장 지출 구분 헤더 */
  .pay-field-cap{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:var(--navy);
    margin:14px 2px 8px;padding-top:12px;border-top:1px solid #e4ebf3;}
  .pay-field-sub{font-size:10.5px;font-weight:700;color:var(--sub);}
  /* B. 추가 버튼 · 동기화 안내 */
  /* 지출 추가 = 우측하단 플로팅(정산 탭 안에 있어 정산 탭에서만 보임). 스크롤해도 항상 손 닿음 */
  .pay-fab{position:fixed;right:14px;bottom:calc(134px + env(safe-area-inset-bottom));z-index:75;
    min-width:46px;min-height:46px;box-sizing:border-box;background:linear-gradient(135deg,#0b2545,#2b6cb0);color:#fff;border:0;border-radius:26px;
    padding:13px 20px 13px 16px;font-size:14.5px;font-weight:800;font-family:inherit;cursor:pointer;
    box-shadow:0 6px 18px rgba(11,37,69,.34);display:inline-flex;align-items:center;justify-content:center;gap:6px;
    transition:transform .12s ease,filter .2s,padding .28s ease,border-radius .28s ease,gap .28s ease;}
  .pay-fab:active{transform:scale(.96);filter:brightness(1.12);}
  .pay-fab-plus{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:22px;line-height:1;font-weight:800;}
  .pay-fab-lbl{overflow:hidden;white-space:nowrap;max-width:120px;opacity:1;transition:max-width .28s ease,opacity .18s ease;}
  /* 스크롤 내려 TOP 버튼이 뜨면 지출추가는 [＋] 아이콘만으로 축소 (TOP과 동일 크기) */
  .pay-fab.mini{width:46px;height:46px;min-width:46px;min-height:46px;padding:0;border-radius:50%;gap:0;}
  .pay-fab.mini .pay-fab-lbl{max-width:0;opacity:0;}
  /* 정산 탭에서도 TOP의 바닥 정렬선은 공통 76px을 유지한다. */
  body[data-cur="pay"] .gotop{bottom:calc(76px + env(safe-area-inset-bottom));}
  /* 목록이 플로팅 버튼에 가리지 않도록 정산 탭 하단 여백 */
  #tab-pay{padding-bottom:76px;}
  .pay-sync{font-size:11px;color:#9a6b00;background:#fffbeb;border:1px solid #f6d365;border-radius:10px;padding:8px 10px;margin-bottom:8px;line-height:1.5;}
  .pay-sync[hidden]{display:none;}
  /* C. 지출 목록 */
  .pay-list{margin-top:6px;}
  .pay-empty{margin:6px 0 8px;padding:26px 18px;background:#f7fafd;border:1.5px dashed #aebfd1;border-radius:14px;text-align:center;color:var(--sub);line-height:1.8;}
  .pay-empty-action{position:relative;isolation:isolate;overflow:hidden;width:100%;min-height:108px;appearance:none;-webkit-appearance:none;font:inherit;cursor:pointer;}
  .pay-empty-action::before{content:'＋';position:absolute;right:11px;bottom:-30px;z-index:0;color:var(--action);font-size:100px;font-weight:900;line-height:1;opacity:.065;transform:rotate(-8deg);pointer-events:none;}
  .pay-empty-action>span{position:relative;z-index:1;display:block;}
  .pay-empty-action:focus-visible{outline:3px solid var(--focus);outline-offset:2px;}
  .pay-empty .em{font-size:34px;line-height:1;}
  .pay-empty .emt{font-size:14.5px;font-weight:800;color:var(--navy);margin:6px 0 2px;}
  .pay-empty-copy{font-size:12px;line-height:1.58;}
  .pay-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;margin-bottom:7px;}
  .pay-row.pending{border-style:dashed;opacity:.9;}
  .pay-row-main{min-width:0;flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
  .pay-date{font-size:11.5px;font-weight:800;color:var(--blue);flex:0 0 auto;}
  .pay-title{min-width:0;flex:1 1 auto;font-size:13.5px;font-weight:700;color:var(--text);word-break:break-all;}
  .pay-tags{flex:1 1 100%;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
  .pay-payer{flex:0 0 auto;font-size:10.5px;font-weight:800;padding:1px 8px;border-radius:10px;background:#eef4fb;color:var(--navy);}
  .pay-scope{flex:0 0 auto;font-size:10.5px;font-weight:800;padding:1px 8px;border-radius:10px;}
  .pay-scope.sc-gong{background:#edf2f7;color:#718096;}
  .pay-scope.sc-a{background:#e8f1fa;color:#2b6cb0;box-shadow:inset 0 0 0 1px #b7d1ec;}
  .pay-scope.sc-b{background:#faf5ff;color:#6b46c1;box-shadow:inset 0 0 0 1px #d6bcfa;}
  .pay-pend-tag{flex:0 0 auto;font-size:10px;font-weight:800;color:#9a6b00;background:#fffbeb;border:1px solid #f6d365;border-radius:8px;padding:1px 6px;}
  .pay-row-right{flex:0 0 auto;display:flex;align-items:center;gap:8px;}
  .pay-amt{font-size:14px;font-weight:800;color:var(--navy);white-space:nowrap;}
  .pay-memo-line{flex:1 1 100%;font-size:11.5px;color:var(--sub);line-height:1.45;word-break:break-all;}
  .pay-memo-field{margin-top:-4px;}
  .pay-memo-add{display:inline-block;font-size:12.5px;font-weight:700;color:var(--blue);text-decoration:none;padding:3px 0;cursor:pointer;}
  .pay-memo-ta{width:100%;resize:vertical;min-height:46px;line-height:1.5;font-family:inherit;}
  .pay-photo-btn,.pay-del,.pay-edit{border:1px solid #e2e8f0;background:#f7fafc;border-radius:9px;padding:4px 8px;font-family:inherit;font-size:18px;line-height:1;cursor:pointer;}
  .pay-del{color:var(--red);}
  .pay-edit{color:var(--blue);}
  /* B. 입력 시트 (fixed 오버레이) */
  .pay-sheet{position:fixed;inset:0;z-index:210;background:rgba(10,20,35,.55);display:flex;align-items:flex-end;justify-content:center;}
  .pay-sheet[hidden]{display:none;}
  .pay-sheet-in{background:#fff;width:100%;max-width:480px;border-radius:18px 18px 0 0;max-height:92vh;display:flex;flex-direction:column;padding:16px 16px calc(16px + env(safe-area-inset-bottom));}
  .pay-sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex:0 0 auto;}
  /* 본문만 스크롤 — 헤더(✕)·푸터(저장)는 항상 고정 */
  .pay-sheet-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .pay-sheet-foot{flex:0 0 auto;padding-top:10px;margin-top:2px;border-top:1px solid #eef1f5;}
  .pay-sheet-head h3{font-size:17px;color:var(--navy);font-weight:800;}
  .pay-x{border:none;background:#eef4fb;color:#4a5568;width:30px;height:30px;border-radius:50%;font-size:15px;cursor:pointer;font-family:inherit;line-height:1;}
  .pay-methods{display:flex;gap:8px;margin-bottom:14px;}
  .pay-method{flex:1;min-height:54px;background:#f7fafc;border:1px solid #d6e4f5;border-radius:12px;padding:7px 5px;font-size:11.5px;font-weight:700;color:var(--navy);cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;}
  .pay-method .mi{font-size:18px;line-height:1;}
  .pay-wiz{font-size:12px;font-weight:800;color:var(--blue);background:#eef4fb;border-radius:10px;padding:8px 12px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:8px;}
  .pay-wiz[hidden]{display:none;}
  .pay-photo-prev{margin-bottom:12px;text-align:center;}
  .pay-photo-prev[hidden]{display:none;}
  .pay-photo-prev img{max-width:100%;max-height:190px;border-radius:12px;border:1px solid #e2e8f0;}
  .pay-note{font-size:12px;border-radius:10px;padding:9px 12px;margin-bottom:12px;line-height:1.55;}
  .pay-note[hidden]{display:none;}
  .pay-note.warn{background:#fff5f5;color:#9b2c2c;border:1px solid #fca5a5;font-weight:700;}
  .pay-note.info{background:#eef4fb;color:#2b6cb0;border:1px solid #d6e4f5;}
  /* 영수증 인식 진행 표시 (눈에 띄게) */
  .pay-ocr{background:linear-gradient(135deg,#eef4fb,#e3eefb);border:1.5px solid #bcd4ef;border-radius:14px;padding:14px 15px;margin-bottom:13px;box-shadow:0 3px 10px rgba(43,108,176,.10);}
  .pay-ocr[hidden]{display:none;}
  .pay-ocr-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
  .pay-ocr-spin{width:19px;height:19px;border:3px solid #c4dbf3;border-top-color:#2b6cb0;border-radius:50%;animation:payspin .7s linear infinite;flex:0 0 auto;}
  @keyframes payspin{to{transform:rotate(360deg);}}
  .pay-ocr-txt{font-size:14.5px;font-weight:800;color:var(--navy);flex:1;letter-spacing:-.2px;}
  .pay-ocr-pct{font-size:15px;font-weight:800;color:var(--blue);flex:0 0 auto;font-variant-numeric:tabular-nums;}
  .pay-ocr-bar{height:9px;background:#d3e3f6;border-radius:6px;overflow:hidden;}
  .pay-ocr-fill{height:100%;width:0;background:linear-gradient(90deg,var(--action-fill),var(--action));border-radius:6px;transition:width .3s ease;}
  .pay-field{margin-bottom:13px;}
  .pay-field>label{display:block;font-size:12px;font-weight:800;color:var(--sub);margin-bottom:6px;}
  .pay-btnset{display:flex;flex-wrap:wrap;gap:6px;}
  .pay-scope-help{font-size:11px;color:var(--sub);margin-top:7px;line-height:1.45;}
  .pay-opt{border:1px solid #d6e4f5;background:#fff;color:var(--navy);font-weight:700;font-size:13px;border-radius:16px;padding:8px 14px;cursor:pointer;font-family:inherit;}
  .pay-opt.on{background:var(--navy);color:#fff;border-color:var(--navy);}
  .pay-input{width:100%;box-sizing:border-box;font-family:inherit;font-size:15px;font-weight:600;color:var(--navy);background:#fff;border:1px solid #d6e4f5;border-radius:12px;padding:11px 14px;-webkit-appearance:none;}
  .pay-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(43,108,176,.12);}
  .pay-save{display:block;width:100%;background:var(--navy);color:#fff;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;margin-top:4px;transition:filter .2s;}
  .pay-save:active{filter:brightness(1.1);}
  .pay-save:disabled{opacity:.5;cursor:default;}
  .pay-skip{display:block;width:100%;background:none;border:none;color:var(--sub);font-size:12.5px;text-decoration:underline;cursor:pointer;font-family:inherit;margin-top:10px;}
  .pay-skip[hidden]{display:none;}
  /* C. 영수증 뷰어 */
  .pay-viewer{position:fixed;inset:0;z-index:220;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;}
  .pay-viewer[hidden]{display:none;}
  .pay-viewer img{max-width:96%;max-height:88%;border-radius:8px;}
  .pay-viewer .pv-x{position:absolute;top:calc(14px + env(safe-area-inset-top));right:16px;border:none;background:rgba(255,255,255,.16);color:#fff;width:38px;height:38px;border-radius:50%;font-size:18px;cursor:pointer;font-family:inherit;line-height:1;}
  .pay-viewer .pv-load{color:#fff;font-size:13px;}
  @media not all{
    .pay-summary{background:#152238;}
    .pay-total-row{border-bottom-color:#2b3d5c;}
    .pay-total-l{color:#8ea3bd;}
    .pay-total-n{color:#e8f1fa;}
    .pay-team{background:#0e1726;border-color:#2b3d5c;}
    .pay-team-nm{color:#cfe0f5;}
    .pay-team-fig{color:#8ea3bd;}
    .pay-team-fig b{color:#e8f1fa;}
    .pay-person{background:#0e1726;border-color:#22314a;}
    .pay-person .pp-n{color:#8ea3bd;}
    .pay-person .pp-v{color:#e8f1fa;}
    .pay-breakdown{background:#0e1726;border-color:#2b3d5c;}
    .pay-bd-l,.pay-bd-n{color:#e8f1fa;}
    .pay-bd-note,.pay-resv-hint{color:#8ea3bd;}
    .pay-resv-cap{color:#cfe0f5;}
    .pay-resv-badge{background:#0f2a22;border-color:#2f6b52;color:#7fdcb0;}
    .pay-field-cap{color:#cfe0f5;border-top-color:#2b3d5c;}
    .pay-row.pay-resv-row{background:#111c2e;border-color:#2b3d5c;}
    .pay-group-empty{background:#111c2e;border-color:#2b3d5c;color:#8ea3bd;}
    .pay-fab{background:linear-gradient(135deg,#1a3a5c,#3a7fc0);box-shadow:0 6px 18px rgba(0,0,0,.5);}
    .pay-sync{background:#241d0b;border-color:#5d4a19;color:#e8c87e;}
    .pay-empty{background:#111c2e;border-color:#2b3d5c;}
    .pay-empty .emt{color:#9fc6e8;}
    .pay-row{background:#152238;border-color:#2b3d5c;}
    .pay-title{color:#d5deeb;}
    .pay-payer{background:#1c2c48;color:#8fc2ee;}
    .pay-scope.sc-gong{background:#1c2942;color:#8ea3bd;}
    .pay-scope.sc-a{background:#152a45;color:#7ab8ef;box-shadow:inset 0 0 0 1px #2b5a86;}
    .pay-scope.sc-b{background:#241a3a;color:#c4a7f5;box-shadow:inset 0 0 0 1px #5b3f8f;}
    .pay-pend-tag{background:#241d0b;border-color:#5d4a19;color:#e8c87e;}
    .pay-amt{color:#e8f1fa;}
    .pay-photo-btn,.pay-del,.pay-edit{background:#0e1726;border-color:#2b3d5c;color:#cfe0f5;}
    .pay-del{color:#f09a9a;}
    .pay-edit{color:#7ab8ef;}
    .pay-sheet-in{background:#0e1726;}
    .pay-sheet-foot{border-top-color:#22314c;}
    .pay-sheet-head h3{color:#e8f1fa;}
    .pay-x{background:#18253f;color:#cfe0f5;}
    .pay-method{background:#152238;border-color:#2b3d5c;color:#cfe0f5;}
    .pay-wiz{background:#152a45;color:#7ab8ef;}
    .pay-photo-prev img{border-color:#2b3d5c;}
    .pay-note.warn{background:#2a1518;border-color:#7a2e2e;color:#feb2b2;}
    .pay-note.info{background:#152a45;border-color:#2b3d5c;color:#8fc2ee;}
    .pay-ocr{background:linear-gradient(135deg,#152a45,#122238);border-color:#2b3d5c;box-shadow:none;}
    .pay-ocr-txt{color:#e8f1fa;} .pay-ocr-bar{background:#22314c;} .pay-ocr-spin{border-color:#2b3d5c;border-top-color:#7ab8ef;}
  }
  /* 인앱 확인 모달 (브라우저 confirm 대체 — 도메인 노출 제거) */
  .cfm-back{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1400;background:rgba(10,20,35,.55);
    display:flex;align-items:center;justify-content:center;padding:24px;animation:cfmfade .15s ease;}
  @keyframes cfmfade{from{opacity:0}to{opacity:1}}
  .cfm-card{width:100%;max-width:340px;background:#fff;border-radius:18px;padding:20px 20px 16px;
    box-shadow:0 20px 50px rgba(10,20,35,.35);animation:cfmpop .18s cubic-bezier(.2,.9,.3,1.2);}
  @keyframes cfmpop{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
  .cfm-title{font-size:16.5px;font-weight:800;color:var(--navy);margin-bottom:8px;letter-spacing:-.3px;}
  .cfm-body{font-size:13.5px;color:var(--sub);line-height:1.6;margin-bottom:18px;white-space:pre-line;}
  .cfm-btns{display:flex;gap:9px;}
  .cfm-btn{flex:1;padding:13px 0;border:0;border-radius:12px;font-size:14.5px;font-weight:800;font-family:inherit;cursor:pointer;}
  .cfm-cancel{background:#eef1f5;color:#3a4a5e;}
  .cfm-ok{background:linear-gradient(135deg,#0b2545,#2b6cb0);color:#fff;}
  .cfm-danger{background:linear-gradient(135deg,#e53e3e,#c53030);color:#fff;}
  @media not all{
    .cfm-card{background:#111c2e;box-shadow:0 20px 50px rgba(0,0,0,.5);}
    .cfm-title{color:#e8f1fa;} .cfm-body{color:#9fb3c8;}
    .cfm-cancel{background:#22314c;color:#cfe0f5;}
    .pay-field>label{color:#8ea3bd;}
    .pay-opt{background:#18253f;border-color:#2b3d5c;color:#cfe0f5;}
    .pay-opt.on{background:#4aa3df;border-color:#4aa3df;color:#07121f;}
    .pay-input{background:#18253f;border-color:#2b3d5c;color:#e6eefc;}
    .pay-save{background:#4aa3df;color:#07121f;}
  }

  /* v5.39.2 — 서버/오프라인 상태를 숨기지 않는 신뢰 표면 */
  .home-plan-summary{width:calc(100% - 36px);min-height:44px;margin:12px 18px 0;padding:9px 12px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-raised);color:var(--navy);font-family:inherit;display:flex;align-items:center;gap:8px;text-align:left;box-shadow:0 2px 7px rgba(11,37,69,.08);cursor:pointer;}
  .home-plan-summary-title{font-size:12.5px;font-weight:900;white-space:nowrap;}
  .home-plan-summary-copy{min-width:0;flex:1;color:var(--sub);font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .home-plan-summary-arrow{color:var(--action);font-size:18px;font-weight:900;line-height:1;}
  .home-plan-summary.is-stale{border-color:#e5c165;background:#fffaf0;}
  .plan-sync-status{margin:0 0 10px;padding:10px 12px;border:1px solid #e8c35d;border-radius:11px;background:#fff8e6;color:#7b5700;font-size:12px;font-weight:750;line-height:1.45;}
  .plan-sync-status[hidden]{display:none;}
  .plan-sync-status button{min-height:40px;margin-left:7px;padding:0 10px;border:1px solid #d2a72e;border-radius:9px;background:#fff;color:#795600;font-family:inherit;font-size:12px;font-weight:800;line-height:1;cursor:pointer;}
  .pay-verdict.loading,.pay-verdict.pending{background:#eef3f8;border-color:#d6e0ee;color:#52657a;box-shadow:none;text-shadow:none;}
  .pay-load-status{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 9px;margin:-4px 0 12px;padding:9px 10px;border:1px solid #d6e0ee;border-radius:10px;background:#f7f9fc;color:#52657a;font-size:11.5px;font-weight:750;text-align:center;}
  .pay-load-status[hidden]{display:none;}
  .pay-load-status.is-error{border-color:#efaaaa;background:#fff2f2;color:#9b2c2c;}
  .pay-load-status.is-cache{border-color:#e7c464;background:#fff9ea;color:#765600;}
  .pay-load-status.is-cache.is-error{border-color:#e0aa3c;background:#fff4dc;color:#795400;}
  .pay-load-status button{min-height:40px;padding:0 11px;border:1px solid currentColor;border-radius:9px;background:#fff;color:inherit;font-family:inherit;font-size:12px;font-weight:800;line-height:1;cursor:pointer;}
  .pay-last-sync{font-variant-numeric:tabular-nums;white-space:nowrap;}
  .pay-stay-unregistered{margin:-3px 0 13px;padding:10px 12px;border:1px solid #edc45e;border-radius:11px;background:#fff8e6;color:#755300;font-size:12px;font-weight:800;line-height:1.45;}
  .pay-stay-unregistered[hidden]{display:none;}
  .pay-toast{position:fixed;left:50%;bottom:calc(126px + env(safe-area-inset-bottom));z-index:1250;transform:translateX(-50%) translateY(8px);width:max-content;max-width:calc(100vw - 32px);padding:10px 15px;border-radius:20px;background:rgba(20,32,52,.95);color:#fff;font-size:12px;font-weight:800;text-align:center;box-shadow:0 6px 20px rgba(11,37,69,.25);opacity:0;transition:opacity .18s ease,transform .18s ease;}
  .pay-toast[hidden]{display:none;}.pay-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
  .interest-onboard-toast{position:fixed;left:50%;bottom:calc(126px + env(safe-area-inset-bottom));z-index:1260;transform:translateX(-50%) translateY(8px);width:calc(100% - 28px);max-width:452px;padding:11px 11px 11px 14px;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:rgba(16,36,62,.97);color:#fff;display:flex;align-items:center;gap:10px;box-shadow:0 8px 24px rgba(11,37,69,.28);opacity:0;transition:opacity .18s ease,transform .18s ease;}
  .interest-onboard-toast[hidden]{display:none;}.interest-onboard-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
  .interest-onboard-toast>span{min-width:0;flex:1;font-size:11.5px;font-weight:700;line-height:1.45;}
  .interest-onboard-toast button{min-height:44px;flex:0 0 auto;padding:0 12px;border:0;border-radius:11px;background:#fff;color:#1b64da;font-family:inherit;font-size:12px;font-weight:900;line-height:1;white-space:nowrap;cursor:pointer;}
  .global-offline{position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;z-index:1250;transform:translateX(-50%) translateY(-8px);width:max-content;max-width:calc(100vw - 28px);padding:9px 13px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(20,32,52,.95);color:#fff;font-size:11.5px;font-weight:800;line-height:1.25;text-align:center;box-shadow:0 5px 18px rgba(11,37,69,.25);opacity:0;transition:opacity .18s ease,transform .18s ease;}
  .global-offline[hidden]{display:none;}.global-offline.show{opacity:1;transform:translateX(-50%) translateY(0);}
  html[data-theme="dark"] .home-plan-summary{border-color:#2b3d5c;background:#18253f;color:#e6eefc;}
  html[data-theme="dark"] .home-plan-summary-copy{color:#9fb3c8;}
  html[data-theme="dark"] .home-plan-summary.is-stale,html[data-theme="dark"] .plan-sync-status,html[data-theme="dark"] .pay-stay-unregistered{border-color:#705b24;background:#2b2515;color:#f6d77d;}
  html[data-theme="dark"] .pay-verdict.loading,html[data-theme="dark"] .pay-verdict.pending,html[data-theme="dark"] .pay-load-status{border-color:#2b3d5c;background:#151d2b;color:#9fb3c8;}
  html[data-theme="dark"] .pay-load-status.is-cache,html[data-theme="dark"] .pay-load-status.is-cache.is-error{border-color:#705b24;background:#2b2515;color:#f6d77d;}
  html[data-theme="dark"] .pay-load-status.is-error:not(.is-cache){border-color:#704040;background:#2b191b;color:#ffaaaa;}
  html[data-theme="dark"] .pay-load-status button,html[data-theme="dark"] .plan-sync-status button{background:#18253f;color:inherit;}
  @media(max-width:374px){
    .home-plan-summary{width:calc(100% - 28px);margin-left:14px;margin-right:14px;}
    .home-plan-summary-copy{font-size:11px;}
    .interest-onboard-toast{width:calc(100% - 20px);}
    .interest-onboard-toast>span{font-size:11px;}
  }
  @media(prefers-reduced-motion:reduce){.pay-toast,.interest-onboard-toast,.global-offline{transition:none;}}
