:root{--bg:#10151a;--panel:#161e25;--line:#2f3a44;--fg:#edf1f3;--dim:#a7b4bf;--good:#80c99d;--bad:#f27c70;color-scheme:dark;font-family:system-ui,-apple-system,"Segoe UI","Malgun Gothic",sans-serif;font-size:14px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--fg)}body{overscroll-behavior:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button,input,select{min-height:44px}button{border:1px solid var(--line);border-radius:7px;padding:9px 14px;font-weight:650;background:#202a33}button:active{transform:translateY(1px)}button:hover{border-color:#7b8996}button:disabled{opacity:.38;cursor:default;transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}input,select{border:1px solid var(--line);border-radius:6px;background:#10171e;padding:8px 10px;width:100%;font-variant-numeric:tabular-nums}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}input[type=checkbox]{width:21px;height:21px;min-height:21px;accent-color:var(--accent);flex:none;margin:0}input[type=radio]{accent-color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:24px;letter-spacing:-.06em;line-height:1.25}h2{font-size:16px;line-height:1.45;letter-spacing:-.03em}h3{font-size:20px}p{line-height:1.6}small{display:block;font-size:12px;font-weight:400;color:var(--dim);line-height:1.5}#game{position:fixed;inset:0;width:100%;height:100%;border:0;background:#0b0d0f}.launcher{position:fixed;z-index:2;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));display:flex;align-items:center;gap:8px;background:#141c24ed;border-color:#6b5636;color:#ffcc7a;box-shadow:0 3px 20px #0005;padding:7px 12px;font-size:12px;min-height:44px}.launcher-mark{font-size:20px;line-height:1}.connection-dot{display:inline-block;width:7px;height:7px;min-width:7px;background:#687789;border-radius:50%}.connection-dot.ready{background:var(--good);box-shadow:0 0 8px #80c99d42}.toast{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:min(560px,calc(100% - 32px));background:#18222ff2;border:1px solid #586677;padding:10px 16px;border-radius:8px;z-index:3;font-size:13px;box-shadow:0 6px 25px #0006}#test-panel{inset:12px 12px 12px auto;margin:0;width:min(640px,calc(100% - 24px));max-width:none;height:calc(100% - 24px);height:calc(100dvh - 24px);max-height:none;padding:0;background:var(--panel);color:var(--fg);border:1px solid #45515c;border-radius:12px;box-shadow:0 16px 80px #0008;overflow:hidden}#test-panel[open]{display:flex;flex-direction:column}#test-panel::backdrop{background:#05090db3}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;gap:16px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.16em;color:var(--accent);margin-bottom:4px}.icon-button{background:transparent;font-size:19px;width:44px;padding:8px;border-color:transparent;flex:none}.connection-line{display:flex;align-items:center;gap:8px;padding:0 20px;font-size:12px;color:var(--dim);min-height:23px}.connection-line [role=status]{flex:1}.money-badge{border:1px solid #66502f;border-radius:4px;padding:2px 6px;color:#ffcb78;font-size:11px;white-space:nowrap}.balance-label{font-size:11px;color:#8494a3;padding:4px 20px 12px}.tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0 20px;border-bottom:1px solid var(--line)}.tabs button{border:0;border-radius:0;background:transparent;font-size:13px;padding:9px 4px;white-space:nowrap;min-width:0;color:var(--dim);border-bottom:3px solid transparent}.tabs button[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent)}.panel-body{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;padding:20px;scrollbar-width:thin;scrollbar-color:#475767 transparent}.tab-view>*+*{margin-top:14px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.section-heading p{font-size:12px;color:var(--dim);margin-top:4px}.total-count{display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap}.total-count strong{font-size:27px;line-height:1.2;color:var(--accent);font-variant-numeric:tabular-nums}.total-count span{font-size:10px;color:var(--dim)}.wave-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}.field>span{font-size:11px;font-weight:400;color:var(--dim)}.input-unit{display:flex;align-items:center;border:1px solid var(--line);background:#10171e;border-radius:6px}.input-unit input{border:0;background:none;min-width:0}.input-unit>span{padding-right:12px;color:var(--dim)}.check-line{display:flex;align-items:center;gap:11px;min-height:52px;padding:9px 0;font-size:13px;font-weight:600;cursor:pointer}.check-line small{margin-top:2px}.list-toolbar{display:flex;align-items:center;gap:7px}.list-toolbar input{min-width:0;flex:1;font-size:12px}.list-toolbar button{font-size:11px;white-space:nowrap;padding:8px 10px;min-height:44px}.quiet{border-color:var(--line);color:var(--dim);background:transparent}.item-list{border-top:1px solid var(--line)}.monster-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:10px;border-bottom:1px solid var(--line);padding:12px 0;align-items:start}.monster-info{min-width:0}.monster-info summary{cursor:pointer;min-height:44px;list-style:none;display:flex;flex-direction:column;justify-content:center;position:relative;padding-right:14px}.monster-info summary::-webkit-details-marker{display:none}.monster-info summary:after{content:'⌄';position:absolute;right:0;top:12px;color:#8192a1}.monster-info[open] summary:after{content:'⌃'}.item-name{display:block;font-size:13px;font-weight:650;overflow-wrap:anywhere}.monster-stats{display:block;margin-top:3px;font-size:10px;color:var(--dim);font-variant-numeric:tabular-nums}.monster-hint{font-size:12px;color:#c5cfd7;margin:8px 0 0;padding-left:9px;border-left:2px solid #5e6e7d;line-height:1.7;white-space:pre-line}.stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:0;margin-top:2px;border:1px solid var(--line);border-radius:6px;background:#10171e;overflow:hidden}.stepper button{border:0;border-radius:0;background:transparent;font-size:19px;min-height:44px;padding:4px;min-width:0}.stepper input{border:0;border-radius:0;text-align:center;background:transparent;min-width:0;padding:5px 0;font-size:14px}.stepper button:hover{background:#293541}.empty{font-size:12px;color:var(--dim);padding:18px 0}.validation{color:var(--bad);font-size:12px;min-height:0}.validation:empty{display:none}.footnote{font-size:11px;color:#91a1af;line-height:1.7}.panel-footer{padding:12px 20px max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#121a21;flex:none}.live-status{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--dim)}.live-status>span:first-child{color:#d7e1e7}.live-status b{color:var(--fg);font-weight:650}.panel-footer>p{font-size:11px;color:var(--dim);margin:5px 0 9px;min-height:18px;line-height:1.4}.footer-actions{display:flex;gap:9px}.footer-actions .primary{flex:1}.footer-actions .secondary{min-width:98px}.primary{background:var(--accent);color:#10151a;border-color:var(--accent);font-weight:750}.primary:hover{border-color:#ffdc9d;filter:brightness(1.07)}.secondary{background:#202c37;border-color:#3c4b59}.full-width{width:100%}.tier-field{border:0;margin:0;padding:0;min-width:0}.tier-field legend{font-size:12px;font-weight:600;margin-bottom:9px}.tier-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.tier-buttons label{position:relative;min-width:0;cursor:pointer}.tier-buttons input{position:absolute;opacity:0;width:1px;height:1px}.tier-buttons span{display:flex;align-items:center;justify-content:center;min-height:47px;padding:7px 3px;border:1px solid var(--line);border-radius:6px;color:var(--dim);font-size:12px}.tier-buttons input:checked+span{border-color:var(--accent);color:var(--accent);background:#f2a94a10}.tier-buttons input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}.weapon-preview{background:linear-gradient(115deg,#26323e,#18212a);border:1px solid #3d4a57;padding:18px;border-radius:8px}.weapon-preview h3{margin:5px 0 7px}.weapon-preview>p:last-child{font-size:12px;color:#b8c5d0;white-space:pre-line}.section-separator{height:1px;background:var(--line);margin-top:22px!important;margin-bottom:20px}.node-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.node-actions button{font-size:11px;padding:9px 5px}.danger-quiet{color:#efa69e;background:transparent;border-color:#6a4141}.node-filters select{width:110px;flex:none;font-size:12px}.node-row{border-bottom:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:12px;align-items:center}.node-row>div:first-child{min-width:0}.node-meta{font-size:10px;color:#92a5b5;margin-bottom:3px}.node-effect{font-size:11px;line-height:1.6;color:var(--dim);margin-top:4px;overflow-wrap:anywhere}.node-control{display:flex;flex-direction:column;gap:5px}.node-control select{font-size:12px;padding:8px;min-width:0}.node-control button{min-height:44px;font-size:11px;padding:6px}.node-row[data-dir=fire] .node-meta{color:#f29a92}.node-row[data-dir=rate] .node-meta{color:#76cfe9}.node-row[data-dir=boom] .node-meta{color:#efb36d}.node-row[data-dir=tactics] .node-meta{color:#9cdda5}.node-row[data-dir=hybrid] .node-meta{color:#ccaae6}.health-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:14px 0;border-block:1px solid var(--line)}.health-stats span{display:block;font-size:11px;color:var(--dim);margin-bottom:4px}.health-stats strong{font-size:20px;font-variant-numeric:tabular-nums}.body-note{font-size:12px;color:var(--dim);line-height:1.8}.two-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.plain-link{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-size:12px;text-underline-offset:4px}
@media(max-width:600px){#test-panel{inset:0;width:100%;height:100%;height:100dvh;border:0;border-radius:0}.panel-header{padding-top:max(14px,env(safe-area-inset-top))}.panel-header,.panel-body{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.connection-line,.balance-label,.tabs,.panel-footer{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.panel-body{padding-top:16px}.tabs{margin-top:0}h1{font-size:22px}.monster-row{grid-template-columns:minmax(0,1fr) 132px}.stepper{grid-template-columns:44px minmax(0,1fr) 44px}.total-count strong{font-size:25px}.list-toolbar{flex-wrap:wrap}.list-toolbar input{flex-basis:100%}.node-filters{flex-wrap:nowrap}.node-filters input{flex-basis:0}.tier-buttons{gap:4px}.tier-buttons span{font-size:11px}.panel-footer{padding-top:9px}.list-toolbar button{flex:1}.launcher{font-size:11px;padding:7px 10px}.node-row{grid-template-columns:minmax(0,1fr) 98px;gap:10px}}
@media(max-height:520px) and (min-width:601px){#test-panel{inset:0 0 0 auto;height:100%;height:100dvh;width:min(600px,100%);border-block:0;border-right:0;border-radius:0}.panel-header{padding-block:10px 5px}.panel-header h1{font-size:19px}.eyebrow{font-size:9px;margin-bottom:2px}.connection-line{font-size:11px}.balance-label{padding-bottom:5px;font-size:10px}.tabs button{min-height:44px;padding-block:7px}.panel-body{padding-block:14px}.panel-footer{padding-block:8px}.panel-footer>p{margin-block:3px 6px}.live-status{font-size:10px}}
@media(prefers-reduced-motion:reduce){button:active{transform:none}}

/* Compact landscape tools retain 44px targets and reserve most height for content. */
input:not([type=checkbox]):not([type=radio]),select{font-size:16px}
@media(orientation:landscape) and (max-height:520px){
 .panel-header{padding:4px 12px;min-height:52px;flex:none}
 .panel-header h1{font-size:18px}.panel-header .eyebrow,.balance-label{display:none}
 .connection-line{padding:0 12px;min-height:16px;font-size:10px}
 .tabs{padding:0 12px;flex:none}.tabs button{font-size:12px}
 .panel-body{padding:10px 12px}.tab-view>*+*{margin-top:10px}
 #view-tools>.section-heading{display:none}
 .panel-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;align-items:center;padding:5px 12px;flex:none}
 .panel-footer>p{display:none}.live-status{display:flex;flex-direction:column;gap:0;font-size:10px}
 .footer-actions{margin:0;gap:6px}.footer-actions button{font-size:12px;padding:6px 10px}
}

.boss-patterns{border-top:1px solid var(--line);padding-top:7px}.boss-patterns summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:13px;font-weight:650}.boss-patterns summary:after{content:'⌄';margin-left:auto;color:var(--dim)}.boss-patterns[open] summary:after{content:'⌃'}.boss-patterns>p{margin-block:8px}.boss-patterns h3{margin:10px 0 7px;font-size:12px;font-weight:650;color:var(--dim)}.pattern-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pattern-grid button{font-size:12px}

/* Mission controls share the real game, with no landscape keyboard or modal churn. */
.tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.mission-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px}.mission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:7px}.mission-card{display:flex;flex-direction:column;justify-content:center;gap:3px;text-align:left;padding:8px 10px;min-width:0;min-height:70px;background:#172129}.mission-card strong{font-size:13px}.mission-card small{font-size:11px;line-height:1.35}.mission-card[aria-pressed=true]{border-color:var(--accent);background:#e8b85712}.mission-controls{display:flex;flex-direction:column;gap:8px}.mission-live{min-width:0;padding:8px 10px;border-left:2px solid var(--accent);background:#0b111733}.mission-live>strong{font-size:14px}.mission-live .body-note{line-height:1.45;margin-top:3px}.mission-live .footnote{line-height:1.4;margin-top:3px}.mission-progress{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:11px;font-variant-numeric:tabular-nums}.mission-progress progress{accent-color:var(--accent);height:7px;flex:1;min-width:0;width:100%}.mission-progress>span{white-space:nowrap}.mission-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.mission-actions button{font-size:12px;padding:7px 8px;min-width:0;min-height:44px}.mission-controls>p{line-height:1.4}
@media(orientation:portrait),(max-width:540px){.mission-layout{grid-template-columns:minmax(0,1fr)}.mission-card{min-height:64px}.mission-controls{gap:7px}}

/* Touch-first test controls. Numeric values are outputs; no keyboard is needed. */
.launchers{position:fixed;z-index:2;top:calc(56px + env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));display:flex;gap:6px}.launchers .launcher{position:static;box-shadow:0 3px 12px #0005}
#test-panel{width:min(960px,calc(100% - 24px))}.panel-header{padding-block:8px;min-height:60px;flex:none;gap:12px}.panel-header h1{font-size:18px}.panel-header .connection-line{flex:1;min-width:0;padding:0;justify-content:flex-end}.connection-line [role=status]{flex:0 1 auto;min-width:0}.balance-label{display:none}.tabs{flex:none}
#view-wave,#view-weapon{display:flex;flex-direction:column;gap:8px}#view-wave>*+*,#view-weapon>*+*{margin-top:0}
.wave-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.wave-toolbar button{font-size:12px;padding:6px 10px;white-space:nowrap}.count-steps,.monster-pager{display:flex;align-items:center;gap:2px}.count-steps>span{font-size:12px;color:var(--dim);padding-right:4px}.count-steps button,.monster-pager button{min-width:44px;padding:5px}.count-steps button[aria-pressed=true],#selected-only[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#f2a94a12}.monster-pager{margin-left:auto}.monster-pager>span{min-width:40px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
#monster-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:0}.monster-row{grid-template-columns:minmax(0,1fr) 120px;align-items:center;padding:0;gap:4px;border:1px solid var(--line);border-radius:6px;min-height:48px;overflow:hidden}.monster-row.has-count{border-color:#8c7747;background:#e8b85709}.monster-info-button{padding:2px 8px;text-align:left;border:0;border-radius:0;background:transparent;min-width:0;min-height:46px;font-weight:400}.monster-info-button .item-name{font-size:12px;line-height:16px;overflow-wrap:normal}.monster-info-button .monster-stats{font-size:10px;line-height:13px;margin-top:1px}.monster-info-button .item-name:after{content:' ⓘ';font-size:10px;color:var(--dim);font-weight:400}.monster-row .stepper{margin:0;border:0;border-left:1px solid var(--line);border-radius:0;grid-template-columns:44px minmax(0,1fr) 44px;background:transparent}.stepper output{display:flex;align-items:center;justify-content:center;min-width:0;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.monster-row .stepper button{height:46px;padding:0}.item-list>.empty{grid-column:1/-1}.wave-note{font-size:10px}.validation{font-size:11px}
.weapon-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px}.weapon-heading h2{font-size:13px}.weapon-heading p{font-size:11px;color:var(--dim);line-height:16px}.weapon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.weapon-branch{display:flex;flex-direction:column;gap:6px;min-width:0}.weapon-card{display:flex;align-items:center;gap:6px;min-width:0;min-height:48px;padding:3px 6px;text-align:left;font-size:12px;background:#1d2730}.weapon-card img{flex:none;object-fit:contain;width:36px;height:36px}.weapon-label{min-width:0;line-height:15px}.weapon-label small{font-size:10px;line-height:12px}.weapon-label>span{display:block;overflow-wrap:anywhere}.weapon-card[aria-pressed=true]{border-color:var(--accent);background:#f2a94a16;color:var(--accent)}.starter-card{min-height:44px;padding:5px 10px;flex:none;font-size:12px}.weapon-note{font-size:10px}
.sub-dialog{width:min(540px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:12px 16px;border:1px solid #52606d;border-radius:10px;background:var(--panel);color:var(--fg);overflow:auto;overscroll-behavior:contain}.sub-dialog::backdrop{background:#05090dd1}.sub-header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.sub-header h2{font-size:16px}.spawn-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.spawn-field{min-width:0}.spawn-field>label{font-size:12px;color:var(--dim)}.setting-stepper{display:flex;align-items:center;gap:4px;margin-top:4px}.setting-stepper button{width:44px;padding:4px;flex:none;font-size:20px}.setting-stepper output{flex:1;text-align:center;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.setting-stepper>span{font-size:11px;color:var(--dim)}input[type=range]{margin:0;padding:0;accent-color:var(--accent);background:transparent;min-height:44px}.sub-dialog .two-buttons{margin-top:8px}.sub-dialog .monster-hint{margin-block:12px}.sub-dialog>.full-width{margin-top:12px}
@media(max-width:600px){#test-panel{width:100%}.panel-header .eyebrow,.money-badge{display:none}.panel-header{padding-block:max(4px,env(safe-area-inset-top)) 4px;gap:8px}.panel-header .connection-line{font-size:10px;gap:5px}#monster-list{grid-template-columns:1fr}.wave-toolbar{gap:4px}.monster-pager{margin-left:0;flex:1;justify-content:flex-end}#wave-settings-button{margin-left:auto}.weapon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 8px}.weapon-card{min-height:52px}.weapon-heading h2{font-size:12px}.weapon-heading{align-items:flex-start}.starter-card{font-size:11px;padding-inline:6px}.spawn-settings-grid{gap:12px}.setting-stepper{gap:2px}.setting-stepper button{width:44px}.sub-dialog{padding-inline:12px}}
@media(orientation:landscape) and (max-height:520px){
 #test-panel{inset:0;width:100%;height:100dvh;border:0;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
 .panel-header{min-height:48px;height:48px;padding:2px max(12px,env(safe-area-inset-right)) 2px max(12px,env(safe-area-inset-left));gap:12px}.panel-header .connection-line{font-size:11px;padding:0}.panel-header .eyebrow{display:none}.panel-header .money-badge{display:block}
 .tabs,.panel-body,.panel-footer{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.panel-body{padding-block:8px}.panel-footer{padding-block:5px;min-height:54px}.live-status{font-size:11px;line-height:14px}.live-status>span:first-child{display:none}.panel-footer>p{display:none}
 .wave-toolbar{flex-wrap:nowrap;gap:6px}.wave-toolbar button{font-size:12px;padding-inline:8px}.monster-row{min-height:48px}.wave-note,.weapon-note{display:none}#view-wave,#view-weapon{gap:8px}.weapon-heading{min-height:44px}.weapon-card{height:48px;min-height:48px}.weapon-grid{gap:6px}.weapon-branch{gap:6px}
}
@media(orientation:landscape) and (max-width:740px){.wave-toolbar{gap:4px}.wave-toolbar button{padding-inline:6px}.panel-header .connection-line{font-size:10px}.weapon-card img{width:30px;height:30px}.weapon-card{gap:4px}.weapon-label>span{font-size:11px}.weapon-heading h2{font-size:12px}}

/* Keep acknowledgements visible while arranging a test; only explicit return closes it. */
@media(orientation:landscape) and (max-height:520px){
 .panel-footer{grid-template-columns:minmax(0,1fr) auto;gap:1px 8px}
 .panel-footer .live-status{grid-column:1;grid-row:1;flex-direction:row;gap:10px;min-width:0;font-size:10px}
 .panel-footer>p{display:block;grid-column:1;grid-row:2;margin:0;min-height:14px;font-size:10px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .panel-footer .footer-actions{grid-column:2;grid-row:1 / span 2}
}

.mission-reference{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px}.mission-reference h2{font-size:12px;line-height:1.3}.mission-reference .setting-stepper{width:124px;flex:none;margin:0}.mission-reference output{font-size:13px}#mission-hp{font-variant-numeric:tabular-nums}
/* Shared mobile metrics: content density stays separate from 44px touch geometry. */
:root{--tap-size:44px;--space-xs:4px;--space-sm:8px;--space-md:12px;--panel-inline:16px;--card-height:52px}
.launchers{gap:var(--space-xs);max-width:calc(100% - max(10px,env(safe-area-inset-left)) - max(10px,env(safe-area-inset-right)));flex-wrap:wrap}
.launchers .launcher{padding-inline:10px;min-width:var(--tap-size);white-space:nowrap}
.panel-body{padding-inline:var(--panel-inline)}
.tab-view>*+*{margin-top:var(--space-md)}
.sample-tools{border-block:1px solid var(--line);padding-block:var(--space-sm);margin-bottom:var(--space-md)}
.sample-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}
.sample-heading .eyebrow{display:block;font-size:10px;margin-bottom:2px}.sample-heading h2{font-size:15px}
.sample-duration{color:var(--dim);font-size:11px;white-space:nowrap}
.sample-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}
.sample-actions button{min-height:var(--tap-size);font-size:13px;padding:6px 8px;min-width:0}
.sample-tools .body-note{font-size:11px;line-height:1.5;margin-top:var(--space-sm)}
.monster-row,.weapon-card{min-height:var(--card-height)}
.monster-info-button{min-height:calc(var(--card-height) - 2px)}
@media(orientation:landscape) and (max-height:520px){
 :root{--panel-inline:12px;--card-height:48px}
 .sample-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .sample-actions button{font-size:12px}
 .sample-heading{margin-bottom:6px}.sample-tools{padding-block:6px}
 .mission-actions{order:-1}.mission-controls>p{display:none}
}
@media(orientation:landscape) and (max-height:360px){
 .mission-layout{gap:10px}.mission-layout>div:first-child>h2{font-size:12px;line-height:1.2}
 #mission-roster{font-size:10px;line-height:1.4;margin-top:3px}.mission-grid{gap:6px;margin-top:6px}
 .mission-card{min-height:44px;height:44px;padding:5px 8px}.mission-card strong{font-size:12px}.mission-card small{display:none}
 .mission-controls{gap:6px}.mission-live{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 6px;padding:4px 6px}
 .mission-live>strong{font-size:12px;line-height:15px}.mission-live .body-note{grid-column:1 / -1;font-size:11px;line-height:1.3;margin-top:2px}
 .mission-live .footnote{grid-column:1 / -1;font-size:10px;line-height:1.3;margin-top:2px}.mission-progress{grid-column:2;grid-row:1;width:75px;font-size:10px;margin:0;gap:4px}
 #mission-seed{display:none}
}
.weapon-upgrade{display:flex;align-items:center;gap:8px;min-height:44px;font-size:12px;cursor:pointer}.weapon-upgrade input{width:20px;height:20px;margin:0;min-height:0;accent-color:var(--accent)}.weapon-upgrade small{font-size:10px;color:var(--dim);margin-left:auto}

.weapon-heading{flex-wrap:wrap}.weapon-heading>div{flex:1;min-width:120px}.weapon-upgrade small{display:none}.weapon-upgrade{flex:none}
.production-tools{padding-block:8px 12px;border-bottom:1px solid var(--line);margin-bottom:12px}.production-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.production-heading h2{font-size:14px}.production-heading .eyebrow{font-size:10px}.production-heading>p{font-size:11px;color:var(--dim);text-align:right}.production-sectors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.production-sectors button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:52px;padding:6px;min-width:0}.production-sectors strong{font-size:12px}.production-sectors small{font-size:10px;font-weight:400;line-height:1.25}.production-sectors button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.production-sectors .current-sector{background:#f2a94a16}.production-round-control{display:flex;align-items:center;gap:8px;margin-top:8px}.production-round-control>label{font-size:12px}.production-round-control .setting-stepper{width:140px;margin:0}.production-round-control>button{margin-left:auto;min-height:44px;padding-inline:12px}.production-tools .footnote{margin-top:6px}
.monster-stage-filter{display:flex;gap:6px;flex-wrap:wrap}.monster-stage-filter button{min-height:44px;font-size:11px;padding:4px 10px}.monster-stage-filter button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
@media(max-width:600px){.production-sectors{grid-template-columns:repeat(2,minmax(0,1fr))}.production-heading{align-items:flex-start}.production-heading>p{max-width:42%}.production-round-control{gap:5px}.production-round-control>label{font-size:11px}.production-round-control .setting-stepper{width:126px}.production-round-control>button{font-size:12px;padding-inline:8px}}
@media(orientation:landscape) and (max-height:520px){.weapon-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Mission controls stay together on short phones; keep 44px touch targets. */
@media(orientation:landscape) and (max-height:520px){
 .mission-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
 .mission-actions button{padding-inline:4px;line-height:1.25}
 #revive-practice-status:not(:empty){display:block;margin:0;font-size:11px;line-height:1.3}
}
