:root{--bg:#f3f1ec;--ink:#1d2321;--mute:#6b736f;--line:#dcd8cf;--card:rgba(255,255,255,.94);--acc:#1f6f5c;--acc2:#e7f1ee;--r:10px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink)}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);-webkit-tap-highlight-color:transparent}
#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
[hidden]{display:none!important}

#top{position:fixed;left:12px;right:12px;top:calc(10px + env(safe-area-inset-top));display:flex;gap:10px;align-items:center;justify-content:space-between;pointer-events:none;flex-wrap:wrap}
#top>*{pointer-events:auto}
.brand{background:var(--card);border-radius:var(--r);padding:8px 12px;box-shadow:0 1px 3px rgba(0,0,0,.08);line-height:1.15}
.brand b{display:block;font-size:16px;letter-spacing:.01em}
.brand span{font-size:12px;color:var(--mute)}
#modes{display:flex;background:var(--card);border-radius:var(--r);padding:3px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
#modes button{padding:8px 14px;border-radius:7px;font-size:14px;font-weight:500;color:var(--mute)}
#modes button.on{background:var(--acc);color:#fff}

#panel{position:fixed;right:12px;top:84px;width:340px;max-height:calc(100% - 140px);overflow:auto;background:var(--card);border-radius:var(--r);
  box-shadow:0 2px 10px rgba(0,0,0,.1);padding:14px 16px 16px;backdrop-filter:blur(6px)}
.pane h2{font-size:18px;margin:6px 0 8px;line-height:1.25}
.pane h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);margin:16px 0 6px;font-weight:600}
.txt{font-size:14.5px;line-height:1.5}
.txt p{margin:0 0 9px}
.txt b{font-weight:600}
.hint{font-size:12.5px;color:var(--mute);line-height:1.45;margin:4px 0}
.row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.primary{background:var(--acc);color:#fff;border-radius:8px;padding:9px 16px;font-weight:600;font-size:14px}
.ghost{background:#efede7;border-radius:8px;padding:8px 12px;font-size:13.5px}
.ghost:hover{background:#e6e3db}
.primary:disabled,.ghost:disabled{opacity:.35;cursor:default}
.step{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--mute)}
.dots{display:flex;gap:5px}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--line);cursor:pointer}
.dots i.on{background:var(--acc)}

#layers label,.tog{display:flex;align-items:center;gap:8px;font-size:14px;padding:4px 0;cursor:pointer}
#layers .sw{width:12px;height:12px;border-radius:3px;flex:none;border:1px solid rgba(0,0,0,.15)}
input[type=checkbox]{accent-color:var(--acc);width:16px;height:16px;margin:0}
input[type=range]{width:100%;accent-color:var(--acc);margin:4px 0}
.seg{display:flex;background:#efede7;border-radius:8px;padding:2px;margin-bottom:4px}
.seg button{flex:1;padding:6px 4px;border-radius:6px;font-size:13px}
.seg button.on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.1);font-weight:600}

.hud{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:8px}
.hud div{background:#efede7;border-radius:8px;padding:7px 8px}
.hud small{display:block;font-size:10.5px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.hud b{font-size:17px;font-variant-numeric:tabular-nums}
.hud .warn{background:#fbe9d9}
#hud .where{grid-column:1/-1;background:none;padding:2px 0;font-size:14px;font-weight:600}

#pick{position:fixed;left:12px;bottom:calc(52px + env(safe-area-inset-bottom));width:330px;background:var(--card);border-radius:var(--r);padding:12px 14px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
#pick .k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--acc);font-weight:600}
#pick .n{font-size:15.5px;font-weight:600;margin:3px 24px 4px 0;line-height:1.3}
#pick .m{font-size:13px;color:var(--mute)}
#pick .row{margin-top:8px}
#pick .ghost{padding:6px 9px;font-size:12.5px}
.x{position:absolute;right:8px;top:6px;font-size:20px;color:var(--mute);padding:2px 6px}

#ver{position:fixed;left:12px;bottom:calc(10px + env(safe-area-inset-bottom))}
#ver button{background:var(--card);border-radius:8px;padding:6px 10px;font-size:12px;color:var(--mute);box-shadow:0 1px 3px rgba(0,0,0,.08);max-width:calc(100vw - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#hist{position:fixed;inset:0;background:rgba(20,24,22,.35);display:flex;align-items:center;justify-content:center;padding:16px}
#hist .card{position:relative;background:#fff;border-radius:12px;max-width:560px;width:100%;max-height:80vh;overflow:auto;padding:18px 20px}
#hist h2{margin:0 0 4px;font-size:18px}
#hist ol{padding-left:0;list-style:none;margin:12px 0 0}
#hist li{padding:9px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.4}
#hist li small{display:block;color:var(--mute);font-size:12px}
#hist li.cur b::after{content:"  · showing";color:var(--acc);font-weight:500;font-size:12px}
#toast{position:fixed;left:50%;top:84px;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:8px;padding:9px 14px;font-size:13.5px;box-shadow:0 3px 12px rgba(0,0,0,.2);max-width:90vw}
#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);font-size:15px;color:var(--mute);transition:opacity .4s}

@media (max-width:720px){
  #top{top:calc(6px + env(safe-area-inset-top));left:8px;right:8px}
  .brand{padding:6px 10px}.brand b{font-size:14px}.brand span{font-size:11px}
  #modes button{padding:7px 10px;font-size:13px}
  #panel{left:8px;right:8px;top:auto;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-height:42vh;padding:12px 14px 14px}
  .pane h2{font-size:16px;margin:4px 0 6px}
  .txt{font-size:14px}
  #pick{left:8px;right:8px;width:auto;top:calc(64px + env(safe-area-inset-top));bottom:auto}
  #ver{display:none}
  #toast{top:64px}
}
