:root{font:14px Arial,sans-serif;color:#efede8;background:#191919;color-scheme:dark;--line:#3d3d3d;--muted:#b3afa7;--accent:#f5b942}*{box-sizing:border-box}body{margin:0;display:flex;height:100vh;overflow:hidden}button,input{font:inherit}button{border:1px solid #505050;border-radius:7px;background:#303030;color:#f5f2eb;padding:9px 12px;cursor:pointer}button:hover{border-color:var(--accent);background:#414141}button:disabled{opacity:.4;cursor:default}.primary{background:var(--accent);border-color:var(--accent);color:#211b10;font-weight:700}.primary:hover{background:#ffd477}aside{width:302px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#222222;z-index:3}header{padding:26px 22px 18px}.eyebrow{font-size:10px;font-weight:bold;color:var(--accent);letter-spacing:1.8px}h1{font-size:38px;letter-spacing:-1.3px;margin:13px 0 4px}p{color:var(--muted);font-size:12px;line-height:1.6}header p{margin:0}.filters{padding:15px;border-block:1px solid var(--line)}input[type=search]{width:100%;padding:11px;border:1px solid #505050;background:#1c1c1c;border-radius:6px;color:white}.row{display:flex;gap:6px;align-items:center;margin:12px 0}.row button{font-size:11px;padding:7px}.row label{font-size:11px;margin-left:auto}input[type=checkbox]{accent-color:var(--accent)}#counts{font-size:12px;color:var(--accent)}#layers{overflow:auto;flex:1;padding:12px 15px}details{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}summary{font-size:12px;text-transform:uppercase;letter-spacing:1px;cursor:pointer;padding:8px 0}#typeCount{color:var(--muted);float:right}.layer{display:flex;gap:8px;align-items:center;padding:7px 4px;font-size:12px}.layer:hover{background:#303030;border-radius:5px}.swatch{width:10px;height:10px;border-radius:3px;box-shadow:0 0 0 1px #ffffff40;flex-shrink:0}.layer .n{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}main{flex:1;min-width:0;position:relative;display:flex;flex-direction:column}.toolbar{height:62px;display:flex;align-items:center;gap:15px;padding:12px 20px;border-bottom:1px solid var(--line);background:#222222;flex-shrink:0}.toolbar strong{letter-spacing:2px}.toolbar strong span{font-weight:normal;font-size:11px;color:var(--muted)}#status{margin-left:auto;font-size:11px;color:var(--muted)}section{position:relative;flex:1;min-height:0}section[hidden]{display:none}canvas{display:block;width:100%;height:100%;touch-action:none}.mapControls{position:absolute;right:20px;top:18px;display:flex;gap:4px}.mapHint{position:absolute;bottom:16px;left:18px;padding:9px 12px;border:1px solid #ffffff25;border-radius:6px;font-size:11px;background:#222222dc;color:#d7d2c8;pointer-events:none}#selection{position:absolute;right:20px;bottom:16px;padding:11px 15px;border-radius:7px;background:#262626de;color:#ece4d5;font-size:12px;pointer-events:none}#tip{position:absolute;max-width:340px;padding:14px;background:#262626f5;border:1px solid #937542;border-radius:8px;box-shadow:0 8px 25px #0008;font-size:12px;line-height:1.7;z-index:4}#tip button{margin:8px 5px 0 0;font-size:11px}#tip strong{color:#fff}.muted{color:var(--muted)}.key{color:#ffca78}.sceneControls{position:absolute;top:14px;left:16px;right:16px;display:flex;align-items:center;gap:14px;padding:10px;background:#262626ed;border-radius:8px;border:1px solid var(--line);font-size:12px}.sceneControls #back{margin-left:auto}.sceneControls input[type=range]{width:80px}#sceneInfo{position:absolute;top:83px;left:20px;color:#ece7de;text-shadow:0 1px 3px black;font-size:12px;pointer-events:none}#crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff9;pointer-events:none}#hover3d{position:absolute;bottom:70px;left:50%;transform:translateX(-50%);background:#262626f0;padding:14px 20px;border-radius:8px;font-size:13px;line-height:1.8;pointer-events:none}#progress{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:20px 28px;background:#262626f5;border:1px solid #937542;border-radius:8px;pointer-events:none;max-width:500px}body.compact aside{display:none}#places button{display:block;width:100%;text-align:left;font-size:11px;margin-top:4px}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:850px){aside{width:255px}.toolbar{padding:8px;gap:8px}.toolbar strong span{display:none}.sceneControls{gap:7px;flex-wrap:wrap}#status{font-size:10px}}@media(max-width:650px){aside{position:absolute;inset:62px auto 0 0;width:280px}.toolbar strong{font-size:12px}.toolbar button{font-size:11px}.mapHint{max-width:70%;font-size:10px}#selection{bottom:65px}}

.sceneControls{flex-wrap:wrap}.renderSettings{margin:0;padding:0;border:0}.renderSettings summary{padding:8px 10px;text-transform:none;letter-spacing:0;border:1px solid #505050;border-radius:6px}.renderSettings[open]{order:5;flex-basis:100%}.renderSettings[open] summary{border:0;padding-left:0}.renderOptions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:6px 0}.renderOptions label{display:flex;align-items:center;gap:5px}.renderOptions output{min-width:30px;color:var(--accent)}

.renderOptions select{font:inherit;color:#f5f2eb;background:#303030;border:1px solid #505050;border-radius:5px;padding:5px}

#markers details summary{font-size:11px;padding:12px 16px}

.layer .map-icon{width:22px;height:22px;object-fit:contain;background:#1b1b1b;border-radius:3px;flex:none}

#lootPanel{position:absolute;right:0;top:62px;bottom:0;width:min(420px,100%);z-index:5;border-left:1px solid #505050;border-right:0;box-shadow:-12px 0 30px #0005;background:#222222;display:flex;flex-direction:column}#lootPanel[hidden]{display:none}.lootHeading{display:flex;align-items:flex-start;gap:12px;padding:22px 20px 12px;border-bottom:1px solid var(--line)}.lootHeading h2{font-size:24px;line-height:1.2;margin:8px 0}.lootHeading button{margin-left:auto;font-size:22px;padding:2px 10px}.lootContext{padding:0 20px 14px;border-bottom:1px solid var(--line)}.lootContext label{display:block;margin-top:12px;font-size:11px;color:var(--muted)}.lootContext label[hidden]{display:none}#lootPanel select{font:inherit;color:#f5f2eb;background:#303030;border:1px solid #505050;border-radius:5px;padding:8px;max-width:100%}.lootContext select{display:block;width:100%;margin-top:5px}.lootContext p{margin:8px 0;font-size:11px}.lootContext p:empty{display:none}.lootContext button{width:100%;font-size:12px}.lootTools{padding:14px 20px 0}.lootTools .row{justify-content:space-between;font-size:11px}.lootTools select{font-size:11px!important}.lootColumns{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.4px;padding:4px 0 10px;border-bottom:1px solid var(--line)}#lootItems{overflow:auto;min-height:80px;flex:1;padding:0 14px}.lootItem{display:flex;align-items:center;gap:10px;min-height:72px;padding:8px 6px;border-bottom:1px solid #44444466}.lootIcon{width:54px;height:54px;display:grid;place-items:center;flex:none;background:#191919;border-radius:6px;border-bottom:2px solid var(--rarity)}.lootIcon img{width:50px;height:50px;object-fit:contain}.lootItemText{flex:1;min-width:0}.lootItemText strong{font-size:12px;font-weight:500;text-transform:capitalize;display:block;line-height:1.4}.lootItemText small{display:block;color:var(--rarity);font-size:10px;margin-top:5px}.lootChance{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.lootEmpty{padding:16px}.lootTools input{font-size:12px}#lootFootnote{font-size:10px;line-height:1.5;color:var(--muted);padding:12px 20px;border-top:1px solid var(--line)}body.loot-open .mapControls{right:440px}body.compact #lootPanel{display:flex}body.compact #lootPanel[hidden]{display:none}@media(max-width:850px){#lootPanel{width:min(380px,100%)}body.loot-open .mapControls{right:auto;left:10px}}

#itemChoices{max-height:270px;overflow:auto;font-size:12px;color:var(--muted)}.itemChoice{display:flex;align-items:center;gap:8px;width:100%;text-align:left;margin-top:6px;padding:6px;font-size:12px;text-transform:capitalize}.itemChoice img{width:38px;height:38px;object-fit:contain;flex:none}.itemChoice small,.itemLocation small{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:3px;text-transform:none}#itemChosen{font-size:12px;text-transform:capitalize;flex:1}#itemClear{flex:none}#itemSummary{color:var(--accent)}#itemFit,#itemMore{width:100%;font-size:11px;margin-bottom:6px}.itemLocation{width:100%;display:block;text-align:left;margin-top:6px;padding:9px;font-size:11px}.itemLocation>span{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.itemLocation strong{margin-left:auto;white-space:nowrap;color:var(--accent);font-size:11px}.itemNote{font-size:10px;line-height:1.5}#itemResults[hidden]{display:none}
/* Native-inspired integrated panels. */
:root{color-scheme:dark;--line:#404040;--muted:#b8b3aa;--accent:#f5b942}
body{font-family:Arial,Helvetica,sans-serif;background:#1b1b1b;color:#efede8}
aside#sidebar{width:312px;background:#242424;border-color:var(--line)}
#sidebar header{padding:23px 18px 18px;background:#2b2b2b;border-bottom:1px solid var(--line)}
.eyebrow{font-size:11px;letter-spacing:1.3px;color:var(--accent)}
h1{font-size:25px;margin:8px 0 0;font-weight:600}
.toolbar{height:56px;background:#2b2b2b;border-color:var(--line)}
.toolbar strong{font-size:12px;letter-spacing:.4px}.toolbar strong span{font-size:11px;color:var(--muted)}
input[type=search],select,button{font-family:inherit;background:#303030;border:1px solid #505050;border-radius:6px;color:#efede8}
button{transition:background .12s,border-color .12s}button:hover{background:#3d3d3d;border-color:#dc9b36}
button.primary{background:#f5b942;border-color:#f5b942;color:#211b10}.primary:hover{background:#ffd477}
.filters{padding:14px 16px;background:#242424;border-color:var(--line)}
#layers{padding:0 14px;scrollbar-width:thin;scrollbar-color:#5b5852 transparent}
#layers>details{padding:15px 0;border-color:var(--line)}
#layers summary{letter-spacing:.65px;font-size:11px;font-weight:600;color:#ded9cf}
#layers details[hidden]{display:none}
.sideTabs{display:flex;padding:0 14px;border-bottom:1px solid var(--line);gap:3px;background:#242424}
.sideTabs button{flex:1;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:12px 5px;color:var(--muted)}
.sideTabs button.active{border-bottom-color:var(--accent);color:var(--accent);background:#3a3224}
.layer{padding:8px 2px;font-size:12px}.layer:hover{background:#ffffff05}.swatch{border-radius:3px}
#counts,#itemSummary{font-size:11px;color:#f5c56a;line-height:1.5}


.itemLocation{background:#303030;padding:11px;border-color:#505050;margin:7px 0;width:100%;text-align:left}
.itemLocation.active{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent);background:#3c3223}
.itemLocation small{margin-top:7px;color:#bdb7ac}.itemLocation strong{font-size:11px;color:#f5c56a;white-space:nowrap}
.itemLocation span{gap:6px;font-size:11px}.itemNote{font-size:11px;line-height:1.5;color:var(--muted)}
#itemChosen{font-size:12px;line-height:1.5}.row{gap:6px}
.sceneControls{background:#272727e8;border:1px solid #55514b;border-radius:9px;box-shadow:0 4px 22px #0003;padding:10px 12px;gap:14px}
.renderSettings{font-size:12px}.sceneControls select{padding:7px}.environmentPreset{margin-left:auto}
.presetButtons{display:flex;gap:8px;margin:14px 0}.presetButtons button{flex:1;padding:11px}.presetButtons .active{border-color:var(--accent);background:#4a3922}
.muted{color:var(--muted)}
#worldCard{margin-top:12px;padding:12px;background:#303030;border:1px solid #55514b;border-radius:7px;font-size:12px;line-height:1.6}
#worldCard button{display:block;width:100%;margin-top:6px;text-align:left;padding:7px}
#worldLegend{position:absolute;bottom:50px;left:18px;padding:10px 14px;background:#242424e8;border:1px solid #55514b;border-radius:7px;pointer-events:none;font-size:11px;line-height:1.8}
#worldLegend:empty{display:none}.exposure{position:absolute;bottom:50px;right:18px;padding:10px;background:#242424e8;border:1px solid #55514b;border-radius:6px;font-size:12px;pointer-events:none}
@media(min-width:851px){main{margin-left:312px;width:calc(100% - 312px)}body.compact main{margin-left:0;width:100%}}
@media(max-width:850px){aside#sidebar{width:280px}.toolbar strong{font-size:10px}.sceneControls{gap:8px}.environmentPreset{margin-left:0}}
@media(max-width:600px){aside#sidebar{width:min(310px,85vw);position:absolute;z-index:30;height:100vh;box-shadow:6px 0 30px #0008}main{margin-left:0!important;width:100%!important}.toolbar{padding-left:10px}.toolbar strong{display:none}.environmentPreset{font-size:10px}.sceneControls{left:8px;right:8px}.sceneControls select{max-width:140px}#status{font-size:10px}}
@media(min-width:601px){main,body.compact main{margin-left:0;width:auto;flex:1}}

#mini3d{position:absolute;left:18px;top:130px;width:210px;height:210px;border:1px solid #d49b43;border-radius:8px;pointer-events:none;box-shadow:0 5px 20px #0005}#mini3d[hidden]{display:none}@media(max-width:650px){#mini3d{width:155px;height:155px;top:175px}}

/* Keep native controls consistent with the amber interface. */
input[type=range]{accent-color:var(--accent)}a{color:var(--accent)}::selection{background:#f5b942;color:#211b10}

/* Local route planning tools. */
.backHome{display:inline-flex;align-items:center;white-space:nowrap;padding:9px 11px;border:1px solid #505050;border-radius:6px;color:#f5c56a;text-decoration:none;font-size:12px}
.backHome:hover{background:#3d3d3d;border-color:#f5b942}.backHome:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#routeOverlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#routeTools{padding:18px 0 12px}#routeTools[hidden],#routeTools [hidden]{display:none!important}
.routeHeading p{margin:5px 0 18px}.routeLabel{display:block;font-size:11px;color:#b8b3aa;margin:13px 0 6px}
#routeTools input[type=text],#routeTools input[type=number],#routeSelect{width:100%;min-width:0;background:#1c1c1c;border:1px solid #505050;border-radius:6px;padding:9px;color:#efede8;font:inherit;font-size:12px}
.routeRow{display:flex;gap:6px;margin:9px 0;align-items:center}.routeRow button{font-size:11px;padding:8px 10px}.routeRow select{flex:1}
.routeModes{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:20px}.routeModes button{font-size:11px;text-align:left;padding:10px 8px}.routeModes button:last-child{grid-column:1 / -1}
.routeModes .active{background:#4a3922;border-color:#f5b942;color:#ffd079}
.routeHelp{font-size:11px;line-height:1.6;color:#b8b3aa}.routeStyle{gap:14px;flex-wrap:wrap}.routeStyle label{display:flex;align-items:center;gap:7px;font-size:11px}
#routeColor{width:30px;height:28px;padding:2px;border:1px solid #505050;border-radius:5px;background:#303030}#routeWidth{width:80px}#routeWidthValue{color:#f5c56a}
.routeDraft,#routeEditor{margin:15px 0;padding:12px;border:1px solid #76603a;border-radius:7px;background:#302a20;font-size:12px}
.routeListHeading{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;margin-top:15px;font-size:11px;color:#b8b3aa;text-transform:uppercase;letter-spacing:.6px}
.routeItem{display:block;width:100%;text-align:left;margin-top:7px;padding:10px;border-left:3px solid var(--mark-color);font-size:12px;overflow-wrap:anywhere}
.routeItem small{display:block;color:#b8b3aa;font-size:10px;margin-top:5px}.routeItem.active{background:#3c3223;border-color:#f5b942}.routeEmpty{font-size:11px;padding:16px 0}
#routeSaveState{border-top:1px solid var(--line);padding-top:12px}#routeTools button:disabled{cursor:default}
@media(max-width:850px){.toolbar strong{display:none}.toolbar{gap:7px}.backHome{padding:8px;font-size:11px}}
