:root{color-scheme:dark;--bg:#101720;--panel:#1a2531;--panel2:#202e3c;--line:#344555;--text:#edf2f7;--muted:#a7b5c4;--accent:#d6a35d;--green:#63c69a;--danger:#e38b82}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding-bottom:calc(86px + env(safe-area-inset-bottom))}button,input,select{font:inherit}button,select,.file-button{min-height:42px;border-radius:10px;border:1px solid var(--line);padding:9px 12px;color:var(--text);background:var(--panel2)}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.primary{background:var(--accent);color:#20170d;border-color:var(--accent);font-weight:750}.secondary{background:var(--panel2)}.danger{border-color:#87544e;color:#ffd5d0;background:#3b2425}.small{min-height:34px;padding:6px 9px;font-size:.88rem}.topbar{display:flex;justify-content:space-between;align-items:center;padding:calc(14px + env(safe-area-inset-top)) 16px 12px;background:#17202b;border-bottom:1px solid var(--line)}.eyebrow{font-size:.7rem;letter-spacing:.18em;color:var(--accent);font-weight:800}.topbar h1{font-size:1.25rem;margin:2px 0 0}.topbar select{min-width:68px}.tabs{display:flex;gap:6px;padding:8px 10px;position:sticky;top:0;z-index:3;background:#17202b;border-bottom:1px solid var(--line)}.tab{flex:1;border:0;background:transparent;color:var(--muted);padding:10px 4px}.tab.active{background:var(--panel2);color:var(--text);font-weight:700}.page{display:none;max-width:980px;margin:auto;padding:12px;gap:12px}.page.active{display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;min-width:0}.panel h2{font-size:1.05rem;margin:0 0 12px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.section-head h2{margin:0}.capacity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.capacity-grid label,.bonus-grid label{display:grid;gap:6px;color:var(--muted);font-size:.83rem}.capacity-grid input,.bonus-grid input,.profile-create input,.search{width:100%;min-width:0;background:#0f1720;border:1px solid var(--line);border-radius:9px;padding:10px;color:var(--text)}.capacity-grid input{font-size:1.05rem;font-weight:700}.bonus-group{margin-top:12px}.bonus-group h3{font-size:.88rem;color:var(--accent);margin:0 0 7px}.bonus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bonus-grid label{font-size:.75rem}.bonus-grid input{padding:7px}.inline-tools,.copy-row,.profile-create{display:flex;gap:8px;flex-wrap:wrap}.search{margin-bottom:10px}.category-tabs{display:flex;gap:6px;margin:6px 0 12px}.cat{flex:1;padding:8px 4px;background:transparent;color:var(--muted)}.cat.active{background:var(--accent);color:#21170d;border-color:var(--accent);font-weight:700}.unit-list{display:grid;gap:12px}.unit-section h3{font-size:.9rem;margin:0 0 7px;color:var(--accent)}.unit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.unit-card{display:flex;align-items:flex-start;gap:8px;padding:9px;background:#202d39;border:1px solid var(--line);border-radius:9px;min-width:0}.unit-card input{width:19px;height:19px;flex:0 0 auto;accent-color:var(--accent);margin:1px 0 0}.unit-name{font-size:.85rem;overflow-wrap:anywhere}.unit-meta{display:block;color:var(--muted);font-size:.72rem;margin-top:2px}.loading,.muted{color:var(--muted);font-size:.87rem}.full{width:100%}.opponent-details{display:grid;gap:7px;margin-top:10px}.opponent-stack{padding:9px;background:#202d39;border-radius:8px;font-size:.83rem}.opponent-stack span{display:block;color:var(--muted);font-size:.75rem}.actionbar{display:grid;grid-template-columns:1fr 1fr;gap:9px}.actionbar button{min-height:48px}.hidden{display:none!important}.result-group{margin:12px 0}.result-group h3{font-size:.92rem;margin:0 0 7px;color:var(--accent)}.result-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:9px 10px;background:#202d39;border-bottom:1px solid #334352}.result-row:first-of-type{border-radius:8px 8px 0 0}.result-row:last-child{border-radius:0 0 8px 8px;border-bottom:0}.result-row .name{font-size:.86rem}.result-row .meta{font-size:.72rem;color:var(--muted)}.count{font-weight:800;font-variant-numeric:tabular-nums;align-self:center}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.summary-chip{background:#0f1720;border:1px solid var(--line);padding:9px;border-radius:8px}.summary-chip span{display:block;font-size:.73rem;color:var(--muted)}.summary-chip strong{font-size:.95rem}.copy-row{margin-top:12px}.copy-row button,.copy-row .file-button{flex:1;text-align:center}.file-button{display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer}.file-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.profile-create input{flex:1}.profile-card{padding:12px;border:1px solid var(--line);border-radius:10px;margin-top:9px;display:grid;gap:8px}.profile-actions{display:flex;gap:7px;flex-wrap:wrap}.profile-actions button{flex:1}.status{padding:10px;border-radius:9px;margin-top:8px}.status.error{background:#3b2425;color:#ffd5d0}.status.ok{background:#19382d;color:#c9ffe5}.status.warning{background:#49391f;color:#ffe4ae}#status:empty{display:none}footer{text-align:center;color:var(--muted);font-size:.75rem;padding:16px 10px 22px}ul{padding-left:20px}li{margin:8px 0}@media(min-width:760px){.page{padding:18px}.unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bonus-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:420px){.capacity-grid{grid-template-columns:1fr}.bonus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:flex-start;flex-direction:column}.unit-grid{grid-template-columns:1fr}.actionbar{grid-template-columns:1fr}.tab{font-size:.85rem}.summary-grid{grid-template-columns:1fr 1fr}}

/* v6: persistent mobile action bar; respect iOS safe area */
.actionbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:1fr 1fr;gap:9px;background:rgba(16,23,32,.97);backdrop-filter:blur(10px);padding:10px 12px calc(10px + env(safe-area-inset-bottom));margin:0;border-top:1px solid var(--line)}
body{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
.actionbar button:disabled{opacity:.65;cursor:wait}
@media(max-width:600px){.actionbar{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.actionbar button{min-height:48px}}

/* v13: desktop-style result tiles, unit artwork and persisted manual ordering */
.result-toolbar{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.columns-control{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.78rem}
.columns-control select{min-height:34px;padding:5px 7px;border-radius:8px;font-size:.82rem}
.result-group{margin:14px 0}
.result-grid{display:grid;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr))}
.result-grid.one-column{grid-template-columns:minmax(0,1fr)}
.result-tile{position:relative;display:grid;grid-template-columns:24px 34px minmax(0,1fr) auto;align-items:center;gap:6px;min-height:42px;padding:4px 7px 4px 4px;border:1px solid var(--line);border-radius:5px;background:#202d39;border-bottom:1px solid var(--line);user-select:none}
.result-tile .drag-handle{display:flex;align-items:center;justify-content:center;min-width:24px;min-height:30px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:1.15rem;line-height:1;cursor:grab;touch-action:none;user-select:none}
.result-tile .drag-handle:active{cursor:grabbing;background:#314355;color:var(--text)}
.result-tile .unit-icon-result,.unit-icon-select{width:32px;height:32px;object-fit:contain;border:1px solid rgba(255,255,255,.12);border-radius:3px;background:rgba(0,0,0,.10)}
.result-tile .result-icon-placeholder,.unit-icon-placeholder{display:inline-block;width:32px;height:32px;flex:0 0 32px;border:1px solid rgba(255,255,255,.07);border-radius:3px;background:rgba(0,0,0,.08)}
.result-tile .result-text{min-width:0}
.result-tile .name{font-size:.83rem;font-weight:650;overflow-wrap:anywhere}
.result-tile .meta{font-size:.68rem;line-height:1.25;color:var(--muted);overflow-wrap:anywhere}
.result-tile .count{padding-left:4px;font-size:.92rem;white-space:nowrap}
.result-tile.is-dragging{opacity:.65;border:1px dashed var(--accent);box-shadow:0 0 0 2px rgba(214,163,93,.2)}
body.dragging-results{user-select:none}
.unit-card{align-items:center;gap:7px}
.unit-icon-select{flex:0 0 32px}
.unit-card .unit-name{flex:1;min-width:0}
@media(max-width:680px){.result-grid,.result-grid.two-columns{grid-template-columns:minmax(0,1fr)}.results-head{align-items:flex-start;flex-direction:column}.result-toolbar{justify-content:flex-start;width:100%}.result-tile{grid-template-columns:24px 34px minmax(0,1fr) auto}}
@media(max-width:420px){.result-toolbar{gap:5px}.result-toolbar button{min-height:34px}.result-tile .meta{font-size:.67rem}}


/* v19 — mobile usability pass (layout only; calculation engine unchanged) */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top:72px }
body{ min-width:320px; padding-bottom:calc(100px + env(safe-area-inset-bottom)) }
.topbar{gap:12px;min-width:0}
.topbar>div{min-width:0}
.topbar h1{font-size:clamp(1.02rem,3.8vw,1.25rem);line-height:1.2;overflow-wrap:anywhere}
.topbar select{flex:0 0 auto;min-width:64px;min-height:44px}
.tabs{gap:4px;padding:6px 8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.tab{min-width:0;min-height:44px;padding:8px 6px;white-space:normal;line-height:1.15;font-size:clamp(.76rem,2.8vw,.9rem)}
main,.page,.panel{min-width:0;max-width:100%}
.page{width:100%;padding:clamp(8px,2.6vw,18px);gap:10px}
.panel{padding:clamp(11px,3vw,16px);border-radius:13px}
.panel h2{line-height:1.25}
.capacity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.capacity-grid label,.bonus-grid label{min-width:0;line-height:1.25}
.capacity-grid label span,.bonus-grid label span{overflow-wrap:anywhere}
.capacity-grid input,.bonus-grid input,.profile-create input,.search{min-width:0;width:100%;font-size:16px;min-height:44px}
.bonus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.bonus-grid input{padding:9px 8px}
.section-head{min-width:0;flex-wrap:wrap}
.section-head>*{min-width:0}
.inline-tools{gap:6px}
.inline-tools button{min-height:40px}
.search{margin-bottom:9px}
.category-tabs{gap:7px;position:sticky;top:58px;z-index:2;padding:5px 0;background:var(--panel)}
.cat{min-height:44px;border-radius:9px}
.unit-list{gap:10px}
.unit-section{min-width:0}
.unit-section h3{padding:2px 0}
.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.unit-card{min-height:58px;padding:9px;gap:8px;touch-action:pan-y}
.unit-card input{width:23px;height:23px;margin:0;flex:0 0 23px}
.unit-icon-select{width:34px;height:34px;flex-basis:34px}
.unit-card .unit-name{font-size:.9rem;line-height:1.25}
.unit-card .unit-meta{font-size:.72rem;line-height:1.25}
.opponent-details{min-width:0}
.opponent-stack{overflow-wrap:anywhere}
.actionbar{width:100%;max-width:100%;left:0;right:0;transform:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:9px max(10px,calc((100vw - 980px)/2)) calc(9px + env(safe-area-inset-bottom));background:rgba(16,23,32,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.actionbar button{min-width:0;min-height:52px;padding:9px 8px;white-space:normal;line-height:1.15;font-size:.92rem}
.status{overflow-wrap:anywhere}
#status{margin:0 10px}
.results{scroll-margin-top:72px}
.results-head{align-items:flex-start;gap:10px}
.result-toolbar{min-width:0;gap:6px}
.result-toolbar button,.columns-control select{min-height:40px}
.result-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.result-tile{min-width:0;min-height:50px;grid-template-columns:24px 34px minmax(0,1fr) auto;gap:6px;padding:5px}
.result-tile .drag-handle{min-width:30px;min-height:38px;font-size:1.2rem}
.result-tile .unit-icon-result{width:32px;height:32px}
.result-tile .name{line-height:1.2}
.result-tile .count{font-size:.9rem;padding-left:2px}
.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.summary-chip{min-width:0;overflow-wrap:anywhere}
.copy-row{gap:7px}
.copy-row button,.copy-row .file-button{min-width:0;min-height:44px;padding:9px 8px;white-space:normal;line-height:1.15}
.profile-create{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.profile-create input{min-width:0}
.profile-create button{min-height:44px;white-space:normal;line-height:1.15}
.profile-card{min-width:0;padding:11px;gap:9px}
.profile-card>*{min-width:0;overflow-wrap:anywhere}
.profile-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.profile-actions button{min-width:0;min-height:44px;padding:8px 5px;white-space:normal;line-height:1.1;font-size:.88rem}
#data .copy-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
footer{padding-bottom:calc(22px + env(safe-area-inset-bottom))}
@media(max-width:680px){
 .page{padding:9px;gap:9px}
 .unit-grid{grid-template-columns:minmax(0,1fr)}
 .result-grid,.result-grid.two-columns{grid-template-columns:minmax(0,1fr)}
 .result-toolbar{width:100%;justify-content:flex-start}
 .results-head{flex-direction:column}
 .result-tile{grid-template-columns:28px 36px minmax(0,1fr) auto;min-height:54px}
 .result-tile .drag-handle{min-width:34px;min-height:42px}
 .result-tile .unit-icon-result{width:34px;height:34px}
 .result-tile .name{font-size:.9rem}
 .result-tile .meta{font-size:.72rem}
 .result-tile .count{font-size:.95rem}
}
@media(max-width:380px){
 .topbar{padding-left:11px;padding-right:11px}
 .topbar h1{font-size:1rem}
 .tabs{padding-left:5px;padding-right:5px}
 .tab{font-size:.74rem;padding-left:3px;padding-right:3px}
 .capacity-grid{gap:7px}
 .capacity-grid label{font-size:.78rem}
 .actionbar{gap:6px;padding-left:7px;padding-right:7px}
 .actionbar button{font-size:.84rem;padding:8px 5px}
 .profile-create{grid-template-columns:minmax(0,1fr)}
 .profile-actions{grid-template-columns:1fr}
 .profile-actions button{min-height:42px}
 .summary-chip strong{font-size:.87rem}
 .result-toolbar{gap:5px}
 .result-toolbar button{font-size:.82rem}
}
@media(min-width:681px){
 .actionbar{padding-left:max(12px,calc((100vw - 980px)/2));padding-right:max(12px,calc((100vw - 980px)/2))}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* v19 mobile pass: action bar belongs to Calculator tab only */
body{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
body.show-calc-actions{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
body:not(.show-calc-actions) .actionbar{display:none}
/* Short landscape phones: keep controls compact and avoid wasting vertical space. */
@media (max-width:900px) and (orientation:landscape) and (max-height:520px){
 .topbar{padding-top:calc(7px + env(safe-area-inset-top));padding-bottom:7px}
 .topbar h1{font-size:1rem}
 .tabs{padding-top:3px;padding-bottom:3px}
 .tab{min-height:38px}
 .category-tabs{top:44px}
 body.show-calc-actions{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
 .actionbar{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
 .actionbar button{min-height:46px}
 .page{gap:8px}
}

/* v19.1: explicit one-position result reordering for touch screens */
.result-move-controls{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center}
.result-tile .move-tile{display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;height:24px;padding:0 4px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:.62rem;line-height:1;touch-action:manipulation}
.result-tile .move-tile:active{background:#314355;color:var(--text)}
.result-tile .move-tile:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.result-tile{grid-template-columns:24px 24px 34px minmax(0,1fr) auto}
@media(max-width:680px){.result-tile{grid-template-columns:28px 26px 36px minmax(0,1fr) auto}.result-move-controls{gap:1px}.result-tile .move-tile{min-width:26px;min-height:27px;height:27px;font-size:.7rem}}

/* v20: bonus presets and compact profile selector */
.bonus-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.equal-bonus-toggle{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:.9rem}.equal-bonus-base{display:flex;align-items:center;gap:10px;max-width:320px;margin:8px 0 12px}.equal-bonus-base input{max-width:130px}.profile-picker{display:grid;gap:10px;margin:14px 0}.profile-actions{display:flex;gap:8px;flex-wrap:wrap}.profile-actions button{flex:1}

/* v21: multilingual help dialog and compact header action */
.instruction-button{white-space:nowrap}
.instructions-dialog{width:min(92vw,680px);max-height:85vh;border:1px solid var(--border,#344252);border-radius:14px;padding:18px;background:var(--panel,#202b38);color:inherit}
.instructions-dialog::backdrop{background:rgba(0,0,0,.62)}
.instructions-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.instructions-head h2{margin:0}
.instructions-content{line-height:1.55}
.instructions-content h3{margin:18px 0 8px}
.instructions-content ol{padding-left:24px}
.instructions-content li{margin:0 0 9px}
@media(max-width:600px){.topbar{gap:8px}.instruction-button{padding:8px 10px;font-size:.85rem}.instructions-dialog{padding:14px}}

/* v22: optional Screen Wake Lock control */
.keep-awake-control{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:.82rem;color:var(--text);cursor:pointer}
.keep-awake-control input{width:18px;height:18px;margin:0;accent-color:var(--accent);flex:0 0 auto}
@media(max-width:600px){.topbar{flex-wrap:wrap}.keep-awake-control{order:3;width:100%;justify-content:flex-end;font-size:.8rem}.topbar #language{margin-left:auto}}
