:root{color-scheme:light;--page-bg: #ffffff;--bg: #efe5cd;--surface: #f7f1e1;--surface-2: #efe3c8;--surface-3: #e9dabb;--line: #c9b78f;--text: #3c3024;--muted: #6f5d44;--muted-2: #8a7558;--gold: #b07d27;--gold-2: #c8902f;--gold-3: #9a6c1c;--brown: #5b3f15;--green: #4f7a33;--red: #b5482a;--input: #fbf7ec;--on-accent: #fff7e6;--shadow: 0 14px 40px rgba(74, 58, 38, .16)}*{box-sizing:border-box}body{min-height:100vh;margin:0;font-family:Onest,Arial,Helvetica,sans-serif;background:linear-gradient(180deg,#ffffff 0 54px,transparent 54px),var(--page-bg);color:var(--text)}button,input{font:inherit}button{min-height:42px;border:1px solid transparent;border-radius:12px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}button:hover{transform:translateY(-1px)}button:disabled,input:disabled{cursor:not-allowed;opacity:.58;transform:none}button:disabled:hover{transform:none}button:focus-visible,input:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.app{position:relative;width:min(1220px,calc(100% - 48px));margin:0 auto;padding:24px 0 40px}.language-switcher{display:flex;justify-content:flex-end;gap:8px;margin-bottom:10px}.lang-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:34px;min-height:34px;padding:0;border-color:var(--line);background:var(--surface);font-size:20px;line-height:1}.lang-button.active{border-color:var(--gold);background:var(--surface-2);box-shadow:0 0 0 2px #b07d272e}.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.identity{display:flex;gap:18px;align-items:center;min-width:0}.identity-content{display:grid;gap:12px;min-width:0}.item-icon{width:76px;height:76px;flex:0 0 auto;image-rendering:pixelated;border:1px solid var(--line);border-radius:12px;background:var(--surface-3);padding:10px}h1{margin:0 0 8px;color:var(--text);font-size:32px;line-height:1.08;letter-spacing:0}.subtitle{margin:0;color:var(--muted);line-height:1.5}.source{color:var(--gold-2);text-decoration:none}.source:hover{text-decoration:underline}.controls{display:grid;grid-column:2;grid-row:1 / span 2;grid-template-columns:170px 1fr;gap:12px;align-items:end;min-width:360px}.item-search{grid-column:1 / -1}.search-meta{margin-top:6px;color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}label{display:block;margin-bottom:7px;color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase}input[type=number],input[type=search]{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--input);color:var(--text)}.quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.add-craft{grid-column:1 / -1}.craft-cart{display:grid;grid-column:1;gap:8px;min-width:0}.craft-cart-title{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase}.craft-cart-list{display:grid;gap:8px;max-height:238px;overflow:auto}.craft-cart-row{display:grid;grid-template-columns:minmax(0,1fr) 82px 42px;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-3)}.craft-cart-row input{min-height:38px;padding:8px 10px}.craft-remove{display:inline-flex;align-items:center;justify-content:center;width:42px;height:38px;min-height:38px;padding:0;border-color:var(--line);background:transparent;color:var(--muted);font-size:18px;font-weight:900}.craft-remove:hover{border-color:var(--red);background:#b5482a1f;color:var(--text)}.craft-cart-empty{padding:10px 12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:13px;font-weight:700;line-height:1.35}.primary{background:var(--gold);color:var(--on-accent);font-weight:700}.primary:hover{background:var(--gold-2)}.secondary{background:transparent;border-color:var(--muted);color:var(--text);font-weight:600}.secondary:hover{border-color:var(--brown);background:var(--brown);color:var(--gold-2)}.secondary.active{border-color:var(--gold);background:var(--gold);color:var(--on-accent)}.craft-progress{display:grid;gap:10px;margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.craft-progress-header{display:flex;justify-content:space-between;gap:14px;align-items:center;color:var(--text);font-weight:800}.craft-progress-meta{color:var(--muted);font-size:13px;font-weight:700;text-align:right}.craft-progress .progress{height:13px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.stat{min-height:92px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.stat span{display:block;color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase}.stat strong{display:block;margin-top:8px;color:var(--text);font-size:26px;line-height:1.1}.stat .accent{color:var(--gold-2)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.materials{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.empty-materials{padding:22px 16px;color:var(--muted);font-weight:800;line-height:1.45}.item-ref{display:flex;min-width:0;gap:10px;align-items:center}.item-ref img{width:34px;height:34px;flex:0 0 auto;image-rendering:pixelated;border-radius:6px;background:var(--surface-3);padding:4px}.item-ref span{min-width:0;overflow-wrap:anywhere}.item-qty{color:var(--gold);font-weight:900;white-space:nowrap}.number{color:var(--text);font-weight:800}.missing{color:var(--red);font-weight:900}.ready{color:var(--gold);font-weight:900}.progress{height:8px;overflow:hidden;border:1px solid rgba(60,48,36,.12);border-radius:999px;background:var(--surface-3)}.progress-fill{width:0%;height:100%;border-radius:inherit;background:var(--gold);transition:width .16s ease}.fireworks-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .22s ease;z-index:40}.fireworks-canvas.active{opacity:1}[data-progress-value]{color:var(--text)}.side-panel{display:grid;gap:12px}.actions,.output{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px}.actions{display:grid;gap:10px}.sync-status{display:flex;align-items:center;gap:9px;min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-3);color:var(--muted);font-size:13px;font-weight:800}.sync-dot{width:9px;height:9px;flex:0 0 auto;border-radius:999px;background:var(--muted);box-shadow:0 0 0 3px #6f5d4429}.sync-status.online .sync-dot{background:var(--green);box-shadow:0 0 0 3px #4f7a3333}.sync-status.saving .sync-dot{background:var(--gold);box-shadow:0 0 0 3px #b07d2738}.sync-status.connecting .sync-dot{background:var(--gold-2);box-shadow:0 0 0 3px #c8902f38}.sync-status.error .sync-dot{background:var(--red);box-shadow:0 0 0 3px #b5482a33}.output-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--text);font-weight:800}.output-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;color:var(--muted);line-height:1.4}.output-list li{display:flex;justify-content:space-between;gap:14px;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--line)}.output-list li:last-child{border-bottom:0;padding-bottom:0}.exchange-rate{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:700}.exchange-cost{display:grid;gap:2px;text-align:right;white-space:nowrap}.exchange-cost small{color:var(--muted);font-size:11px;font-weight:800}.plan-row{display:grid;grid-template-columns:minmax(240px,1.45fr) minmax(104px,.46fr) minmax(96px,.46fr);gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface)}.plan-row:last-child{border-bottom:0}.plan-row.header{min-height:46px;color:var(--gold-2);font-size:12px;font-weight:700;text-transform:uppercase;background:var(--surface-2)}.plan-name{min-width:0;padding-left:calc(var(--depth, 0) * 18px);font-weight:800;overflow-wrap:anywhere}.plan-row.subitem-row{background:linear-gradient(90deg,rgba(176,125,39,.16),var(--surface));box-shadow:inset 4px 0 0 var(--gold)}.plan-row.subitem-row .plan-name{position:relative;padding-left:calc((var(--depth, 0) * 18px) + 16px)}.plan-row.subitem-row .plan-name:before{content:"";position:absolute;left:calc(var(--depth, 0) * 18px);top:50%;width:10px;height:2px;border-radius:999px;background:var(--gold);transform:translateY(-50%)}.plan-name.has-subitems{cursor:pointer}.plan-name.has-subitems .item-ref span{color:var(--gold-2)}.plan-name.has-subitems:hover .item-ref span,.plan-name.has-subitems:focus-visible .item-ref span{color:var(--gold-3)}.plan-name.has-subitems:focus-visible{border-radius:8px;outline:2px solid var(--gold-2);outline-offset:4px}.toast{min-height:22px;margin-top:12px;color:var(--gold-2);font-size:13px;font-weight:600}footer{margin-top:18px;color:var(--muted);font-size:13px;line-height:1.5;display:flex;flex-direction:column;gap:12px}.credit{display:inline-flex;align-items:center;gap:8px;width:fit-content;color:var(--muted);text-decoration:none}.credit:hover{color:var(--text)}.credit-logo{width:30px;height:30px;object-fit:contain;transition:transform .16s ease}.credit:hover .credit-logo{transform:scale(1.2)}@media(max-width:980px){.hero,.workspace{grid-template-columns:1fr}.controls{grid-column:auto;grid-row:auto;min-width:0}.craft-cart{grid-column:auto}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.app{width:min(100% - 20px,1180px);padding-top:10px}.hero{padding:18px}.identity{align-items:flex-start}.identity-content{width:100%}.item-icon{width:58px;height:58px;padding:8px}h1{font-size:25px}.craft-progress-header{display:grid;gap:4px}.craft-progress-meta{text-align:left}.plan-row,.plan-row.header{grid-template-columns:1fr 1fr}.plan-row.header{display:none}.plan-name{grid-column:1 / -1}.plan-name{padding-left:0}.plan-row.subitem-row .plan-name{padding-left:22px}.plan-row.subitem-row .plan-name:before{left:4px}.cell{display:grid;gap:4px}.cell:before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}}
