@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap');

:root {
  --bg:#0c0c0e; --bg2:#141417; --bg3:#1c1c21; --bg4:#242429;
  --border:#28282f; --border2:#38383f;
  --text:#eaeaf2; --text2:#9898b2; --text3:#54546a;
  --gold:#d4a843; --gold-dim:#2e2008;
  --green:#3dbd7a; --green-dim:#0c2a1c;
  --red:#e05555; --red-dim:#2a0c0c;
  --blue:#5b9cf6; --blue-dim:#0e1f42;
  --purple:#9b72e8; --purple-dim:#1c1040;
  --orange:#f59e0b; --orange-dim:#2a1800;
  --radius:7px; --font:'IBM Plex Sans',sans-serif; --mono:'IBM Plex Mono',monospace;
  --ease:cubic-bezier(.4,0,.2,1);
  --shadow-sm:0 1px 4px rgba(0,0,0,.5);
  --shadow-md:0 4px 20px rgba(0,0,0,.65);
  --glow-gold:0 0 0 1px rgba(212,168,67,.4),0 4px 28px rgba(212,168,67,.12);
  --glow-green:0 0 0 1px rgba(61,189,122,.35),0 4px 28px rgba(61,189,122,.1);
  --glow-orange:0 0 0 1px rgba(245,158,11,.35),0 4px 28px rgba(245,158,11,.1);
}

/* Scrollbar */

::-webkit-scrollbar{width:5px;height:5px}

::-webkit-scrollbar-track{background:transparent}

::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}

::-webkit-scrollbar-thumb:hover{background:var(--text3)}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{font-size:14px}

body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh}

/* Global focus ring */

:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}

.app{max-width:980px;margin:0 auto;padding:24px 16px 80px}

/* Animations */

@keyframes float {
  0%,100% { transform: translateY(0) }
  50%     { transform: translateY(-7px) }
}

/* Header */

.header{margin-bottom:26px}

.header-brand{display:flex;align-items:center;gap:14px}

.header-logo{
  height:62px;width:auto;flex-shrink:0;
  animation: float 3.2s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .header-logo { animation: none; }
}

.header h1{
  font-family:var(--font);font-size:22px;font-weight:700;
  letter-spacing:-.02em;color:var(--text)
}

.header p{font-size:11px;color:var(--text3);margin-top:4px;font-family:var(--mono)}

/* Tabs */

.tabs{
  display:flex;gap:2px;background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);padding:3px;margin-bottom:28px;
  width:fit-content;flex-wrap:wrap
}

.tab-btn{
  display:inline-flex;align-items:center;gap:6px;padding:7px 16px;
  border-radius:5px;border:none;font-size:12px;font-weight:500;
  font-family:var(--font);cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease),box-shadow .2s;
  background:transparent;color:var(--text3)
}

.tab-btn:hover{color:var(--text2);background:var(--bg3)}

.tab-btn.active{
  background:var(--bg4);color:var(--text);
  box-shadow:inset 0 -2px 0 var(--gold)
}

.tab-btn .badge{
  display:inline-block;font-size:10px;padding:1px 5px;
  border-radius:10px;margin-left:1px;font-family:var(--mono)
}

.badge-cap{background:var(--blue-dim);color:var(--blue)}

.badge-run{background:var(--orange-dim);color:var(--orange)}

.badge-cfg{background:var(--purple-dim);color:var(--purple)}

/* Section labels */

.sec{
  font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--text3);
  margin:0 0 12px;padding-left:9px;border-left:2px solid var(--gold-dim)
}

/* Grids */

.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:20px}

.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}

/* Field */

.field{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);padding:9px 11px;
  transition:border-color .2s
}

.field:focus-within{border-color:var(--border2)}

.field label{
  display:block;font-size:10px;color:var(--text3);margin-bottom:5px;
  font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em
}

.field input{
  width:100%;background:transparent;border:none;font-size:14px;
  font-weight:500;color:var(--text);font-family:var(--mono);outline:none
}

.field input::-webkit-inner-spin-button{opacity:.4}

.hr{border:none;border-top:1px solid var(--border);margin:24px 0}

/* Prospection */

.pros-box{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);padding:14px;margin-bottom:20px
}

.tab-row{display:flex;gap:4px;margin-bottom:12px}

.mode-tab{
  padding:5px 16px;border-radius:5px;border:1px solid var(--border);
  font-size:12px;cursor:pointer;background:transparent;
  color:var(--text2);font-family:var(--font);transition:all .2s
}

.mode-tab:hover{border-color:var(--border2);color:var(--text)}

.mode-tab.active{background:var(--blue-dim);color:var(--blue);border-color:var(--blue-dim)}

.member-row{display:flex;align-items:center;gap:8px;margin-bottom:7px}

.av{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:600;flex-shrink:0;font-family:var(--mono)
}

.mini-input{
  width:80px;background:var(--bg3);border:1px solid var(--border);
  border-radius:4px;padding:4px 7px;font-size:12px;font-weight:500;
  color:var(--text);font-family:var(--mono);outline:none;transition:border-color .15s
}

.mini-input:focus{border-color:var(--blue)}

/* Buttons */

.add-btn{
  background:transparent;border:1px dashed var(--border2);
  border-radius:var(--radius);padding:6px 14px;font-size:11px;
  color:var(--text3);cursor:pointer;font-family:var(--font);
  transition:all .2s;display:inline-flex;align-items:center;gap:6px
}

.add-btn:hover{border-color:var(--blue);color:var(--blue);border-style:solid;background:var(--blue-dim)}

.rm-btn{
  background:transparent;border:none;cursor:pointer;
  color:var(--text3);font-size:15px;line-height:1;
  padding:2px 4px;border-radius:3px;transition:all .15s
}

.rm-btn:hover{color:var(--red);background:var(--red-dim)}

/* Monster list */

.monster-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}

/* Monster card */

.mcard{
  border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;
  border-left:3px solid var(--m-color,var(--border2));
  transition:box-shadow .25s var(--ease),border-color .2s
}

.mcard:hover{box-shadow:var(--shadow-md)}

.mhead{
  display:flex;align-items:center;gap:9px;
  padding:9px 12px;background:var(--bg2)
}

.mdot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  cursor:pointer;transition:transform .2s;
}

.mdot:hover{transform:scale(1.5)}

.mname-input{
  background:transparent;border:none;font-size:13px;font-weight:500;
  color:var(--text);flex:1;min-width:0;padding:2px 4px;
  border-radius:3px;font-family:var(--font);outline:none;transition:background .15s
}

.mname-input:focus{background:var(--bg3)}

.mqty-wrap{display:flex;align-items:center;gap:4px;flex-shrink:0}

.mqty-label{font-size:10px;color:var(--text3);white-space:nowrap;font-family:var(--mono)}

.mqty-input{
  width:38px;background:var(--bg3);border:1px solid var(--border);
  border-radius:4px;padding:3px 5px;font-size:12px;font-weight:500;
  color:var(--text);text-align:center;font-family:var(--mono);
  outline:none;transition:border-color .15s
}

.mqty-input:focus{border-color:var(--blue)}

