*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;background:#f8f7f4;color:#1a1a1a;padding:1.5rem}
.wrap{max-width:980px;margin:0 auto}

.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:10px;background:#fff;border:1px solid #e5e3dc;border-radius:12px;padding:12px 16px}
.toolbar-title{font-size:17px;font-weight:700;color:#1a1a1a}
.toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.legend{display:flex;gap:9px;flex-wrap:wrap}
.leg{display:flex;align-items:center;gap:4px;font-size:11px;color:#666}
.leg-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}

.cbanner{background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:8px 12px;font-size:12px;color:#991b1b;margin-bottom:10px;display:none;align-items:center;gap:6px}
.sbanner{border-radius:8px;padding:8px 12px;font-size:12px;margin-bottom:10px;display:none;align-items:center;gap:6px}
.sbanner.ok{background:#f0fdf4;border:1px solid #86efac;color:#166534}
.sbanner.info{background:#eff6ff;border:1px solid #93c5fd;color:#1d4ed8}

.btn{font-size:12px;padding:6px 13px;border-radius:8px;cursor:pointer;border:1px solid #d1cfc7;background:#fff;color:#1a1a1a;display:flex;align-items:center;gap:5px;transition:background .15s;font-family:inherit;white-space:nowrap}
.btn:hover{background:#f3f2ef}
.btn.primary{background:#1a1a1a;color:#fff;border-color:#1a1a1a}
.btn.primary:hover{background:#333}
.btn.accent{background:#7c3aed;color:#fff;border-color:#7c3aed}
.btn.accent:hover{background:#6d28d9}
.btn.green{background:#16a34a;color:#fff;border-color:#16a34a}
.btn.green:hover{background:#15803d}
.btn.danger{background:#dc2626;color:#fff;border-color:#dc2626}
.btn.danger:hover{background:#b91c1c}
.save-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;transition:background .3s}
.save-dot.clean{background:#22c55e}
.save-dot.dirty{background:#ef4444}

/* TIMELINE */
.tl-outer{display:grid;grid-template-columns:48px 1fr 1fr;border:1px solid #e5e3dc;border-radius:12px;overflow:hidden;background:#fff;margin-bottom:1rem}
.col-hdr{height:52px;padding:0 12px;background:#f8f7f4;border-bottom:1px solid #e5e3dc;display:flex;flex-direction:column;justify-content:center;gap:3px}
.col-hdr.tc{align-items:center}
.col-hdr-name{font-size:13px;font-weight:600;color:#1a1a1a}
.col-hdr-sub{font-size:10px;color:#888}
.tcol{background:#f8f7f4;border-right:1px solid #e5e3dc;position:relative}
.stg{position:relative;border-right:1px solid #e5e3dc;background:#fff}
.stg.last{border-right:none}
.tl{position:absolute;right:0;left:0;display:flex;justify-content:flex-end}
.tl span{font-size:9px;color:#aaa;padding-right:5px;margin-top:-6px;line-height:1}
.gl{position:absolute;left:0;right:0;height:1px;pointer-events:none}
.gl.hour{background:#e5e3dc}
.gl.half{background:#f0ede8}
.ghost{position:absolute;left:3px;right:3px;border-radius:6px;border:2px dashed #60a5fa;background:#eff6ff;opacity:.35;pointer-events:none;display:none}

/* SLOTS */
.slot{position:absolute;left:3px;right:3px;border-radius:6px;padding:5px 8px 12px 8px;cursor:grab;user-select:none;border:1px solid transparent;overflow:hidden;transition:box-shadow .1s}
.slot:hover{box-shadow:0 2px 10px rgba(0,0,0,.13)}
.slot.dg{opacity:.35;cursor:grabbing}
.slot.ctx-open{box-shadow:0 0 0 2px #7c3aed}
.sn{font-size:11px;font-weight:600;line-height:1.25;padding-right:18px}
.str{font-size:10px;opacity:.7;margin-top:1px}
.sd{font-size:9px;opacity:.55;margin-top:1px}
/* resize handle bottom */
.resize-handle{position:absolute;bottom:0;left:0;right:0;height:8px;cursor:ns-resize;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}
.slot:hover .resize-handle{opacity:1}
.resize-handle::after{content:'';width:24px;height:3px;border-radius:2px;background:rgba(0,0,0,.25)}
/* delete btn top-right */
.slot-del{position:absolute;top:3px;right:3px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s;color:inherit;font-size:10px;font-weight:700;line-height:1;z-index:2}
.slot:hover .slot-del{opacity:1}
.slot-del:hover{background:rgba(0,0,0,.3)}

/* SLOT COLORS */
.s-open{background:#e0f5ee;border-color:#6dd0ae;color:#054e35}
.s-inn{background:#ddeeff;border-color:#7dbde8;color:#0c3d6e}
.s-dev{background:#eeecff;border-color:#b0a8f0;color:#312a7a}
.s-yuc{background:#fef3e2;border-color:#f5c96a;color:#5c3a00}
.s-ai{background:#e8f8e8;border-color:#86d686;color:#1a4d1a}
.s-meal{background:#f2f0eb;border-color:#c8c4ba;color:#4a4740}
.s-cls{background:#fff0ea;border-color:#f5a07a;color:#6e2a0a}
.s-coffee{background:#fce8f3;border-color:#e888c0;color:#6b1040}
.s-party{background:#f3e8ff;border-color:#c084fc;color:#581c87}
.s-custom{background:var(--cb);border-color:var(--cb2);color:var(--ct)}

/* CONTEXT MENU */
.ctx-menu{position:fixed;background:#fff;border:1px solid #e5e3dc;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.15);padding:6px;z-index:9999;min-width:200px;display:none}
.ctx-menu.visible{display:block}
.ctx-section{padding:4px 8px 2px;font-size:10px;color:#aaa;font-weight:600;letter-spacing:.5px;text-transform:uppercase}
.ctx-item{padding:7px 10px;border-radius:6px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px;color:#1a1a1a;transition:background .1s}
.ctx-item:hover{background:#f3f2ef}
.ctx-item.danger{color:#dc2626}
.ctx-item.danger:hover{background:#fef2f2}
.ctx-sep{height:1px;background:#f0ede8;margin:4px 0}
.ctx-icon{width:16px;text-align:center;font-size:13px}

/* EDIT MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:10000;display:none;align-items:center;justify-content:center}
.modal-overlay.visible{display:flex}
.modal{background:#fff;border-radius:14px;padding:1.5rem;width:340px;max-width:95vw;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.modal-title{font-size:15px;font-weight:700;margin-bottom:1.25rem;color:#1a1a1a}
.modal-field{margin-bottom:14px}
.modal-field label{display:block;font-size:11px;font-weight:600;color:#666;margin-bottom:5px}
.modal-field input,.modal-field select{width:100%;font-size:13px;padding:8px 10px;border:1px solid #d1cfc7;border-radius:8px;background:#f8f7f4;color:#1a1a1a;font-family:inherit;outline:none}
.modal-field input:focus,.modal-field select:focus{border-color:#7c3aed;background:#fff}
.modal-field input[type=color]{height:36px;padding:2px 4px;cursor:pointer}
.color-presets{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.cp{width:22px;height:22px;border-radius:4px;cursor:pointer;border:2px solid transparent;transition:transform .1s}
.cp:hover{transform:scale(1.2)}
.cp.active{border-color:#1a1a1a;box-shadow:0 0 0 1px #fff inset}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:1.25rem}

/* BANK */
.bank{background:#fff;border:1px solid #e5e3dc;border-radius:12px;padding:1rem;margin-bottom:1rem}
.bank-t{font-size:12px;font-weight:600;color:#666;margin-bottom:10px}
.bank-l{display:flex;flex-wrap:wrap;gap:7px;min-height:36px}
.bi{background:#f8f7f4;border:1px dashed #c8c4ba;border-radius:8px;padding:6px 10px;font-size:11px;color:#1a1a1a;cursor:grab;display:flex;flex-direction:column;gap:2px;position:relative}
.bi:hover{border-color:#888;background:#f3f2ef}
.bi-del{position:absolute;top:2px;right:4px;font-size:11px;cursor:pointer;opacity:0;color:#888;font-weight:700}
.bi:hover .bi-del{opacity:1}
.bi-del:hover{color:#dc2626}
.bis{font-size:10px;color:#888}
.bem{font-size:11px;color:#aaa;font-style:italic;align-self:center}

/* ADD PANEL */
.add-panel{background:#fff;border:1px solid #e5e3dc;border-radius:12px;padding:1rem;margin-bottom:1rem}
.add-panel-title{font-size:13px;font-weight:600;color:#1a1a1a;margin-bottom:12px}
.add-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.form-field{display:flex;flex-direction:column;gap:4px}
.form-field label{font-size:11px;color:#666;font-weight:500}
.form-field input,.form-field select{font-size:12px;padding:6px 10px;border:1px solid #d1cfc7;border-radius:8px;background:#f8f7f4;color:#1a1a1a;font-family:inherit;outline:none}
.form-field input:focus,.form-field select:focus{border-color:#7c3aed;background:#fff}
.form-field input[type=text]{width:180px}
.form-field input[type=color]{width:48px;height:32px;padding:2px 4px;cursor:pointer;border-radius:6px}
/* track combo */
.track-combo-wrap{position:relative;width:180px}
.track-combo-wrap input{width:100%}
.track-dropdown{position:absolute;top:calc(100% + 3px);left:0;right:0;background:#fff;border:1px solid #d1cfc7;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12);z-index:500;max-height:200px;overflow-y:auto;display:none}
.track-dropdown.open{display:block}
.track-opt{display:flex;align-items:center;gap:7px;padding:7px 10px;cursor:pointer;font-size:12px;color:#1a1a1a;transition:background .1s}
.track-opt:hover{background:#f3f2ef}
.track-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,.1)}
.track-new-hint{padding:6px 10px;font-size:11px;color:#aaa;font-style:italic}

/* JSON PANEL */
.json-panel{background:#fff;border:1px solid #e5e3dc;border-radius:12px;padding:1rem;margin-bottom:1rem}
.json-panel-title{font-size:13px;font-weight:600;color:#1a1a1a;margin-bottom:12px}
.json-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.json-area{width:100%;height:120px;font-size:11px;font-family:monospace;padding:8px;border:1px solid #d1cfc7;border-radius:8px;background:#f8f7f4;color:#1a1a1a;resize:vertical;outline:none;display:none}
.json-area:focus{border-color:#7c3aed;background:#fff}

/* STATS PANEL */
.stats-panel{background:#fff;border:1px solid #e5e3dc;border-radius:12px;padding:1.25rem;margin-bottom:1rem}
.stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}
.stats-title{font-size:14px;font-weight:700;color:#1a1a1a}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
.kpi{background:#f8f7f4;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.kpi-muted{background:#f2f0eb}
.kpi-muted .kpi-val{color:#888}
.kpi-party{background:#f3e8ff}
.kpi-party .kpi-val{color:#6b21a8}
.kpi-val{font-size:24px;font-weight:700;color:#1a1a1a;line-height:1}
.kpi-lbl{font-size:11px;color:#888;line-height:1.3}
.kpi-sub{font-size:10px;color:#aaa}
.stats-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:600px){.stats-cols{grid-template-columns:1fr}}
@media(max-width:780px){.finance-top{grid-template-columns:1fr !important}}
.stats-card{background:#f8f7f4;border-radius:10px;padding:14px}
.stats-card-title{font-size:12px;font-weight:600;color:#666;margin-bottom:10px;text-transform:uppercase;letter-spacing:.4px}
/* bar chart */
.bar-row{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.bar-row:last-child{margin-bottom:0}
.bar-label{font-size:11px;color:#444;width:130px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-track{flex:1;background:#e8e6e0;border-radius:4px;height:14px;overflow:hidden;position:relative}
.bar-fill{height:100%;border-radius:4px;transition:width .4s ease}
.bar-val{font-size:10px;color:#888;width:55px;text-align:right;flex-shrink:0}
/* coverage */
.coverage-row{margin-bottom:8px}
.coverage-label{font-size:11px;color:#666;margin-bottom:4px;display:flex;justify-content:space-between}
.coverage-track{width:100%;background:#e8e6e0;border-radius:4px;height:20px;position:relative;overflow:hidden}
.coverage-block{position:absolute;height:100%;border-radius:2px;display:flex;align-items:center;justify-content:center}
.coverage-block span{font-size:9px;font-weight:600;overflow:hidden;white-space:nowrap;padding:0 3px}
/* speakers */
.spk-grid{display:flex;flex-wrap:wrap;gap:7px}
.spk-pill{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid #e5e3dc;border-radius:20px;padding:4px 10px 4px 4px;font-size:11px;color:#1a1a1a}
.spk-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}
.spk-stage{font-size:9px;color:#aaa;margin-left:2px}
/* GEO / MAP */
.geo-kpi-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.geo-kpi{background:#fff;border-radius:8px;padding:10px 12px;border:0.5px solid #e5e3dc;display:flex;flex-direction:column;gap:2px}
.geo-kpi-val{font-size:22px;font-weight:700;color:#1a1a1a;line-height:1}
.geo-kpi-lbl{font-size:10px;color:#888}
.country-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:0.5px solid #f0ede8}
.country-row:last-child{border-bottom:none}
.country-flag{font-size:20px;width:28px;text-align:center;flex-shrink:0}
.country-name{font-size:12px;font-weight:500;color:#1a1a1a;flex:0 0 110px}
.country-bar-wrap{flex:1;background:#e8e6e0;border-radius:4px;height:12px;overflow:hidden}
.country-bar-fill{height:100%;border-radius:4px;transition:width .4s}
.country-count{font-size:11px;color:#666;width:50px;text-align:right;flex-shrink:0}
#world-map-wrap{position:relative;border-radius:8px;overflow:hidden;background:#dbe8f5;min-height:200px}
#world-map-wrap svg{width:100%;display:block}
.map-tooltip{position:fixed;background:#1a1a1a;color:#fff;font-size:11px;padding:5px 10px;border-radius:6px;pointer-events:none;white-space:nowrap;z-index:9000;display:none}
.spk-table{width:100%;border-collapse:collapse;font-size:12px}
.spk-table th{text-align:left;padding:6px 8px;border-bottom:1px solid #e5e3dc;font-size:11px;font-weight:600;color:#888;white-space:nowrap}
.spk-table td{padding:7px 8px;border-bottom:0.5px solid #f0ede8;vertical-align:middle}
.spk-table tr:last-child td{border-bottom:none}
.spk-table tr:hover td{background:#f8f7f4}
.spk-badge{display:inline-block;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:500}

/* ---- TABS ---- */
.tab-bar{display:flex;gap:2px;margin-bottom:1rem;background:#f8f7f4;border-radius:10px;padding:4px;border:1px solid #e5e3dc}
.tab-btn{flex:1;padding:8px 14px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:#888;transition:all .15s;font-family:inherit}
.tab-btn:hover{color:#1a1a1a;background:#f0ede8}
.tab-btn.active{background:#fff;color:#1a1a1a;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.tab-pane{display:none}
.tab-pane.active{display:block}

/* ---- VENUE MAP ---- */
.venue-wrap{background:#fff;border:1px solid #e5e3dc;border-radius:12px;padding:1.25rem;margin-bottom:1rem}
.venue-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:1rem}
.venue-toolbar-title{font-size:14px;font-weight:700;color:#1a1a1a}
.venue-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.vtool{font-size:12px;padding:5px 12px;border-radius:8px;cursor:pointer;border:1px solid #d1cfc7;background:#fff;color:#1a1a1a;font-family:inherit;transition:all .15s;white-space:nowrap}
.vtool:hover{background:#f3f2ef}
.vtool.active{background:#1a1a1a;color:#fff;border-color:#1a1a1a}
.vtool.danger{color:#dc2626;border-color:#fca5a5}
.vtool.danger:hover{background:#fef2f2}
.venue-color-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vcolor{width:22px;height:22px;border-radius:4px;cursor:pointer;border:2px solid transparent;transition:transform .1s}
.vcolor:hover{transform:scale(1.15)}
.vcolor.active{border-color:#1a1a1a;box-shadow:0 0 0 1px #fff inset}
.venue-canvas-wrap{position:relative;overflow:auto;border:1px solid #e5e3dc;border-radius:8px;background:#f8f7f4;cursor:crosshair}
.venue-canvas-wrap.mode-select{cursor:default}
.venue-canvas-wrap.mode-pan{cursor:grab}
#venue-canvas{display:block;image-rendering:pixelated}
.venue-info{font-size:11px;color:#888;margin-top:8px;display:flex;gap:16px;flex-wrap:wrap}
.venue-info span{display:flex;align-items:center;gap:4px}
.venue-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.vleg{display:flex;align-items:center;gap:4px;font-size:11px;color:#555}
.vleg-dot{width:12px;height:12px;border-radius:2px;flex-shrink:0;border:1px solid rgba(0,0,0,.1)}
/* area edit modal */
.area-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:10001;display:none;align-items:center;justify-content:center}
.area-modal-overlay.visible{display:flex}
.area-modal{background:#fff;border-radius:14px;padding:1.5rem;width:320px;max-width:95vw;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.area-modal-title{font-size:15px;font-weight:700;margin-bottom:1.25rem}
.area-field{margin-bottom:12px}
.area-field label{display:block;font-size:11px;font-weight:600;color:#666;margin-bottom:5px}
.area-field input,.area-field select{width:100%;font-size:13px;padding:8px 10px;border:1px solid #d1cfc7;border-radius:8px;background:#f8f7f4;font-family:inherit;outline:none}
.area-field input:focus{border-color:#7c3aed;background:#fff}
.area-color-grid{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.area-color-opt{width:24px;height:24px;border-radius:4px;cursor:pointer;border:2px solid transparent}
.area-color-opt:hover{transform:scale(1.1)}
.area-color-opt.active{border-color:#1a1a1a}
.area-modal-actions{display:flex;gap:8px;justify-content:space-between;margin-top:1.25rem}

/* Venue context menu */
.vctx{position:fixed;background:#fff;border:1px solid #e5e3dc;border-radius:10px;
  box-shadow:0 6px 24px rgba(0,0,0,.14);z-index:9999;min-width:180px;padding:4px 0;display:none}
.vctx.open{display:block}
.vctx-header{padding:8px 14px 6px;font-size:11px;font-weight:700;color:#888;border-bottom:1px solid #f0ede8;margin-bottom:2px}
.vctx-item{display:flex;align-items:center;gap:8px;padding:7px 14px;font-size:12px;color:#1a1a1a;cursor:pointer;white-space:nowrap}
.vctx-item:hover{background:#f8f7f4}
.vctx-item.danger{color:#dc2626}
.vctx-item.danger:hover{background:#fef2f2}
.vctx-icon{font-size:14px;width:18px;text-align:center;flex-shrink:0}
.vctx-sep{height:1px;background:#f0ede8;margin:3px 0}
/* Venue tooltip */
.venue-tip{position:fixed;background:#1a1a1a;color:#fff;font-size:11px;padding:6px 10px;
  border-radius:7px;pointer-events:none;white-space:nowrap;z-index:9998;display:none;
  box-shadow:0 4px 12px rgba(0,0,0,.25);max-width:220px;white-space:normal;line-height:1.4}

/* Expo stands */
.stand-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:6px 10px;border-radius:8px;cursor:grab;border:2px solid;
  font-size:10px;font-weight:600;user-select:none;transition:transform .1s,box-shadow .1s;
  min-width:90px;text-align:center;line-height:1.2}
.stand-chip:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.stand-chip:active{cursor:grabbing;transform:scale(0.97)}
.stand-chip .stand-size{font-size:9px;opacity:.7;margin-top:1px;white-space:nowrap}
/* Stand ghost overlay on canvas */
#stand-ghost{position:fixed;pointer-events:none;z-index:9997;display:none;
  border:2px dashed #378ADD;background:rgba(55,138,221,.18);border-radius:3px;
  font-size:10px;font-weight:600;color:#378ADD;display:none;
  align-items:center;justify-content:center;text-align:center;padding:2px}

/* ── App Header ── */
#app-header{
  display:flex;align-items:center;justify-content:space-between;
  background:#1a1a1a;color:#fff;border-radius:14px;
  padding:10px 16px;margin-bottom:10px;gap:12px;flex-wrap:wrap;
  box-shadow:0 4px 16px rgba(0,0,0,.18)
}
.app-header-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.app-header-logo{font-size:26px;line-height:1}
.app-header-title{font-size:16px;font-weight:700;color:#fff;line-height:1.2}
.app-header-sub{font-size:10px;color:#888;margin-top:1px}
.app-header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex-shrink:0}
/* Override tab-bar in app header */
#app-header .tab-bar{
  background:#333;border-color:#444;margin:0;flex:0 0 auto
}
#app-header .tab-btn{color:#aaa;font-size:12px;padding:6px 14px}
#app-header .tab-btn:hover{background:#444;color:#fff}
#app-header .tab-btn.active{background:#fff;color:#1a1a1a}
/* Override btn in app header */
#app-header .btn{
  background:#333;color:#ddd;border-color:#444;font-size:12px;padding:5px 11px
}
#app-header .btn:hover{background:#444;color:#fff}
#app-header .btn.primary{background:#378ADD;color:#fff;border-color:#378ADD}
#app-header .btn.primary:hover{background:#2a6db0}
#app-header .btn.green{background:#1D9E75;color:#fff;border-color:#1D9E75}
#app-header .btn.green:hover{background:#178a64}
#app-header .save-dot{border:1px solid rgba(255,255,255,.3)}

/* Canvas — prevent text selection causing blue selection rectangles */
#venue-canvas{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:grab}
#venue-canvas:active{cursor:grabbing}
#venue-canvas-wrap{user-select:none;-webkit-user-select:none}

/* Sponsor modal */
.sponsor-modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.45);
  display:none;align-items:center;justify-content:center;z-index:10000;padding:1rem
}
.sponsor-modal-overlay.visible{display:flex}
.sponsor-modal{
  background:#fff;border-radius:14px;padding:1.25rem;max-width:520px;width:100%;
  box-shadow:0 12px 40px rgba(0,0,0,0.25);max-height:90vh;overflow-y:auto
}
.sponsor-modal-title{font-size:17px;font-weight:700;margin-bottom:0.75rem;color:#1a1a1a}
.sponsor-modal-body{margin-bottom:1rem}
.sponsor-modal-actions{display:flex;gap:8px;justify-content:flex-end}
.sp-option:hover{background:#f0ede8}
.sp-option.selected{background:#dbeafe}

/* Sponsors tab */
#tab-sponsors .sp-tier-block{margin-bottom:1.25rem}
#tab-sponsors .sp-card{
  display:inline-flex;align-items:center;gap:8px;background:#f8f7f4;
  border:1px solid #e5e3dc;border-radius:8px;padding:8px 12px;font-size:13px;
  margin:0 6px 6px 0
}
#tab-sponsors .sp-card .sp-del{
  background:none;border:none;cursor:pointer;color:#dc2626;font-size:16px;line-height:1;
  padding:0 2px;margin-left:4px;border-radius:3px
}
#tab-sponsors .sp-card .sp-del:hover{background:#fee2e2}
