:root{
  --bg:#060910;--surface:#0c1119;--surface2:#131a25;--surface3:#1c2533;
  --border:#1c2a3a;--border2:#283a4e;--accent:#ffffff;--accent2:#5F28F0;
  --text:#e8eef4;--text2:#8da4b8;--text3:#3d5a72;
  --red:#ff4d6d;--gold:#f0c040;--orange:#fb923c;
  --catA:#60d4a8;--catB:#5F28F0;--catC:#a78bfa;--catD:#fb923c;
  --catE:#38bdf8;--catF:#f472b6;--catG:#fbbf24;
  --mono:'DM Mono',monospace;--sans:'Pretendard Variable','Pretendard',sans-serif;
  /* Toss Design System Typography Scale */
  --f11:0.6875rem;--f12:0.75rem;--f13:0.8125rem;--f14:0.875rem;
  --f15:0.9375rem;--f16:1rem;--f17:1.0625rem;--f30:1.875rem;
  --lh:1.5;--lh-tight:1.3;--lh-display:1.33;
}
*{box-sizing:border-box;margin:0;padding:0;scrollbar-width:thin;scrollbar-color:var(--border2) transparent}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--f15);line-height:var(--lh);min-height:100vh;overflow-x:hidden;color-scheme:dark}
button{cursor:pointer;font-family:var(--sans)}
input,select,textarea{font-family:var(--sans)}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