.mval{
  font-size:12px;font-weight:600;white-space:nowrap;
  color:var(--green);margin-left:auto;font-family:var(--mono)
}

.mchev{
  background:none;border:none;cursor:pointer;color:var(--text3);
  padding:3px;display:flex;align-items:center;
  transition:color .15s,transform .2s
}

.mchev:hover{color:var(--text2)}

.mbody{padding:12px;border-top:1px solid var(--border);background:var(--bg)}

.mbody.collapsed{display:none}

/* Resource table */

.res-tbl{width:100%;border-collapse:collapse;margin-bottom:8px;table-layout:fixed}

.res-tbl th{
  font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text3);padding:0 4px 7px;text-align:left;
  font-family:var(--mono);overflow:hidden;white-space:nowrap
}

.res-tbl td{padding:3px 4px;vertical-align:middle;overflow:hidden}

.ri{
  background:var(--bg2);border:1px solid var(--border);border-radius:4px;
  padding:3px 6px;font-size:12px;font-weight:500;color:var(--text);
  width:100%;font-family:var(--mono);outline:none;transition:border-color .15s
}

.ri:focus{border-color:var(--blue)}

.ri:disabled{opacity:.3;cursor:not-allowed}

.esp-cell{font-size:11px;color:var(--green);font-weight:500;font-family:var(--mono);white-space:nowrap}

/* Toggle */

.tgl{display:inline-flex;align-items:center;justify-content:center;width:100%}

.tgl-inner{position:relative;width:26px;height:14px;cursor:pointer;flex-shrink:0}

.t-track{position:absolute;inset:0;border-radius:7px;background:var(--border2);transition:background .2s}

.tgl-inner.on .t-track{background:var(--purple)}

.t-thumb{
  position:absolute;top:2px;left:2px;width:10px;height:10px;
  border-radius:50%;background:#fff;transition:transform .2s;pointer-events:none
}

.tgl-inner.on .t-thumb{transform:translateX(12px)}

/* Summary strip */

.summary{
  display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);margin-bottom:20px
}

.sum-item{display:flex;flex-direction:column;gap:2px}

.sum-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;font-family:var(--mono)}

.sum-val{font-size:15px;font-weight:600;color:var(--text);font-family:var(--mono)}

.sum-val.pos{color:var(--green)}

/* Decision */

.decision{
  border:1px solid var(--border);border-radius:var(--radius);
  padding:16px;margin-bottom:20px;background:var(--bg2)
}

.dec-title{
  font-family:var(--mono);font-size:9px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:3px
}

.dec-sub{font-size:11px;color:var(--text3);margin-bottom:14px;line-height:1.6}

.dec-vs{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:start}

.dec-side{
  border:1px solid var(--border);border-radius:var(--radius);
  padding:12px 14px;background:var(--bg3);transition:all .25s var(--ease)
}

.dec-side.win{
  border-color:var(--green);background:var(--green-dim);
  box-shadow:var(--glow-green)
}

.dec-side.lose{opacity:.42}

.dec-name{
  font-size:11px;color:var(--text2);margin-bottom:5px;
  display:flex;align-items:center;gap:5px
}

.dec-amount{font-size:22px;font-weight:700;font-family:var(--mono)}

.dec-amount.win{color:var(--green)}

.dec-amount.lose{color:var(--text3)}

.dec-detail{font-size:10px;color:var(--text3);margin-top:5px;line-height:1.6;font-family:var(--mono)}

.vs{
  font-size:11px;color:var(--text3);text-align:center;
  font-family:var(--mono);padding-top:16px;font-weight:600
}

.dec-conclusion{
  font-size:12px;color:var(--text2);margin-top:12px;
  padding-top:10px;border-top:1px solid var(--border);line-height:1.6
}

/* Stone cards */

.stone-card{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);padding:14px;
  transition:box-shadow .25s var(--ease),border-color .2s
}

.stone-card:hover{border-color:var(--border2);box-shadow:var(--shadow-md)}

.stone-card.best{border-color:var(--gold);box-shadow:var(--glow-gold)}

.stone-badge{
  display:inline-block;font-size:10px;padding:2px 8px;
  border-radius:3px;margin-bottom:8px;font-family:var(--mono);
  font-weight:600;letter-spacing:.04em
}

.badge-gold{background:var(--gold-dim);color:var(--gold)}

.badge-bad{background:var(--red-dim);color:var(--red)}

.badge-ok{background:var(--bg3);color:var(--text3)}

.stone-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:2px;font-family:var(--mono)}

.stone-taux{font-size:11px;color:var(--text3);margin-bottom:10px;font-family:var(--mono)}

.mw{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid var(--border)}

.mw:last-child{border-bottom:none}

.mwl{font-size:11px;color:var(--text2)}

.mwv{font-size:12px;font-weight:500;color:var(--text);font-family:var(--mono)}

.pos{color:var(--green)}

.neg{color:var(--red)}

.strat-blk{
  border-radius:5px;padding:8px 10px;margin:4px 0;
  border:1px solid var(--border);background:var(--bg3);transition:all .2s
}

.strat-blk.win{border-color:var(--green);background:var(--green-dim)}

.strat-title{
  font-size:11px;font-weight:500;color:var(--text2);margin-bottom:3px;
  display:flex;align-items:center;gap:5px
}

.strat-formula{font-size:10px;color:var(--text3);line-height:1.5;font-family:var(--mono)}

.strat-gain{font-size:14px;font-weight:700;margin-top:4px;font-family:var(--mono)}

.chart-wrap{position:relative;height:160px;margin-top:20px}

/* Save bar */

.save-bar{
  display:flex;align-items:center;gap:8px;padding:14px 16px;
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);margin-top:24px;flex-wrap:wrap;
  box-shadow:var(--shadow-sm)
}

.save-input{
  flex:1;min-width:120px;background:var(--bg3);
  border:1px solid var(--border);border-radius:4px;
  padding:7px 10px;font-size:13px;color:var(--text);
  font-family:var(--font);outline:none;transition:border-color .15s
}

.save-input:focus{border-color:var(--gold)}

.save-btn{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--gold-dim);border:1px solid var(--gold);
  color:var(--gold);border-radius:5px;padding:7px 16px;
  font-size:12px;font-weight:600;cursor:pointer;
  font-family:var(--mono);letter-spacing:.04em;
  transition:all .2s;white-space:nowrap
}

.save-btn:hover{
  background:var(--gold);color:var(--bg);
  box-shadow:0 0 18px rgba(212,168,67,.28)
}

.save-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}

/* Sheet */

.sheet-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:16px;flex-wrap:wrap;gap:8px
}

.sheet-stats{display:flex;gap:8px;flex-wrap:wrap}

.stat-chip{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--bg2);border:1px solid var(--border);
  border-radius:5px;padding:5px 10px;font-size:11px;
  font-family:var(--mono);color:var(--text2)
}

.stat-chip span{color:var(--text);font-weight:600}

.clear-btn{
  display:inline-flex;align-items:center;gap:5px;
  background:transparent;border:1px solid var(--red-dim);
  color:var(--red);border-radius:4px;padding:5px 12px;
  font-size:11px;cursor:pointer;font-family:var(--mono);transition:all .2s
}

