*{box-sizing:border-box}
body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);line-height:1.6;font-size:14px}
a{color:inherit;text-underline-offset:4px}
button,input,select{font:inherit;color:inherit}
button,input,select{border:1px solid var(--color-rule);border-radius:0;background:var(--color-surface)}
button{padding:10px 16px;cursor:pointer;min-height:44px}
button:hover{background:var(--color-shelf)}
input,select{min-height:42px;padding:8px 10px;min-width:0;width:100%}
input{font-variant-numeric:tabular-nums}
input[aria-invalid=true]{outline:2px solid #b83737;outline-offset:1px}
input:disabled{opacity:.55}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
main{max-width:1420px;margin:auto;padding:48px 24px}
.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px}
.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:650;margin:0 0 10px;color:var(--color-muted)}
h1{font-family:var(--font-display);font-size:clamp(34px,4.5vw,54px);line-height:1.15;letter-spacing:-.055em;margin:0 0 20px}
.description{margin:0;color:var(--color-muted);font-size:15px}
h2{font-size:19px;letter-spacing:-.04em;margin:0}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px}
.section-number{font-size:12px;letter-spacing:0;color:var(--color-muted);margin-right:12px;font-weight:500}
.small-note{font-size:12px;color:var(--color-muted);margin:10px 0 0;line-height:1.7}
.section-heading>.small-note{margin:0}
.goals{display:grid;grid-template-columns:1fr;gap:18px}
fieldset{min-width:0}
.goal{position:relative;margin:0;padding:22px 24px 18px;background:var(--color-surface);border:1px solid var(--color-rule);border-top:1px solid var(--tone)}
.goal legend{float:left;width:100%;padding:0;margin:0 0 17px;font-size:17px;font-weight:650;display:flex;justify-content:space-between;align-items:center}
.goal legend span{font-size:12px;color:var(--tone);letter-spacing:.04em}
.goal>label{clear:both;display:block;font-size:12px}
.cash-goal{--tone:#87671b}.xp-goal{--tone:#516b41}.freshness-goal{--tone:#7956a4}
.large-input{display:flex;align-items:center;gap:10px;margin-top:8px}.large-input input{font-size:28px;font-weight:700;letter-spacing:-.03em;height:62px}.large-input span{font-size:12px;color:var(--color-muted)}
.star-row{clear:both;display:flex;align-items:flex-end;gap:12px}.star-row label{flex:1;font-size:12px}.star-row select{display:block;margin-top:4px;font-weight:650}.arrow{padding:0 0 11px;color:var(--color-muted)}
.remaining-label{margin-top:12px;display:flex!important;align-items:center;justify-content:space-between;gap:10px}.remaining-label input{width:138px}
.gear-setup{margin-top:18px;padding:22px 24px;border:1px solid var(--color-rule);background:var(--color-surface)}
.gear-setup h2{font-size:17px}.gear-setup>div>.small-note{margin-top:3px}
.gear-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:18px}.gear-fields label{font-size:12px}.gear-fields input,.gear-fields select{display:block;margin-top:5px}
.boosts{display:flex;flex-direction:column;align-items:stretch;gap:18px;padding:20px 24px;background:var(--color-shelf);margin-top:18px}
.food-control{display:flex;gap:12px;align-items:center}.food-control select{width:96px}.toggle{display:flex;gap:10px;align-items:center;cursor:pointer;min-height:44px}.toggle input{width:20px;height:20px;min-height:0;accent-color:var(--color-ink)}.toggle span{font-size:12px;color:var(--color-muted)}.boosts>.small-note{flex-basis:100%;margin:0}.food-control select:disabled{opacity:.5}
.gear-results{border-top:2px solid var(--color-rule);padding:18px 20px}.gear-results h4{font-size:13px;margin:0 0 12px}.gear-result{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--color-rule);font-size:12px}.gear-result:last-of-type{border-bottom:0}.gear-result strong{font-size:18px;font-variant-numeric:tabular-nums}.gear-result .gear-time{font-size:11px;color:var(--color-muted);text-align:right}.gear-result .gear-count{text-align:right}.slot-dots{display:flex;gap:4px;margin-top:5px}.slot-dots i{width:8px;height:8px;border-radius:0;border:1px solid var(--color-rule)}.slot-dots i.filled{background:var(--mode-color);border-color:var(--mode-color)}
.comparison-section{margin-top:36px}.rank-label{display:flex;gap:10px;align-items:center;font-size:12px}.rank-label select{width:100px}
.intro-note{margin:-5px 0 20px;max-width:850px}
.comparison-scroll{overflow-x:auto;padding:2px 2px 12px;scrollbar-width:thin}
.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px;min-width:500px}
.mode{border:1px solid var(--color-rule);background:var(--color-surface);min-width:0}
.mode-header{padding:19px 20px 17px;border-top:4px solid var(--mode-color);border-bottom:1px solid var(--color-rule)}
.mode-header p{margin:0;font-size:10px;letter-spacing:.14em;color:var(--color-muted)}
.mode h3{font-size:25px;margin:3px 0 0;line-height:1.3;letter-spacing:-.04em}
.mode-settings{padding:18px 20px;border-bottom:1px solid var(--color-rule)}
.field{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;font-size:12px}.field:last-child{margin-bottom:0}.field .input-unit{display:flex;align-items:center;gap:6px;flex-shrink:0}.field input{width:74px;text-align:right}.input-unit span{min-width:16px;color:var(--color-muted)}
.mode-results{padding:0 20px}
.metric{padding:18px 0 16px;border-bottom:1px solid var(--color-rule)}
.metric:last-child{border:0}
.metric-title{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:12px;font-weight:650;margin:0 0 4px}
.best{font-size:10px;background:var(--color-accent);padding:2px 6px;border-radius:0;white-space:nowrap}
.battle-count{font-size:32px;line-height:1.3;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.045em}
.battle-count small{font-size:13px;font-weight:500;letter-spacing:0;margin-left:4px}
.time{font-size:12px;color:var(--color-muted);margin:3px 0 12px;min-height:20px}
.efficiency{display:flex;justify-content:space-between;font-size:12px;gap:6px;font-variant-numeric:tabular-nums}.efficiency strong{font-weight:650}
.meter{height:4px;background:var(--color-shelf);margin-top:8px}.meter span{display:block;background:var(--mode-color);height:100%;width:0}
.per-battle{font-size:11px;color:var(--color-muted);margin:6px 0 0}
.mode details{border-top:1px solid var(--color-rule);padding:14px 20px}
summary{cursor:pointer;font-size:12px;font-weight:650}
.advanced-fields{padding-top:16px}.advanced-note{font-size:11px;color:var(--color-muted);margin:8px 0 0}
.mode-error{font-size:12px;color:#a72b2b;margin:10px 0 0;min-height:0}.mode-error:empty{display:none}
.scroll-hint{display:none;font-size:12px;color:var(--color-muted)}
footer{max-width:1420px;margin:auto;padding:24px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--color-rule);font-size:11px;color:var(--color-muted)}
[hidden]{display:none!important}
@media(max-width:600px){.scroll-hint{display:block}.goals{grid-template-columns:1fr}.freshness-goal{grid-column:1/-1}.freshness-goal .star-row{max-width:400px}.remaining-label{max-width:400px}}
@media(max-width:600px){main{padding:30px 16px}.intro{display:block;margin-bottom:30px}.intro button{margin-top:20px;font-size:12px}.goals{grid-template-columns:1fr;gap:16px}.goal{padding:18px}.large-input input{font-size:25px;height:54px}.section-heading{flex-wrap:wrap;gap:8px}.section-heading>.small-note{width:100%;padding-left:27px}.mode-grid{grid-template-columns:repeat(2,260px);min-width:534px}.comparison-scroll{margin-right:-16px}.mode-results{padding:0 18px}.mode-header,.mode-settings{padding-left:18px;padding-right:18px}footer{padding:20px 16px;flex-direction:column;gap:6px}.battle-count{font-size:30px}}
@media(max-width:600px){.gear-setup{padding:18px}.gear-fields{grid-template-columns:1fr;gap:12px}.boosts{padding:16px;gap:12px}.food-control{flex-wrap:nowrap}.gear-fields select,.gear-fields input{font-size:16px}}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.goal-picker{border:0;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:8px}.goal-picker label{position:relative;cursor:pointer}.goal-picker input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}.goal-picker span{display:block;padding:10px 22px;border:1px solid var(--color-rule);border-radius:0}.goal-picker input:checked+span{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper);font-weight:700}.goal-picker input:focus-visible+span{outline:3px solid var(--color-focus);outline-offset:3px}
.goals .large-input{max-width:480px}.goals .star-row,.goals .remaining-label{max-width:540px}.gear-setup{margin-top:0}.wait-control{display:flex;align-items:center;gap:12px;font-size:12px}.wait-control>span{display:flex;align-items:center;gap:8px}.wait-control input{width:85px}.small-note:empty{display:none}.mode details{margin-top:auto}.mode{display:flex;flex-direction:column}.mode .field input{width:100px}

.boost-row{display:flex;align-items:center;gap:32px;overflow-x:auto}.boost-row>*{flex-shrink:0}.boost-row .toggle{white-space:nowrap}

@media(max-width:600px){.boost-row{gap:16px}.boost-row .food-control,.boost-row .toggle{gap:6px}.boost-row .food-control select{width:64px;padding:8px 4px}.boost-row{font-size:12px}}

.catalog-goal{--tone:#387c87}.catalog-fields{clear:both;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:720px}.catalog-fields label{font-size:12px}.catalog-fields input{display:block;margin-top:5px}@media(max-width:600px){.catalog-fields{grid-template-columns:1fr}.catalog-fields input{font-size:16px}}

.mode-grid.three-modes{grid-template-columns:repeat(3,minmax(240px,1fr));min-width:760px}.catalog-bonus{clear:both;margin-top:16px;flex-wrap:wrap;font-size:12px}@media(max-width:600px){.mode-grid.three-modes{grid-template-columns:repeat(3,260px);min-width:808px}}

.metric-title{flex-wrap:wrap}.field>span:first-child{min-width:0;overflow-wrap:anywhere}.mode-header h3{overflow-wrap:anywhere}.intro>div{min-width:0}.intro button{flex-shrink:0}
