/* =========================================================
   소정씨 여기 어때 — Lush Garden botanical planner
   ========================================================= */
:root{
  --green-900:#123827;
  --green-800:#1C4733;
  --green-700:#285A43;
  --green-600:#2F6B4E;
  --green-500:#337A5B;
  --green-300:#9DB2AD;
  --green-100:#D7E3DC;
  --green-50:#EEF3F0;
  --ink:#121212;
  --muted:#4A6157;
  --faint:#8A9A93;
  --cream:#F4F2EC;
  --paper:#FCFCFC;
  --white:#fff;
  --line:#E4E9E6;
  --line-2:#EDF0ED;
  --gold:#B98A3E;
  --terra:#B5654A;
  --plum:#8A5A6E;
  --blue:#3F6E8C;
  --danger:#C0584B;
  --shadow-lg:0 24px 50px -28px rgba(18,56,39,.5);
  --shadow-md:0 12px 30px -22px rgba(18,56,39,.55);
  --shadow-sm:0 6px 16px -12px rgba(18,56,39,.5);
  --r-lg:22px; --r-md:16px; --r-sm:11px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;font-size:calc(16px * var(--scale, 1));}
body{
  font-family:'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Malgun Gothic',sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,textarea,select{font-family:inherit;}
.script{font-family:'Gaegu',cursive;font-weight:700;}
.ral{font-family:'Raleway',sans-serif;}

/* ---------- APP SHELL ---------- */
.app{
  max-width:480px;margin:0 auto;min-height:100vh;
  background:var(--cream);
  position:relative;
  display:flex;flex-direction:column;
  box-shadow:0 0 80px -30px rgba(18,56,39,.35);
  opacity:var(--app-opacity, 1);transition:opacity .25s ease;
}
.app-main{flex:1;padding:18px 16px 130px;}

/* ---------- TOP BAR ---------- */
.topbar{
  position:sticky;top:0;z-index:40;
  background:rgba(244,242,236,.86);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  padding:13px 16px 11px;
}
.topbar-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.brand{display:flex;align-items:center;gap:9px;}
.brand .mark{
  width:30px;height:30px;border-radius:9px;flex:none;
  background:linear-gradient(150deg,var(--green-600),var(--green-900));
  color:#D9E6DE;display:flex;align-items:center;justify-content:center;
}
.brand .mark svg{width:17px;height:17px;}
.brand .nm{font-family:'Gaegu',cursive;font-weight:700;font-size:1.24rem;color:var(--green-800);line-height:1.05;white-space:nowrap;}
.topbar .tabs{display:flex;gap:4px;background:var(--green-50);border-radius:999px;padding:3px;}
.topbar .tabs button{
  font-family:'Raleway';font-weight:700;font-size:.74rem;color:var(--muted);
  padding:6px 13px;border-radius:999px;transition:.15s;
}
.topbar .tabs button.on{background:var(--green-700);color:#fff;box-shadow:var(--shadow-sm);}

/* progress */
.progress{margin-top:11px;}
.progress .steps{display:flex;gap:6px;}
.progress .seg{flex:1;height:5px;border-radius:3px;background:var(--green-100);overflow:hidden;}
.progress .seg i{display:block;height:100%;width:0;background:var(--green-600);border-radius:3px;transition:width .4s cubic-bezier(.4,0,.2,1);}
.progress .seg.done i{width:100%;}
.progress .seg.cur i{width:50%;}
.progress .lbl{display:flex;justify-content:space-between;margin-top:7px;}
.progress .lbl span{font-family:'Raleway';font-weight:700;font-size:.66rem;letter-spacing:.02em;color:var(--faint);}
.progress .lbl span.on{color:var(--green-700);}

/* ---------- SECTION HEADINGS ---------- */
.step-head{margin-bottom:18px;}
.eyebrow{
  font-family:'Raleway';font-weight:700;font-size:.7rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--green-500);
  display:flex;align-items:center;gap:9px;margin-bottom:10px;white-space:nowrap;
}
.eyebrow::before{content:"";width:20px;height:2px;border-radius:2px;background:var(--green-500);}
.step-head h2{font-weight:900;font-size:1.5rem;letter-spacing:-.02em;color:var(--green-900);line-height:1.2;}
.step-head p{font-size:.86rem;color:var(--muted);margin-top:5px;}

/* ---------- CARD ---------- */
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  padding:16px;box-shadow:var(--shadow-sm);
}
.card + .card{margin-top:13px;}