.clear-btn:hover{background:var(--red-dim);box-shadow:0 0 14px rgba(224,85,85,.14)}

/* Empty state */

.empty-state{text-align:center;padding:56px 24px;color:var(--text3)}

.empty-state .icon{display:flex;justify-content:center;margin-bottom:14px;opacity:.35}

.empty-state p{font-size:14px;margin-bottom:6px;color:var(--text2)}

.empty-state small{font-size:11px;font-family:var(--mono)}

.sheet-wrap{overflow-x:auto}

.sheet-tbl{width:100%;border-collapse:collapse}

.sheet-tbl thead th{
  font-family:var(--mono);font-size:9px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--text3);
  padding:9px 10px;text-align:left;border-bottom:1px solid var(--border);
  background:var(--bg2);cursor:pointer;white-space:nowrap;transition:color .15s
}

.sheet-tbl thead th:hover{color:var(--text2)}

.sheet-tbl thead th.sorted{color:var(--gold)}

.sheet-tbl tbody tr{border-bottom:1px solid var(--border);transition:background .15s}

.sheet-tbl tbody tr:hover{background:var(--bg2)}

.sheet-tbl tbody td{padding:9px 10px;font-size:12px;vertical-align:middle}

.name-editable{
  background:transparent;border:none;font-size:12px;font-weight:500;
  color:var(--text);font-family:var(--font);outline:none;width:140px
}

.name-editable:focus{background:var(--bg3);border-radius:3px;padding:2px 4px}

/* Pills */

.pill{display:inline-block;font-size:10px;padding:2px 7px;border-radius:3px;font-family:var(--mono)}

.pill-sell{background:var(--blue-dim);color:var(--blue)}

.pill-drop{background:var(--green-dim);color:var(--green)}

.pill-has{background:var(--gold-dim);color:var(--gold)}

.pill-nor{background:var(--blue-dim);color:var(--blue)}

.pill-heu{background:var(--green-dim);color:var(--green)}

.row-actions{display:flex;gap:5px}

.act-btn{
  display:inline-flex;align-items:center;gap:5px;
  background:transparent;border:1px solid var(--border);border-radius:4px;
  padding:4px 9px;font-size:11px;cursor:pointer;
  font-family:var(--mono);transition:all .2s;color:var(--text2)
}

.act-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-dim)}

.act-btn.del:hover{border-color:var(--red);color:var(--red);background:var(--red-dim)}

.act-btn.active-cap{border-color:var(--gold);color:var(--gold);background:var(--gold-dim)}

.sort-arrow{font-size:9px;margin-left:3px;opacity:.5}

.sorted .sort-arrow{opacity:1}

/* Run cards */

.run-card{
  border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;transition:box-shadow .25s
}

.run-card.best-run{border-color:var(--orange);box-shadow:var(--glow-orange)}

.run-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg3)}

.run-name-input{
  background:transparent;border:none;font-size:14px;font-weight:600;
  color:var(--text);flex:1;min-width:0;font-family:var(--font);
  outline:none;padding:2px 4px;border-radius:3px;transition:background .15s
}

.run-name-input:focus{background:var(--bg2)}

.run-dur-wrap{display:flex;align-items:center;gap:5px;flex-shrink:0}

.run-dur-input{
  width:48px;background:var(--bg2);border:1px solid var(--border);
  border-radius:4px;padding:3px 6px;font-size:12px;font-weight:500;
  color:var(--text);text-align:center;font-family:var(--mono);
  outline:none;transition:border-color .15s
}

.run-dur-input:focus{border-color:var(--orange)}

.run-dur-label{font-size:10px;color:var(--text3);font-family:var(--mono);white-space:nowrap}

.run-kph{font-size:13px;font-weight:700;font-family:var(--mono);color:var(--orange);margin-left:auto;white-space:nowrap}

.run-body{padding:12px 14px;border-top:1px solid var(--border)}

.run-body.collapsed{display:none}

.slot-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:6px}

.slot-top{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg2)}

.slot-detail{display:flex;align-items:flex-start;gap:16px;padding:8px 10px;flex-wrap:wrap}

.slot-detail-col{display:flex;flex-direction:column;gap:4px}

.slot-detail-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-family:var(--mono)}

.slot-qty-input{
  width:46px;background:var(--bg2);border:1px solid var(--border);
  border-radius:4px;padding:3px 5px;font-size:12px;font-weight:500;
  color:var(--text);text-align:center;font-family:var(--mono);
  outline:none;transition:border-color .15s
}

.slot-qty-input:focus{border-color:var(--blue)}

.slot-select{
  background:var(--bg2);border:1px solid var(--border);border-radius:4px;
  padding:4px 7px;font-size:12px;color:var(--text);font-family:var(--font);
  outline:none;flex:1;min-width:0;transition:border-color .15s
}

.slot-select:focus{border-color:var(--blue)}

.slot-gain{font-size:11px;font-family:var(--mono);font-weight:500;white-space:nowrap;text-align:right}

.slot-missing{font-size:11px;color:var(--red);font-style:italic}

.run-summary{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:8px;margin-top:10px;padding:10px 12px;
  background:var(--bg);border:1px solid var(--border);border-radius:5px
}

.rs-item{display:flex;flex-direction:column;gap:2px}

.rs-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-family:var(--mono)}

.rs-val{font-size:14px;font-weight:700;font-family:var(--mono)}

.run-tbl-wrap{overflow-x:auto;margin-top:0}

.run-tbl{width:100%;border-collapse:collapse}

.run-tbl thead th{
  font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text3);padding:8px 10px;
  text-align:left;border-bottom:1px solid var(--border);
  background:var(--bg2);white-space:nowrap
}

.run-tbl tbody tr{border-bottom:1px solid var(--border);transition:background .15s}

.run-tbl tbody tr:hover{background:var(--bg2)}

.run-tbl tbody td{padding:9px 10px;font-size:12px;vertical-align:middle}

