:root{
  --bg:#060910;--panel:#101725;--panel2:#182131;--panel3:#202b3c;--gold:#d5a217;--gold2:#f5cb4e;
  --ink:#f7f3ea;--muted:#8d99aa;--line:#2a374a;--ok:#42d3a2;--danger:#d85c62;--blue:#39bdf8;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.topbar{height:66px;padding:10px 14px;border-bottom:1px solid #ffffff10;background:#070b12;display:flex;align-items:center;gap:14px}
.brand{display:flex;align-items:center;gap:10px;min-width:250px}
.logo{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#ffe88a,#d19b0d 52%,#594000);color:#111;font-family:Georgia,serif;font-weight:900;box-shadow:0 0 20px #d7a71e55}
.brand h1{font-size:16px;margin:0}.brand small{display:block;color:var(--gold2);letter-spacing:.15em;font-size:9px}
.project-title{font-weight:750;font-size:15px}.spacer{flex:1}
.ghost,.icon-btn,.primary,.danger,.row-button{border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--ink);padding:9px 12px}
.primary{background:linear-gradient(135deg,#c7920c,#f1c84d);color:#111;border-color:#f2c84e;font-weight:850}
.danger{background:#5e2027;border-color:#7e3139}
.icon-btn{min-width:42px}
.icon-btn:disabled{opacity:.3;cursor:not-allowed}
.toolbar{height:76px;display:flex;gap:8px;align-items:center;padding:8px 14px;background:#0d1420;border-bottom:1px solid var(--line)}
.floor-tabs{display:flex;gap:6px;align-items:center}
.floor-tab{border:0;background:transparent;color:#8e98a9;padding:10px 13px;border-radius:10px;font-weight:800}
.floor-tab.active{color:#fff;background:#273145;box-shadow:0 0 0 1px #d7a71e66;transform:scale(1.05)}
.workspace{height:calc(100vh - 142px);display:grid;grid-template-columns:54px minmax(0,1fr) 330px;transition:grid-template-columns .22s ease}
.left-dock,.right-dock{background:#0b111b;border-right:1px solid var(--line);overflow:hidden;min-width:0}
.right-dock{border-left:1px solid var(--line);border-right:0}
.layers-pane{width:300px;height:100%;overflow:auto;padding:12px}
.panel-title{display:flex;align-items:center;gap:10px;padding:4px 4px 12px}
.panel-title strong{font-size:19px}.panel-title button{margin-left:auto}
.layer-group{border-top:1px solid #ffffff0d;padding:5px 0}
.layer-row{padding-left:8px;display:grid;grid-template-columns:18px 1fr 48px;gap:9px;border-radius:9px;padding-top:9px;padding-bottom:9px}
.layer-row:hover{background:#1b2636}
.opacity-wrap{grid-column:2/4;display:grid;grid-template-columns:1fr 44px;gap:8px;align-items:center;padding:4px 0 3px}
.opacity-slider{width:100%;accent-color:var(--gold)}
.opacity-num{width:44px;background:#0d1420;color:#fff;border:1px solid var(--line);border-radius:7px;padding:4px;text-align:center}
.map-shell{position:relative;background:#fff;overflow:hidden;min-width:0}
.map-viewport{position:absolute;inset:0;overflow:auto;background:#fff}
.canvas{position:relative;transform-origin:0 0;background:#fff;display:block}
.layer-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none}
.map-controls{position:absolute;z-index:20;right:14px;top:14px;display:flex;gap:8px;align-items:center}
.info-pane{width:330px;height:100%;overflow:auto;padding:12px}
.card{background:#111a28;border:1px solid var(--line);border-radius:13px;padding:13px;margin-bottom:10px}
.card h3{margin:0 0 7px;font-size:14px}.meta{color:var(--muted);font-size:12px;line-height:1.45}
.info-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.info-header h2{margin:0;font-size:19px}.info-header .spacer{flex:1}
.project-picker,.device-creator{position:fixed;inset:0;z-index:220;background:#070b12ee;backdrop-filter:blur(12px);padding:24px;overflow:auto}
.project-picker-inner,.device-creator-inner{max-width:880px;margin:4vh auto;background:#101725;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 30px 90px #000b}
.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px}
.project-card{border:1px solid var(--line);background:#151e2c;border-radius:15px;padding:18px;text-align:left;color:var(--ink)}
.project-card:hover{border-color:#d5a21788;background:#1b2636}
.project-card h3{margin:0 0 7px}.project-card .meta{margin-bottom:12px}
.creator-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.creator-grid .field.full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.field label{color:#aeb8c7;font-size:12px}.field input,.field select,.field textarea{background:#0d1420;color:#fff;border:1px solid var(--line);border-radius:9px;padding:10px}
.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:200;background:#12281f;border:1px solid #2f9e76;color:#dfffee;border-radius:999px;padding:10px 18px}
.importer{position:fixed;inset:0;z-index:150;background:#070b12;padding:28px;overflow:auto}
.wizard-card{max-width:900px;margin:auto;background:#101725;border:1px solid var(--line);border-radius:18px;padding:22px}
.wizard-progress{height:7px;background:#222d3c;border-radius:10px;overflow:hidden}.wizard-progress span{display:block;height:100%;background:linear-gradient(90deg,#c8920a,#f4ce51)}
body.projects-visible .topbar,
body.projects-visible .toolbar,
body.projects-visible .workspace{display:none!important}
body.projects-visible{overflow:auto;background:radial-gradient(circle at 20% 10%,#18243c,#070b12 45%,#060910)}
.app-landing{min-height:100vh;padding:36px 24px 60px;color:var(--ink)}
.landing-wrap{max-width:980px;margin:0 auto}
.landing-brand{display:flex;align-items:center;gap:12px;margin:0 0 28px}
.landing-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}
.landing-card{background:#101725;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 24px 70px #0005}
.landing-card h1{font-family:Georgia,serif;font-size:46px;line-height:.95;margin:10px 0 18px}
.landing-card h2{margin:0 0 14px}
.landing-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.project-list{display:grid;gap:12px}
.recent-project-card{position:relative;border:1px solid var(--line);background:#151e2c;border-radius:14px;padding:16px;color:var(--ink);text-align:left}
.recent-project-card:hover{border-color:#d5a21788;background:#1b2636}
.project-edit{position:absolute;right:10px;top:10px;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#111a28;color:#fff;font-size:18px}
.projects-page{min-height:100vh;padding:28px 22px;background:#070b12}
.projects-page-inner{max-width:1050px;margin:auto}
.projects-page-header{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.projects-page-header h1{margin:0}.projects-page-header .spacer{flex:1}
.create-project-hero{border:1px solid var(--line);background:#151e2c;border-radius:18px;padding:22px;margin-bottom:20px}
.projects-table{display:grid;gap:12px}
.projects-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid var(--line);background:#111a28;border-radius:15px;padding:18px}
.projects-row h3{margin:0 0 5px}
.projects-row-actions{display:flex;gap:8px}
.edit-project-modal{position:fixed;inset:0;z-index:260;background:#070b12dd;backdrop-filter:blur(10px);display:grid;place-items:center;padding:20px}
.edit-project-card{width:min(620px,94vw);background:#101725;border:1px solid var(--line);border-radius:18px;padding:22px}
.wizard-kicker{color:var(--gold2);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.wizard-step{min-height:360px;padding:8px 0}.wizard-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}.wizard-option{border:1px solid var(--line);background:#121b29;color:var(--ink);border-radius:14px;padding:16px;text-align:left}
.wizard-option.active{border-color:var(--gold);box-shadow:0 0 0 2px #d5a21744}
.upload-tile{cursor:pointer;position:relative}
.upload-tile input{position:absolute;inset:0;opacity:0;cursor:pointer}
.upload-preview{margin-top:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#07101b;min-height:180px;display:grid;place-items:center}
.upload-preview img,.upload-preview embed{max-width:100%;max-height:360px;width:100%;height:360px;object-fit:contain}
.paste-note{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;margin-top:10px}
.keycap{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 8px;border:1px solid #53627a;border-bottom-width:3px;border-radius:7px;background:#111b2a;color:#fff;font-weight:800}
.floor-editor{display:grid;gap:10px;margin-top:12px}
.floor-row{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:#111a28;border-radius:12px;padding:10px}
.floor-num{width:34px;height:34px;border-radius:50%;background:#d6a719;color:#101010;font-weight:900;display:grid;place-items:center}
.alignment-stage{position:relative;height:430px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#0b1421}
.align-layer{position:absolute;left:50%;top:50%;width:72%;height:82%;transform:translate(-50%,-50%);transform-origin:center;cursor:grab;user-select:none}
.align-layer:active{cursor:grabbing}
.align-layer img,.align-layer embed{width:100%;height:100%;object-fit:contain;pointer-events:none;background:transparent}
.align-tools{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-top:12px}
.align-tools label{font-size:12px;color:var(--muted)}
.align-tools input[type=range]{width:100%}
.floor-section{border:1px solid var(--line);border-radius:14px;background:#101927;margin-top:12px;overflow:hidden}
.floor-section-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#151f2e}
.floor-section-head h3{margin:0}
.room-row{display:flex;align-items:center;gap:10px;padding:11px 14px;border-top:1px solid var(--line)}
.room-name{flex:1;border-radius:8px;padding:7px 9px}
.room-name[contenteditable=true]{outline:2px solid #d6a719;background:#0b1320}
.wizard-complete{display:grid;place-items:center;text-align:center;min-height:360px}.wizard-complete .logo{width:72px;height:72px;font-size:30px;margin-bottom:16px}
.north-arrow{position:absolute;left:84%;top:12%;width:54px;height:76px;transform:translate(-50%,-50%) rotate(0deg);cursor:grab;z-index:7;filter:drop-shadow(0 2px 5px #0008)}
.north-arrow svg{width:100%;height:100%;overflow:visible}
.north-arrow text{fill:#ffe16b;font-weight:900;font-size:14px}
.north-arrow path{fill:#ffe16b;stroke:#111827;stroke-width:2}
input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border-radius:6px;border:1px solid #53627a;background:#0b1320;display:inline-grid;place-items:center;transition:.18s ease;box-shadow:inset 0 0 0 1px #0005}
input[type="checkbox"]::after{content:"";width:8px;height:4px;border-left:2px solid #081018;border-bottom:2px solid #081018;transform:rotate(-45deg) scale(0);transition:.15s ease;margin-top:-2px}
input[type="checkbox"]:checked{background:linear-gradient(135deg,#ffd95a,#d5a513);border-color:#ffe37a;box-shadow:0 0 0 2px #d5a2172e,0 0 16px #e2b72d80}
input[type="checkbox"]:checked::after{transform:rotate(-45deg) scale(1)}
