/* Recipe planner in the Modern Addon system: the recipe list (dense rows, physical Known/Planned states) beside a persistent plan rail with the map.
   Personal state is warm (blue = your plan, green = known); provenance badges stay on each acquisition relationship. */
.rp-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.rp-main{min-width:0}
.rp-head{display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:4px 14px;margin:0 0 10px;padding:10px 12px;border-radius:4px;background:linear-gradient(180deg,#1c1812,#16130e);box-shadow:0 0 0 1px #3a3022,inset 0 1px 0 rgba(255,255,255,.05)}
.rp-summary{margin:0;font-weight:700;color:#e7c9a2}
.rp-meter{position:relative;height:10px;border-radius:2px;background:#07090d;box-shadow:inset 0 1px 2px rgba(0,0,0,.8),0 0 0 1px #3a3022;overflow:hidden}
.rp-meter>i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:2px;background:linear-gradient(180deg,#9de3aa,#5dbb72);box-shadow:inset 0 1px 0 rgba(255,255,255,.35);transition:width .2s}
.rp-head .rp-note{grid-column:1/-1;margin:0;font-size:12px;color:#bdb9b0}
.rp-filters{display:flex;flex-wrap:wrap;gap:8px 10px;margin:0 0 6px;align-items:end}
.rp-filters label{display:flex;flex-direction:column;gap:4px;max-width:100%;font:700 11px/1.3 var(--font-ui,sans-serif);text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.rp-filters input,.rp-filters select{max-width:100%;min-height:34px;text-transform:none;letter-spacing:0;font-weight:500;font-size:13.5px}
.rp-filters input{width:17rem}
.rp-sub{font-size:12px;margin:3px 0;overflow-wrap:anywhere}
.rp-counts{font-size:12px;margin:4px 0}
.rp-results{font-size:12.5px;color:var(--ink2,#bdb9b0);margin:8px 0 6px}
.rp-scroll{overflow-x:auto;max-width:100%;border-radius:6px;background:linear-gradient(180deg,#171c26,#12161f);box-shadow:0 0 0 1px #2c3340,inset 0 1px 0 rgba(255,255,255,.06),0 12px 28px rgba(0,0,0,.45);padding:0 6px 6px}
.rp-table{width:100%;font-size:13.5px;border-collapse:separate;border-spacing:0}
.rp-table th,.rp-table td{text-align:left;padding:6px 8px;vertical-align:middle}
.rp-table thead th{height:38px}
/* Row state is painted on the row, never per cell, so a planned/open Recipe reads as one continuous object across every column.
   Cells only carry hairlines that are themselves continuous (top/bottom); the plan edge is the first cell's left inset. */
.rp-table tbody tr{background:transparent;transition:background-color .12s}
.rp-table tbody tr>*{background:transparent;box-shadow:inset 0 -1px 0 #20262f}
.rp-table tbody tr.rp-row{cursor:pointer}
.rp-table tbody tr.rp-row:hover{background-color:#161c26}
.rp-table tbody tr.rp-row:focus-within{background-color:#1a2333}
.rp-table tbody tr.is-planned{background:linear-gradient(90deg,rgba(94,162,234,.16),rgba(94,162,234,.06) 45%,rgba(94,162,234,.015)),#141a24}
.rp-table tbody tr.is-planned>*{box-shadow:inset 0 1px 0 rgba(94,162,234,.22),inset 0 -1px 0 #0a0d12}
.rp-table tbody tr.is-planned>td:first-child{box-shadow:inset 3px 0 0 var(--blue,#5ea2ea),inset 0 1px 0 rgba(94,162,234,.22),inset 0 -1px 0 #0a0d12}
.rp-table tbody tr.is-planned .rp-icon{box-shadow:0 0 0 1px #000,0 0 0 2px var(--qe,#3a3f4a),0 0 0 4px var(--blue,#5ea2ea)}
/* Open (expanded) Recipe and its materials strip share one pressed surface; the strip has no top hairline so it reads as attached. */
.rp-table tbody tr.is-open{background:linear-gradient(180deg,#16202f,#121a27)}
.rp-table tbody tr.is-open>*{box-shadow:inset 0 1px 0 rgba(156,200,255,.18)}
.rp-table tbody tr.is-open>td:first-child{box-shadow:inset 3px 0 0 #9cc8ff,inset 0 1px 0 rgba(156,200,255,.18)}
.rp-table tbody tr.is-open.is-planned{background:linear-gradient(90deg,rgba(94,162,234,.16),rgba(94,162,234,.06) 45%,rgba(94,162,234,.015)),linear-gradient(180deg,#16202f,#121a27)}
.rp-table tbody tr.is-open.is-planned>td:first-child{box-shadow:inset 3px 0 0 var(--blue,#5ea2ea),inset 0 1px 0 rgba(94,162,234,.22)}
.rp-table tbody tr.rp-detail{background:linear-gradient(180deg,#121a27,#0f1520)}
.rp-table tbody tr.rp-detail.is-planned{background:linear-gradient(90deg,rgba(94,162,234,.12),rgba(94,162,234,.03) 45%,rgba(94,162,234,0)),linear-gradient(180deg,#121a27,#0f1520)}
.rp-table tbody tr.rp-detail>td{padding:4px 12px 12px 56px;box-shadow:inset 3px 0 0 #9cc8ff,inset 0 -2px 0 #05070a,inset 0 -3px 6px rgba(0,0,0,.35)}
.rp-table tbody tr.rp-detail.is-planned>td{box-shadow:inset 3px 0 0 var(--blue,#5ea2ea),inset 0 -2px 0 #05070a,inset 0 -3px 6px rgba(0,0,0,.35)}
.rp-detail-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 6px;font-size:12px}
.rp-detail-head strong{font:700 11px/1.3 var(--font-ui,sans-serif);text-transform:uppercase;letter-spacing:.08em;color:#9cc8ff}
.rp-detail.is-planned .rp-detail-head strong{color:var(--blue-hi,#9cc8ff)}
.rp-materials{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:0;padding:0}
.rp-material{display:flex;align-items:center;gap:8px;margin:0;min-width:0;font-size:13.5px}
.rp-material>a,.rp-material>span:not(.gob):not(.rp-qty){font-weight:600;text-decoration:none}
.rp-material>a:hover{text-decoration:underline}
.rp-qty{font:600 13px/1 var(--font-num,monospace);color:var(--ink2,#bdb9b0)}
.rp-expand{flex:none;margin-left:auto;width:30px;height:30px;min-height:30px!important;min-width:30px!important;padding:0;border-radius:4px;background:transparent;box-shadow:0 0 0 1px #2c3340;color:var(--ink2,#bdb9b0);display:grid;place-items:center}
.rp-expand::before{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.rp-expand[aria-expanded=true]{color:#9cc8ff;box-shadow:0 0 0 1px #4c6b95;background:#0e1622}
.rp-expand[aria-expanded=true]::before{transform:translateY(2px) rotate(-135deg)}
.rp-expand:hover{color:var(--fg);box-shadow:0 0 0 1px #4c6b95}
.rp-table tbody tr.is-known .rp-title>a{opacity:.85}
.rp-table tbody tr.is-known .rp-icon::before{content:'';position:absolute;right:0;bottom:0;width:12px;height:12px;background:#8fd9a0;clip-path:polygon(100% 0,100% 100%,0 100%);z-index:2}
.rp-identity{display:flex;align-items:center;gap:10px;min-width:15rem}
.rp-title{min-width:0;display:flex;flex-direction:column;gap:1px}
.rp-title>a{font:620 15px/1.2 var(--font-display,Georgia,serif);text-decoration:none}
.rp-title>a:hover{text-decoration:underline}
.rp-icon{flex:none;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#3a3326,#120f0a 75%)}
.rp-icon:not([data-painted])::after{content:'?';box-shadow:none;position:static;color:#e8c766;font:800 13px Georgia,serif}
.rp-skill{font-family:var(--font-num,monospace);font-size:13.5px;white-space:nowrap}
.rp-table td:last-child{min-width:14rem}
.rp-table button{min-height:32px;min-width:6.4rem;white-space:nowrap;cursor:pointer;font-size:12.5px}
.rp-table .rp-known.is-on{background:#16281c;color:#8fd9a0;box-shadow:inset 0 1px 3px rgba(0,0,0,.6),0 0 0 1px #2f5a3a}
.rp-table input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--blue,#5ea2ea)}
.rp-table summary{cursor:pointer;padding:3px 0;font-size:12.5px;color:var(--ink2,#bdb9b0)}
.rp-table details[open]>summary{margin-bottom:4px}
.rp-paging{display:flex;gap:10px;align-items:center;margin:12px 0}
.rp-table button:focus-visible,.rp-table input:focus-visible,.rp-table summary:focus-visible,.rp-filters :focus-visible{outline:2px solid #9cc8ff;outline-offset:2px}
.rp-note{margin:4px 0}
.rp-side{display:inline-block;margin-left:6px;padding:0 6px;border-radius:3px;box-shadow:inset 0 0 0 1px #343c4b;font-size:11px;white-space:nowrap;color:var(--ink2,#bdb9b0)}
.rp-hidden-note{display:block}
.rp-faction-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;border-radius:3px;background:#0c0f15;box-shadow:inset 3px 0 0 #f2c35a,0 0 0 1px #232a35}.rp-faction-note[hidden]{display:none}
.rp-faction-note button,.rp-paging button{min-height:34px;cursor:pointer}
.rp-rail{position:sticky;top:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.rp-plan{margin:0;padding:0 14px 12px;border-radius:6px;background:linear-gradient(180deg,#1c1812,#16130e);box-shadow:0 0 0 1px #3a3022,inset 0 1px 0 rgba(255,255,255,.06),0 12px 28px rgba(0,0,0,.45)}
.rp-plan h2,.rp-plan h3,.rp-plan h4{display:flex;align-items:center;min-height:40px;margin:0 -14px 10px;padding:0 14px;font:700 13px/1.3 var(--font-ui,sans-serif);text-transform:uppercase;letter-spacing:.08em;color:#e7c9a2;box-shadow:inset 0 -1px 0 #080604,0 1px 0 #33291c}
.rp-plan-status{margin:0 0 10px;font-weight:650;color:var(--fg,#e9e6df)}
.rp-links{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.rp-links a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 13px;border-radius:4px;background:#241e15;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px #4a3b28;color:var(--fg,#e9e6df);font-weight:650;font-size:13px;text-decoration:none}
.rp-links a.rp-atlas{background:linear-gradient(180deg,#7ab4ee,#4f92dc);color:var(--blue-ink,#06111d);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 0 var(--blue-deep,#1f4a78)}
.rp-links a[hidden]{display:none}
.rp-rail>.rp-note,.rp-rail>.rp-sub{font-size:12px;color:var(--ink3,#8e897f);margin:0 4px}
.web-map-recipes{margin:0 -4px}.web-map-recipes .map-viewport{height:clamp(220px,32vh,320px);min-height:220px}.web-map-recipes .map-canvas{touch-action:pan-x pan-y}.web-map-recipes .map-status{font-size:12px;margin:6px 0}
[data-rp-map][hidden]{display:none}
@media(max-width:71.875rem){.rp-layout{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:63.99rem){.rp-layout{grid-template-columns:minmax(0,1fr)}.rp-rail{position:static;order:-1}}
@media(max-width:600px){.rp-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.rp-filters label:first-child{grid-column:1/-1}.rp-filters input{width:100%;box-sizing:border-box}.rp-filters select{width:100%}
  .rp-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.rp-table,.rp-table tbody{display:block}
  .rp-table tr{display:grid;grid-template-columns:44px auto minmax(0,1fr);gap:4px 8px;padding:8px 10px 10px 12px;align-items:center}
  .rp-table tbody tr>*{box-shadow:none}.rp-table tbody tr{box-shadow:inset 0 -1px 0 #20262f}
  .rp-table td{display:block;padding:0;min-width:0!important}.rp-table td:nth-child(1){grid-column:1;grid-row:1}.rp-table td:nth-child(3){grid-column:2/-1;grid-row:1}
  .rp-table td:nth-child(2){grid-column:1/3;grid-row:2}.rp-table td:nth-child(4){grid-column:3;grid-row:2;font-size:12px}.rp-table td:nth-child(4)::before{content:"Skill ";color:var(--muted)}
  .rp-table td:nth-child(5){grid-column:1/-1}.rp-table button{min-width:0;min-height:40px}.rp-table input[type=checkbox]{width:26px;height:26px;margin:9px}
  .rp-identity{min-width:0}.web-map-recipes .map-viewport{height:40vh;min-height:220px}
  .rp-table tr.rp-detail{display:block;padding:0}.rp-table tr.rp-detail>td{display:block;padding:4px 12px 12px 14px}.rp-materials{flex-direction:column;gap:8px}
  .rp-table tbody tr.rp-row>*{box-shadow:none!important}.rp-table tbody tr.rp-detail{box-shadow:none}.rp-table tbody tr.rp-row.is-planned{box-shadow:inset 3px 0 0 var(--blue,#5ea2ea),inset 0 1px 0 rgba(94,162,234,.22),inset 0 -1px 0 #0a0d12}
  .rp-table tbody tr.rp-row.is-open{box-shadow:inset 3px 0 0 #9cc8ff,inset 0 1px 0 rgba(156,200,255,.18)}.rp-table tbody tr.rp-row.is-open.is-planned{box-shadow:inset 3px 0 0 var(--blue,#5ea2ea),inset 0 1px 0 rgba(94,162,234,.22)}.rp-expand{width:40px;height:40px;min-height:40px!important;min-width:40px!important}}