@media(max-width:640px){
  .g3{grid-template-columns:1fr}
  .dec-vs{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

.row-locked[data-v-c037f490] { opacity: .45;
}
.pp-badge[data-v-c037f490] {
  display: inline-block;
  font-size: 9px;
  font-family: var(--mono);
  padding: 1px 5px;
  border-radius: 3px;
  white-space: nowrap;
}
.pp-ok[data-v-c037f490] { background: var(--green-dim, #1a3d2b); color: var(--green, #3dbd7a);
}
.pp-no[data-v-c037f490] { background: var(--red-dim, #3d1a1a); color: var(--red, #e05555);
}

.import-toggle[data-v-2a50230c] {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 500;
  color: var(--text2);
  cursor: pointer;
  font-family: var(--font);
  transition: all .15s;
  text-align: left;
}
.import-toggle[data-v-2a50230c]:hover,
.import-toggle.open[data-v-2a50230c] {
  border-color: var(--border2);
  color: var(--text);
}
.import-panel[data-v-2a50230c] {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-top: none;
  border-radius: 0 0 var(--radius) var(--radius);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.import-row[data-v-2a50230c] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.import-label[data-v-2a50230c] {
  font-size: 10px;
  font-family: var(--mono);
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .06em;
  width: 48px;
  flex-shrink: 0;
}
.import-select[data-v-2a50230c] {
  flex: 1;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 5px 8px;
  font-size: 12px;
  color: var(--text);
  font-family: var(--font);
  outline: none;
}
.import-select[data-v-2a50230c]:focus { border-color: var(--blue);
}
.import-select[data-v-2a50230c]:disabled { opacity: .4;
}
.room-badge[data-v-2a50230c] {
  font-size: 10px;
  font-family: var(--mono);
  padding: 2px 7px;
  border-radius: 3px;
  flex-shrink: 0;
}
.room-badge.fixe[data-v-2a50230c] { background: var(--blue-dim); color: var(--blue);
}
.room-badge.alea[data-v-2a50230c] { background: var(--orange-dim); color: var(--orange);
}
.import-actions[data-v-2a50230c] { padding-top: 4px; border-top: 1px solid var(--border);
}

.search-toggle[data-v-414720ab] {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 500;
  color: var(--text2);
  cursor: pointer;
  font-family: var(--font);
  transition: all .15s;
  text-align: left;
}
.search-toggle[data-v-414720ab]:hover,
.search-toggle.open[data-v-414720ab] {
  border-color: var(--border2);
  color: var(--text);
}
.search-panel[data-v-414720ab] {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-top: none;
  border-radius: 0 0 var(--radius) var(--radius);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.search-input[data-v-414720ab] {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 6px 10px;
  font-size: 12px;
  color: var(--text);
  font-family: var(--font);
  outline: none;
  box-sizing: border-box;
}
.search-input[data-v-414720ab]:focus { border-color: var(--blue);
}
.results-list[data-v-414720ab] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 240px;
  overflow-y: auto;
}
.result-row[data-v-414720ab] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px;
  border-radius: 4px;
  background: var(--bg3);
}
.result-name[data-v-414720ab] {
  flex: 1;
  font-size: 12px;
  color: var(--text);
  font-family: var(--font);
}
.result-drops[data-v-414720ab] {
  font-size: 10px;
  font-family: var(--mono);
  color: var(--text3);
  white-space: nowrap;
}

.ht-wrap[data-v-c08a28eb] {
  position: relative;
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}
.ht-btn[data-v-c08a28eb] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid var(--border2);
  background: transparent;
  color: var(--text3);
  cursor: pointer;
  transition: all .15s;
  padding: 0;
  flex-shrink: 0;
}
.ht-btn[data-v-c08a28eb]:hover,
.ht-btn.active[data-v-c08a28eb] {
  border-color: var(--blue);
  color: var(--blue);
  background: var(--blue-dim);
}
.ht-popup[data-v-c08a28eb] {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 11px;
  line-height: 1.6;
  color: var(--text2);
  font-family: var(--font);
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
  min-width: 200px;
}
.ht-top[data-v-c08a28eb] {
  bottom: calc(100% + 8px);
}
.ht-bottom[data-v-c08a28eb] {
  top: calc(100% + 8px);
}

/* Arrow */
.ht-top[data-v-c08a28eb]::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 8px;
  height: 8px;
  background: var(--bg2);
  border-right: 1px solid var(--border2);
  border-bottom: 1px solid var(--border2);
}
.ht-bottom[data-v-c08a28eb]::after {
  content: '';
  position: absolute;
  top: -5px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 8px;
  height: 8px;
  background: var(--bg2);
  border-left: 1px solid var(--border2);
  border-top: 1px solid var(--border2);
}
.ht-popup strong[data-v-c08a28eb] { color: var(--text);
}
.ht-popup code[data-v-c08a28eb] {
  font-family: var(--mono);
  font-size: 10px;
  background: var(--bg3);
  padding: 1px 5px;
  border-radius: 3px;
  color: var(--blue);
}

/* Transition */
.ht-fade-enter-active[data-v-c08a28eb],
.ht-fade-leave-active[data-v-c08a28eb] { transition: opacity .15s, transform .15s;
}
.ht-fade-enter-from[data-v-c08a28eb],
.ht-fade-leave-to[data-v-c08a28eb] { opacity: 0; transform: translateX(-50%) translateY(4px);
}
.ht-fade-enter-to[data-v-c08a28eb],
.ht-fade-leave-from[data-v-c08a28eb] { opacity: 1; transform: translateX(-50%) translateY(0);
}

.flash-green[data-v-3cf52c52] {
  background: var(--green) !important;
  border-color: var(--green) !important;
  color: var(--bg) !important;
}

/* ── Pierre section ──────────────────────────────────────────────── */
.pierre-row[data-v-3cf52c52] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px;
}
.pierre-detect[data-v-3cf52c52] {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 12px; background: var(--bg2);
  border: 1px solid var(--border); border-radius: var(--radius);
}
.pierre-label[data-v-3cf52c52] {
  font-size: 10px; font-family: var(--mono); color: var(--text3);
  text-transform: uppercase; letter-spacing: .06em;
}
.badge-niv[data-v-3cf52c52] {
  font-size: 11px; font-family: var(--mono); font-weight: 600;
  padding: 1px 8px; border-radius: 3px;
  background: var(--orange-dim, #3d2a1a); color: var(--orange, #e8a43d);
}
.badge-taille[data-v-3cf52c52] {
  font-size: 11px; font-family: var(--mono); font-weight: 600;
  padding: 1px 8px; border-radius: 3px;
  background: var(--purple-dim); color: var(--purple);
}
.pierre-select[data-v-3cf52c52] {
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 4px; padding: 4px 8px; font-size: 12px;
  color: var(--text); font-family: var(--font); outline: none;
}
.pierre-select[data-v-3cf52c52]:focus { border-color: var(--blue);
}
.pierre-sep[data-v-3cf52c52] { width: 1px; height: 14px; background: var(--border); flex-shrink: 0; margin: 0 4px;
}
.revente-row[data-v-3cf52c52] {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 12px; background: var(--bg2);
  border: 1px solid var(--border); border-radius: var(--radius);
}
.revente-hint[data-v-3cf52c52] {
  font-size: 10px; font-family: var(--mono); color: var(--blue);
  cursor: pointer; padding: 1px 6px; border-radius: 3px;
  background: var(--blue-dim); transition: opacity .15s;
}
.revente-hint[data-v-3cf52c52]:hover { opacity: .75;
}

.sheet-toast[data-v-418b2a78] {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: 20px;
  padding: 8px 20px;
  font-size: 12px;
  color: var(--text);
  font-family: var(--mono);
  z-index: 100;
  pointer-events: none;
  box-shadow: var(--shadow-md);
  animation: toast-in-418b2a78 .2s ease;
}
@keyframes toast-in-418b2a78 {
from { opacity: 0; transform: translateX(-50%) translateY(8px);
}
to { opacity: 1; transform: translateX(-50%) translateY(0);
}
}

/* Run header chip */
.run-dj-chip[data-v-f209d712] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 4px;
  font-size: 11px;
  font-family: var(--mono);
  background: var(--bg2);
  border: 1px solid var(--border);
  color: var(--text3);
  flex-shrink: 0;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.run-dj-chip.active[data-v-f209d712] {
  background: var(--blue-dim);
  border-color: var(--blue-dim);
  color: var(--blue);
}

/* Config bar */
.run-cfg[data-v-f209d712] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.run-dj-select[data-v-f209d712] {
  flex: 1;
  min-width: 160px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 6px 10px;
  font-size: 12px;
  color: var(--text);
  font-family: var(--font);
  outline: none;
  transition: border-color .15s;
}
.run-dj-select[data-v-f209d712]:focus { border-color: var(--blue);
}
.run-dj-select[data-v-f209d712]:disabled { opacity: .5;
}

/* Classic drops toggle */
.classic-toggle[data-v-f209d712] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 11px 4px 7px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg3);
  cursor: pointer;
  transition: all .2s;
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
  user-select: none;
  flex-shrink: 0;
}
.classic-toggle[data-v-f209d712]:hover { border-color: var(--border2); color: var(--text2);
}
.classic-toggle.active[data-v-f209d712] { border-color: var(--green); background: var(--green-dim); color: var(--green);
}
.ct-dot[data-v-f209d712] {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--border2);
  transition: background .2s;
  flex-shrink: 0;
}
.classic-toggle.active .ct-dot[data-v-f209d712] { background: var(--green);
}