/* ── LOGIN ── */
#login{display:flex;align-items:center;justify-content:center;min-height:100vh;
  background:radial-gradient(ellipse 70% 50% at 30% 40%,#0d1420 0%,var(--bg) 70%)}
.login-wrap{width:400px}
.login-logo{margin-bottom:1.2rem;display:flex;justify-content:center}
.login-logo img{height:140px;opacity:.95;position:relative;left:-16px}
.login-sub{color:var(--text2);font-size:var(--f12);letter-spacing:.22em;margin-bottom:2.5rem;font-weight:400;text-align:center;line-height:var(--lh)}
.field{margin-bottom:1.2rem}
.field label{display:block;font-size:var(--f12);color:var(--text2);letter-spacing:.08em;margin-bottom:.45rem;text-transform:uppercase;font-weight:500;line-height:var(--lh)}
.field input{width:100%;background:var(--surface);border:1px solid var(--border2);border-radius:8px;padding:.78rem 1rem;color:var(--text);font-size:var(--f15);line-height:var(--lh);transition:border-color .2s}
.field input:focus{outline:none;border-color:rgba(255,255,255,.5)}
.btn-login{width:100%;background:#060910;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.88rem;font-weight:800;font-size:var(--f16);margin-top:.5rem;transition:all .25s;letter-spacing:.04em}
.btn-login:hover{background:#111;border-color:rgba(255,255,255,.45);transform:translateY(-1px);box-shadow:0 4px 20px rgba(255,255,255,.08)}
.login-err{color:var(--red);font-size:.8rem;margin-top:.75rem;text-align:center;min-height:1.2rem}

/* ── APP SHELL ── */
#app{display:none;flex-direction:column;min-height:100vh}
.topbar{height:80px;background:rgba(6,9,16,.96);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;position:sticky;top:0;z-index:100}
.tbar-logo{display:flex;align-items:center}
.tbar-logo img{height:66px;opacity:.92;transition:opacity .2s}
.tbar-logo:hover img{opacity:1}
.tbar-right{display:flex;align-items:center;gap:1rem}
.user-pill{background:var(--surface2);border:1px solid var(--border2);border-radius:20px;padding:.28rem .9rem;font-size:var(--f13);color:var(--text2);line-height:var(--lh)}
.btn-sm{background:none;border:1px solid var(--border2);color:var(--text2);border-radius:6px;padding:.28rem .8rem;font-size:var(--f12);transition:all .2s;line-height:var(--lh)}
.btn-sm:hover{border-color:var(--text2);color:var(--text)}

.main{display:flex;flex:1;overflow:hidden;height:calc(100vh - 80px)}

/* ── SIDEBAR ── */
.sidebar{width:210px;background:var(--surface);border-right:1px solid var(--border);padding:1.25rem .9rem;display:flex;flex-direction:column;gap:.2rem;flex-shrink:0}
.nav-item{display:flex;align-items:center;gap:.65rem;padding:.58rem .8rem;border-radius:7px;color:var(--text2);font-size:var(--f14);line-height:var(--lh);transition:all .15s;cursor:pointer;border:1px solid transparent}
.nav-item:hover{background:var(--surface2);color:var(--text)}
.nav-item.active{background:var(--surface2);color:var(--accent);border-color:var(--border)}
.nav-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.sidebar-sep{height:1px;background:var(--border);margin:.4rem 0}
.sidebar-label{font-size:var(--f11);color:var(--text3);letter-spacing:.1em;padding:.35rem .8rem;text-transform:uppercase;line-height:var(--lh)}

/* ── CONTENT ── */
.content{flex:1;overflow-y:auto;padding:2rem}

/* ── DASHBOARD ── */
.dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}
.page-title{font-size:var(--f30);font-weight:700;line-height:var(--lh-display);letter-spacing:-.02em}
.btn-new{background:#060910;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.68rem 1.5rem;font-weight:800;font-size:var(--f14);display:flex;align-items:center;gap:.5rem;transition:all .25s;letter-spacing:.02em;line-height:var(--lh)}
.btn-new:hover{background:#111;border-color:rgba(255,255,255,.45);box-shadow:0 4px 16px rgba(255,255,255,.06)}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.2rem}
.stat-label{font-size:var(--f11);color:var(--text2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem;line-height:var(--lh)}
.stat-val{font-family:var(--mono);font-size:var(--f30);font-weight:500;line-height:var(--lh-display)}
.stat-val.accent{color:var(--accent)}
.est-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.est-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.2rem;cursor:pointer;transition:border-color .2s}
.est-card:hover{border-color:var(--border2)}
.ec-client{font-size:var(--f12);color:var(--text2);margin-bottom:.25rem;line-height:var(--lh)}
.ec-name{font-weight:600;margin-bottom:.7rem;font-size:var(--f15);line-height:var(--lh)}
.ec-meta{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.7rem}
.badge{display:inline-block;padding:.13rem .55rem;border-radius:4px;font-size:var(--f11);font-weight:600;line-height:var(--lh)}
.badge-A{background:rgba(96,212,168,.12);color:var(--catA)}
.badge-B{background:rgba(95,40,240,.12);color:var(--catB)}
.badge-C{background:rgba(167,139,250,.12);color:var(--catC)}
.badge-D{background:rgba(251,146,60,.12);color:var(--catD)}
.badge-E{background:rgba(56,189,248,.12);color:var(--catE)}
.badge-F{background:rgba(244,114,182,.12);color:var(--catF)}
.badge-G{background:rgba(251,191,36,.12);color:var(--catG)}
.ec-bottom{display:flex;align-items:center;justify-content:space-between}
.ec-amount{font-family:var(--mono);font-size:var(--f16);color:#fff;font-weight:600;line-height:var(--lh)}

/* ── WIZARD ── */
.wizard-wrap{max-width:980px;margin:0 auto}
.steps-bar{display:flex;margin-bottom:2.5rem;gap:0;position:relative}
.step-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.9rem .4rem .75rem;cursor:pointer;position:relative;transition:all .2s;border-bottom:2px solid var(--border)}
.step-btn::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:transparent;transition:background .2s}
.step-btn.done::after{background:var(--accent2)}
.step-btn.active::after{background:var(--accent)}
.step-circle{width:28px;height:28px;border-radius:50%;border:2px solid var(--border2);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:var(--f12);color:var(--text2);background:var(--surface);transition:all .2s;font-weight:500}
.step-btn.done .step-circle{background:rgba(95,40,240,.12);border-color:var(--accent2);color:var(--accent2)}
.step-btn.active .step-circle{background:#fff;border-color:#fff;color:#060910;font-weight:700}
.step-label{font-size:var(--f12);color:var(--text2);transition:color .2s;text-align:center;line-height:var(--lh)}
.step-btn.done .step-label{color:var(--accent2)}
.step-btn.active .step-label{color:#fff;font-weight:700}

/* ── FORM CARD ── */
.form-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.6rem;margin-bottom:1.2rem}
.card-title{font-size:var(--f11);letter-spacing:.12em;color:var(--text2);text-transform:uppercase;margin-bottom:1.2rem;display:flex;align-items:center;gap:.75rem;line-height:var(--lh)}
.card-title::after{content:'';flex:1;height:1px;background:var(--border)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.form-group{display:flex;flex-direction:column;gap:.38rem}
.form-group.full{grid-column:1/-1}
.form-label{font-size:var(--f12);color:var(--text2);line-height:var(--lh)}
.form-control{background:var(--bg);border:1px solid var(--border2);border-radius:8px;padding:.62rem .88rem;color:var(--text);font-size:var(--f14);line-height:var(--lh);transition:border-color .2s;width:100%}
.form-control:focus{outline:none;border-color:var(--accent)}
select.form-control option{background:var(--surface)}
textarea.form-control{resize:vertical;min-height:80px}

/* ── VENUE ── */
.venue-selected{background:rgba(251,191,36,.07);border:1px solid rgba(251,191,36,.3);border-radius:10px;padding:1rem 1.2rem;margin-top:.75rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.venue-name-big{font-weight:700;font-size:var(--f15);color:var(--catG);margin-bottom:.2rem;line-height:var(--lh)}
.venue-detail{font-size:var(--f13);color:var(--text2);line-height:var(--lh)}
.btn-venue-clear{background:none;border:none;color:var(--text3);font-size:.8rem;cursor:pointer;white-space:nowrap;padding:.2rem .5rem}
.btn-venue-clear:hover{color:var(--red)}
.btn-pick-venue{background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);color:var(--catG);border-radius:8px;padding:.6rem 1.2rem;font-size:var(--f13);font-weight:600;line-height:var(--lh);transition:all .2s;width:100%;margin-top:.5rem}
.btn-pick-venue:hover{background:rgba(251,191,36,.18)}

/* ── AI CHAT ── */
.ai-chat-box{background:var(--bg);border:1px solid var(--border2);border-radius:10px;min-height:200px;max-height:320px;overflow-y:auto;padding:1rem;margin-bottom:.9rem;display:flex;flex-direction:column;gap:.7rem}
.chat-msg{display:flex;gap:.7rem;align-items:flex-start}
.chat-avatar{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;flex-shrink:0;font-family:var(--mono)}
.chat-avatar.ai{background:rgba(255,255,255,.12);color:#fff}
.chat-avatar.user{background:rgba(95,40,240,.15);color:var(--accent2)}
.chat-bubble{background:var(--surface2);border-radius:8px;padding:.58rem .88rem;font-size:var(--f14);line-height:var(--lh);max-width:86%}
.chat-bubble.user{background:rgba(95,40,240,.07);border:1px solid rgba(95,40,240,.14)}
.chat-input-row{display:flex;gap:.7rem}
.chat-input{flex:1;background:var(--bg);border:1px solid var(--border2);border-radius:8px;padding:.68rem .9rem;color:var(--text);font-size:var(--f14);line-height:var(--lh)}
.chat-input:focus{outline:none;border-color:var(--accent)}
.btn-send{background:#060910;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.68rem 1.2rem;font-weight:800;font-size:var(--f13);white-space:nowrap;line-height:var(--lh)}
.btn-send:hover{background:#111;border-color:rgba(255,255,255,.45)}
.btn-send:disabled{opacity:.4;cursor:not-allowed}
.ai-thinking{display:flex;gap:4px;align-items:center;padding:.35rem 0}
.ai-dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:blink 1.2s infinite}
.ai-dot:nth-child(2){animation-delay:.2s}
.ai-dot:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.2}40%{opacity:1}}

/* ── ITEMS ── */
.cat-header{display:flex;align-items:center;gap:.7rem;padding:.45rem 0;margin-top:1.2rem;margin-bottom:.45rem}
.cat-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.cat-label{font-size:var(--f12);font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:var(--lh)}
.cat-count{font-family:var(--mono);font-size:var(--f11);color:var(--text3);margin-left:auto}
.item-hdr{display:grid;grid-template-columns:1fr 90px 90px 110px 110px 34px;gap:.4rem;padding:.3rem .7rem;font-size:var(--f11);color:var(--text3);letter-spacing:.06em;text-transform:uppercase;line-height:var(--lh)}
.item-row{display:grid;grid-template-columns:1fr 90px 90px 110px 110px 34px;gap:.4rem;align-items:center;padding:.52rem .7rem;background:var(--surface2);border-radius:8px;margin-bottom:.28rem;border:1px solid var(--border);transition:border-color .2s}
.item-row:hover{border-color:var(--border2)}
.item-row.selected{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.03)}
.item-row.venue-row{border-color:rgba(251,191,36,.25);background:rgba(251,191,36,.04)}
.ii{background:transparent;border:none;color:var(--text);font-size:var(--f14);line-height:var(--lh);width:100%;padding:.18rem}
.ii:focus{outline:none}
.ii.num{text-align:right;font-family:var(--mono)}
.ii-amount{font-family:var(--mono);font-size:var(--f13);color:#fff;text-align:right;font-weight:600;line-height:var(--lh)}
.btn-del{background:none;border:none;color:var(--text3);font-size:.95rem;transition:color .2s;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:4px}
.btn-del:hover{color:var(--red);background:rgba(255,77,109,.09)}
.btn-add-item{width:100%;background:none;border:1px dashed var(--border);color:var(--text2);border-radius:8px;padding:.58rem;font-size:var(--f13);line-height:var(--lh);transition:all .2s;margin-top:.45rem}
.btn-add-item:hover{border-color:rgba(255,255,255,.5);color:#fff}

/* ── MODALS ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:200;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal{background:var(--surface);border:1px solid var(--border2);border-radius:16px;padding:1.6rem;width:90%;max-width:700px;max-height:82vh;display:flex;flex-direction:column}
.modal-title{font-size:var(--f17);font-weight:700;margin-bottom:1rem;line-height:var(--lh-tight)}
.modal-search{width:100%;background:var(--bg);border:1px solid var(--border2);border-radius:8px;padding:.62rem .9rem;color:var(--text);font-size:var(--f14);line-height:var(--lh);margin-bottom:.75rem}
.modal-search:focus{outline:none;border-color:var(--accent)}
.modal-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.28rem}
.modal-footer{display:flex;justify-content:flex-end;gap:.7rem;margin-top:.9rem}

/* pick items */
.pick-item{display:flex;align-items:center;justify-content:space-between;padding:.58rem .88rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .14s}
.pick-item:hover{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.03)}
.pick-item.added{opacity:.38;cursor:default}
.pick-name{font-size:var(--f14);line-height:var(--lh)}
.pick-range{font-family:var(--mono);font-size:var(--f12);color:var(--text2);line-height:var(--lh)}

/* venue picker */
.venue-filter-row{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}
.vf-btn{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--text2);padding:.3rem .8rem;font-size:.76rem;transition:all .15s}
.vf-btn.active{background:rgba(251,191,36,.15);border-color:var(--catG);color:var(--catG)}
.venue-pick-item{padding:.7rem .9rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .14s}
.venue-pick-item:hover{border-color:var(--catG);background:rgba(251,191,36,.05)}
.vpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}
.vpi-name{font-weight:600;font-size:var(--f14);line-height:var(--lh)}
.vpi-price{font-family:var(--mono);font-size:var(--f13);color:var(--catG);line-height:var(--lh)}
.vpi-meta{font-size:var(--f12);color:var(--text2);display:flex;gap:.75rem;flex-wrap:wrap;line-height:var(--lh)}
.vpi-note{font-size:var(--f12);color:var(--text3);margin-top:.2rem;line-height:var(--lh)}

/* ── AGENCY FEE ── */
.grade-hdr{display:grid;grid-template-columns:150px 1fr 85px 85px 130px 34px;gap:.4rem;padding:.28rem .7rem;font-size:.66rem;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.grade-row{display:grid;grid-template-columns:150px 1fr 85px 85px 130px 34px;gap:.4rem;align-items:center;padding:.5rem .7rem;background:var(--surface2);border-radius:8px;margin-bottom:.28rem;border:1px solid var(--border)}
.grade-name{font-size:var(--f14);font-weight:500;line-height:var(--lh)}
.grade-rate{font-family:var(--mono);font-size:var(--f13);color:var(--accent2);text-align:right;line-height:var(--lh)}

/* ── SUMMARY BAR ── */
.summary-sticky{position:sticky;bottom:0;background:rgba(8,12,16,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border2);padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin:0 -2rem -2rem;z-index:50}
.sum-items{display:flex;gap:1.75rem;flex-wrap:wrap}
.sum-item{display:flex;flex-direction:column;gap:.12rem}
.sum-label{font-size:var(--f11);color:var(--text2);letter-spacing:.08em;text-transform:uppercase;line-height:var(--lh)}
.sum-val{font-family:var(--mono);font-size:var(--f16);font-weight:500;line-height:var(--lh)}
.sum-val.accent{color:var(--accent)}
.sum-val.green{color:var(--accent2)}
.btn-group{display:flex;gap:.7rem}
.btn-next{background:#060910;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.68rem 1.7rem;font-weight:800;font-size:var(--f14);line-height:var(--lh);transition:all .25s;letter-spacing:.02em}
.btn-next:hover{background:#111;border-color:rgba(255,255,255,.45);box-shadow:0 4px 16px rgba(255,255,255,.06)}
.btn-prev{background:none;border:1px solid var(--border2);color:var(--text2);border-radius:8px;padding:.68rem 1.2rem;font-size:var(--f14);line-height:var(--lh);transition:all .2s}
.btn-prev:hover{border-color:var(--text2);color:var(--text)}

/* ── PREVIEW ── */
.preview-wrap{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 0 40px rgba(0,0,0,.45)}
.preview-inner{padding:2.2rem;color:#111;font-family:var(--sans);max-width:900px;margin:0 auto}
.prev-header-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;margin-bottom:1.2rem;padding-bottom:1rem;border-bottom:2.5px solid #111}
.prev-section-title{font-size:.68rem;font-weight:700;letter-spacing:.15em;color:#555;margin-bottom:.4rem;text-transform:uppercase}
.prev-doc-title{font-size:1.5rem;font-weight:900;letter-spacing:.2em;text-align:center;color:#111;margin-bottom:.2rem}
.prev-doc-date{font-size:.72rem;color:#888;text-align:center}
.prev-info-table{border-collapse:collapse;width:100%}
.prev-info-table td{padding:.15rem .3rem;font-size:.78rem;vertical-align:top}
.pit-key{color:#777;font-weight:500;width:56px;white-space:nowrap}
.pit-val{color:#111}
.prev-total-banner{background:#111;color:#fff;padding:.65rem 1rem;border-radius:6px;display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.ptb-label{font-size:.8rem;font-weight:600;letter-spacing:.05em}
.ptb-amount{font-family:var(--mono);font-size:1.15rem;font-weight:700;color:#fff}
.prev-table{width:100%;border-collapse:collapse;margin-bottom:.75rem;font-size:.78rem}
.prev-table th{background:#111;color:#fff;padding:.45rem .5rem;text-align:left;font-weight:700;font-size:.7rem;letter-spacing:.04em}
.prev-table td{padding:.38rem .5rem;border-bottom:1px solid #eee;color:#222;vertical-align:middle}
.prev-cat-row td{background:#f0f0f0;font-weight:700;font-size:.7rem;letter-spacing:.08em;color:#333;border-bottom:none;border-top:1px solid #ddd;padding:.38rem .5rem}
.prev-sub-row td{background:#f8f8f8;font-size:.74rem;border-top:1px solid #ddd}
.prev-profit-row td{background:#fffbeb;font-size:.76rem}
.prev-supply-row td{background:#e8f4e8;font-weight:700;font-size:.82rem}
.prev-vat-row td{background:#f5f5f5;font-size:.76rem}
.prev-total-row td{background:#111;color:#fff;font-weight:700;font-size:.88rem}
.prev-footer-note{font-size:.7rem;color:#aaa;text-align:center;margin-top:.75rem;padding-top:.6rem;border-top:1px solid #eee}
.profit-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .75rem;border-radius:6px;font-size:.76rem;font-weight:600;font-family:var(--mono)}
.profit-badge.high{background:rgba(96,212,168,.15);color:var(--catA)}
.profit-badge.mid{background:rgba(95,40,240,.15);color:var(--accent2)}
.profit-badge.low{background:rgba(251,146,60,.15);color:var(--orange)}

/* ── VENUE DB PAGE ── */
.venue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:.75rem}
.venue-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem;transition:border-color .2s}
.venue-card:hover{border-color:rgba(251,191,36,.35)}
.vc-type{font-size:var(--f11);color:var(--catG);letter-spacing:.08em;font-weight:600;margin-bottom:.2rem;line-height:var(--lh)}
.vc-hotel{font-weight:700;font-size:var(--f15);line-height:var(--lh);margin-bottom:.12rem}
.vc-hall{font-size:var(--f13);color:var(--text2);margin-bottom:.5rem;line-height:var(--lh)}
.vc-row{display:flex;gap:1rem;font-size:var(--f12);color:var(--text2);flex-wrap:wrap;line-height:var(--lh)}
.vc-price{font-family:var(--mono);color:var(--catG);font-weight:600}
.vc-note{font-size:var(--f12);color:var(--text3);margin-top:.4rem;line-height:var(--lh)}

@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fade-in{animation:fadeIn .22s ease forwards}

/* ── TOAST ── */
.toast-container{position:fixed;top:68px;right:1.5rem;z-index:300;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}
.toast{pointer-events:auto;background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:.7rem 1.2rem;font-size:var(--f14);line-height:var(--lh);color:var(--text);box-shadow:0 8px 30px rgba(0,0,0,.4);animation:toastIn .3s ease forwards;display:flex;align-items:center;gap:.6rem;min-width:240px}
.toast.success{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.06)}
.toast.error{border-color:rgba(255,77,109,.4);background:rgba(255,77,109,.08)}
.toast.info{border-color:rgba(95,40,240,.4);background:rgba(95,40,240,.08)}
.toast-icon{font-size:1.1rem;flex-shrink:0}
.toast.out{animation:toastOut .25s ease forwards}
@keyframes toastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes toastOut{from{opacity:1;transform:none}to{opacity:0;transform:translateX(40px)}}

/* ── CONFIRM DIALOG ── */
.confirm-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:250;align-items:center;justify-content:center}
.confirm-overlay.open{display:flex}
.confirm-box{background:var(--surface);border:1px solid var(--border2);border-radius:14px;padding:1.8rem;max-width:380px;width:90%;text-align:center;animation:fadeIn .2s ease}
.confirm-msg{font-size:var(--f15);margin-bottom:1.4rem;line-height:var(--lh)}
.confirm-actions{display:flex;gap:.8rem;justify-content:center}
.confirm-cancel{background:none;border:1px solid var(--border2);color:var(--text2);border-radius:8px;padding:.55rem 1.2rem;font-size:var(--f14);line-height:var(--lh);transition:all .2s}
.confirm-cancel:hover{border-color:var(--text2);color:var(--text)}
.confirm-ok{background:var(--red);color:#fff;border:none;border-radius:8px;padding:.55rem 1.2rem;font-size:var(--f14);line-height:var(--lh);font-weight:600;transition:opacity .2s}
.confirm-ok:hover{opacity:.85}

/* ── EMPTY STATE ── */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--text3)}
.empty-icon{font-size:2.5rem;margin-bottom:.8rem;opacity:.5}
.empty-text{font-size:var(--f15);margin-bottom:.3rem;color:var(--text2);line-height:var(--lh)}
.empty-sub{font-size:var(--f13);color:var(--text3);line-height:var(--lh)}

/* ── BETTER TRANSITIONS ── */
.est-card{transition:border-color .2s, transform .2s, box-shadow .2s}
.est-card:hover{border-color:rgba(255,255,255,.2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.nav-item{transition:all .2s}
.btn-new{transition:all .25s}
.btn-new:hover{transform:translateY(-1px)}
.btn-next{transition:all .25s}
.btn-next:hover{transform:translateY(-1px)}
.stat-card{transition:border-color .2s, transform .15s}
.stat-card:hover{border-color:rgba(255,255,255,.2);transform:translateY(-1px)}

/* ── DASHBOARD SEARCH ── */
.dash-search{background:var(--bg);border:1px solid var(--border2);border-radius:8px;padding:.55rem .9rem;color:var(--text);font-size:var(--f14);line-height:var(--lh);width:260px;transition:border-color .2s}
.dash-search:focus{outline:none;border-color:rgba(255,255,255,.4)}

/* ── DELETE BUTTON ON CARDS ── */
.est-card{position:relative}
.est-card .ec-delete{position:absolute;top:.7rem;right:.7rem;background:none;border:none;color:var(--text3);font-size:.85rem;padding:.2rem .4rem;border-radius:4px;opacity:0;transition:all .2s;cursor:pointer}
.est-card:hover .ec-delete{opacity:1}
.est-card .ec-delete:hover{color:var(--red);background:rgba(255,77,109,.1)}

/* ── MOBILE RESPONSIVE ── */
@media(max-width:768px){
  .sidebar{display:none}
  .main{flex-direction:column}
  .topbar{padding:0 1rem}
  .content{padding:1rem}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .est-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .item-hdr,.item-row{grid-template-columns:1fr 70px 70px 90px 90px 28px;font-size:.78rem}
  .grade-hdr,.grade-row{grid-template-columns:120px 1fr 70px 70px 100px 28px}
  .prev-header-grid{grid-template-columns:1fr;gap:.8rem}
  .summary-sticky{flex-direction:column;gap:.8rem;padding:.8rem 1rem}
  .sum-items{flex-wrap:wrap;gap:.8rem}
  .btn-group{width:100%;justify-content:stretch}
  .btn-group .btn-next,.btn-group .btn-prev{flex:1}
  .venue-grid{grid-template-columns:1fr}
  .dash-search{width:100%;max-width:none}
  .dash-header{flex-direction:column;gap:.8rem;align-items:flex-start}
  .login-wrap{width:90%;max-width:400px;padding:0 1rem}

  /* Mobile nav bar at bottom */
  .topbar{position:fixed;top:0;left:0;right:0;z-index:100}
  #app{padding-top:54px}
  .mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:rgba(0,4,12,.96);border-top:1px solid var(--border);padding:.4rem 0 env(safe-area-inset-bottom,.2rem);z-index:100;justify-content:space-around}
  .mobile-nav-btn{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .5rem;color:var(--text3);font-size:.62rem;background:none;border:none;cursor:pointer;transition:color .2s}
  .mobile-nav-btn.active{color:#fff}
  .mobile-nav-dot{width:5px;height:5px;border-radius:50%;background:currentColor}
  .main{height:calc(100vh - 54px - 52px)}
}
@media(min-width:769px){
  .mobile-nav{display:none}
}

/* ── MARKET TOGGLE SWITCHES ── */
.market-toggles{padding:.3rem .8rem;display:flex;flex-direction:column;gap:.35rem}
.toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;color:var(--text2);padding:.15rem 0}
.switch{position:relative;width:32px;height:18px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;inset:0;background:var(--border2);border-radius:18px;transition:background .25s;cursor:pointer}
.slider::before{content:'';position:absolute;width:14px;height:14px;left:2px;bottom:2px;background:var(--text3);border-radius:50%;transition:transform .25s,background .25s}
.switch input:checked+.slider{background:rgba(255,255,255,.85)}
.switch input:checked+.slider::before{transform:translateX(14px);background:#fff}

/* ── MARKET DATA PAGE ── */
.market-overview{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}
.market-stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem;text-align:center;transition:border-color .2s}
.market-stat:hover{border-color:var(--accent2)}
.market-stat .ms-val{font-family:var(--mono);font-size:var(--f17);font-weight:600;color:var(--accent);line-height:var(--lh-tight)}
.market-stat .ms-label{font-size:var(--f11);color:var(--text2);margin-top:.3rem;letter-spacing:.06em;line-height:var(--lh)}

.seg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;margin-bottom:2rem}
.seg-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.2rem;cursor:pointer;transition:all .2s}
.seg-card:hover{border-color:var(--accent2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.seg-name{font-weight:700;font-size:var(--f15);line-height:var(--lh);margin-bottom:.3rem;display:flex;align-items:center;gap:.5rem}
.seg-name-en{font-size:var(--f12);color:var(--text3);font-weight:400}
.seg-desc{font-size:var(--f13);color:var(--text2);margin-bottom:.7rem;line-height:var(--lh)}
.seg-stats{display:flex;gap:1rem;flex-wrap:wrap}
.seg-stat{display:flex;flex-direction:column;gap:.1rem}
.seg-stat-val{font-family:var(--mono);font-size:var(--f14);font-weight:600;line-height:var(--lh)}
.seg-stat-val.green{color:var(--accent)}
.seg-stat-val.purple{color:var(--accent2)}
.seg-stat-val.gold{color:var(--gold)}
.seg-stat-label{font-size:var(--f11);color:var(--text3);line-height:var(--lh)}
.seg-trend{font-size:var(--f12);color:var(--text2);margin-top:.6rem;padding-top:.5rem;border-top:1px solid var(--border);line-height:var(--lh);font-style:italic}

.seg-detail-section{margin-bottom:2rem}
.seg-detail-title{font-size:.76rem;font-weight:700;color:var(--text2);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;display:flex;align-items:center;gap:.75rem}
.seg-detail-title::after{content:'';flex:1;height:1px;background:var(--border)}

.comp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem}
.comp-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:1rem;transition:border-color .2s}
.comp-card:hover{border-color:var(--accent2)}
.comp-name{font-weight:700;font-size:var(--f15);line-height:var(--lh);margin-bottom:.2rem}
.comp-specialty{font-size:var(--f12);color:var(--accent2);margin-bottom:.5rem;line-height:var(--lh)}
.comp-meta{display:flex;gap:.8rem;flex-wrap:wrap;font-size:var(--f12);color:var(--text2);margin-bottom:.35rem;line-height:var(--lh)}
.comp-strengths{font-size:var(--f12);color:var(--text3);line-height:var(--lh)}

.bench-table{width:100%;border-collapse:collapse;font-size:var(--f13)}
.bench-table th{background:var(--surface2);padding:.55rem .7rem;text-align:left;font-weight:600;font-size:var(--f12);color:var(--text2);letter-spacing:.06em;border-bottom:1px solid var(--border2);line-height:var(--lh)}
.bench-table td{padding:.5rem .7rem;border-bottom:1px solid var(--border);color:var(--text)}
.bench-table tr:hover td{background:rgba(95,40,240,.03)}
.bench-amount{font-family:var(--mono);color:#fff;font-weight:600}
.bench-rate{font-family:var(--mono);color:var(--accent2)}

.trend-list{display:flex;flex-direction:column;gap:.6rem}
.trend-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:1rem;transition:border-color .2s}
.trend-card:hover{border-color:var(--accent)}
.trend-title{font-weight:700;font-size:var(--f14);line-height:var(--lh);margin-bottom:.3rem;display:flex;align-items:center;gap:.5rem}
.trend-content{font-size:var(--f13);color:var(--text2);line-height:var(--lh)}
.trend-meta{display:flex;gap:.6rem;margin-top:.5rem;font-size:var(--f11);color:var(--text3);line-height:var(--lh)}
.trend-badge{display:inline-block;padding:.12rem .45rem;border-radius:4px;font-size:var(--f11);font-weight:600;line-height:var(--lh)}
.trend-badge.high{background:rgba(255,77,109,.12);color:var(--red)}
.trend-badge.medium{background:rgba(251,191,36,.12);color:var(--gold)}
.trend-badge.low{background:rgba(96,212,168,.12);color:var(--catA)}
.trend-type-badge{display:inline-block;padding:.12rem .45rem;border-radius:4px;font-size:var(--f11);font-weight:600;line-height:var(--lh);background:rgba(95,40,240,.12);color:var(--accent2)}

/* ── CHATBOT UPGRADE: Approve Fix ── */
.ticket-approve-btn{background:#060910;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:.28rem .7rem;font-size:var(--f12);font-weight:700;cursor:pointer;transition:all .2s;line-height:var(--lh)}
.ticket-approve-btn:hover{background:#111;border-color:rgba(255,255,255,.45)}
.ticket-fix-status{font-size:var(--f11);padding:.15rem .45rem;border-radius:4px;font-weight:600;line-height:var(--lh)}
.ticket-fix-status.pending{background:rgba(251,191,36,.12);color:var(--gold)}
.ticket-fix-status.approved{background:rgba(22,239,130,.12);color:var(--accent)}
.ticket-fix-status.applied{background:rgba(95,40,240,.12);color:var(--accent2)}
