:root{font-size:16px;--ink:#26342c;--olive:#394b3d;--paper:#eee8d5;--edge:#babba4;--copper:#a65c3d;--cream:#fffaf0;--muted:#647065;--danger:#873b2d;--gold:#dfc18a}*{box-sizing:border-box}body{margin:0;background:#d8d8c5;color:var(--ink);font-family:system-ui,-apple-system,'Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;line-height:1.65}button,input,select,textarea{font:inherit}button,a,select,input{touch-action:manipulation}button,select,.tools a,.primary,.row>a{min-height:44px}button,select,textarea{border:1px solid #99a08d;border-radius:4px;background:var(--cream);color:var(--ink)}button{cursor:pointer;padding:.55rem .85rem;font-weight:650;box-shadow:0 2px 0 #b9bcaa}button:hover{background:#e6e5cb}button:disabled{opacity:.58;cursor:not-allowed;box-shadow:none}a{color:#394e36;text-underline-offset:.2em}button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid #d99743;outline-offset:3px}header{background:var(--olive);color:var(--cream);padding:.8rem max(1rem,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border-bottom:4px solid #c4ac75}.brand{display:flex;align-items:center;gap:.8rem;color:inherit;text-decoration:none}.brand small{display:block;font-size:.75rem;letter-spacing:.12em;color:#d3d9c5}.brand strong{display:block;font-size:1.55rem;letter-spacing:.12em}.crest{font-size:2.8rem;color:var(--gold);line-height:1}.tools,.row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.tools a{display:flex;align-items:center;padding:.5rem .6rem;color:#eee8d5}.tools button{background:#455b48;border-color:#798572;color:#fff9e8;font-size:.875rem;box-shadow:none}main{max-width:1180px;margin:auto;padding:1.2rem}.depot{background:linear-gradient(90deg,#1c2c22f0 0%,#1c2c22c9 40%,#1c2c220f 85%),url('/assets/workshop.png') center 49%/cover;border:1px solid #5e7057;min-height:190px;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;padding:1.5rem;color:#fff7e3;border-radius:6px 6px 0 0;image-rendering:pixelated}.depot h1{font-size:1.7rem;line-height:1.5;margin:.3rem 0 0;letter-spacing:.1em}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.13em;display:block}.depot #status{background:#1e322bd9;border:1px solid #81917a;padding:.65rem 1rem;font-size:.875rem}.depot #status strong{font-size:1.3rem;color:#f5d69a}#nav{display:flex;flex-wrap:wrap;gap:1px;background:#8c9a85;border:1px solid #8c9a85;margin-bottom:1rem}#nav button{flex:1 1 100px;border:0;border-radius:0;box-shadow:none;background:#e3e4ce;padding:.65rem .7rem;font-size:.875rem}#nav button[aria-current="page"]{background:var(--olive);color:#fff7df}#message:empty{display:none}#message{background:#f3dbaf;border-left:4px solid #a46332;padding:.7rem 1rem;margin:1rem 0;overflow-wrap:anywhere}#view{outline:none;min-width:0}h2{font-size:1.4rem;letter-spacing:.08em;margin:0 0 .7rem}h3{font-size:1.1rem;margin:.1rem 0 .6rem}h4{margin:.6rem 0 .4rem}p{margin:.5rem 0 1rem}.muted{color:var(--muted)}.small{font-size:.875rem}.panel{padding:1.15rem;background:var(--paper);border:1px solid var(--edge);border-radius:5px;box-shadow:0 3px 0 #a8ac9680;margin:0 0 1rem;min-width:0}.panel.dark{background:var(--olive);color:#f5f0da}.panel.dark .muted{color:#cbd2bc}.panel.success{border-left:5px solid #507443;background:#e8efd5}.panel.danger{border-left:5px solid var(--danger)}.primary{background:var(--olive);color:#fff9df;border-color:#263f2b;box-shadow:0 3px 0 #182b20}.primary:hover{background:#526548}.danger-button{color:var(--danger);border-color:#9d5e4b}.split{display:grid;grid-template-columns:280px minmax(0,1fr);gap:1rem}.mission-list{display:flex;flex-direction:column;gap:.45rem}.mission-list button{display:flex;text-align:left;flex-direction:column;gap:.15rem;min-width:0}.mission-list button[aria-current="true"]{border:2px solid var(--olive);background:#d9e1c2}.mission-list small{font-size:.75rem;color:var(--muted)}.badge{display:inline-block;border:1px solid #9aa088;padding:.1rem .5rem;border-radius:3px;font-size:.75rem;background:#dfe6cb;font-weight:650}.badge.hot{background:#efc9ae;color:#7b3428}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.crew-card{padding:1rem;background:#f6f2e5;border:1px solid var(--edge);border-radius:4px;min-width:0}.portrait{width:100%;aspect-ratio:1;background-image:url('/assets/crew.png');background-size:300% 200%;background-position:var(--x) var(--y);image-rendering:pixelated;border:1px solid #76826d;border-radius:4px;max-height:200px;max-width:200px;display:block;margin:0 auto .7rem}.sprite{width:84px;aspect-ratio:1;background-image:url('/assets/enemies.png');background-size:300% 200%;background-position:var(--x) var(--y);image-rendering:pixelated;border-radius:4px;flex-shrink:0}.metric-row{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.875rem;margin:.5rem 0}.metric-row strong{font-variant-numeric:tabular-nums}.field{display:flex;flex-direction:column;gap:.3rem;margin:.8rem 0;min-width:0}.field select,.field textarea{width:100%;min-width:0;padding:.55rem}.field small{font-size:.875rem}.formation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.lane-heading{text-align:center;background:#c7d0b8;padding:.45rem;font-weight:650;border:1px solid #a5b196}.cell{background:#f5f3e4;border:1px dashed #99a58d;padding:.7rem;min-height:100px;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:.25rem;overflow-wrap:anywhere}.cell .portrait{width:72px;max-height:none;margin:0 auto .4rem}.cell.empty{justify-content:center;text-align:center;color:#71806c}.cell.stopped{opacity:.55}.cell .small{font-size:.875rem}.cell strong{font-size:1rem}progress{width:100%;height:10px;accent-color:#587547}.enemy-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.enemy{display:flex;gap:.6rem;align-items:flex-start;background:#f3ead6;padding:.8rem;border:1px solid #b9a67b;min-width:0}.enemy-content{min-width:0;overflow-wrap:anywhere}.enemy p{font-size:.875rem;margin:.3rem 0}.enemy .sprite{width:70px}.enemy strong{font-size:.95rem}.battle-top{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.heat{font-variant-numeric:tabular-nums;font-weight:700;background:#e2dac1;border:1px solid #b3aa88;padding:.4rem .8rem;border-radius:3px}.heat-bars{display:inline-flex;gap:3px;margin-left:.5rem;vertical-align:middle}.heat-bars i{width:10px;height:18px;background:#afb49c}.heat-bars i.on{background:#aa633b}.plan-card{padding:1rem;background:#f7f4e8;border:1px solid #b7bea5;min-width:0}.plan-card .field{margin:.5rem 0}.estimate{background:#e0e7ce;border:1px solid #a3b191;padding:.8rem;margin:1rem 0;overflow-wrap:anywhere}.estimate.invalid{background:#f0d2be;border-color:#ab7860}.reports{padding-left:1.4rem;margin:.5rem 0;font-size:.875rem}.reports li{margin:.4rem 0}.log-entry{border-top:1px solid #c1c4ae;padding:.5rem 0}details{border:1px solid #bbc0a5;border-radius:3px;padding:.75rem;margin:.7rem 0;background:#f5f1e1}summary{cursor:pointer;font-weight:650;min-height:32px}textarea{min-height:160px;resize:vertical;overflow-wrap:anywhere;word-break:break-all}.empty-report{padding:2rem;text-align:center}.locked{opacity:.6}.reward{border-top:1px dashed #a9b494;padding-top:.7rem}.skip{position:fixed;top:-100px;left:12px;background:#fff7e2;padding:.7rem;z-index:20}.skip:focus{top:8px}footer{max-width:1180px;margin:1.2rem auto;padding:1rem;display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;font-size:.875rem;border-top:1px solid #a6ac97}dialog{background:var(--paper);color:var(--ink);max-width:640px;width:calc(100% - 2rem);max-height:85vh;overflow:auto;border:2px solid #637354;border-radius:6px;padding:1.5rem}dialog::backdrop{background:#132c24aa}dialog button{margin-top:.7rem}.guide li{margin:.7rem 0}body[data-large="true"] .split{grid-template-columns:1fr}body[data-large="true"] .cards,body[data-large="true"] .enemy-list{grid-template-columns:1fr}body[data-large="true"] .enemy .sprite{width:100px}body[data-large="true"] .cell .portrait{width:64px}body[data-large="true"] .cell{padding:.4rem}body[data-large="true"] .cell .small{font-size:.75rem}@media(max-width:920px){.split{grid-template-columns:230px minmax(0,1fr)}.enemy-list{grid-template-columns:1fr}.enemy .sprite{width:80px}}@media(max-width:680px){main{padding:.65rem}header{padding:.8rem}.brand small{font-size:.65rem}.brand strong{font-size:1.35rem}.crest{font-size:2.1rem}.tools{gap:.35rem}.tools a{font-size:.875rem}.depot{padding:1rem;min-height:175px}.depot h1{font-size:1.35rem}.split{grid-template-columns:1fr}.mission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.cards{grid-template-columns:1fr}.crew-card{display:block}.crew-card .portrait{max-width:150px}.panel{padding:.85rem}.cell{padding:.45rem;font-size:.875rem}.cell .portrait{width:52px}.cell strong{font-size:.875rem}.cell .small{font-size:.75rem}.formation{gap:.35rem}.enemy-list{grid-template-columns:1fr}.enemy .sprite{width:72px}.mission-list small{font-size:.75rem}.battle-top h2{font-size:1.15rem}.metric-row{gap:.3rem .8rem}}@media(prefers-reduced-motion:no-preference){button{transition:background .12s}#message{animation:appear .2s}@keyframes appear{from{opacity:.3}to{opacity:1}}}
body[data-battle="true"] .depot{min-height:86px;padding:.75rem 1.2rem}body[data-battle="true"] .depot h1{font-size:1rem;margin:0}body[data-battle="true"] .depot h1 br{display:none}body[data-battle="true"] .depot #status{padding:.25rem .7rem}body[data-battle="true"] .depot #status br{display:none}body[data-battle="true"] .depot #status span{margin-right:.5rem}body[data-battle="true"] .depot #status strong{font-size:1rem;margin-right:.5rem}
.brand,.brand>span:last-child{min-width:0}.brand small{overflow-wrap:anywhere}summary{min-height:44px}footer>a{min-height:44px;display:inline-flex;align-items:center}.row>a{display:inline-flex;align-items:center}
.lane{display:grid;grid-template-rows:auto 1fr 1fr;gap:.5rem;min-width:0}.cell .portrait{max-width:100%}@media(max-width:680px){body[data-large="true"] .enemy{flex-direction:column}body[data-large="true"] .enemy-content{width:100%}body[data-large="true"] .mission-list{grid-template-columns:1fr}body[data-large="true"] .formation{grid-template-columns:1fr}body[data-large="true"] .lane{grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr}body[data-large="true"] .lane-heading{grid-column:1/-1}}
