:root{font-family:Inter,Segoe UI,Arial,sans-serif;background:#090f19;color:#e5eaf3;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 10% -20%,#203752,transparent 55%),#090f19}header{display:flex;justify-content:space-between;align-items:center;padding:24px max(24px,calc((100vw - 1320px)/2));border-bottom:1px solid #283546}h1{margin:6px 0;font-size:32px}h2{font-size:19px}.tag{font-size:11px;letter-spacing:2px;color:#6eb5e8;font-weight:800}.user{display:flex;gap:20px;align-items:center}.logout{background:transparent;color:#9fb1c8;border:1px solid #3b4b60;border-radius:8px;padding:10px;cursor:pointer}.shell{max-width:1360px;margin:auto;padding:32px 24px}.panel{background:#111c2b;border:1px solid #2b4056;border-radius:15px;padding:22px;margin-bottom:24px}.filters{display:grid;gap:16px;align-items:end}label{display:block;color:#94a7bd;font-size:12px;margin-bottom:9px}select,input{width:100%;background:#0b1421;color:#e5eaf3;border:1px solid #33465e;padding:13px;border-radius:8px}.primary{display:inline-block;background:#278bdd;border:0;border-radius:9px;color:white;padding:14px 22px;text-decoration:none;font-weight:700;cursor:pointer}.primary:disabled{opacity:.5}.note,.fine{color:#8fabc3;font-size:13px;line-height:1.6}.table-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.table-heading span{font-size:12px;color:#a9bbcf}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;color:#8fabc3;font-size:11px;padding:13px;background:#172537}td{padding:14px 11px;border-top:1px solid #29394c;font-size:13px}.highlight{color:#5bddac;font-weight:700}.empty{text-align:center;padding:34px}.pager{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:18px}.pager button{background:#1a3048;border:1px solid #344d68;color:#d7e5f5;border-radius:7px;padding:10px}.landing{max-width:760px;margin:12vh auto;padding:30px}.landing h1{font-size:clamp(40px,7vw,70px);line-height:1.06}.landing h1 span{display:block;color:#67b9ef}.landing p{font-size:19px;color:#a4b8ce;line-height:1.7}.landing small{display:block;margin-top:50px;color:#71859d}@media(max-width:900px){.filters{grid-template-columns:1fr 1fr}}@media(max-width:550px){.filters{grid-template-columns:1fr}header{padding:16px}.table-heading{display:block}}
.item-cell{display:inline-flex;align-items:center;gap:10px}.item-cell img{width:32px;height:32px;object-fit:contain;border-radius:5px;background:#18273b}.selected-corps,.favorite-list{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:#94a7bd;font-size:12px}.chip{background:#20334b;border:1px solid #385676;color:#d8e9f9;border-radius:20px;padding:8px 12px;cursor:pointer}.chip:hover{background:#2d4c6d}.filters button:not(.primary){background:#1a3048;color:#d7e5f5;border:1px solid #344d68;border-radius:8px;padding:13px;cursor:pointer}th[data-sort]{cursor:pointer;user-select:none}th[data-sort]:hover{color:white;background:#20344d}

.progress-wrap{display:flex;align-items:center;gap:14px;margin-top:15px}.progress-wrap[hidden]{display:none}.progress-wrap progress{flex:1;height:14px;accent-color:#278bdd}.progress-wrap button{background:#1a3048;border:1px solid #344d68;color:#d7e5f5;border-radius:7px;padding:10px;cursor:pointer}

.loading-overlay{position:fixed;inset:0;background:rgba(4,10,18,.88);display:grid;place-items:center;z-index:100;padding:20px}.loading-overlay[hidden]{display:none}.loading-card{width:min(460px,100%);text-align:center;background:#142338;border:1px solid #385676;border-radius:18px;padding:35px}.loading-card p{color:#9fb1c8}.loading-card button{background:#20334b;color:#e5eaf3;border:1px solid #385676;border-radius:9px;padding:12px 18px;cursor:pointer}.spinner{width:48px;height:48px;border:4px solid #34465c;border-top-color:#54b3ff;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 20px}@keyframes spin{to{transform:rotate(360deg)}}.favorite-list{max-height:110px;overflow-y:auto;align-content:start}.selected-corps{max-height:110px;overflow-y:auto}.chip{font-size:12px;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.is-active{background:#23604e;border-color:#4dbb8f;color:#e6fff3}.pager button:disabled{opacity:.35;cursor:default}

.table-heading{align-items:end;flex-wrap:wrap}.table-heading h2{margin:0 0 8px}.table-search{width:min(360px,100%);margin-left:auto}.table-search label{margin-bottom:6px}.table-search input{width:100%;padding:11px 13px}@media(max-width:550px){.table-search{width:100%;margin:12px 0 0}}

.rate-positive{color:#5bddac;font-weight:700}.rate-neutral{color:#f1f5f9;font-weight:700}.rate-negative{color:#ff6d77;font-weight:700}.rate-unpriced{color:#8091a6}.bpc-tag{display:inline-block;margin-left:8px;padding:3px 7px;border-radius:5px;background:#423824;color:#f5c77c;font-size:10px}.favorites-panel{padding:15px 20px}.favorites-heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}.favorites-heading strong{font-size:13px}.favorites-heading span{font-size:12px;color:#94a7bd}.favorites-panel .favorite-list{max-height:none;overflow:visible}

.favorite-entry{display:inline-flex;align-items:center;border:1px solid #385676;border-radius:22px;overflow:hidden;background:#20334b;max-width:100%}.favorite-entry .chip{border:0;border-radius:0;max-width:220px}.favorite-entry .favorite-delete{padding:7px 12px;border:0;border-left:1px solid #385676;background:transparent;color:#f1a3a3;font-size:19px;line-height:1;cursor:pointer}.favorite-entry .favorite-delete:hover{background:#71313c;color:white}.favorite-entry .chip.is-active{background:#23604e}.muted{color:#94a7bd;font-size:12px}

/* LP table: predictable columns and scroll, with sticky item identity */
.scroll{max-width:100%;overflow-x:auto;overflow-y:auto;border:1px solid #2b4056;border-radius:12px;scrollbar-width:thin;scrollbar-color:#42617e #101b2a}
.lp-table{width:max-content;min-width:100%;table-layout:auto;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.lp-table th,.lp-table td{padding:12px 14px;vertical-align:middle;white-space:nowrap;text-align:right;min-width:120px}
.lp-table th:first-child,.lp-table td:first-child{position:sticky;left:0;z-index:2;min-width:245px;max-width:300px;text-align:left;background:#152337;box-shadow:2px 0 8px #090f1970}
.lp-table th:first-child{z-index:4;background:#1a2c42}
.lp-table th:nth-child(2),.lp-table td:nth-child(2){text-align:left;min-width:175px}
.lp-table thead th{position:sticky;top:0;z-index:3;background:#172537;border-bottom:1px solid #39536e}
.lp-table tbody tr{animation:row-appear .24s ease both;transition:background-color .18s ease}
.lp-table tbody tr:hover{background:#20344b}
.lp-table tbody tr:hover td:first-child{background:#20344b}
.lp-table td{border-top:1px solid #29394c}
.lp-table .item-cell{max-width:275px;white-space:normal;line-height:1.35;overflow-wrap:anywhere}
.lp-table .item-cell img{flex:0 0 32px}

.corp-picker input{margin-bottom:7px}
.corp-picker select{margin-bottom:5px}
.filters input:focus,.filters select:focus,.table-search input:focus{outline:2px solid #55aef0;outline-offset:1px}
button,.chip,.favorite-entry{transition:background-color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease}
button:not(:disabled):active{transform:scale(.975)}
.primary:hover:not(:disabled){background:#359fe9;box-shadow:0 4px 18px #278bdd45}
.panel{animation:panel-enter .32s ease both}
.loading-card{animation:panel-enter .25s ease both}
@keyframes panel-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes row-appear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Desktop compact table: override old wide-scroll sizing */
.scroll{overflow:auto}
.lp-table{width:100%;min-width:0;table-layout:fixed}
.lp-table th,.lp-table td{min-width:0;padding:12px 9px;white-space:normal;overflow-wrap:anywhere;font-size:12px}
.lp-table th:first-child,.lp-table td:first-child{position:static;min-width:0;max-width:none;box-shadow:none;width:22%;text-align:left}
.lp-table th:nth-child(2),.lp-table td:nth-child(2){min-width:0;width:14%;text-align:left}
.lp-table th:nth-child(3),.lp-table td:nth-child(3){width:8%}
.lp-table th:nth-child(4),.lp-table td:nth-child(4){width:10%}
.lp-table th:nth-child(5),.lp-table td:nth-child(5){width:11%}
.lp-table th:nth-child(6),.lp-table td:nth-child(6){width:8%}
.lp-table th:nth-child(7),.lp-table td:nth-child(7),.lp-table th:nth-child(8),.lp-table td:nth-child(8){width:13.5%}
.lp-table .item-cell{max-width:none;min-width:0;display:flex;align-items:center;gap:7px}
.lp-table .item-cell img{flex:0 0 28px;width:28px;height:28px}
.market-cell{text-align:right}
.market-price,.market-rate{display:block;white-space:normal}
.market-price{font-size:12px;color:#e4eaf2}
.market-rate{font-size:12px;font-weight:700;margin-top:5px}
@media(max-width:1050px){.shell{padding-left:12px;padding-right:12px}.panel{padding:14px}.lp-table th,.lp-table td{padding:9px 5px;font-size:11px}.lp-table .item-cell img{width:24px;height:24px;flex-basis:24px}}

.table-loading{min-height:245px;display:flex;align-items:center;justify-content:center;gap:22px;padding:24px;border:1px solid #2b4056;border-radius:12px;background:linear-gradient(120deg,#122238,#182c42);animation:panel-enter .24s ease}
.table-loading[hidden],#tableResults[hidden]{display:none!important}
.table-loading .spinner{flex:0 0 42px;margin:0}
.table-loading strong{font-size:15px}
.table-loading p{margin:7px 0;color:#9fb1c8}
.table-loading button{margin-left:auto;white-space:nowrap}
@media(max-width:650px){.table-loading{flex-wrap:wrap;text-align:center}.table-loading button{margin:0 auto}}

/* Unified searchable NPC corporation picker */
.corp-picker{position:relative;min-width:0}
.corp-combo{position:relative}
.corp-combo input{padding-right:34px;margin-bottom:0}
.combo-chevron{position:absolute;right:13px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:22px;line-height:1;color:#9bb9d4}
.corp-options{position:absolute;top:calc(100% - 2px);left:0;right:0;z-index:30;background:#121f30;border:1px solid #44617b;border-radius:10px;box-shadow:0 12px 32px #0009;overflow:hidden}
.corp-options[hidden]{display:none}
.corp-options-info{padding:9px 12px;color:#90abc5;font-size:11px;border-bottom:1px solid #283e55}
#corpOptionList{max-height:275px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
#corpOptionList button{width:100%;border:0;border-radius:0;background:transparent;display:block;text-align:left;padding:11px 13px;color:#e6f0ff;font-size:13px;cursor:pointer;transition:background-color .15s,color .15s}
#corpOptionList button:hover,#corpOptionList button:focus-visible{background:#254662;color:#fff;outline:none}
#corpOptionList button[aria-selected=true]{color:#78caff;background:#1a354f}
.corp-empty{padding:17px 12px;color:#92acc5;font-size:13px}
.filters{overflow:visible}
.table-loading{min-height:235px;justify-content:center;background:#122238;animation:none;gap:18px}
.table-loading .spinner{animation:spin .85s linear infinite;will-change:transform;transform-origin:center}
.loading-description{min-width:210px}
.loading-description p{font-size:12px}
.cancel-button{padding:11px 18px;border-radius:9px;background:#45212a;color:#ffe0e4;border:1px solid #ad5666;cursor:pointer;font-weight:700;transition:background-color .2s,border-color .2s,box-shadow .2s,transform .15s}
.cancel-button:hover{background:#752f3e;color:#fff;border-color:#ed8194;box-shadow:0 4px 17px #a5485a55}
button:not(:disabled):hover,.chip:hover,.pager button:not(:disabled):hover{border-color:#5c9ed2;filter:brightness(1.12)}
button:focus-visible,a:focus-visible{outline:2px solid #6dc5ff;outline-offset:3px}
.logout:hover{color:#fff;background:#263e58}
.pager button:not(:disabled){cursor:pointer}
@media (prefers-reduced-motion:reduce){.table-loading .spinner{animation:none!important}}

/* Keep corporation picker above subsequent cards; animated panels create stacking contexts. */
.filters{position:relative;z-index:15}
.filters:has(.corp-picker.is-open){z-index:50}
.corp-picker.is-open{z-index:60}
.corp-options{z-index:100;top:calc(100% + 5px)}
#corpOptionList button.is-active{background:#2b5375;color:#fff}
.corp-combo input[aria-expanded=true]{border-color:#6cbaef;box-shadow:0 0 0 2px #6cbaef33}

/* Unified control row: prevent the NPC picker from overflowing its grid cell. */
.filters{
  grid-template-columns:minmax(230px,1.35fr) minmax(165px,.88fr) minmax(210px,1.08fr) repeat(3,minmax(155px,.93fr));
  gap:14px;
  align-items:end;
  padding:22px;
}
.filters > div,.filters > button{min-width:0;width:100%}
.filters > div{display:flex;flex-direction:column}
.filters > div label{min-height:20px;margin:0 0 8px;line-height:20px;font-size:12px}
.filters select,.filters .corp-combo input{
  display:block;
  width:100%;
  height:46px;
  padding:0 14px;
  font:inherit;
  font-size:13px;
  line-height:20px;
  box-sizing:border-box;
  margin:0;
}
.filters .corp-combo input{padding-right:38px;text-overflow:ellipsis}
.filters .corp-combo{height:46px;width:100%;min-width:0}
.filters > button:not(.primary),.filters > button.primary{
  height:46px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  padding:0 11px;
  font-size:12px;
  font-weight:600;
  line-height:1.2;
  border-radius:9px;
  align-self:end;
}
.filters > button.primary{font-size:13px;font-weight:700}
.filters > button:disabled{cursor:default}
.filters .corp-options{width:100%}
@media (max-width:1380px){
 .filters{grid-template-columns:minmax(230px,1.45fr) repeat(2,minmax(165px,1fr));row-gap:14px}
 .filters > button{width:100%}
}
@media (max-width:780px){
 .filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px}
 .filters .corp-picker{grid-column:1 / -1}
}
@media (max-width:540px){
 .filters{grid-template-columns:minmax(0,1fr);padding:16px}
 .filters .corp-picker{grid-column:auto}
}

/* Shared controls: consistent field height, button states and menu chevron. */
.filters .corp-combo{display:block;position:relative;height:46px}
.filters .corp-combo input{height:46px;padding:0 47px 0 13px;border-radius:9px}
.filters select{height:46px;border-radius:9px}
.combo-toggle{
 position:absolute;right:1px;top:1px;width:42px;height:44px;
 display:grid;place-items:center;padding:0;
 background:transparent;color:#afc7dd;
 border:0;border-left:1px solid #344c65;border-radius:0 8px 8px 0;
 cursor:pointer;transition:background .17s,color .17s;
}
.combo-toggle:hover,.combo-toggle:focus-visible{background:#263e59;color:#fff}
.chevron-icon{display:block;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}
.combo-toggle[aria-expanded=true] .chevron-icon{transform:translateY(2px) rotate(225deg)}
.filters input:not([type=hidden]),.filters select,.filters>button{transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
.filters select:hover,.filters input:hover{border-color:#5b83a6}
.filters .corp-combo:focus-within input{border-color:#69b5e8;outline:none;box-shadow:0 0 0 2px #69b5e82c}
.filters .corp-combo .combo-toggle{min-width:0;width:42px;align-self:auto;font-size:inherit}
.filters button#corpToggle:hover{filter:none;border-left:1px solid #446684}
.item-cell .item-info{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.item-cell .item-name{font-weight:500;overflow-wrap:anywhere;line-height:1.3}
.tycoon-link{font-size:11px;line-height:1.2;color:#75bff0;text-decoration:none;display:inline-flex;gap:3px;align-items:center;border-radius:4px;white-space:nowrap}
.tycoon-link:hover{color:#c0e9ff;text-decoration:underline}
.tycoon-link:focus-visible{outline:2px solid #69b5e8;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.chevron-icon{transition:none}}

/* Override generic filter-button rules for the dropdown arrow specifically. */
.filters .corp-combo .combo-toggle{
 padding:0;
 height:44px;
 width:42px;
 border:0;
 border-left:1px solid #344c65;
 border-radius:0 8px 8px 0;
 background:transparent;
 color:#afc7dd;
 display:grid;
 place-items:center;
 font-weight:400;
}
.filters .corp-combo .combo-toggle:hover,.filters .corp-combo .combo-toggle:focus-visible{background:#263e59;color:#fff;border-left-color:#446684;filter:none}
.filters{grid-template-columns:repeat(3,minmax(0,1fr))}
.lp-table{table-layout:auto;min-width:980px}
.production-line{display:flex;justify-content:space-between;gap:12px;color:#a9bbcf}
.production-line b{color:#e5eaf3;font-weight:600}
.production-line + .production-line{margin-top:4px}
.auth-page{display:flow-root;min-height:100vh}
.auth-error{margin-top:14px}
.auth-error h1{font-size:clamp(26px,5vw,40px)}
.auth-error p{margin:12px 0 20px;font-size:16px}
.auth-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.auth-actions a{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}
@media(max-width:520px){.auth-actions a{width:100%}}
.lp-table th,.lp-table td{width:auto!important;white-space:nowrap;overflow-wrap:normal}
.lp-table th:first-child,.lp-table td:first-child{position:sticky;left:0;min-width:245px;max-width:300px;white-space:normal;z-index:2}
.lp-table th:first-child{z-index:4}
.item-info small{color:#a9bbcf}
@media(max-width:760px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.filters{grid-template-columns:minmax(0,1fr)}.user{gap:8px;font-size:12px}header h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media(max-width:520px){.lp-table th:first-child,.lp-table td:first-child{width:160px!important;min-width:160px;max-width:160px}.lp-table .item-cell{max-width:142px}.lp-table .item-name{overflow-wrap:anywhere}}

.home-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:20px;
}
.home-card{
  width:min(100%,420px);
  margin:0;
  padding:clamp(22px,5vw,34px);
}
.home-brand{display:flex;align-items:center;gap:12px}
.home-card h1{margin:16px 0 0;font-size:clamp(28px,6vw,40px);line-height:1.12}
.home-caption{margin:10px 0 0;color:#a9bbcf;font-size:14px}
.home-card .primary{margin-top:22px}

.calculator-page header{padding-block:12px}
.calculator-page header h1{margin:2px 0 0;font-size:24px}
.calculator-page .shell{padding-top:16px}
.calculator-controls{margin-bottom:14px;padding:14px}
.calculator-controls .filters{padding:0;gap:10px}
.calculator-controls .filters label{margin-bottom:4px}
.corp-strip{display:flex;align-items:baseline;gap:12px;margin-top:10px}
.corp-strip[hidden]{display:none}
.corp-strip-label{flex:0 0 72px;color:#a9bbcf;font-size:12px}
.calculator-page .table-heading{gap:12px;margin-bottom:12px}
.calculator-page .table-heading h2{display:flex;align-items:center;gap:10px;margin:0 0 4px}
.market-badge{border:1px solid #39536e;border-radius:6px;padding:3px 7px;white-space:nowrap}
#meta:empty{display:none}

@media(min-width:1051px){
  .calculator-controls .filters{
    grid-template-columns:minmax(195px,1fr) 136px 168px auto auto minmax(132px,auto);
  }
}
@media(max-width:520px){
  .calculator-controls .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calculator-controls .corp-picker,.calculator-controls #load{grid-column:1 / -1}
  .calculator-controls .filters > div label{font-size:11px}
  .calculator-page .table-heading .table-search{margin-top:8px}
}