/* Rooms layout */
.rooms-header[data-v-f209d712] {
  display: grid;
  grid-template-columns: 26px 1fr 76px minmax(140px, 1fr) 76px 90px;
  gap: 6px;
  padding: 0 6px 6px;
  font-size: 9px;
  font-family: var(--mono);
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--text3);
  border-bottom: 1px solid var(--border);
  margin-bottom: 4px;
}
.rooms-list[data-v-f209d712] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 10px;
}
.room-row[data-v-f209d712] {
  display: grid;
  grid-template-columns: 26px 1fr 76px minmax(140px, 1fr) 76px 90px;
  gap: 6px;
  align-items: center;
  padding: 5px 6px;
  border-radius: 5px;
  transition: background .15s;
}
.room-row[data-v-f209d712]:hover { background: var(--bg3);
}
.room-off[data-v-f209d712] { opacity: .45;
}
.room-off[data-v-f209d712]:hover { background: var(--bg2);
}

/* Room toggle button */
.room-toggle[data-v-f209d712] {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid var(--border2);
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .15s;
  flex-shrink: 0;
}
.room-toggle.on[data-v-f209d712] { border-color: var(--green); background: var(--green-dim);
}
.room-toggle[data-v-f209d712]:hover { border-color: var(--text2);
}
.room-toggle.on[data-v-f209d712]:hover { border-color: var(--green); background: var(--red-dim);
}
.room-dot[data-v-f209d712] {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--border2);
  transition: background .15s;
}
.room-toggle.on .room-dot[data-v-f209d712] { background: var(--green);
}

/* Room info */
.room-info[data-v-f209d712] {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
}
.room-name[data-v-f209d712] {
  font-size: 12px;
  font-weight: 500;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.room-badge[data-v-f209d712] {
  font-size: 9px;
  font-family: var(--mono);
  padding: 1px 5px;
  border-radius: 3px;
  flex-shrink: 0;
}
.room-badge.fixe[data-v-f209d712] { background: var(--blue-dim); color: var(--blue);
}
.room-badge.alea[data-v-f209d712] { background: var(--orange-dim); color: var(--orange);
}

/* Centered cells */
.room-cell-center[data-v-f209d712] {
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: center;
}

/* Gain cell */
.room-gain[data-v-f209d712] {
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: flex-end;
}

/* Skip */
.room-skip[data-v-f209d712] {
  display: flex;
  align-items: center;
  padding-left: 8px;
}
.skip-badge[data-v-f209d712] {
  font-size: 9px;
  font-family: var(--mono);
  font-weight: 600;
  letter-spacing: .08em;
  padding: 2px 7px;
  border-radius: 3px;
  background: var(--bg4);
  color: var(--text3);
}

/* No dungeon hint */
.no-dj-hint[data-v-f209d712] {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 16px;
  color: var(--text3);
  text-align: center;
  margin-bottom: 10px;
}
.no-dj-hint p[data-v-f209d712] { font-size: 13px; color: var(--text2); margin-bottom: 4px;
}
.no-dj-hint small[data-v-f209d712] { font-size: 11px; font-family: var(--mono); line-height: 1.6;
}

/* Arena config row */
.arena-row[data-v-f209d712] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0 8px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}

/* Segmented button group */
.seg-group[data-v-f209d712] {
  display: flex;
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
  flex-shrink: 0;
}
.seg-btn[data-v-f209d712] {
  padding: 3px 10px;
  font-size: 11px;
  font-family: var(--mono);
  background: var(--bg3);
  color: var(--text3);
  border: none;
  cursor: pointer;
  transition: all .15s;
}
.seg-btn + .seg-btn[data-v-f209d712] { border-left: 1px solid var(--border);
}
.seg-btn.active[data-v-f209d712] { background: var(--blue-dim); color: var(--blue);
}
.seg-btn[data-v-f209d712]:hover:not(.active) { color: var(--text2);
}

/* Strategy pills in room rows */
.pill-sell[data-v-f209d712] { background: var(--blue-dim); color: var(--blue);
}
.pill-drop[data-v-f209d712] { background: var(--green-dim); color: var(--green);
}
.strat-pill[data-v-f209d712] { font-size: 9px; padding: 1px 5px; align-self: flex-start;
}
@media (max-width: 640px) {
.rooms-header[data-v-f209d712],
  .room-row[data-v-f209d712] {
    grid-template-columns: 26px 1fr 60px;
    grid-template-rows: auto auto;
}
.rooms-header span[data-v-f209d712]:nth-child(n+4),
  .room-row[data-v-f209d712] > *:nth-child(n+4) { display: none;
}
}

.runs-toast[data-v-3b1d8abf] {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: 20px;
  padding: 8px 20px;
  font-size: 12px;
  color: var(--text);
  font-family: var(--mono);
  z-index: 100;
  pointer-events: none;
  box-shadow: var(--shadow-md);
  animation: toast-in-3b1d8abf .2s ease;
}
@keyframes toast-in-3b1d8abf {
from { opacity: 0; transform: translateX(-50%) translateY(8px);
}
to { opacity: 1; transform: translateX(-50%) translateY(0);
}
}

/* ── Dual prospection ────────────────────────────────────────────────── */
.pros-dual[data-v-ad1ab83e] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 4px;
}
@media (max-width: 580px) {
.pros-dual[data-v-ad1ab83e] { grid-template-columns: 1fr;
}
}
.pros-panel[data-v-ad1ab83e] { display: flex; flex-direction: column; gap: 6px;
}
.pros-label[data-v-ad1ab83e] {
  font-size: 12px; font-weight: 600; color: var(--text2);
  display: flex; align-items: baseline; gap: 6px;
}
.pros-hint[data-v-ad1ab83e] {
  font-size: 10px; font-family: var(--mono); color: var(--text3); font-weight: 400;
}

/* ── Header ──────────────────────────────────────────────────────────── */
.sheet-header[data-v-ad1ab83e] {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 8px; margin-bottom: 16px;
}
.sheet-stats[data-v-ad1ab83e] { display: flex; flex-wrap: wrap; gap: 6px;
}
.stat-chip[data-v-ad1ab83e] {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-family: var(--mono); color: var(--text2);
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 4px; padding: 3px 9px;
}

