:root{
  --bg:#061b1d;
  --bg2:#0a272a;
  --panel:#0d2f32;
  --panel2:#092326;
  --text:#f6fbfb;
  --muted:#a6c3c5;
  --teal:#045e5e;
  --teal2:#0b7777;
  --orange:#f88a17;
  --orange2:#ffad3b;
  --danger:#ff5c6c;
  --ok:#40e6a0;
  --border:rgba(255,255,255,.12);
  --shadow:0 18px 55px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,apple-system,sans-serif;background:radial-gradient(circle at top left, rgba(248,138,23,.14), transparent 38%), linear-gradient(135deg,var(--bg),#071417 70%);color:var(--text)}
.header{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid var(--border);position:sticky;top:0;background:rgba(6,27,29,.92);backdrop-filter:blur(14px);z-index:10}
.brandline{display:flex;align-items:center;gap:12px}.logo{height:48px;width:auto;object-fit:contain}.brand{font-weight:900;letter-spacing:.2px;font-size:20px}.tag{font-size:12px;color:var(--muted);max-width:78vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container{display:grid;grid-template-columns:320px 1fr;gap:18px;padding:18px}.card{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)),var(--panel2);border:1px solid var(--border);border-radius:20px;padding:16px;box-shadow:var(--shadow);overflow:auto}.main-card{position:relative;min-height:calc(100vh - 130px)}.grid-wrap{position:relative;overflow:auto;min-height:720px;border-radius:18px;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),rgba(2,16,18,.55);background-size:40px 40px}.grid{position:relative;width:1600px;min-height:1100px;transform-origin:top left}.tile{position:absolute;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.01)),#0b2528;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:14px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.25);transition:box-shadow .15s,border-color .15s}.tile h3{margin:0;font-size:15px;padding-right:32px}.tile.dragging{opacity:.82;box-shadow:0 18px 45px rgba(0,0,0,.38);border-color:var(--orange)}.tile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.delete-x{display:none;position:absolute;right:8px;top:8px;width:28px;height:28px;border:0;border-radius:999px;background:var(--danger);color:#fff;font-size:20px;line-height:26px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(255,92,108,.28)}.tile.editing .delete-x{display:block}.muted{color:var(--muted);font-size:12px}.row{display:grid;grid-template-columns:1fr;gap:11px}.btn{background:linear-gradient(180deg,var(--orange2),var(--orange));color:#271100;border:none;padding:10px 14px;border-radius:12px;cursor:pointer;font-weight:800;box-shadow:0 8px 20px rgba(248,138,23,.18)}.btn.secondary{background:#173b40;color:var(--text);box-shadow:none}.btn:disabled{opacity:.55;cursor:not-allowed}.input,select{width:100%;padding:11px 12px;background:#071b1e;color:var(--text);border:1px solid var(--border);border-radius:12px;outline:none}.input:focus,select:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(248,138,23,.14)}label{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:7px}h1,h2,h3{color:var(--text)}h2{font-size:18px;margin:0 0 12px}.notice{padding:10px 12px;border:1px dashed rgba(248,138,23,.4);border-radius:12px;font-size:12px;color:#ffe4c1;background:rgba(248,138,23,.07)}.switch{display:flex;align-items:center;gap:10px}.slider{appearance:none;background:#1f454a;border-radius:99px}.gauge-wrap{position:relative;display:grid;place-items:center}.gauge-svg{display:block}.gauge-track{stroke:rgba(255,255,255,.14);fill:none}.gauge-progress{stroke:var(--orange);fill:none;stroke-linecap:round}.gauge-value{position:absolute;bottom:12px;background:rgba(255,255,255,.08);color:var(--text);padding:5px 11px;border-radius:12px;font-weight:800}.gauge-range{position:absolute;top:6px;font-size:12px;color:var(--muted)}canvas{display:block;max-width:100%}.zoom-controls{position:absolute;right:26px;bottom:26px;display:flex;gap:8px;z-index:5}.zoom-controls button{width:42px;height:42px;border-radius:50%;font-size:24px;line-height:1;padding:0}.footer{padding:10px 18px;text-align:center;color:var(--muted)}.permission-note{font-size:12px;color:#ffe1b8;background:rgba(248,138,23,.09);border:1px solid rgba(248,138,23,.24);border-radius:12px;padding:10px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(96vw,460px);background:rgba(9,35,38,.96);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:26px;padding:28px}.auth-logo{display:block;height:76px;margin:0 auto 14px}.auth-title{text-align:center;font-size:28px;margin:0 0 4px}.auth-sub{text-align:center;color:var(--muted);margin:0 0 20px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.auth-tab{border:1px solid var(--border);border-radius:14px;background:#092326;color:var(--text);padding:10px;cursor:pointer;font-weight:800}.auth-tab.active{background:var(--orange);color:#261000;border-color:var(--orange)}.hidden{display:none!important}.auth-msg{min-height:20px;margin-top:10px;color:#ff9da4}.auth-msg.ok{color:var(--ok)}@media(max-width:820px){.container{grid-template-columns:1fr}.header{align-items:flex-start;gap:12px}.tag{white-space:normal}.logo{height:40px}.grid{width:1200px}.main-card{min-height:680px}}
