:root{color-scheme:dark;--bg:#101719;--panel:#172124;--line:#334144;--text:#edf1e9;--muted:#a8b5b6;--accent:#d5ef81;--target:#ffb579;--gun:#89d5e0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 'Segoe UI',sans-serif}button,input,select,textarea,.file-button{font:inherit;color:inherit;background:#202d30;border:1px solid var(--line);border-radius:5px}button,.file-button{cursor:pointer;padding:9px 12px;min-height:42px}button:hover,.file-button:hover{background:#344347}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button.active{background:var(--accent);color:#17201a;border-color:var(--accent)}header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:13px;align-items:center}.brand b{font-size:26px;letter-spacing:3px}.brand span:not(.emblem){display:block;font-size:12px;letter-spacing:2px;color:var(--muted)}.emblem{font-weight:900;font-size:29px;background:var(--accent);color:#15201a;padding:4px 12px;transform:skew(-8deg)}.header-right{display:flex;gap:24px;align-items:center}.edition,.eyebrow{font-size:12px;letter-spacing:1.7px;color:var(--muted)}main{display:grid;grid-template-columns:minmax(0,1fr) 330px;max-width:none;margin:auto}.workspace{padding:12px;min-width:0}.mapbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}h1{font-size:26px;margin:2px 0;font-weight:600}h1 span{font-size:14px;color:var(--muted);display:block;font-weight:400}.tag{font-size:12px;border:1px solid var(--line);padding:5px 8px;border-radius:3px;letter-spacing:1px}.toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.toolbar button{font-size:14px}.spacer{flex:1}.map-wrap{height:calc(100vh - 230px);min-height:500px;max-height:none;position:relative;background:#212a2b;border:1px solid #465354;border-radius:7px;overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.map-hint,.map-status,.map-scale{position:absolute;background:#101719e8;padding:7px 10px;border:1px solid #526063;border-radius:4px;pointer-events:none;font-size:12px}.map-hint{top:12px;left:12px}.map-status{bottom:12px;left:12px}.map-scale{bottom:12px;right:12px;border-top:3px solid #e9eee6}.mapfoot{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin-top:12px;flex-wrap:wrap}.key{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 4px 0 8px}.gun{background:var(--gun)}.target{background:var(--target)}aside{background:var(--panel);border-left:1px solid var(--line);padding:23px}.panel-title,.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.selectors{display:grid;grid-template-columns:1fr 88px;gap:12px;margin:20px 0 15px}label{font-size:14px;color:var(--muted)}select{width:100%;padding:10px 5px;margin-top:6px}.status{padding:9px 11px;font-size:14px;border-left:3px solid var(--accent);background:#d5ef8110;color:var(--accent)}.status.bad{border-color:var(--target);color:var(--target);background:#ffb57910}.metrics{display:grid;grid-template-columns:1fr 1fr;margin-top:16px;border:1px solid var(--line);border-radius:6px;overflow:hidden}.metric{padding:15px 12px;border-bottom:1px solid var(--line);min-width:0}.metric:nth-child(odd){border-right:1px solid var(--line)}.metric>span{display:block;font-size:11px;letter-spacing:1.3px;color:var(--muted)}.metric strong{font:600 29px/1.5 Consolas,monospace;display:block}.metric.primary strong{color:var(--accent)}small{font-size:12px;color:var(--muted)}.notice{color:#d0d8d6;font-size:14px;border-bottom:1px solid var(--line);padding-bottom:16px}h2{font-size:16px;font-weight:600;margin:10px 0}h3{font-size:17px}.text-button{font-size:14px;color:var(--accent);background:transparent;border:none;padding:6px}.coord-head,.coord-row{display:grid;grid-template-columns:65px 1fr 1fr;gap:7px;align-items:center;margin:7px 0}.coord-head{font-size:12px;color:var(--muted)}input{width:100%;min-width:0;padding:9px}.muted{color:var(--muted);font-size:12px}.nudge{display:flex;gap:4px;flex-wrap:wrap;margin:15px 0 20px;align-items:center}.nudge span{font-size:12px;width:100%;color:var(--muted)}.nudge button{flex:1;font-size:14px;padding:5px}.targets{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 18px}.target-item{display:flex}.target-item button{font-size:14px;padding:7px}.target-item button:first-child{border-radius:4px 0 0 4px}.target-item button:last-child{border-radius:0 4px 4px 0;color:var(--muted)}details{border-top:1px solid var(--line);padding:16px 0;font-size:14px}summary{cursor:pointer;color:var(--accent);font-weight:600}textarea{width:100%;resize:vertical;padding:10px;margin:7px 0}details button{font-size:14px;margin:3px 0}.backup{display:flex;gap:8px}.backup>*{flex:1;font-size:14px;text-align:center}.file-button input{display:none}#message{font-size:13px;color:var(--accent)}footer{border-top:1px solid var(--line);padding:15px 24px;color:var(--muted);font-size:12px}a{color:var(--accent)}dialog{max-width:660px;width:calc(100% - 32px);max-height:85vh;border:1px solid var(--line);border-radius:9px;padding:24px;background:var(--panel);color:var(--text)}dialog::backdrop{background:#0009}dialog p{font-size:15px}#demo[hidden]{display:none}@media(max-width:1000px){main{grid-template-columns:minmax(0,1fr) 330px}.workspace{padding:14px}.edition{display:none}.map-wrap{min-height:510px}aside{padding:17px}.toolbar .spacer{display:none}}@media(max-width:760px){header{height:75px;padding:0 15px}.brand b{font-size:20px}.brand span:not(.emblem){font-size:10px}.header-right{gap:0}.header-right button{font-size:13px}main{display:flex;flex-direction:column}.workspace{padding:14px}.mapbar{margin-bottom:12px}.map-wrap{height:65vh;min-height:400px;max-height:850px}.map-hint{font-size:11px}.toolbar{gap:5px}.toolbar button{padding:8px 10px}.mapfoot #cursor{display:none}aside{border-left:none;border-top:1px solid var(--line);padding:20px}.metrics{grid-template-columns:repeat(2,1fr)}.metric strong{font-size:33px}.metric>span{font-size:12px}.positions{max-width:600px}.coord-row{grid-template-columns:70px 1fr 1fr}footer{padding:15px}.mapbar h1 span{font-size:12px}}
:root .map-scale{padding:5px 0;text-align:center;white-space:nowrap;font-size:11px;background:#101719c9;border-left:0;border-right:0;border-bottom:0;border-radius:0}

.map-label{display:block;font-size:12px;color:var(--muted);font-weight:400}.mapbar h1 select{font-size:24px;font-weight:600;min-width:210px;margin-top:2px;padding:5px 32px 5px 10px}.mapbar .eyebrow{display:none}

/* Desktop workspace fills the viewport; only the settings panel scrolls. */
@media(min-width:761px){
 html,body{height:100%;overflow:hidden}
 body{height:100dvh;display:flex;flex-direction:column}
 header{flex:0 0 72px}
 main{flex:1;min-height:0;width:100%;overflow:hidden}
 .workspace{display:flex;flex-direction:column;min-height:0;padding:10px 12px 0}
 .mapbar,.toolbar{flex-shrink:0}
 .mapbar{margin-bottom:8px}
 .toolbar{margin-bottom:8px}
 .map-wrap{flex:1;min-height:0;height:auto;max-height:none;border-radius:7px 7px 0 0}
 .mapfoot{display:none}
 aside{min-height:0;overflow-y:auto;overscroll-behavior:contain}
 body>footer{display:none}
}