/* ── View toggle ─────────────────────────────────────────────────────── */
.view-toggle-wrap[data-v-ad1ab83e] {
  display: flex; gap: 2px; background: var(--bg2);
  border: 1px solid var(--border); border-radius: 6px; padding: 2px;
}
.vt-btn[data-v-ad1ab83e] {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 12px; border-radius: 4px; border: none;
  font-size: 11px; font-family: var(--font); font-weight: 500;
  cursor: pointer; background: transparent; color: var(--text3); transition: all .15s;
}
.vt-btn[data-v-ad1ab83e]:hover { color: var(--text2); background: var(--bg3);
}
.vt-btn.active[data-v-ad1ab83e] { background: var(--bg4); color: var(--text);
}

/* ── Import panels (side-by-side on desktop) ─────────────────────────── */
.import-panels[data-v-ad1ab83e] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 16px;
  align-items: start;
}
@media (max-width: 580px) {
.import-panels[data-v-ad1ab83e] { grid-template-columns: 1fr;
}
}
.import-panel-wrap[data-v-ad1ab83e] { display: flex; flex-direction: column;
}
.imp-toggle[data-v-ad1ab83e] {
  display: flex; align-items: center; gap: 8px;
  width: 100%; background: var(--bg2); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 9px 12px;
  font-size: 12px; font-weight: 500; color: var(--text2);
  cursor: pointer; font-family: var(--font); transition: all .15s; text-align: left;
}
.imp-toggle[data-v-ad1ab83e]:hover,
.imp-toggle.open[data-v-ad1ab83e] { border-color: var(--border2); color: var(--text);
}
.imp-toggle.open[data-v-ad1ab83e] { border-radius: var(--radius) var(--radius) 0 0;
}
.imp-body[data-v-ad1ab83e] {
  background: var(--bg2); border: 1px solid var(--border);
  border-top: none; border-radius: 0 0 var(--radius) var(--radius);
  padding: 12px; display: flex; flex-direction: column; gap: 8px;
}
.imp-loading[data-v-ad1ab83e] { font-size: 12px; color: var(--text3); font-family: var(--mono);
}
.imp-empty-msg[data-v-ad1ab83e] { font-size: 11px; color: var(--text3); font-family: var(--mono);
}
.imp-hint[data-v-ad1ab83e] { font-size: 11px; color: var(--text3); font-family: var(--mono);
}

/* ── Search ──────────────────────────────────────────────────────────── */
.search-input[data-v-ad1ab83e] {
  width: 100%; background: var(--bg3); border: 1px solid var(--border);
  border-radius: 4px; padding: 6px 10px; font-size: 12px;
  color: var(--text); font-family: var(--font); outline: none; box-sizing: border-box;
}
.search-input[data-v-ad1ab83e]:focus { border-color: var(--blue);
}
.results-list[data-v-ad1ab83e] {
  display: flex; flex-direction: column; gap: 4px;
  max-height: 200px; overflow-y: auto;
}
.result-row[data-v-ad1ab83e] {
  display: flex; align-items: center; gap: 8px;
  padding: 4px 6px; border-radius: 4px; background: var(--bg3);
}
.result-name[data-v-ad1ab83e] { flex: 1; font-size: 12px; color: var(--text);
}
.result-drops[data-v-ad1ab83e] { font-size: 10px; font-family: var(--mono); color: var(--text3); white-space: nowrap;
}

/* ── Dungeon import ──────────────────────────────────────────────────── */
.dj-select[data-v-ad1ab83e] {
  width: 100%; background: var(--bg3); border: 1px solid var(--border);
  border-radius: 4px; padding: 6px 8px; font-size: 12px;
  color: var(--text); font-family: var(--font); outline: none;
}
.dj-select[data-v-ad1ab83e]:focus { border-color: var(--blue);
}
.dj-action-bar[data-v-ad1ab83e] {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px; padding: 8px 0 4px;
  border-top: 1px solid var(--border);
}
.dj-stat[data-v-ad1ab83e] { font-size: 11px; font-family: var(--mono); color: var(--text3);
}
.room-import-list[data-v-ad1ab83e] {
  display: flex; flex-direction: column; gap: 4px;
  max-height: 260px; overflow-y: auto;
}
.room-import-row[data-v-ad1ab83e] {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 8px; border-radius: 5px; background: var(--bg3);
  transition: background .12s;
}
.room-import-row[data-v-ad1ab83e]:hover { background: var(--bg4);
}
.room-import-info[data-v-ad1ab83e] {
  display: flex; align-items: center; gap: 5px;
  flex-shrink: 0; width: 140px;
}
.room-import-name[data-v-ad1ab83e] {
  font-size: 12px; font-weight: 500; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.room-import-count[data-v-ad1ab83e] {
  font-size: 10px; font-family: var(--mono); color: var(--text3); white-space: nowrap;
}
.room-badge[data-v-ad1ab83e] {
  font-size: 9px; font-family: var(--mono);
  padding: 1px 5px; border-radius: 3px; flex-shrink: 0;
}
.room-badge.fixe[data-v-ad1ab83e] { background: var(--blue-dim); color: var(--blue);
}
.room-badge.alea[data-v-ad1ab83e] { background: var(--orange-dim); color: var(--orange);
}
.room-import-monsters[data-v-ad1ab83e] {
  flex: 1; display: flex; flex-wrap: wrap; gap: 3px; min-width: 0;
}
.dm-chip[data-v-ad1ab83e] {
  font-size: 9px; font-family: var(--mono);
  padding: 1px 6px; border-radius: 10px;
  background: var(--bg); border: 1px solid var(--border);
  color: var(--text3); white-space: nowrap;
  transition: all .12s;
}
.dm-chip.added[data-v-ad1ab83e] {
  background: var(--green-dim); border-color: var(--green);
  color: var(--green);
}

/* ── Empty state ─────────────────────────────────────────────────────── */
.empty-state[data-v-ad1ab83e] {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 48px 20px;
  color: var(--text3); text-align: center;
}
.empty-state .icon[data-v-ad1ab83e] { margin-bottom: 14px; opacity: .25;
}
.empty-state p[data-v-ad1ab83e] { font-size: 13px; color: var(--text2); margin-bottom: 6px;
}
.empty-state small[data-v-ad1ab83e] { font-size: 11px; font-family: var(--mono); line-height: 1.6; max-width: 360px;
}

/* ── Config monster cards ────────────────────────────────────────────── */
.cfg-monster-list[data-v-ad1ab83e] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px;
}
.cfg-mcard[data-v-ad1ab83e] {
  border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
  border-left: 3px solid var(--m-color, var(--border2));
}
.cfg-mhead[data-v-ad1ab83e] {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 12px; background: var(--bg2);
}
.cfg-mdot[data-v-ad1ab83e] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.cfg-mname[data-v-ad1ab83e] { font-size: 13px; font-weight: 500; color: var(--text); flex: 1;
}
.cfg-res-count[data-v-ad1ab83e] { font-size: 10px; font-family: var(--mono); color: var(--text3); flex-shrink: 0;
}
.cfg-mbody[data-v-ad1ab83e] { padding: 0 12px 12px; border-top: 1px solid var(--border); background: var(--bg);
}

