:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#111315;color:#f2f1ed;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #111315;--panel: #1a1d20;--panel-2: #202428;--line: #33383d;--line-soft: #292e33;--text: #f2f1ed;--muted: #a9b0b4;--faint: #737b81;--accent: #d6b04a;--green: #4fb477;--red: #db6d62;--blue: #68a8cc;--violet: #b18bd1}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,rgba(214,176,74,.08),transparent 240px),var(--bg)}button,input,select{font:inherit}.appShell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid var(--line);background:#151719;padding:20px 14px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:12px;align-items:center;padding:6px 6px 18px}.brandMark{width:42px;height:42px;border:1px solid #5e532f;background:linear-gradient(135deg,#2b2a22,#141516);color:var(--accent);display:grid;place-items:center}.brandTitle{font-weight:750;font-size:18px}.brandSub{color:var(--muted);font-size:12px;margin-top:2px}.accountPanel{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 4px 16px;padding:10px;border:1px solid var(--line-soft);background:#181b1f}.accountPanel div{display:grid;gap:2px;min-width:0}.accountPanel strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accountPanel span{color:var(--muted);font-size:12px}.navTabs{display:grid;gap:6px;margin-bottom:18px}.navTab{min-height:42px;border:1px solid transparent;background:transparent;color:var(--muted);display:flex;align-items:center;gap:10px;padding:0 10px;cursor:pointer;text-align:left}.navTab.active{background:#22252a;color:var(--text);border-color:var(--line)}.navTab:disabled{cursor:default;opacity:.42}.filterPanel{border-top:1px solid var(--line-soft);padding-top:14px}.panelTitle{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin:0 6px 10px}.categoryList{display:grid;gap:4px}.categoryButton{min-height:34px;border:1px solid transparent;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:space-between;padding:0 9px;cursor:pointer;text-align:left}.categoryButton:hover,.categoryButton.selected{background:#212529;border-color:var(--line-soft);color:var(--text)}.categoryButton span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.categoryButton span:last-child{color:var(--faint);font-size:12px;margin-left:10px}.workspace{min-width:0;padding:22px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}h1{margin:0;font-size:30px;line-height:1.1}.topbar p{margin:8px 0 0;color:var(--muted);max-width:640px}.topbarMeta{color:var(--faint);font-size:12px;padding-top:8px;white-space:nowrap}.topbarActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.metricsGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.metric{min-height:78px;border:1px solid var(--line);background:var(--panel);display:flex;align-items:center;gap:12px;padding:14px}.metricIcon{width:38px;height:38px;display:grid;place-items:center;background:#252a2e;color:var(--accent);border:1px solid var(--line-soft)}.metricLabel{color:var(--muted);font-size:12px}.metricValue{font-weight:780;font-size:22px;margin-top:3px}.craftPlanner{display:grid;gap:14px}.craftTop{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);gap:14px;align-items:start}.craftSearch{display:grid;gap:10px}.craftSuggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.craftSuggestion{min-width:0;min-height:54px;border:1px solid var(--line);background:var(--panel);color:var(--text);display:grid;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:7px;cursor:pointer;text-align:left}.craftSuggestion:hover{border-color:#596168;background:#20252a}.craftSuggestion .itemIcon{width:38px;height:38px}.craftSuggestion span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.craftSummary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.craftPanel{border:1px solid var(--line);background:var(--panel)}.emptyCraftState{padding:22px;color:var(--muted)}.craftLineList{display:grid}.craftLine{min-height:74px;display:grid;grid-template-columns:minmax(260px,1.5fr) 96px repeat(4,minmax(92px,.6fr)) 42px;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line-soft)}.craftLine:last-child{border-bottom:0}.quantityControl{display:grid;gap:5px;color:var(--muted);font-size:12px}.quantityControl input{width:84px;height:34px;border:1px solid var(--line);background:#111315;color:var(--text);padding:0 9px;outline:0;font-variant-numeric:tabular-nums}.quantityControl input:focus{border-color:#d6b04aa6}.craftNumbers{display:grid;gap:3px;font-variant-numeric:tabular-nums}.craftNumbers span{color:var(--faint);font-size:12px}.craftNumbers strong{font-size:15px}.materialGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px}.materialRow{min-width:0;min-height:56px;display:flex;align-items:center;gap:10px;padding:8px;background:#14171a;border:1px solid #242a30}.materialRow .itemIcon{width:38px;height:38px}.recognitionTab{display:grid;gap:14px}.recognitionGrid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);gap:14px;align-items:stretch}.uploadZone,.providerPanel,.recognitionFiles{border:1px solid var(--line);background:var(--panel)}.uploadZone{min-height:230px;display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted);padding:24px;text-align:center}.uploadZone strong{color:var(--text);font-size:18px}.uploadButton{position:relative;overflow:hidden}.uploadButton input{position:absolute;inset:0;opacity:0;cursor:pointer}.providerRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}.providerRow{min-height:58px;display:flex;align-items:center;gap:10px;padding:9px;background:#14171a;border:1px solid #242a30}.providerDot{width:10px;height:10px;border-radius:50%;background:var(--red);flex:0 0 auto}.providerDot.ready{background:var(--green)}.providerRow strong,.providerRow span{display:block}.providerRow span{color:var(--muted);font-size:12px;margin-top:2px}.providerNote{margin:0 12px 12px;padding:10px;border:1px solid rgba(104,168,204,.35);background:#68a8cc14;color:#9bc6de;font-size:12px}.screenshotGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px}.screenshotCard{min-width:0;border:1px solid var(--line-soft);background:#14171a}.screenshotPreview{position:relative;background:#0f1113;border-bottom:1px solid var(--line-soft)}.screenshotCard img{width:100%;aspect-ratio:4 / 3;object-fit:contain;display:block;background:#0f1113;border-bottom:1px solid var(--line-soft)}.screenshotPreview img{height:auto;aspect-ratio:auto;border-bottom:0}.slotBox{position:absolute;display:grid;place-items:start end;min-width:22px;min-height:22px;padding:2px 4px;border:1px solid rgba(104,168,204,.85);background:#68a8cc14;color:#b9e4ff;font-size:10px;line-height:1;font-weight:760;cursor:pointer;font-variant-numeric:tabular-nums}.slotBox:hover,.slotBox:focus-visible{outline:2px solid rgba(214,176,74,.78);outline-offset:1px}.slotBox.occupied{border-color:#4fb477e6;background:#4fb4771a;color:#b6efc9}.slotBox.locked{border-color:#db6d62f2;background:#db6d6229;color:#ffd0cc}.slotBox.corrected{border-color:#d6b04af2;background:#d6b04a29;color:#f6d98c}.slotBox.selected{box-shadow:0 0 0 2px #d6b04a8c}.screenshotMeta{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px}.screenshotMeta strong,.screenshotMeta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screenshotMeta strong{font-size:13px}.screenshotMeta span{color:var(--muted);font-size:12px;margin-top:2px}.recognitionMatches{display:grid;gap:10px;padding:0 12px 12px}.matchPanel{border:1px solid var(--line-soft);background:#111417;padding:10px}.matchPanel>strong{display:block;margin-bottom:8px}.recognizedSummary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px;margin-bottom:10px}.recognizedItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;border:1px solid var(--line-soft);background:#171b1e;padding:7px;min-height:50px}.recognizedItem span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recognizedItem strong{color:var(--accent)}.recognizedItem em{grid-column:1 / -1;color:var(--muted);font-size:11px;font-style:normal}.correctionPanel{display:grid;gap:10px;border-top:1px solid var(--line-soft);padding:12px}.correctionHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.correctionHeader strong,.correctionHeader span{display:block}.correctionHeader span{color:var(--muted);font-size:12px;margin-top:2px}.correctionBadge{border:1px solid rgba(214,176,74,.45);background:#d6b04a1a;color:#f0cd75;padding:4px 8px;font-size:12px;white-space:nowrap}.correctionForm{display:grid;grid-template-columns:130px minmax(160px,.7fr) minmax(220px,1fr) 92px 90px 120px;gap:8px;align-items:end}.correctionForm label{display:grid;gap:5px;color:var(--muted);font-size:12px;min-width:0}.correctionForm input,.correctionForm select{width:100%;height:34px;border:1px solid var(--line);background:#111315;color:var(--text);padding:0 9px;outline:0;min-width:0}.correctionForm input:focus,.correctionForm select:focus{border-color:#d6b04aa6}.correctionItemSelect,.correctionNotes{min-width:0}.correctionCheckbox{min-height:34px;display:flex;align-items:center;gap:7px;padding-bottom:1px}.correctionCheckbox input{width:16px;height:16px}.correctionActions{grid-column:1 / -1;display:flex;align-items:center;gap:10px;min-height:34px}.correctionOk{color:#b6efc9;font-size:12px}.correctionError{color:#ffd0cc;font-size:12px}.correctionEmpty{padding:10px 0}.matchList{display:grid;gap:4px}.matchRow{display:grid;grid-template-columns:44px minmax(0,1fr) 54px 48px 74px 68px;gap:8px;align-items:center;width:100%;min-height:28px;color:var(--muted);font-size:12px;text-align:left;cursor:pointer;background:transparent;border:0;border-top:1px solid rgba(255,255,255,.04);padding-top:4px}.matchRow:hover,.matchRow:focus-visible{background:#ffffff09;outline:1px solid rgba(214,176,74,.35)}.matchRow.corrected{color:#d8c687}.matchRow.selected{background:#d6b04a1a;color:var(--text)}.matchRow span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.controlBar{display:grid;grid-template-columns:minmax(240px,1fr) 210px 190px;gap:10px;margin-bottom:14px}.costControlBar{grid-template-columns:minmax(240px,1fr) 210px}.searchBox,.selectControl{min-height:44px;border:1px solid var(--line);background:var(--panel);display:flex;align-items:center;gap:10px;padding:0 12px;color:var(--faint)}.searchBox input,.selectControl select{width:100%;border:0;outline:0;background:transparent;color:var(--text);min-width:0}.toggleButton{min-height:44px;border:1px solid var(--line);background:var(--panel);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.toggleButton.selected{color:#f0cd75;border-color:#d6b04a8c;background:#d6b04a1a}.selectControl select{appearance:none}.tableShell{border:1px solid var(--line);background:var(--panel);min-width:0}.tableHeader{min-height:44px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:var(--muted);font-size:13px}.tableHeader div:last-child{display:flex;align-items:center;gap:7px}.priceTable,.costTable{width:100%;overflow:auto}.costRow{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(160px,.8fr) 140px 210px 150px;min-width:980px;min-height:68px;border-bottom:1px solid var(--line-soft);align-items:center}.costRow.heading{min-height:38px;background:#181b1e;color:var(--faint);font-size:12px;text-transform:uppercase}.costRow>div{padding:10px 12px;min-width:0}.costOverrideButton{min-height:34px;min-width:96px;border:1px solid var(--line);background:#202428;color:var(--muted);cursor:pointer;font-variant-numeric:tabular-nums}.costOverrideButton.active{color:#f0cd75;border-color:#d6b04a8c;background:#d6b04a1a;font-weight:720}.inlineEditor{display:flex;align-items:center;gap:7px}.inlineEditor input{width:112px;height:34px;border:1px solid var(--line);background:#111315;color:var(--text);padding:0 9px;outline:0;font-variant-numeric:tabular-nums}.priceRow{display:grid;grid-template-columns:minmax(280px,1.8fr) minmax(160px,.82fr) 118px 118px 106px 106px 116px 116px 130px;min-width:1280px;border-bottom:1px solid var(--line-soft);align-items:center}.itemButtonRow{width:100%;border-top:0;border-right:0;border-left:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.priceRow.heading{min-height:38px;background:#181b1e;color:var(--faint);font-size:12px;text-transform:uppercase}.priceRow:not(.heading){min-height:70px}.priceRow:not(.heading):hover{background:#20252a}.priceRow>div{padding:10px 12px;min-width:0}.itemCell{display:flex;align-items:center;gap:12px}.chevron{color:var(--faint);flex:0 0 auto;transition:transform .16s ease}.chevron.open{transform:rotate(180deg);color:var(--accent)}.itemIcon{width:46px;height:46px;flex:0 0 auto;position:relative;border:1px solid #4a4f54;background:linear-gradient(135deg,#d6b04a29,#68a8cc1f),#17191b;display:grid;place-items:center;color:#e8dca9;font-weight:760;font-size:13px;overflow:hidden;padding:4px}.itemIcon img{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);object-fit:contain;display:block}.itemName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.itemMeta{color:var(--faint);font-size:12px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.categoryPill,.source{display:inline-flex;align-items:center;max-width:100%;min-height:26px;padding:0 8px;border:1px solid var(--line);background:#181b1e;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sourceManual{color:#f0cd75;border-color:#d6b04a73;background:#d6b04a1a}.sourceRecipe{color:#8fceaa;border-color:#4fb47773;background:#4fb4771a}.sourceWorkbook{color:#9bc6de;border-color:#68a8cc73;background:#68a8cc1a}.sourceMissing{color:#f1a59d;border-color:#db6d6273;background:#db6d621a}.priceValue{font-variant-numeric:tabular-nums;font-weight:720}.mutedPrice{color:var(--muted);font-weight:620}.editedPrice{color:#f0cd75}.auctionPrice{color:#9bc6de}.sourceCell{display:flex;align-items:center;gap:8px}.iconOnlyButton,.smallAction,.iconTextButton{border:1px solid var(--line);background:#202428;color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}.iconTextButton:disabled,.smallAction:disabled{cursor:wait;opacity:.58}.iconOnlyButton{width:28px;height:28px;color:var(--muted)}.iconOnlyButton:hover,.smallAction:hover,.iconTextButton:hover{border-color:#596168;color:var(--text)}.smallAction{min-height:34px;padding:0 10px;white-space:nowrap}.smallAction.primary{border-color:#d6b04a8c;background:#d6b04a1f;color:#f0cd75}.iconTextButton{min-height:36px;padding:0 12px;white-space:nowrap}.expandedRow{min-width:1280px;border-bottom:1px solid var(--line);background:#15181b}.expandedInner{padding:14px;display:grid;gap:14px}.tradeEditor,.recipe{border:1px solid var(--line-soft);background:#181c20}.tradeEditor{min-height:58px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px}.expandedTitle{font-weight:720;font-size:14px}.expandedSub{color:var(--muted);font-size:12px;margin-top:4px}.editControls{display:flex;align-items:end;gap:8px}.editControls label{display:grid;gap:5px;color:var(--muted);font-size:12px}.editControls input{width:112px;height:34px;border:1px solid var(--line);background:#111315;color:var(--text);padding:0 9px;outline:0;font-variant-numeric:tabular-nums}.editControls input:focus{border-color:#d6b04aa6}.recipeBlock{display:grid;gap:10px}.recipe{padding:12px}.selectedRecipe{border-color:#4fb4776b}.recipeHeader{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:10px}.recipeHeader strong{display:block}.recipeHeader span,.recipeCost span{color:var(--muted);font-size:12px}.recipeCosts{display:flex;justify-content:flex-end;gap:18px;text-align:right}.recipeCost{text-align:right}.recipeCost strong{font-variant-numeric:tabular-nums;font-size:16px;margin-top:2px}.ingredientGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ingredient{min-width:0;min-height:50px;display:flex;align-items:center;gap:10px;padding:7px;background:#14171a;border:1px solid #242a30}.ingredient .itemIcon{width:36px;height:36px}.ingredientName{font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredientMeta{color:var(--faint);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loginShell{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,rgba(214,176,74,.08),transparent 260px),var(--bg)}.loginPanel{width:min(420px,100%);display:grid;gap:14px;border:1px solid var(--line);background:var(--panel);padding:24px}.loginPanel h1{margin:0 0 4px}.loginPanel p{margin:0;color:var(--muted)}.loginPanel label{display:grid;gap:7px;color:var(--muted);font-size:13px}.loginPanel input,.userCreatePanel input,.userCreatePanel select,.userRow input,.userRow select{min-height:40px;border:1px solid var(--line);background:#111315;color:var(--text);padding:0 10px}.loginMark{width:54px;height:54px;display:grid;place-items:center;color:var(--accent);border:1px solid #5e532f;background:#181a1b}.usersAdminTab{display:grid;gap:14px}.userCreatePanel{display:grid;grid-template-columns:1.2fr 1.2fr 160px auto;gap:10px;align-items:end;border:1px solid var(--line);background:var(--panel);padding:14px}.userCreatePanel .panelTitle{grid-column:1 / -1;margin:0}.userListPanel{display:grid;border:1px solid var(--line);background:var(--panel)}.userRow{display:grid;grid-template-columns:minmax(220px,1fr) 150px 110px minmax(160px,220px) 100px;gap:10px;align-items:center;padding:12px;border-bottom:1px solid var(--line-soft)}.userRow:last-child{border-bottom:0}.userIdentity{display:grid;gap:4px;min-width:0}.userIdentity strong,.userIdentity span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.userIdentity span{color:var(--muted);font-size:12px}.successBanner{padding:10px 12px;margin-bottom:14px;border:1px solid rgba(79,180,119,.45);background:#4fb4771a;color:#91d6ad}.errorBanner,.loadingState{border:1px solid rgba(219,109,98,.45);background:#db6d621a;color:#f1a59d}.errorBanner{padding:10px 12px;margin-bottom:14px}.loadingState{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:10px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.appShell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.navTabs,.categoryList,.metricsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.controlBar,.craftTop,.recognitionGrid{grid-template-columns:1fr}.correctionForm{grid-template-columns:repeat(3,minmax(0,1fr))}.craftLine{grid-template-columns:minmax(220px,1fr) 96px repeat(2,minmax(92px,.5fr)) 42px}.craftLine .craftNumbers:nth-of-type(3),.craftLine .craftNumbers:nth-of-type(4){display:none}.materialGrid,.screenshotGrid,.ingredientGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.tradeEditor,.recipeHeader,.userCreatePanel,.userRow,.editControls{align-items:stretch;display:grid}.userCreatePanel,.userRow{grid-template-columns:1fr}}@media(max-width:620px){.workspace{padding:14px}.topbar{display:grid}.topbarActions{justify-content:stretch}.topbarActions .iconTextButton{flex:1 1 150px}.topbarMeta{white-space:normal}.metricsGrid,.navTabs,.categoryList,.craftSummary,.craftSuggestions{grid-template-columns:1fr}.craftLine{grid-template-columns:1fr;align-items:stretch}.craftLine .craftNumbers:nth-of-type(3),.craftLine .craftNumbers:nth-of-type(4){display:grid}.materialGrid,.providerRows,.screenshotGrid,.correctionForm{grid-template-columns:1fr}.correctionActions{align-items:stretch;display:grid}.matchRow{grid-template-columns:36px minmax(0,1fr) 52px}.matchRow span:nth-child(4),.matchRow span:nth-child(5),.matchRow span:nth-child(6){display:none}h1{font-size:26px}.ingredientGrid{grid-template-columns:1fr}}.itemIcon{position:relative;overflow:hidden;padding:4px}.itemIcon img{position:absolute;inset:4px;display:block;inline-size:calc(100% - 8px);block-size:calc(100% - 8px);object-fit:contain}
