@font-face{font-family:Guide;src:url('assets/display.otf') format('opentype');font-weight:400;font-display:swap}
:root{color-scheme:dark;--bg:#07121f;--surface:#0d202d;--raised:#132b3a;--line:#2b4555;--ink:#eef7fb;--muted:#abc0ce;--cyan:#1ecafb;--yellow:#fde133;--pink:#ff55d8;--teal:#63e0c5;--orange:#ff9760;--strike:var(--pink);font:15px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--glow:0 0 26px #1ecafb28}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a{color:var(--cyan);text-underline-offset:4px}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button,input,select,textarea{border-radius:8px}button{color:inherit;background:var(--raised);border:1px solid var(--line);min-height:42px;padding:9px 15px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .16s,color .16s,border-color .16s}button:hover:not(:disabled){background:#1c3b4e;border-color:#57798d}button.primary{background:var(--cyan);color:#04141d;border-color:transparent;box-shadow:var(--glow)}button.primary:hover{background:#73dfff}button.warm{background:var(--yellow);color:#211c03;border-color:transparent}button.danger{color:#ffb7b6;border-color:#875050}button.quiet{border-color:transparent;background:transparent}button.small{padding:6px 10px;min-height:36px;font-size:.85rem}button.iconbutton{width:42px;padding:9px}svg.icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}input,select,textarea{background:#081924;color:var(--ink);border:1px solid #486477;padding:10px 12px;max-width:100%;min-height:43px;caret-color:var(--cyan)}input[type=number]{font-variant-numeric:tabular-nums}input[type=checkbox]{appearance:none;min-height:0;width:24px;height:24px;margin:0;display:grid;place-content:center;border:1.5px solid #68899b;cursor:pointer;border-radius:6px;padding:0}input[type=checkbox]:checked{background:var(--cyan);border-color:var(--cyan)}input[type=checkbox]:checked:after{content:'';width:10px;height:5px;border:solid #052330;border-width:0 0 2px 2px;transform:rotate(-45deg) translateY(-1px)}textarea{resize:vertical;width:100%;min-height:95px}label{display:grid;gap:6px;font-size:.9rem;color:#c7d8e2}::placeholder{color:#93abba}::selection{background:#0d6984;color:#fff}:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#34536a;border-radius:8px}::-webkit-scrollbar-track{background:var(--bg)}h1,h2,h3,p{margin:0}h1,h2,.brand-name{font-family:Guide,Georgia,serif;font-weight:400}h1{font-size:clamp(2.1rem,4vw,3rem);line-height:1.12;letter-spacing:-.025em;text-wrap:balance}h2{font-size:1.7rem;line-height:1.2}h3{font-size:1.07rem;font-weight:600}.muted{color:var(--muted)}.tiny{font-size:.79rem}.mono{font-variant-numeric:tabular-nums}.boot{padding:40px}.skip{position:fixed;z-index:100;top:-90px;left:12px;background:var(--yellow);color:#000;padding:12px}.skip:focus{top:10px}.ambient{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden;background:radial-gradient(ellipse at 100% 5%,#0b496233,transparent 50%),radial-gradient(ellipse at 0 90%,#0e6b5918,transparent 50%)}.ambient i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--cyan);opacity:.3;box-shadow:0 0 12px 3px #1ecafb40;animation:mote 12s ease-in-out infinite alternate}.ambient i:nth-child(1){left:26%;top:18%}.ambient i:nth-child(2){left:75%;top:75%;animation-delay:-5s;background:var(--yellow)}.ambient i:nth-child(3){left:51%;top:82%;animation-delay:-8s}.ambient i:nth-child(4){left:95%;top:15%;animation-delay:-3s}.ambient i:nth-child(5){left:40%;top:40%;animation-delay:-9s}@keyframes mote{to{transform:translate(12px,-30px);opacity:.75}}body[data-motion=off] *,body[data-motion=off] *:before,body[data-motion=off] *:after{animation:none!important;transition:none!important}body[data-glow=off]{--glow:none}body[data-glow=off] .ambient{display:none}body[data-strike=cyan]{--strike:var(--cyan)}
.topbar{height:80px;display:flex;justify-content:space-between;align-items:center;padding:0 32px;border-bottom:1px solid var(--line);background:#07121ff2;gap:24px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink)}.brand img{width:38px;height:42px;filter:drop-shadow(0 0 12px #1ecafb44)}.brand-name{font-size:1.6rem;line-height:1.1}.brand small{display:block;color:var(--muted);font:11px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:.1em;text-transform:uppercase}.top-actions{display:flex;gap:12px;align-items:center}.save-state{font-size:.79rem;color:var(--muted);display:flex;align-items:center;gap:6px;max-width:250px}.save-state:before{content:'';width:6px;height:6px;background:var(--teal);border-radius:50%;flex:none}.save-state.failed{color:#ffb5a6}.save-state.failed:before{background:#ff8a65}.app-body{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 80px)}.sidebar{padding:27px 18px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:22px;background:#091725b3}.world-switch{display:grid;gap:8px}.world-switch label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.world-switch select{width:100%;font-weight:600}.nav{display:grid;gap:5px}.nav a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:7px;color:var(--muted);text-decoration:none;font-size:.94rem}.nav a:hover{background:#102a3a;color:#fff}.nav a[aria-current=page]{background:#10384a;color:#75e2ff;box-shadow:inset 0 0 0 1px #286479}.sidebar-bottom{margin-top:auto;padding:25px 12px 0;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.sidebar-bottom p{margin-top:10px;line-height:1.6}.side-version{color:#5d849a;margin-top:24px;font-size:.72rem}.main{max-width:1540px;width:100%;margin:0 auto;padding:27px 38px 36px;min-width:0}.breadcrumbs{display:flex;align-items:center;gap:10px;margin-bottom:25px;font-size:.83rem;color:var(--muted)}.breadcrumbs a{color:var(--muted);text-decoration:none}.breadcrumbs a:hover{color:var(--cyan)}.breadcrumbs svg{width:12px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:27px}.page-head p{color:var(--muted);margin-top:10px;max-width:66ch}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:23px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.section-space{margin-top:30px}.divider{height:1px;background:var(--line);margin:20px 0}.tag{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;border:1px solid #3c5b6f;padding:3px 8px;border-radius:4px;color:#c4d7e3;white-space:nowrap}.tag.yellow{color:var(--yellow);border-color:#7c7134}.tag.cyan{color:#78e0ff;border-color:#276a81}.tag.green{color:var(--teal);border-color:#327968}.tag.pink{color:#ffa1eb;border-color:#854277}.tag.orange{color:#ffbd97;border-color:#885b3c}.notice{padding:14px 17px;border:1px solid #49616f;background:#122836;border-radius:8px;color:#c9dbe7;font-size:.85rem;line-height:1.65}.notice.warning{color:#f4dba2;border-color:#675b39;background:#29271c}.notice a{color:inherit}.notice .icon{vertical-align:middle;margin-right:7px;width:17px}.empty{padding:45px 20px;text-align:center;color:var(--muted)}.empty>.icon{width:38px;height:38px;margin-bottom:12px;color:#5a8aa4}.empty h3{color:var(--ink);margin-bottom:8px}.empty p{max-width:48ch;margin:0 auto 20px}.empty .actions{justify-content:center}.two-col{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,1fr);gap:24px}.overview-hero{position:relative;isolation:isolate;overflow:hidden;padding:32px;min-height:267px;border-radius:14px;background:#0c2734 url('assets/woodland.webp') center 52%/cover;margin-bottom:28px;display:flex;align-items:center;border:1px solid #31566b}.overview-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#061924f2 5%,#061924d9 40%,#06192426 95%);z-index:-1}.hero-content{max-width:540px}.overview-hero h1{font-size:clamp(2rem,4vw,3.3rem);max-width:13ch}.overview-hero p{max-width:43ch;color:#c8dce7;margin:13px 0 22px}.hero-destination{position:absolute;right:24px;bottom:18px;color:#dbf4fd;font-size:.75rem;display:flex;align-items:center;gap:6px}.overview-main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:24px}.goal-title{display:flex;gap:13px;align-items:center}.flame-badge{width:48px;height:55px;display:grid;place-items:center;background:#3b331b;border:1px solid #7b632b;border-radius:10px}.flame-badge img{width:34px;height:40px}.goal-title h2{font-size:1.6rem}.goal-title p{font-size:.84rem;color:var(--muted);margin-top:4px}.progress-track{height:5px;background:#2d404a;border-radius:4px;margin:20px 0 8px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--cyan);box-shadow:var(--glow);transition:none}.progress-label{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}.compact-items{margin-top:13px}.compact-item{display:grid;grid-template-columns:39px minmax(0,1fr) auto;align-items:center;gap:13px;padding:10px 0;border-bottom:1px solid #29414e}.compact-item:last-child{border-bottom:0}.compact-item img{width:37px;height:37px;object-fit:contain;background:#091927;border-radius:6px;padding:3px}.compact-item .amount{font-size:.85rem;color:var(--muted)}.compact-item .amount strong{color:var(--ink)}.compact-item.done .item-name{text-decoration:line-through;text-decoration-color:var(--strike);text-decoration-thickness:2px}.panel-foot{padding-top:18px;display:flex;justify-content:space-between;gap:14px;align-items:center}.panel-foot a{font-weight:600;text-decoration:none;font-size:.9rem}.small-section{margin-top:28px}.small-section h3{margin-bottom:15px}.player-line{display:flex;align-items:center;gap:11px;margin-top:13px}.avatar{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:50%;background:#1a4e62;border:1px solid #397b90;color:#9bebff;font-weight:600}.avatar:nth-child(2n){background:#47264f}.player-note{font-size:.76rem;color:var(--muted)}.quicklinks{display:flex;flex-direction:column}.quicklink{padding:16px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none}.quicklink .icon:first-child{color:var(--cyan)}.quicklink>span{flex:1}.quicklink small{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}.quicklink:last-child{border:0}.footer{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--line);padding-top:20px;margin-top:34px;font-size:.74rem;color:#97b1c2}.footer a{color:#b4ccda}.footer p{max-width:68ch}.toolbar{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-end;margin-bottom:22px}.toolbar label{min-width:160px}.toolbar .search{flex:1;min-width:200px}.segmented{display:flex;border:1px solid #416074;border-radius:8px;padding:3px;background:#091926;width:max-content;max-width:100%}.segmented button{border:0;background:none;color:var(--muted);min-height:38px;padding:8px 16px;white-space:normal}.segmented button[aria-pressed=true]{background:#184156;color:#a8eeff}.flame-settings{display:flex;gap:15px;align-items:end;flex-wrap:wrap;margin-bottom:22px}.flame-settings input{width:85px}.level-heading{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-bottom:12px}.level-heading h2{font-size:1.55rem}.recipe-section{margin-top:27px}.recipe-section:first-child{margin-top:0}.recipe-meta{font-size:.82rem;color:var(--muted);margin:10px 0}.recipe-table{background:#0d202d;border:1px solid var(--line);border-radius:10px;overflow:hidden}.row-header,.resource-row{display:grid;grid-template-columns:36px 48px minmax(140px,1fr) 82px 82px 76px;gap:16px;align-items:center;padding:13px 20px}.row-header{padding-top:10px;padding-bottom:10px;background:#102735;color:var(--muted);font-size:.75rem;letter-spacing:.04em}.row-header span:first-child{grid-column:1 / 4}.resource-row{border-top:1px solid #253e4c;min-height:91px}.resource-row:first-of-type{border-top:0}.resource-row img{width:48px;height:48px;object-fit:contain;padding:3px;background:#081724;border-radius:8px}.resource-row input[type=number]{width:100%;min-width:0;padding:8px;text-align:center}.resource-row .item-name{font-size:.95rem;font-weight:550;overflow-wrap:anywhere}.resource-row .recipe-default{font-size:.76rem;color:var(--muted);margin-top:4px}.resource-row .remaining{text-align:right;display:flex;flex-direction:column;font-size:1rem;color:#f9ca86;font-variant-numeric:tabular-nums}.resource-row .remaining small{color:var(--muted);font-size:.7rem}.resource-row.done{background:#10352e50}.resource-row.done .item-name{text-decoration:line-through;text-decoration-color:var(--strike);text-decoration-thickness:3px;text-decoration-skip-ink:none}.resource-row.done .remaining{color:var(--teal);font-size:.83rem}.resource-row .mobile-label{display:none}.searchbox{position:relative}.searchbox .icon{position:absolute;top:12px;left:12px;color:var(--muted)}.searchbox input{width:100%;padding-left:40px}.resource-note{padding:13px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.survivors{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);background:#102330}.survivors label{display:block}.survivors input{width:80px;text-align:center}.survivors small{display:block;color:var(--muted);font-size:.76rem;margin-top:5px}.row-controls{display:flex;gap:8px;align-items:center}.storage-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);gap:22px}.chest-card{border-top:1px solid var(--line);padding:19px 0}.chest-card:first-child{border-top:0;padding-top:0}.chest-head{display:flex;gap:12px;align-items:center;justify-content:space-between}.chest-head>div{min-width:0}.chest-head h3{overflow-wrap:anywhere}.chest-location{color:var(--muted);font-size:.79rem;margin-top:3px}.item-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.stock-tag{font-size:.79rem;background:#183344;border-radius:5px;padding:5px 8px;color:#c5dce9}.stock-tag.match{color:var(--yellow);background:#4c4220}.chest-notes{font-size:.83rem;white-space:pre-wrap;margin-top:9px;color:var(--muted)}.layout-frame{position:relative;width:100%;background:#071723;border-radius:8px;overflow:hidden;margin:18px 0}.layout-frame img{width:100%;display:block;max-height:500px;object-fit:contain}.layout-frame.placing{cursor:crosshair}.marker{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;padding:0;min-height:34px;background:var(--cyan);color:#051b28;border:2px solid #cef6ff;border-radius:50%;box-shadow:0 3px 12px #0009;font-size:.8rem}.marker.match{background:var(--yellow);border-color:#fff6ae}.marker.selected{outline:3px solid var(--pink);outline-offset:3px}.marker-legend{display:grid;gap:6px}.marker-legend button{justify-content:flex-start}.marker-number{border-radius:50%;background:var(--cyan);color:#031b29;width:23px;height:23px;display:inline-grid;place-items:center;flex:none}.layout-placeholder{background:#091b27;min-height:205px;border:1px dashed #4f6e82;border-radius:9px;display:grid;place-content:center;text-align:center;color:var(--muted);padding:22px;margin:18px 0}.layout-placeholder .icon{justify-self:center;width:35px;height:35px;margin-bottom:12px}.world-list{display:grid;gap:0}.world-row{display:flex;gap:18px;justify-content:space-between;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.world-row:last-child{border:0}.world-row h2{font-size:1.7rem}.world-row p{color:var(--muted);font-size:.87rem;margin-top:8px}.world-row .tag{margin-top:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.form-grid .actions{justify-content:flex-end;margin-top:8px}.settings-list{display:grid;gap:20px}.setting{display:flex;align-items:center;justify-content:space-between;gap:25px}.setting p{font-size:.82rem;color:var(--muted);margin-top:4px}.setting label{color:var(--ink)}.setting input{flex:none}.backup-actions{display:flex;gap:12px;margin:18px 0;flex-wrap:wrap}.player-edit{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-top:1px solid var(--line);gap:12px}.player-edit .player-line{margin:0}.roadmap-list{margin-top:18px}.roadmap-row{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:13px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start}.roadmap-row .icon{color:var(--teal);margin-top:3px}.roadmap-row p{font-size:.85rem;color:var(--muted);margin-top:5px}.roadmap-row:last-child{border:0}.source-list{display:grid;gap:9px;margin-top:16px;font-size:.86rem}.source-list a{width:fit-content}.error{color:#ffc1b4;margin-top:10px;font-size:.87rem}.success{color:var(--teal)}#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#183b4c;color:#f1fbff;border:1px solid #477487;box-shadow:0 6px 30px #0007;border-radius:10px;padding:13px 20px;z-index:60;font-size:.9rem;max-width:calc(100vw - 32px)}#toast[hidden]{display:none}dialog{background:#0e2534;color:var(--ink);border:1px solid #4a6e84;border-radius:14px;padding:28px;width:620px;max-width:calc(100vw - 28px);max-height:90vh;box-shadow:0 12px 60px #000b}dialog::backdrop{background:#01080fca}dialog h2{font-size:1.9rem}dialog>header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:12px}dialog>p{color:var(--muted);font-size:.87rem;margin-bottom:22px}dialog form{margin-top:22px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.import-summary{max-height:260px;overflow:auto;margin-top:18px;padding:16px;background:#0a1c27;border-radius:7px}.import-summary li{margin:6px 0;font-size:.9rem}.import-summary ul{padding-left:20px;margin:0}.view-entrance{animation:open .32s cubic-bezier(.16,1,.3,1)}@keyframes open{from{clip-path:inset(0 0 5% 0);opacity:.5}to{clip-path:inset(0);opacity:1}}.selected-chest{outline:2px solid var(--cyan);outline-offset:6px;border-radius:3px}.layout-edit{display:flex;gap:12px;align-items:end;margin-top:14px}.layout-edit label{width:100%}.layout-edit input{width:100%}.native-file{width:100%;font-size:.86rem}
@media(min-width:1600px){.main{padding-left:55px;padding-right:55px}}
@media(max-width:1190px){.main{padding:25px}.app-body{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding:25px 12px}.overview-main,.storage-grid{grid-template-columns:1fr}.overview-aside{display:grid;grid-template-columns:1fr 1fr;gap:22px}.overview-aside .small-section{margin:0}.row-header,.resource-row{gap:10px;padding-left:15px;padding-right:15px;grid-template-columns:28px 42px minmax(120px,1fr) 70px 70px 65px}.resource-row img{width:42px;height:42px}.two-col{grid-template-columns:1fr}.save-state{max-width:205px}}
@media(max-width:800px){.topbar{height:72px;padding:0 19px;gap:12px}.brand-name{font-size:1.4rem}.brand img{width:31px;height:36px}.top-actions{gap:4px}.save-state{display:none}.top-actions .backup-label{display:none}.app-body{display:block}.sidebar{padding:13px 18px 0;border:0;border-bottom:1px solid var(--line);gap:10px}.world-switch{display:flex;align-items:center;justify-content:space-between}.world-switch label{margin:0}.world-switch select{width:220px;max-width:65%}.nav{display:flex;gap:6px;overflow:auto;padding-bottom:10px}.nav a{padding:9px 12px;white-space:nowrap;font-size:.86rem}.nav a .icon{width:17px;height:17px}.sidebar-bottom{display:none}.main{padding:22px 20px 28px}.breadcrumbs{margin-bottom:20px}.page-head{flex-wrap:wrap;margin-bottom:22px;gap:15px}.page-head p{font-size:.9rem}.overview-hero{min-height:250px;padding:26px}.hero-content{max-width:400px}.overview-hero h1{font-size:2.45rem;max-width:12ch}.hero-destination{display:none}.overview-aside{grid-template-columns:1fr 1fr}.footer{align-items:flex-start;flex-direction:column;gap:9px}.toolbar label{min-width:130px}.row-header,.resource-row{grid-template-columns:28px 44px minmax(110px,1fr) 65px 65px 56px;gap:9px}.resource-row{padding:13px}.row-header{padding:10px 13px}.form-grid{gap:15px}.panel{padding:21px}.segmented button{padding:8px 13px}}
@media(max-width:540px){.main{padding:20px 16px 26px}.topbar{padding:0 16px}.brand{gap:7px}.brand small{font-size:9px}.brand-name{font-size:1.25rem}.top-actions .iconbutton{width:36px;padding:7px}.nav{gap:3px}.nav a{font-size:.8rem;padding:9px;gap:6px}.nav a .icon{display:none}.sidebar{padding-left:16px;padding-right:16px}.overview-hero{padding:24px 21px;min-height:270px;margin-bottom:21px}.overview-hero h1{font-size:2.3rem}.overview-hero p{font-size:.86rem;max-width:29ch}.overview-main{gap:21px}.overview-aside{grid-template-columns:1fr}.panel{padding:19px}.hero-content{max-width:90%}.goal-title h2{font-size:1.45rem}.overview-hero:before{background:linear-gradient(90deg,#061924f2,#061924a8 65%,#06192426)}.panel-foot{align-items:flex-start;flex-wrap:wrap}.toolbar{gap:12px}.toolbar .search{min-width:100%;order:-1}.toolbar label{flex:1}.segmented{width:100%}.segmented button{flex:1;font-size:.86rem}.row-header{display:none}.resource-row{grid-template-columns:26px 44px minmax(0,1fr) 50px;gap:11px 10px;padding:15px}.resource-row .quantity{grid-row:2;display:grid;gap:4px}.resource-row .need-quantity{grid-column:2/3;width:65px}.resource-row .have-quantity{grid-column:3/4;justify-self:start;max-width:140px;margin-left:30px}.resource-row .mobile-label{display:block;font-size:.72rem;color:var(--muted)}.resource-row .quantity input{width:65px;padding:7px 4px;min-height:39px}.resource-row .remaining{grid-column:4;grid-row:1/3;font-size:1rem}.resource-row input[type=checkbox]{width:23px;height:23px}.resource-row .item-name{font-size:.9rem}.resource-row .recipe-default{font-size:.7rem}.level-heading{gap:10px;align-items:flex-start}.level-heading h2{font-size:1.4rem}.level-heading .tag{font-size:.66rem}.survivors{padding:15px}.survivors label{font-size:.85rem}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.settings-list .setting{align-items:flex-start}.setting select{max-width:125px}.world-row{flex-wrap:wrap}.world-row>.actions{width:100%;justify-content:flex-end}.chest-head{align-items:flex-start}.chest-head .actions{gap:1px}.roadmap-row{grid-template-columns:22px 1fr}.roadmap-row .tag{grid-column:2;justify-self:start}.notice{font-size:.8rem}dialog{padding:22px}.dialog-actions{flex-wrap:wrap}.layout-edit{flex-wrap:wrap}.layout-edit label{flex:1;min-width:90px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

#save-alert:not([hidden]){margin-bottom:20px}

.companion-about p{max-width:76ch;margin-top:14px;color:var(--muted);line-height:1.7}
.not-found{min-height:100svh;max-width:760px;margin:auto;padding:12vh 28px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}.not-found h1{font-size:clamp(2.2rem,6vw,4rem);line-height:1.12}.not-found .primary{display:inline-flex;align-items:center;padding:12px 18px;text-decoration:none}

/* A viewport-sized scene preserves detail instead of stretching over the document. */
body{isolation:isolate;min-height:100svh}
body:before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;background:#07121f url('assets/woodland.webp') center/cover no-repeat}
body:after{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#04101d9c,#04101d45 70%,#04101d25)}
.ambient{z-index:0;background:none}.ambient i{opacity:.4}#app{position:relative;z-index:1}
.topbar{background:#07121fe8}.sidebar{background:#091725e6}.main{padding-top:27px}
.page-head{background:#07121fed;border:1px solid #38566a;border-radius:12px;padding:22px}
.breadcrumbs{width:fit-content;max-width:100%;flex-wrap:wrap;padding:8px 12px;background:#07121fed;border-radius:6px}
.panel{background:#0d202df5}.footer{background:#07121fed;padding:18px;border-radius:8px}
.overview-hero{background:#07121f88}.overview-hero:before{background:linear-gradient(90deg,#061924f5,#061924bc 55%,#06192420)}
.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:9px 15px;border:1px solid var(--line);border-radius:8px;background:var(--raised);color:var(--ink);font-weight:600;text-decoration:none}
.button:hover{background:#1c3b4e;border-color:#57798d}.button.disabled{opacity:.45;cursor:default}
.button.selected,.level-buttons button[aria-pressed=true]{background:#12445b;color:#b9f2ff;border-color:var(--cyan);box-shadow:inset 0 -3px 0 var(--cyan)}
.level-browser{padding:20px;border:1px solid #416074;background:#0b1d2aef;border-radius:12px;margin-bottom:22px}
.level-browser-label{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.level-browser-label span{font-size:.85rem;color:var(--muted)}
.level-buttons,.recipe-shortcuts{display:flex;flex-wrap:wrap;gap:8px}.level-buttons button{min-width:74px;min-height:44px;font-variant-numeric:tabular-nums}
.step-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}.step-controls>span{font-size:.86rem;color:#d0e2ec;text-align:center}
#recipes+.step-controls{background:#0b1d2aef;padding:15px;border:1px solid var(--line);border-radius:9px}
.flame-settings{background:#0b1d2aef;border-radius:9px;padding:16px}.level-heading{background:#07121ff0;border-radius:8px;padding:13px 16px;margin-bottom:9px}
.recipe-meta,.quantity-help{background:#07121ff0;padding:12px 16px;border-radius:7px;color:#c8dce7}.quantity-help{margin:16px 0;font-size:.85rem}
.resource-row .item-link{border:0;border-radius:3px;min-height:32px;padding:3px 0;background:transparent;color:var(--ink);text-align:left;justify-content:flex-start;text-decoration:underline;text-decoration-color:#5595ac;text-underline-offset:4px}
.resource-row .item-link:hover{color:#9ce9ff;background:transparent}.resource-row.linked-material{box-shadow:inset 4px 0 0 var(--yellow);background:#24382b}
.item-search-panel>label{margin-bottom:8px;font-size:1rem;font-weight:600}.catalogue-search{display:flex;gap:12px;align-items:end}.catalogue-search .searchbox{flex:1;min-width:0}.catalogue-search>label{min-width:145px}
.suggestions{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.suggestions button{font-weight:400}.results-summary{margin:22px 0 15px;padding:9px 12px;background:#07121fed;width:fit-content;border-radius:5px;color:#d1e3ec;font-size:.85rem}
.item-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.item-result{padding:21px;min-width:0}.item-result>header{display:flex;gap:14px;align-items:center;margin-bottom:15px}.item-result>header img{width:48px;height:48px;object-fit:contain;background:#081724;border-radius:8px;padding:4px}.item-result h2{font-size:1.5rem;overflow-wrap:anywhere}.item-result header p{font-size:.8rem;color:var(--muted);margin-top:4px}
.item-uses{list-style:none;margin:12px 0 0;padding:0}.item-uses li+li{border-top:1px solid var(--line)}.item-uses a{display:flex;align-items:center;gap:12px;padding:13px 0;text-decoration:none;color:var(--ink)}.item-uses a:hover strong{color:var(--cyan);text-decoration:underline}.item-uses a>span:first-child{flex:1;min-width:0}.item-uses strong{font-size:.9rem;font-weight:600}.item-uses small{display:block;font-size:.74rem;color:var(--muted);margin-top:4px}.use-amount{text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--yellow);font-weight:600}.use-amount small{font-weight:400;max-width:78px}.item-makes{margin-top:12px}.item-makes a{display:flex;gap:8px;align-items:center;font-size:.87rem}.stock-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:.83rem}.stock-link .icon{width:17px}.item-pages{background:#0b1d2af2;padding:16px;border:1px solid var(--line);border-radius:9px}
.craft-select{flex:1}.craft-browser .toolbar{margin-bottom:16px}.recipe-shortcuts .button{font-size:.85rem;font-weight:500}.recipe-context{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.recipe-context h2{margin-top:12px}.recipe-context p{margin-top:9px;font-size:.9rem}.recipe-context>a{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:.85rem}
@media(max-width:1050px){.item-results-grid{grid-template-columns:1fr}.catalogue-search{flex-wrap:wrap}.catalogue-search .searchbox{flex-basis:calc(100% - 85px)}}
@media(max-width:540px){.page-head{padding:18px}.level-browser{padding:15px}.level-buttons{gap:7px}.level-buttons button{flex:1;min-width:69px;padding:8px 11px}.level-buttons button:last-child{flex:0 1 auto}.step-controls{gap:8px}.step-controls button,.step-controls .button{padding:9px 10px;min-height:44px;font-size:.84rem}.step-controls .icon{width:16px}.step-controls>span{font-size:.79rem}.catalogue-search>label{width:100%}.catalogue-search .searchbox{flex-basis:calc(100% - 80px)}.item-result{padding:17px}.item-uses a{gap:8px}.item-uses a>.icon{width:15px}.use-amount small{max-width:60px}.item-results-grid{gap:15px}.recipe-context{flex-direction:column}.recipe-shortcuts .button{flex:1 1 40%;text-align:center}.breadcrumbs{font-size:.77rem}.quantity-help{font-size:.8rem}.item-pages .step-controls{gap:6px}.overview-hero:before{background:linear-gradient(90deg,#061924ed,#061924a8 70%,#06192440)}}

.recipe-provenance{padding:8px 13px;background:#07121ff0;border-radius:6px;margin-bottom:10px;font-size:.76rem;color:var(--muted)}.level-heading{flex-wrap:wrap}.level-heading h2{flex:1;min-width:160px}.batch-form{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.batch-form label{flex:1;min-width:190px}.batch-form input{width:100%}.batch-form>p:not(.error){flex:1;min-width:220px;font-size:.9rem}.batch-form small{display:block;color:var(--muted);font-size:.77rem;margin-top:6px}.batch-form .error{width:100%}.backpack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.backpack-grid>.empty{grid-column:1/-1}.inline-check{display:flex;align-items:center;gap:10px;margin-bottom:12px}.shopping-goals{margin-top:22px}.shopping-goal{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:16px 0}.shopping-goal>div{flex:1}.shopping-goal form{display:flex;gap:10px;align-items:end}.shopping-goal input{width:95px}.shopping-goal label{font-size:.75rem}.shopping-materials{display:grid;gap:16px}.shopping-material{border:1px solid var(--line);border-radius:9px;padding:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px}.shopping-material.covered{border-color:#327968}.shopping-item{display:flex;align-items:center;gap:12px}.shopping-item img{width:44px;height:44px;object-fit:contain}.shopping-numbers{display:flex;gap:24px}.shopping-numbers span{display:grid;font-size:.75rem;color:var(--muted)}.shopping-numbers strong{font-size:1.35rem;color:var(--ink);font-variant-numeric:tabular-nums}.shopping-numbers span:last-child strong{color:var(--yellow)}.shopping-material details{grid-column:1/-1;font-size:.83rem;color:var(--muted)}.shopping-material details small{display:block;font-size:.72rem}.shopping-material ul{padding-left:20px;margin:12px 0}.shopping-material li{margin:7px 0}
.scan-dialog{width:min(1120px,calc(100vw - 32px));max-width:none}.scan-config{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.scan-config .full{grid-column:1/-1}.scan-config input,.scan-config select{width:100%}.scan-config input[type=file]{font-size:.86rem}.scan-image{position:relative;max-width:760px;margin:15px auto;cursor:crosshair;touch-action:none;user-select:none;border:1px solid var(--line)}.scan-image>img{display:block;width:100%;height:auto;pointer-events:none}.scan-region{position:absolute;border:2px solid var(--cyan);background-image:linear-gradient(to right,#1ecafb99 1px,transparent 1px),linear-gradient(to bottom,#1ecafb99 1px,transparent 1px);background-size:calc(100% / var(--cols)) calc(100% / var(--rows));background-color:#1ecafb18;box-shadow:0 0 0 1px #04141d;pointer-events:none}.scan-region-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:15px 0}.scan-region-fields input{width:100%;min-width:0}.scan-region-fields label{font-size:.78rem}.scan-review-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:23px 0 10px}.scan-rows{margin-top:14px;border:1px solid var(--line);border-radius:8px;max-height:50vh;overflow:auto;overscroll-behavior:contain}.scan-row{display:grid;grid-template-columns:65px 56px minmax(0,1fr) 135px;gap:14px;align-items:start;padding:16px;border-bottom:1px solid var(--line)}.scan-row:last-child{border:0}.scan-row>img{width:56px;height:56px;object-fit:contain;background:#07121f;border-radius:5px}.scan-row input:not([type=checkbox]){width:100%;min-width:0}.scan-row label{font-size:.77rem}.scan-row .scan-confirm{justify-items:center;gap:8px;padding-top:8px;font-size:.72rem}.scan-row small{font-size:.69rem;line-height:1.35}.scan-candidates{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.scan-candidates button{font-size:.72rem;font-weight:400;min-height:29px;padding:4px 6px;color:#9bdef1}.scan-dialog .dialog-actions{position:sticky;bottom:-31px;background:var(--surface);padding:15px 0;border-top:1px solid var(--line);z-index:2}.scan-dialog [role=status]{font-size:.85rem;color:var(--cyan);margin-top:15px}.scan-dialog .error{margin-top:14px}.scan-dialog>.notice{font-size:.83rem}
@media(max-width:1000px){.backpack-grid{grid-template-columns:1fr}.shopping-material{grid-template-columns:1fr}.shopping-numbers{justify-content:space-between}.scan-region-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:540px){.shopping-goal{flex-wrap:wrap}.shopping-goal>div{flex-basis:calc(100% - 50px)}.shopping-goal form{order:2;width:100%}.shopping-goal form label{flex:1}.shopping-goal input{width:100%}.shopping-material{padding:14px}.shopping-numbers{gap:12px}.shopping-item h3{overflow-wrap:anywhere}.batch-form{padding:16px;gap:12px}.batch-form label,.batch-form>p:not(.error){min-width:100%}.batch-form button{width:100%}.scan-dialog{width:calc(100vw - 16px);padding:16px;max-height:94svh}.scan-dialog h2{font-size:1.65rem}.scan-config{grid-template-columns:1fr;gap:12px}.scan-row{grid-template-columns:38px minmax(0,1fr) 78px;gap:8px;padding:10px}.scan-row .scan-confirm{grid-column:1/-1;display:flex;justify-content:flex-start;padding:0}.scan-row>img{width:38px;height:42px}.scan-row input{font-size:16px;padding:8px 6px}.scan-candidates{grid-column:1/-1}.scan-candidates button{font-size:.69rem;text-align:left;justify-content:flex-start}.scan-region-fields{gap:8px}.scan-dialog .dialog-actions{bottom:-17px;gap:8px}.scan-dialog .dialog-actions button{flex:1}.scan-review-head{flex-wrap:wrap}}