/* ── Config table ────────────────────────────────────────────────────── */
.cfg-tbl[data-v-ad1ab83e] {
  width: 100%; border-collapse: collapse;
  table-layout: fixed; margin-top: 10px;
}
.cfg-tbl th[data-v-ad1ab83e] {
  font-size: 9px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: var(--text3);
  padding: 0 4px 6px; font-family: var(--mono); text-align: left;
}
.cfg-tbl td[data-v-ad1ab83e] { padding: 3px 4px; vertical-align: middle;
}
.cfg-rname[data-v-ad1ab83e] {
  font-size: 12px; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 0;
}
.taux-badge[data-v-ad1ab83e] {
  display: inline-block; font-size: 10px; font-family: var(--mono);
  padding: 1px 6px; border-radius: 3px; background: var(--bg3); color: var(--text2);
}
.pp-badge[data-v-ad1ab83e] {
  display: inline-block; font-size: 10px; font-family: var(--mono);
  padding: 1px 6px; border-radius: 3px;
  background: var(--purple-dim); color: var(--purple);
}
.prix-input[data-v-ad1ab83e] {
  background: var(--bg2); border: 1px solid var(--border); border-radius: 4px;
  padding: 3px 7px; font-size: 12px; font-weight: 500; font-family: var(--mono);
  color: var(--text); width: 100%; text-align: right;
  outline: none; transition: border-color .15s;
}
.prix-input[data-v-ad1ab83e]:focus { border-color: var(--gold);
}

/* ── Resource catalog ────────────────────────────────────────────────── */
.res-catalog[data-v-ad1ab83e] { display: flex; flex-direction: column; gap: 6px;
}
.rc-row[data-v-ad1ab83e] {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 10px 12px;
  display: flex; flex-direction: column; gap: 7px; transition: border-color .15s;
}
.rc-row[data-v-ad1ab83e]:hover { border-color: var(--border2);
}
.rc-main[data-v-ad1ab83e] { display: flex; align-items: center; gap: 10px;
}
.rc-name[data-v-ad1ab83e] {
  flex: 1; font-size: 13px; font-weight: 500; color: var(--text);
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rc-appearances[data-v-ad1ab83e] { display: flex; flex-wrap: wrap; gap: 5px;
}
.rc-ap-chip[data-v-ad1ab83e] {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 10px; font-family: var(--mono);
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 20px; padding: 2px 9px 2px 6px; color: var(--text2);
}
.rc-ap-dot[data-v-ad1ab83e] {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--m-color, var(--border2)); flex-shrink: 0;
}
.rc-ap-taux[data-v-ad1ab83e] { color: var(--text3); margin-left: 2px;
}
.rc-ap-pp[data-v-ad1ab83e] {
  font-size: 9px; background: var(--purple-dim); color: var(--purple);
  padding: 0 4px; border-radius: 3px;
}

.pierre-group[data-v-a22eca62] { margin-bottom: 20px;
}
.pierre-group-header[data-v-a22eca62] {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 0 8px; border-bottom: 1px solid var(--border);
  margin-bottom: 4px;
}
.pierre-taille-name[data-v-a22eca62] {
  font-size: 13px; font-weight: 600; color: var(--text);
}
.pierre-taille-badge[data-v-a22eca62] {
  font-size: 10px; font-family: var(--mono); color: var(--text3);
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 3px; padding: 1px 7px;
}
.pierre-tbl[data-v-a22eca62] {
  width: 100%; border-collapse: collapse; table-layout: fixed;
}
.pierre-tbl th[data-v-a22eca62] {
  font-size: 9px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: var(--text3);
  padding: 4px 8px 6px; font-family: var(--mono); text-align: left;
}
.pierre-tbl td[data-v-a22eca62] { padding: 4px 8px; vertical-align: middle;
}
.pierre-tbl tr:hover td[data-v-a22eca62] { background: var(--bg2);
}
.variante-chip[data-v-a22eca62] {
  font-size: 12px; font-weight: 600; font-family: var(--mono);
}
.taux-badge[data-v-a22eca62] {
  display: inline-block; font-size: 11px; font-family: var(--mono);
  padding: 1px 7px; border-radius: 3px; background: var(--bg3); color: var(--text2);
}
.taux-eff[data-v-a22eca62] {
  font-size: 10px; font-family: var(--mono); color: var(--text3); margin-left: 4px;
}
.prix-input[data-v-a22eca62] {
  background: var(--bg2); border: 1px solid var(--border); border-radius: 4px;
  padding: 3px 7px; font-size: 12px; font-weight: 500; font-family: var(--mono);
  color: var(--text); width: 130px; text-align: right;
  outline: none; transition: border-color .15s;
}
.prix-input[data-v-a22eca62]:focus { border-color: var(--gold);
}

.guide-root[data-v-34420020] { padding-bottom: 32px;
}

/* Hero */
.guide-hero[data-v-34420020] {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 0 20px;
}
.guide-hero-icon[data-v-34420020] {
  width: 52px; height: 52px;
  border-radius: 12px;
  background: var(--blue-dim);
  border: 1px solid var(--border2);
  color: var(--blue);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.guide-title[data-v-34420020] {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 4px;
  letter-spacing: -.02em;
}
.guide-sub[data-v-34420020] {
  font-size: 13px;
  color: var(--text2);
  margin: 0;
  line-height: 1.5;
}

/* Steps */
.steps-grid[data-v-34420020] {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 4px;
}
.step-card[data-v-34420020] {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
  display: flex;
  gap: 12px;
  transition: border-color .15s;
}
.step-card[data-v-34420020]:hover { border-color: var(--s-color);
}
.step-num[data-v-34420020] {
  font-size: 28px;
  font-weight: 800;
  font-family: var(--mono);
  color: var(--s-color);
  opacity: .25;
  line-height: 1;
  flex-shrink: 0;
  width: 40px;
}
.step-body[data-v-34420020] { flex: 1; min-width: 0;
}
.step-title[data-v-34420020] {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 2px;
}
.step-tab[data-v-34420020] {
  font-size: 9px;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--s-color);
  background: var(--s-dim);
  display: inline-block;
  padding: 1px 7px;
  border-radius: 3px;
  margin-bottom: 8px;
}
.step-desc[data-v-34420020] {
  font-size: 12px;
  color: var(--text2);
  line-height: 1.5;
  margin: 0 0 8px;
}
.step-actions[data-v-34420020] {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.step-actions li[data-v-34420020] {
  display: flex;
  gap: 5px;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.4;
}

/* Concepts */
.concepts-grid[data-v-34420020] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 4px;
}
.concept-card[data-v-34420020] {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
}
.concept-icon[data-v-34420020] {
  width: 36px; height: 36px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 10px;
}
.concept-title[data-v-34420020] {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 6px;
}
.concept-body[data-v-34420020] {
  font-size: 11px;
  color: var(--text2);
  line-height: 1.6;
  margin: 0;
}