/* person header inside card */
.person-tag{display:flex;align-items:center;gap:10px;margin-bottom:4px;}
.person-tag .av{
  width:34px;height:34px;border-radius:11px;flex:none;color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1rem;
}
.person-tag .av.j{background:linear-gradient(150deg,var(--terra),#8f4836);}
.person-tag .av.s{background:linear-gradient(150deg,var(--plum),#5f3a4c);}
.person-tag .nm{font-weight:900;font-size:1.08rem;}
.person-tag .role{font-family:'Raleway';font-weight:700;font-size:.7rem;color:var(--faint);}

/* ---------- FIELD ---------- */
.field{margin-top:13px;}
.field > label{
  display:flex;align-items:center;gap:6px;
  font-family:'Raleway';font-weight:700;font-size:.76rem;color:var(--green-800);margin-bottom:6px;
}
.field > label .dot{width:6px;height:6px;border-radius:50%;background:var(--green-300);}
.field .input-wrap{position:relative;display:flex;align-items:center;}
.field .input-wrap .lead{position:absolute;left:12px;color:var(--green-500);display:flex;pointer-events:none;}
.field .input-wrap .lead svg{width:16px;height:16px;}
.field input[type=text], .field input[type=date], .field input[type=time], .field textarea, .field select{
  width:100%;border:1.5px solid var(--line);border-radius:var(--r-sm);
  background:var(--white);color:var(--ink);font-size:.92rem;
  padding:11px 34px 11px 36px;transition:.15s;
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px rgba(51,122,91,.12);
}
.field input::placeholder,.field textarea::placeholder{color:var(--faint);}
.field .clear-x{
  position:absolute;right:9px;width:20px;height:20px;border-radius:50%;
  background:var(--green-50);color:var(--muted);display:flex;align-items:center;justify-content:center;
}
.field .clear-x:hover{background:#f2dcd7;color:var(--danger);}
.field .clear-x svg{width:12px;height:12px;}
.field.disabled{opacity:.45;pointer-events:none;}

/* none-toggle row */
.field-row{display:flex;align-items:center;justify-content:space-between;margin-top:13px;gap:10px;}
.mini-toggle{display:inline-flex;align-items:center;gap:7px;font-family:'Raleway';font-weight:700;font-size:.74rem;color:var(--muted);}
.mini-toggle .sw{
  width:38px;height:22px;border-radius:999px;background:var(--green-100);position:relative;transition:.18s;flex:none;
}
.mini-toggle .sw i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.18s;}
.mini-toggle.on .sw{background:var(--green-600);}
.mini-toggle.on .sw i{left:18px;}

/* ---------- SEGMENTED (transport / age) ---------- */
.seg-ctrl{display:flex;gap:6px;flex-wrap:wrap;}
.seg-ctrl button{
  display:flex;align-items:center;gap:6px;
  border:1.5px solid var(--line);background:var(--white);border-radius:999px;
  padding:8px 13px;font-family:'Raleway';font-weight:700;font-size:.78rem;color:var(--muted);transition:.15s;
}
.seg-ctrl button svg{width:15px;height:15px;}
.seg-ctrl button.on{background:var(--green-700);border-color:var(--green-700);color:#fff;}

/* condition chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{
  display:inline-flex;align-items:center;gap:7px;
  border:1.5px solid var(--line);background:var(--white);border-radius:999px;
  padding:8px 13px;font-size:.82rem;color:var(--muted);font-weight:700;transition:.15s;
}
.chip .tick{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--green-300);display:flex;align-items:center;justify-content:center;color:transparent;transition:.15s;}
.chip.on{border-color:var(--green-600);background:var(--green-50);color:var(--green-800);}
.chip.on .tick{background:var(--green-600);border-color:var(--green-600);color:#fff;}
.chip .tick svg{width:11px;height:11px;}
.chip.custom{padding-right:7px;cursor:default;}
.chip-x{display:inline-flex;align-items:center;justify-content:center;margin-left:1px;width:17px;height:17px;border-radius:50%;background:rgba(0,0,0,.10);color:inherit;flex:none;}
.chip-x:hover{background:rgba(192,88,75,.22);color:var(--danger);}
.chip-x svg{width:11px;height:11px;}
.cond-add{display:flex;gap:8px;margin-top:10px;}
.cond-add input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:11px 12px;font-size:.88rem;background:#fff;}
.cond-add input:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px rgba(51,122,91,.12);}
.cond-add-btn{flex:none;display:inline-flex;align-items:center;gap:5px;padding:0 15px;border-radius:var(--r-sm);background:var(--green-50);color:var(--green-700);font-family:'Raleway';font-weight:700;font-size:.82rem;border:1.5px solid var(--green-100);}
.cond-add-btn:active{background:var(--green-100);}
.cond-add-btn svg{width:14px;height:14px;}

/* rating slider */
.rating-row{display:flex;align-items:center;gap:14px;margin-top:6px;}
.rating-val{font-weight:900;font-size:1.4rem;color:var(--green-800);display:flex;align-items:baseline;gap:3px;}
.rating-val small{font-size:.72rem;color:var(--gold);font-weight:700;}
input[type=range]{-webkit-appearance:none;appearance:none;flex:1;height:6px;border-radius:3px;background:var(--green-100);outline:none;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--green-600);border:3px solid #fff;box-shadow:var(--shadow-sm);cursor:pointer;}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--green-600);border:3px solid #fff;cursor:pointer;}

/* ---------- BUTTONS / FOOTER NAV ---------- */
.footnav{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:480px;z-index:45;
  background:linear-gradient(to top,var(--cream) 72%,transparent);
  padding:14px 16px calc(15px + env(safe-area-inset-bottom));
  display:flex;gap:10px;
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Raleway';font-weight:700;font-size:.92rem;
  border-radius:13px;padding:14px 18px;transition:.15s;text-decoration:none;white-space:nowrap;
}
.btn svg{width:17px;height:17px;}
.btn-primary{flex:1;background:var(--green-700);color:#fff;box-shadow:var(--shadow-md);}
.btn-primary:active{background:var(--green-900);}
.btn-primary:disabled{background:var(--green-300);box-shadow:none;cursor:not-allowed;}
.btn-ghost{background:var(--white);color:var(--green-800);border:1.5px solid var(--green-300);}
.btn-ghost:active{background:var(--green-50);}
.btn-back{flex:none;width:52px;background:var(--white);color:var(--muted);border:1.5px solid var(--line);padding:14px 0;}
.btn-sm{padding:10px 14px;font-size:.82rem;border-radius:11px;}
.btn-full{width:100%;}

/* clear-all link */
.clearall{
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;flex:none;
  font-family:'Raleway';font-weight:700;font-size:.74rem;color:var(--danger);
  padding:6px 10px;border-radius:8px;background:#f8e9e6;
}
.clearall svg{width:13px;height:13px;}

/* ---------- RESULT ---------- */
.result-hero{
  position:relative;overflow:hidden;border-radius:var(--r-lg);
  background:linear-gradient(160deg,var(--green-700),var(--green-900));
  color:#fff;padding:22px 20px;box-shadow:var(--shadow-lg);margin-bottom:18px;
}
.result-hero .leaf{position:absolute;color:rgba(255,255,255,.08);width:160px;top:-40px;right:-36px;transform:rotate(18deg);pointer-events:none;}
.result-hero .script{font-size:1.25rem;color:#CFE0D6;margin-bottom:8px;}
.result-hero h2{font-weight:900;font-size:1.42rem;letter-spacing:-.02em;line-height:1.22;}
.result-hero .when{
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);
  border-radius:999px;padding:7px 13px;font-family:'Raleway';font-weight:700;font-size:.8rem;
}
.when-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:13px;}
.when-wx{display:inline-flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);
  border-radius:999px;padding:7px 12px;font-family:'Lato','Noto Sans KR',sans-serif;font-weight:900;font-size:.82rem;color:#fff;}
.when-wx .e{font-size:1.05rem;line-height:1;}
.when-wx small{font-weight:700;color:#CFE0D6;}
.result-hero .when svg{width:15px;height:15px;}
.wx{position:absolute;top:16px;right:16px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:1px;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);border-radius:15px;padding:9px 13px;backdrop-filter:blur(3px);}
.wx .tag{font-family:'Raleway';font-weight:700;font-size:.6rem;letter-spacing:.08em;color:#CFE0D6;margin-bottom:1px;white-space:nowrap;}
.hero-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-right:92px;}
.hero-now{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1.25;}
.hero-now .hn-date{font-family:'Raleway',sans-serif;font-weight:700;font-size:.82rem;color:#fff;white-space:nowrap;}
.hero-now .hn-time{font-family:'Raleway',sans-serif;font-weight:700;font-size:.74rem;color:#CFE0D6;font-variant-numeric:tabular-nums;white-space:nowrap;}
.wx .emoji{font-size:1.55rem;line-height:1.1;}
.wx .temp{font-weight:900;font-size:1rem;color:#fff;}
.wx .temp small{font-weight:700;font-size:.78rem;color:#CFE0D6;}
.wx .lbl{font-family:'Raleway';font-weight:700;font-size:.66rem;color:#CFE0D6;white-space:nowrap;}

.block-title{display:flex;align-items:center;gap:9px;margin:24px 2px 13px;}
.block-title .ic{width:26px;height:26px;border-radius:8px;background:var(--green-50);color:var(--green-700);display:flex;align-items:center;justify-content:center;flex:none;}
.block-title .ic svg{width:15px;height:15px;}
.block-title h3{font-weight:900;font-size:1.12rem;color:var(--green-900);letter-spacing:-.01em;}
.block-title .count{margin-left:auto;font-family:'Raleway';font-weight:700;font-size:.72rem;color:var(--faint);}

/* route card */
.route-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:15px;box-shadow:var(--shadow-sm);margin-bottom:12px;}
.route-card .rc-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.route-card .rc-head .av{width:30px;height:30px;border-radius:9px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.92rem;}
.route-card .rc-head .av.j{background:linear-gradient(150deg,var(--terra),#8f4836);}
.route-card .rc-head .av.s{background:linear-gradient(150deg,var(--plum),#5f3a4c);}
.route-card .rc-head .nm{font-weight:900;font-size:1rem;}
.route-card .rc-head .mode{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:'Raleway';font-weight:700;font-size:.72rem;color:var(--green-700);background:var(--green-50);padding:5px 10px;border-radius:999px;}
.route-card .rc-head .mode svg{width:13px;height:13px;}

/* 수단 선택 + 예상 소요 */
.mode-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px;}
.mode-opt{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;border-radius:12px;
  border:1.5px solid var(--line);background:var(--paper);color:var(--muted);transition:.15s;cursor:pointer;}
.mode-opt svg{width:17px;height:17px;}
.mode-opt .mo-label{font-family:'Raleway';font-weight:700;font-size:.68rem;}
.mode-opt .mo-min{font-family:'Lato','Noto Sans KR';font-weight:900;font-size:.74rem;color:var(--faint);}
.mode-opt.on{border-color:var(--green-600);background:var(--green-50);color:var(--green-800);}
.mode-opt.on .mo-min{color:var(--green-700);}
.route-est{display:flex;align-items:center;gap:7px;margin-top:13px;background:var(--green-50);border-radius:11px;
  padding:10px 13px;font-size:.86rem;color:var(--green-900);}
.route-est svg{width:16px;height:16px;color:var(--green-600);flex:none;}
.route-est b{font-weight:900;}
.route-est .re-km{color:var(--muted);font-weight:600;font-size:.8rem;}
.route-est .rt-live{display:inline-block;margin-left:7px;font-family:'Raleway';font-weight:700;font-size:.62rem;background:var(--green-600);color:#fff;padding:2px 7px;border-radius:999px;vertical-align:middle;}
.btn-route.nv{background:#03C75A;color:#fff;border:none;}
.btn-route.nv:active{background:#02b350;}
.route-hint{font-size:.74rem;color:var(--faint);margin-top:9px;line-height:1.45;}
.route-hint b{color:var(--muted);}
.legs{position:relative;padding-left:8px;}
.leg{display:flex;gap:12px;position:relative;padding-bottom:14px;}
.leg:last-child{padding-bottom:0;}
.leg .marker{flex:none;display:flex;flex-direction:column;align-items:center;}
.leg .marker .pt{width:13px;height:13px;border-radius:50%;border:2.5px solid var(--green-500);background:#fff;z-index:1;margin-top:3px;}
.leg .marker .pt.start{background:var(--green-600);border-color:var(--green-600);}
.leg .marker .pt.end{background:var(--terra);border-color:var(--terra);}
.leg .marker .ln{flex:1;width:2px;background:repeating-linear-gradient(var(--green-300) 0 4px,transparent 4px 8px);margin:2px 0;}
.leg .lg-body{flex:1;padding-bottom:2px;}
.leg .lg-kind{font-family:'Raleway';font-weight:700;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);}
.leg .lg-place{font-weight:700;font-size:.95rem;color:var(--ink);}
.leg .lg-note{font-size:.8rem;color:var(--muted);margin-top:1px;}

/* restaurant card */
.rest{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:12px;transition:.15s;}
.rest.picked{border-color:var(--green-600);box-shadow:0 0 0 2px var(--green-600),var(--shadow-md);}
.rest-top{padding:14px 14px 12px;}
.rest-head{display:flex;align-items:flex-start;gap:11px;}
.rest-no{flex:none;width:28px;height:28px;border-radius:8px;color:#fff;font-weight:900;font-size:.9rem;display:flex;align-items:center;justify-content:center;margin-top:1px;background:var(--green-600);}
.rest.c-terra .rest-no{background:var(--terra);}.rest.c-gold .rest-no{background:var(--gold);}.rest.c-plum .rest-no{background:var(--plum);}.rest.c-blue .rest-no{background:var(--blue);}
.rest-title{flex:1;min-width:0;}
.rest-title h4{font-weight:900;font-size:1.06rem;letter-spacing:-.01em;}
.rest-sub{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap;}
.badge{font-family:'Raleway';font-weight:700;font-size:.68rem;white-space:nowrap;padding:3px 9px;border-radius:999px;background:var(--green-50);color:var(--green-700);}
.rest.c-terra .badge{background:#F6E7E1;color:var(--terra);}.rest.c-gold .badge{background:#F6EEDC;color:#946B23;}.rest.c-plum .badge{background:#F2E6EC;color:var(--plum);}.rest.c-blue .badge{background:#E4EEF3;color:var(--blue);}
.stars{display:inline-flex;align-items:center;gap:3px;font-weight:900;font-size:.8rem;color:var(--gold);}
.stars svg{width:13px;height:13px;}
.walk{display:inline-flex;align-items:center;gap:4px;font-family:'Raleway';font-weight:700;font-size:.72rem;color:var(--muted);}
.walk svg{width:13px;height:13px;}
.rest-desc{font-size:.84rem;color:var(--muted);margin-top:10px;}
.rest-menu{display:flex;gap:8px;margin-top:10px;background:var(--green-50);border-radius:10px;padding:9px 11px;font-size:.8rem;color:var(--green-900);}
.rest-menu svg{flex:none;width:15px;height:15px;color:var(--green-500);margin-top:2px;}
.rest-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;}
.rest-tags .t{font-size:.7rem;font-weight:700;color:var(--green-600);background:var(--green-50);border-radius:6px;padding:3px 8px;}
.rest-actions{display:flex;gap:8px;padding:11px 13px;border-top:1px solid var(--line);background:var(--paper);}
.rest-actions .btn{flex:1;font-size:.8rem;padding:10px;border-radius:11px;}
.rest-actions .pick{flex:none;width:46px;border:1.5px solid var(--green-300);border-radius:11px;display:flex;align-items:center;justify-content:center;color:var(--green-500);background:#fff;}
.rest.picked .rest-actions .pick{background:var(--green-600);color:#fff;border-color:var(--green-600);}
.rest-actions .pick svg{width:18px;height:18px;}
.btn-map{background:var(--green-700);color:#fff;}
.btn-route{background:#fff;color:var(--green-700);border:1.5px solid var(--green-300);}

/* 2x2 summary grid */
.rest-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
.rest-mini{position:relative;display:flex;flex-direction:column;min-height:150px;
  background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-md);
  padding:13px 12px;box-shadow:var(--shadow-sm);text-align:left;cursor:pointer;
  transition:border-color .15s, box-shadow .15s, transform .1s;}
.rest-mini:active{transform:scale(.98);}
.rest-mini.picked{border-color:var(--green-600);box-shadow:0 0 0 1.5px var(--green-600), var(--shadow-md);}
.rest-mini .rm-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;}
.rest-mini .rm-no{width:24px;height:24px;border-radius:7px;color:#fff;font-weight:900;font-size:.82rem;display:flex;align-items:center;justify-content:center;background:var(--green-600);}
.rest-mini.c-terra .rm-no{background:var(--terra);}
.rest-mini.c-gold .rm-no{background:var(--gold);}
.rest-mini.c-plum .rm-no{background:var(--plum);}
.rest-mini.c-blue .rm-no{background:var(--blue);}
.rest-mini.c-green .rm-no{background:var(--green-600);}
.rest-mini .rm-heart{width:27px;height:27px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--green-300);border:1.5px solid var(--line);background:#fff;}
.rest-mini.picked .rm-heart{color:#fff;background:var(--green-600);border-color:var(--green-600);}
.rest-mini .rm-heart svg{width:15px;height:15px;}
.rest-mini h4{font-weight:900;font-size:1rem;line-height:1.26;letter-spacing:-.01em;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rest-mini .rm-badge{align-self:flex-start;margin-top:0;font-family:'Raleway';font-weight:700;font-size:.66rem;padding:3px 9px;border-radius:999px;background:var(--green-50);color:var(--green-700);white-space:nowrap;}
.rm-tags{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px;}
.open-tag{font-family:'Raleway';font-weight:700;font-size:.64rem;padding:3px 8px;border-radius:999px;white-space:nowrap;}
.open-tag.ok{background:#E3F1E8;color:#1F7A4D;}
.open-tag.no{background:#F6E1DD;color:#B5483A;}
.prov-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 2px 2px;}
.prov-tabs{display:flex;gap:5px;background:var(--green-50);border-radius:999px;padding:4px;}
.prov-tabs button{font-family:'Raleway';font-weight:700;font-size:.8rem;color:var(--muted);padding:7px 17px;border-radius:999px;transition:.15s;}
.prov-tabs button.on{background:var(--green-700);color:#fff;box-shadow:var(--shadow-sm);}
.prov-search{display:inline-flex;align-items:center;gap:4px;font-family:'Raleway';font-weight:700;font-size:.74rem;color:var(--green-600);text-decoration:none;white-space:nowrap;}
.prov-search svg{width:13px;height:13px;}

/* ---------- PROPOSALS (요청/응답) ---------- */
.prop-list{display:flex;flex-direction:column;gap:12px;margin-top:18px;}
.prop-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:15px;box-shadow:var(--shadow-sm);}
.prop-card.accepted{border-color:var(--green-500);box-shadow:0 0 0 1.5px var(--green-500),var(--shadow-sm);}
.prop-head{display:flex;align-items:center;gap:8px;margin-bottom:9px;}
.prop-who{width:30px;height:24px;border-radius:7px;color:#fff;font-weight:900;font-size:.74rem;display:flex;align-items:center;justify-content:center;}
.prop-who.j{background:linear-gradient(150deg,var(--terra),#8f4836);}
.prop-who.s{background:linear-gradient(150deg,var(--plum),#5f3a4c);}
.prop-arrow{font-family:'Raleway';font-weight:700;font-size:.72rem;color:var(--faint);}
.prop-status{margin-left:auto;font-family:'Raleway';font-weight:700;font-size:.7rem;padding:3px 9px;border-radius:999px;background:var(--green-50);color:var(--muted);}
.prop-status.pending{background:#FBF6EC;color:#7A5A24;}
.prop-status.accepted{background:#E3F1E8;color:#1F7A4D;}
.prop-status.declined{background:#F1EEEC;color:#8A7F79;}
.prop-title{font-weight:900;font-size:1.04rem;color:var(--ink);}
.prop-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:7px;font-size:.82rem;color:var(--muted);}
.prop-reply{margin-top:10px;background:var(--green-50);border-radius:10px;padding:9px 12px;font-size:.85rem;color:var(--green-900);}
.prop-replybox input{width:100%;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font-size:.88rem;margin-top:10px;}
.prop-replybox input:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px rgba(51,122,91,.12);}

/* bell badge on tab */
.bell{position:relative;}
.bell .dot-n{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;border-radius:999px;background:var(--terra);color:#fff;font-size:.6rem;font-weight:900;display:flex;align-items:center;justify-content:center;padding:0 4px;}

/* ---------- 실시간 검색 폴백 패널 ---------- */
.search-fallback{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:24px 18px;text-align:center;box-shadow:var(--shadow-sm);}
.search-fallback .sf-emoji{font-size:1.9rem;}
.search-fallback h4{font-weight:900;font-size:1.04rem;color:var(--green-900);margin:8px 0 5px;line-height:1.35;}
.search-fallback p{font-size:.84rem;color:var(--muted);margin-bottom:14px;}
.search-fallback .sf-btns{display:flex;gap:8px;}
.search-fallback .sf-btns .btn{flex:1;}
.rest-mini .rm-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:11px;gap:6px;}
.rest-mini .rm-more{display:inline-flex;align-items:center;gap:3px;font-family:'Raleway';font-weight:700;font-size:.68rem;color:var(--green-500);}
.rest-mini .rm-more svg{width:12px;height:12px;}

/* detail sheet body */
.rd-hero{display:flex;align-items:flex-start;gap:11px;margin-bottom:4px;}
.rd-no{flex:none;width:30px;height:30px;border-radius:9px;color:#fff;font-weight:900;font-size:.95rem;display:flex;align-items:center;justify-content:center;background:var(--green-600);margin-top:2px;}
.rd-no.c-terra{background:var(--terra);}.rd-no.c-gold{background:var(--gold);}.rd-no.c-plum{background:var(--plum);}.rd-no.c-blue{background:var(--blue);}.rd-no.c-green{background:var(--green-600);}
.rd-hero h3{font-weight:900;font-size:1.2rem;letter-spacing:-.01em;}
.rd-meta{display:flex;align-items:center;gap:9px;margin-top:5px;flex-wrap:wrap;}

/* map embed */
.map-embed{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#e9ece9;}
.map-embed iframe{display:block;width:100%;height:230px;border:0;filter:saturate(.92);}
.map-note{font-size:.74rem;color:var(--faint);margin-top:8px;text-align:center;}

/* memo + photo */
.memo textarea{width:100%;min-height:90px;resize:vertical;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:12px;font-size:.9rem;background:#fff;}
.memo textarea:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px rgba(51,122,91,.12);}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:4px;align-items:start;}
.photo-cell-wrap{display:flex;flex-direction:column;gap:5px;}
.photo-cap{width:100%;border:1.5px solid var(--line);border-radius:8px;padding:5px 7px;font-size:.72rem;background:#fff;}
.photo-cap:focus{outline:none;border-color:var(--green-500);}
.photo-cell{position:relative;aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;background:var(--green-50);border:1px solid var(--line);}
.photo-cell img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-cell .rm{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;background:rgba(18,56,39,.7);color:#fff;display:flex;align-items:center;justify-content:center;}
.photo-cell .rm svg{width:12px;height:12px;}
.photo-add{
  aspect-ratio:1;border-radius:var(--r-sm);border:1.6px dashed var(--green-300);background:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--green-600);
}
.photo-add svg{width:22px;height:22px;}
.photo-add span{font-family:'Raleway';font-weight:700;font-size:.66rem;}

/* save bar */
.save-strip{margin-top:22px;}

/* ---------- CALENDAR ---------- */
.cal-wrap{padding-top:4px;}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-head h3{font-weight:900;font-size:1.2rem;color:var(--green-900);white-space:nowrap;}
.cal-head .nav{display:flex;gap:8px;}
.cal-head .nav button{width:36px;height:36px;border-radius:10px;background:var(--white);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--green-700);box-shadow:var(--shadow-sm);}
.cal-head .nav button svg{width:16px;height:16px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.cal-dow{text-align:center;font-family:'Raleway';font-weight:700;font-size:.68rem;color:var(--faint);padding-bottom:4px;}
.cal-cell{position:relative;aspect-ratio:1;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-size:.86rem;color:var(--ink);background:transparent;transition:.12s;}
.cal-cell.pad{opacity:0;pointer-events:none;}
.cal-cell.today{box-shadow:inset 0 0 0 1.5px var(--green-300);}
.cal-cell.has{background:var(--green-50);color:var(--green-800);}
.cal-cell.has:active{background:var(--green-100);}
.cal-cell.planned{background:var(--green-700);color:#fff;box-shadow:var(--shadow-sm);}
.cal-cell .dots{position:absolute;bottom:6px;display:flex;gap:3px;}
.cal-cell .dots i{width:5px;height:5px;border-radius:50%;background:var(--terra);}
.cal-cell.planned .dots i{background:#fff;}
.cal-legend{display:flex;gap:14px;margin-top:14px;justify-content:center;}
.cal-legend span{display:inline-flex;align-items:center;gap:6px;font-family:'Raleway';font-weight:700;font-size:.72rem;color:var(--muted);}
.cal-legend .sw{width:12px;height:12px;border-radius:4px;}

/* memory list */
.mem-list{margin-top:20px;display:flex;flex-direction:column;gap:11px;}
.mem-card{display:flex;gap:13px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:13px;box-shadow:var(--shadow-sm);text-align:left;width:100%;}
.mem-card .thumb{width:56px;height:56px;border-radius:12px;flex:none;background:var(--green-50);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--green-300);}
.mem-card .thumb img{width:100%;height:100%;object-fit:cover;}
.mem-card .thumb svg{width:24px;height:24px;}
.mem-card .mc-body{flex:1;min-width:0;}
.mem-card .mc-when{font-family:'Raleway';font-weight:700;font-size:.7rem;color:var(--green-600);}
.mem-card .mc-title{font-weight:900;font-size:1rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mem-card .mc-sub{font-size:.78rem;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mem-card .chev{align-self:center;color:var(--green-300);}
.mem-card .chev svg{width:18px;height:18px;}

/* empty state */
.empty{text-align:center;padding:42px 24px;color:var(--faint);}
.empty .ic{width:60px;height:60px;border-radius:18px;background:var(--green-50);color:var(--green-300);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.empty .ic svg{width:30px;height:30px;}
.empty h4{font-weight:900;font-size:1.05rem;color:var(--green-800);margin-bottom:5px;}
.empty p{font-size:.85rem;}

/* ---------- MODAL / SHEET ---------- */
.scrim{position:fixed;inset:0;background:rgba(18,56,39,.42);backdrop-filter:blur(3px);z-index:90;display:flex;align-items:flex-end;justify-content:center;}
.sheet{
  width:100%;max-width:480px;background:var(--cream);
  border-radius:24px 24px 0 0;max-height:90vh;overflow-y:auto;
  box-shadow:0 -20px 50px -20px rgba(18,56,39,.5);animation:slideup .28s cubic-bezier(.4,0,.2,1);
}
@keyframes slideup{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sheet-grip{width:40px;height:4px;border-radius:2px;background:var(--green-300);margin:10px auto 4px;}
.sheet-head{position:sticky;top:0;background:var(--cream);padding:8px 18px 12px;border-bottom:1px solid var(--line);z-index:2;display:flex;align-items:center;justify-content:space-between;}
.sheet-head h3{font-weight:900;font-size:1.16rem;color:var(--green-900);}
.sheet-head .x{width:32px;height:32px;border-radius:10px;background:var(--white);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);}
.sheet-head .x svg{width:16px;height:16px;}
.sheet-body{padding:16px 18px 30px;}

/* detail popup bits */
.detail-when{display:inline-flex;align-items:center;gap:7px;background:var(--green-700);color:#fff;border-radius:999px;padding:7px 13px;font-family:'Raleway';font-weight:700;font-size:.8rem;}
.detail-when svg{width:14px;height:14px;}
.kind-tag{display:inline-block;margin-left:8px;font-family:'Raleway';font-weight:700;font-size:.7rem;padding:3px 10px;border-radius:999px;vertical-align:middle;}
.kind-tag.sm{font-size:.62rem;padding:2px 7px;margin-left:7px;}
.kind-tag.plan{background:var(--green-700);color:#fff;}
.kind-tag.mem{background:#F2E6EC;color:var(--plum);}
.detail-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;}
.detail-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;}
/* 추억 사진 슬라이드 */
.slides{margin-top:14px;}
.slide-frame{position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--green-50);aspect-ratio:4/3;}
.slide-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.sl-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:rgba(18,56,39,.55);color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px);}
.sl-nav svg{width:18px;height:18px;}
.sl-nav.prev{left:9px;} .sl-nav.next{right:9px;}
.sl-count{position:absolute;top:9px;right:11px;background:rgba(18,56,39,.55);color:#fff;font-family:'Raleway';font-weight:700;font-size:.7rem;padding:3px 9px;border-radius:999px;backdrop-filter:blur(2px);}
.slide-cap{margin-top:9px;background:var(--green-50);border-radius:10px;padding:10px 13px;font-size:.86rem;color:var(--green-900);text-align:center;}
.sl-dots{display:flex;gap:6px;justify-content:center;margin-top:10px;}
.sl-dots i{width:7px;height:7px;border-radius:50%;background:var(--green-100);cursor:pointer;transition:.15s;}
.sl-dots i.on{background:var(--green-600);width:18px;border-radius:4px;}
.month-head{font-family:'Raleway';font-weight:700;font-size:.78rem;color:var(--muted);margin:20px 2px 12px;}
.detail-memo{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:13px;font-size:.88rem;color:var(--ink);margin-top:12px;white-space:pre-wrap;}
.kv{display:flex;gap:10px;font-size:.85rem;margin-top:8px;}
.kv .k{font-family:'Raleway';font-weight:700;color:var(--faint);min-width:54px;}
.kv .v{color:var(--ink);font-weight:600;}

/* info / api guide */
.info-panel{background:linear-gradient(160deg,#fbfaf6,#f1f4f0);border:1px solid var(--line);border-radius:var(--r-md);padding:16px;}
.info-panel .ip-head{display:flex;align-items:center;gap:9px;cursor:pointer;}
.info-panel .ip-head .ic{width:30px;height:30px;border-radius:9px;background:var(--green-700);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;}
.info-panel .ip-head .ic svg{width:16px;height:16px;}
.info-panel .ip-head h4{font-weight:900;font-size:.98rem;color:var(--green-900);flex:1;}
.info-panel .ip-head .chev{color:var(--green-500);transition:.2s;}
.info-panel .ip-head .chev.open{transform:rotate(180deg);}
.info-panel ol{margin:14px 0 4px;padding-left:18px;}
.info-panel ol li{font-size:.85rem;color:var(--muted);margin-bottom:9px;line-height:1.55;}
.info-panel ol li b{color:var(--green-800);}
.info-panel code{background:var(--green-50);color:var(--green-800);padding:1px 6px;border-radius:5px;font-size:.8em;word-break:break-all;}
.info-panel .link{color:var(--green-700);font-weight:700;text-decoration:underline;}

/* toast */
.toast{
  position:fixed;bottom:96px;left:50%;transform:translateX(-50%);z-index:120;
  background:var(--green-900);color:#fff;border-radius:13px;padding:13px 20px;
  font-family:'Raleway';font-weight:700;font-size:.86rem;box-shadow:var(--shadow-lg);
  display:flex;align-items:center;gap:9px;animation:toastin .3s ease;max-width:90%;
}
.toast svg{width:17px;height:17px;color:#9FE3BE;}
@keyframes toastin{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}

/* review summary line */
.review-line{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);}
.review-line:last-child{border-bottom:none;}
.review-line .rk{font-family:'Raleway';font-weight:700;font-size:.74rem;color:var(--faint);min-width:62px;padding-top:2px;}
.review-line .rv{flex:1;font-size:.88rem;color:var(--ink);font-weight:600;}

.fadein{animation:fadein .4s ease both;}
@keyframes fadein{from{transform:translateY(10px)}to{transform:translateY(0)}}
.hint{font-size:.78rem;color:var(--faint);margin-top:8px;display:flex;align-items:center;gap:6px;}
.hint svg{width:13px;height:13px;flex:none;}

.live-note{display:flex;align-items:center;gap:6px;margin:-3px 2px 12px;font-family:'Raleway';font-weight:700;font-size:.74rem;color:var(--green-600);}
.live-note svg{width:13px;height:13px;}

/* ---------- SETTINGS FAB + SHEET ---------- */
.fab-settings{
  position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));
  right:max(16px, calc(50% - 224px));z-index:48;
  width:50px;height:50px;border-radius:50%;
  background:var(--green-700);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-lg);border:2px solid rgba(255,255,255,.85);transition:.15s;
}
.fab-settings:active{transform:scale(.94);}
.fab-settings svg{width:23px;height:23px;}
.set-sec{font-family:'Raleway';font-weight:700;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:20px 0 11px;}
.set-sec:first-child{margin-top:2px;}
.set-slider-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:700;font-size:.9rem;color:var(--green-800);margin-bottom:9px;}
.set-slider-head b{font-size:1.1rem;color:var(--green-700);}
.theme-swatches{display:flex;gap:9px;flex-wrap:wrap;}
.theme-swatch{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;border-radius:14px;cursor:pointer;background:var(--paper);width:62px;transition:.15s;}
.theme-swatch .ring{width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.6);}
.theme-swatch .nm{font-size:.72rem;font-weight:700;color:var(--muted);}
.theme-swatch.on{box-shadow:var(--shadow-sm);}
.theme-swatch.on .nm{color:var(--green-800);}
.radius-seg{display:flex;gap:7px;}
.radius-seg button{flex:1;padding:11px 0;border-radius:11px;font-weight:700;font-size:.86rem;cursor:pointer;border:1.5px solid var(--line);background:var(--paper);color:var(--muted);transition:.15s;}
.radius-seg button.on{border-color:var(--green-600);background:var(--green-50);color:var(--green-800);}
.logout-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;}
.logout-row .lr-label{font-family:'Raleway';font-weight:700;font-size:.7rem;color:var(--faint);}
.logout-row .lr-code{font-weight:900;font-size:.95rem;color:var(--green-800);margin-top:2px;}