/* Decision explainer */
.decision-explainer[data-v-34420020] {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px;
  margin-bottom: 4px;
}
.de-row[data-v-34420020] {
  display: flex;
  gap: 12px;
  align-items: stretch;
  margin-bottom: 12px;
}
.de-block[data-v-34420020] {
  flex: 1;
  padding: 12px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--text2);
}
.de-sell[data-v-34420020] {
  background: var(--blue-dim);
  border: 1px solid var(--border2);
}
.de-reinvoke[data-v-34420020] {
  background: var(--green-dim, #1a3d2a);
  border: 1px solid var(--border2);
}
.de-label[data-v-34420020] {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 6px;
}
.de-sell .de-label[data-v-34420020] { color: var(--blue);
}
.de-reinvoke .de-label[data-v-34420020] { color: var(--green);
}
.de-block p[data-v-34420020] { margin: 0 0 8px;
}
.de-formula[data-v-34420020] {
  font-size: 11px;
  font-family: var(--mono);
  background: var(--bg3);
  padding: 4px 8px;
  border-radius: 4px;
  margin-bottom: 8px;
  color: var(--text);
}
.de-formula code[data-v-34420020] { color: var(--blue); background: none; padding: 0;
}
.de-when[data-v-34420020] {
  font-size: 10px;
  color: var(--text3);
  font-style: italic;
  margin: 0 !important;
}
.de-vs[data-v-34420020] {
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  font-family: var(--mono);
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.de-note[data-v-34420020] {
  display: flex;
  gap: 6px;
  align-items: flex-start;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.5;
  padding: 8px 10px;
  background: var(--bg3);
  border-radius: 5px;
}

/* FAQ */
.faq-list[data-v-34420020] {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.faq-item[data-v-34420020] {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color .15s;
}
.faq-item.open[data-v-34420020] { border-color: var(--border2);
}
.faq-q[data-v-34420020] {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  background: transparent;
  text-align: left;
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
  cursor: pointer;
  transition: color .15s;
}
.faq-q[data-v-34420020]:hover { color: var(--blue);
}
.faq-item.open .faq-q[data-v-34420020] { color: var(--blue);
}
.faq-a[data-v-34420020] {
  padding: 0 14px 12px;
  font-size: 12px;
  color: var(--text2);
  line-height: 1.6;
}
.faq-a p[data-v-34420020] { margin: 0;
}

/* Responsive */
@media (max-width: 700px) {
.steps-grid[data-v-34420020] { grid-template-columns: 1fr;
}
.concepts-grid[data-v-34420020] { grid-template-columns: 1fr 1fr;
}
.de-row[data-v-34420020] { flex-direction: column;
}
}
@media (max-width: 480px) {
.concepts-grid[data-v-34420020] { grid-template-columns: 1fr;
}
}

.share-overlay[data-v-27690ba9] {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .72);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 200;
  backdrop-filter: blur(4px);
  animation: so-in-27690ba9 .15s ease;
}
@keyframes so-in-27690ba9 {
from { opacity: 0
}
to { opacity: 1
}
}
.share-modal[data-v-27690ba9] {
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 12px;
  padding: 28px 28px 24px;
  width: 340px;
  max-width: calc(100vw - 32px);
  text-align: center;
  box-shadow: var(--shadow-md);
  animation: sm-in-27690ba9 .18s cubic-bezier(.34,1.4,.64,1);
}
@keyframes sm-in-27690ba9 {
from { transform: scale(.94); opacity: 0
}
to { transform: scale(1); opacity: 1
}
}
.sm-icon[data-v-27690ba9] { color: var(--blue); margin-bottom: 12px;
}
.sm-title[data-v-27690ba9] {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 4px;
}
.sm-name[data-v-27690ba9] {
  font-family: var(--mono);
  color: var(--gold);
  font-size: 13px;
  margin-bottom: 18px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sm-stats[data-v-27690ba9] {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 14px;
  text-align: left;
}
.sm-row[data-v-27690ba9] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 10px;
  background: var(--bg3);
  border-radius: 5px;
}
.sm-label[data-v-27690ba9] { font-size: 11px; color: var(--text3);
}
.sm-val[data-v-27690ba9] { font-size: 12px; font-family: var(--mono); color: var(--text);
}
.sm-date[data-v-27690ba9] {
  font-size: 10px;
  color: var(--text3);
  font-family: var(--mono);
  margin-bottom: 18px;
}
.sm-actions[data-v-27690ba9] {
  display: flex;
  gap: 10px;
}
.sm-btn[data-v-27690ba9] {
  flex: 1;
  padding: 8px 16px;
  border-radius: 6px;
  border: 1px solid;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--font);
  transition: background .15s;
}
.sm-cancel[data-v-27690ba9] {
  background: transparent;
  border-color: var(--border2);
  color: var(--text2);
}
.sm-cancel[data-v-27690ba9]:hover { background: var(--bg3);
}
.sm-import[data-v-27690ba9] {
  background: var(--blue-dim);
  border-color: var(--blue);
  color: var(--blue);
}
.sm-import[data-v-27690ba9]:hover { background: rgba(91, 156, 246, .2);
}

.pn-wrap[data-v-82890ec4] {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.pn-trigger[data-v-82890ec4] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--orange);
  color: var(--orange);
  cursor: default;
  transition: background .15s;
  flex-shrink: 0;
}
.pn-trigger[data-v-82890ec4]:hover {
  background: var(--orange-dim);
}
.pn-dot[data-v-82890ec4] {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--orange);
  border: 1.5px solid var(--bg);
}

/* Popover — affiché au hover */
.pn-popover[data-v-82890ec4] {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  width: 300px;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: var(--shadow-md);
  z-index: 150;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .15s, transform .15s;
}
.pn-wrap:hover .pn-popover[data-v-82890ec4] {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

/* Petite flèche */
.pn-popover[data-v-82890ec4]::before {
  content: '';
  position: absolute;
  top: -5px;
  left: 10px;
  width: 8px;
  height: 8px;
  background: var(--bg2);
  border-left: 1px solid var(--border2);
  border-top: 1px solid var(--border2);
  transform: rotate(45deg);
}
.pn-title[data-v-82890ec4] {
  font-size: 10px;
  font-family: var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 12px;
}
.pn-version[data-v-82890ec4] {
  margin-bottom: 12px;
}
.pn-version[data-v-82890ec4]:last-child {
  margin-bottom: 0;
}
.pn-version-head[data-v-82890ec4] {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 6px;
}
.pn-ver[data-v-82890ec4] {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
}
.pn-tag[data-v-82890ec4] {
  font-size: 9px;
  font-family: var(--mono);
  background: var(--orange-dim);
  color: var(--orange);
  border-radius: 3px;
  padding: 1px 6px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.pn-date[data-v-82890ec4] {
  font-size: 10px;
  font-family: var(--mono);
  color: var(--text3);
  margin-left: auto;
}
.pn-list[data-v-82890ec4] {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.pn-list li[data-v-82890ec4] {
  font-size: 11px;
  color: var(--text2);
  padding-left: 12px;
  position: relative;
  line-height: 1.4;
}
.pn-list li[data-v-82890ec4]::before {
  content: '·';
  position: absolute;
  left: 2px;
  color: var(--orange);
}
