:root{--paper: #ECEEEB;--surface: #FFFFFF;--surface-2: #F5F6F4;--surface-3: #E4E7E4;--ink: #1B2225;--ink-2: #4E585C;--ink-3: #7F888B;--rule: #DADEDB;--rule-2: #C4CAC7;--accent: #1F5F5B;--accent-2: #174A47;--accent-soft: #E1ECEA;--sand: #C7B08A;--sand-soft: #F3EEE4;--info: #3E6E8E;--warm: #B8692E;--st-disponivel: #2F7D5B;--st-reservado: #C28A1C;--st-vendido: #A4473C;--st-bloqueado: #8B9396;--txt: var(--ink);--mut: var(--ink-2);--mut2: var(--ink-3);--line: var(--rule);--line2: var(--rule-2);--vi: var(--accent);--bl: var(--info);--gr: var(--st-disponivel);--ye: var(--st-reservado);--re: var(--st-vendido);--or: var(--warm);--glass: rgba(27, 34, 37, .78);--r: 6px;--side: 84px;--panel: 384px;--f-display: "Archivo", "IBM Plex Sans", sans-serif;--f-body: "IBM Plex Sans", system-ui, sans-serif;--f-data: "IBM Plex Mono", ui-monospace, monospace;font-family:var(--f-body);color:var(--ink);color-scheme:light;font-size:14px;font-variant-numeric:tabular-nums}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:var(--paper);-webkit-font-smoothing:antialiased}h1,h2,h3,.h{font-family:var(--f-display);font-stretch:112%;margin:0;letter-spacing:-.01em;font-weight:650}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mut{color:var(--ink-2)}.mut2{color:var(--ink-3)}.sm{font-size:12px}.xs{font-size:11px}.ok{color:var(--st-disponivel)}.warn{color:var(--st-reservado)}.bad{color:var(--st-vendido)}.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column;gap:10px}.sp{flex:1}.wrap{flex-wrap:wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.eyebrow{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}b,strong{font-weight:600}#app{display:grid;grid-template-columns:var(--side) 1fr;height:100vh}.sidebar{background:var(--ink);display:flex;flex-direction:column;align-items:center;padding:14px 0 10px;gap:2px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;z-index:5}.sidebar::-webkit-scrollbar{display:none}.logo{width:40px;height:40px;display:grid;place-items:center;color:var(--sand);border:1px solid #ffffff1f;border-radius:4px}.logo-t{font-family:var(--f-display);font-stretch:118%;font-size:11px;font-weight:600;letter-spacing:.02em;margin:6px 0 10px;color:#e9e4da;text-align:center;line-height:1.15}.logo-t small{display:block;font-size:8px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--sand);margin-top:2px;white-space:nowrap}.nav-sec{font-size:9.5px;font-weight:600;letter-spacing:.08em;color:#8e979a;margin:12px 0 4px;text-transform:uppercase;width:100%;text-align:center;padding-top:10px;border-top:1px solid #ffffff14}.nav-item{position:relative;width:72px;padding:8px 2px 7px;border:0;border-radius:4px;background:transparent;color:#aeb6b8;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10.5px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.nav-item .ic{font-size:18px;line-height:1;display:grid;place-items:center}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.on{background:#ffffff17;color:#fff;box-shadow:inset 2px 0 0 var(--sand)}.nav-item .badge,.bell .badge{position:absolute;top:3px;right:12px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--sand);color:var(--ink);font-family:var(--f-data);font-size:9.5px;font-weight:500;display:grid;place-items:center}.bell{position:relative;flex:none;width:36px;height:36px;border-radius:4px;border:0;background:transparent;color:#aeb6b8;cursor:pointer;font-size:18px;margin-bottom:2px;display:grid;place-items:center}.bell:hover{color:#fff;background:#ffffff0f}.bell .badge{background:#d9705f;color:#fff;right:-3px;top:-2px}main{position:relative;overflow:hidden}.view{position:absolute;inset:0;overflow:auto;padding:28px 36px 60px;display:none}.view.on{display:block}.view.espelho{padding:0;overflow:hidden}.page-h{margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--rule)}.page-h h1{font-size:28px;font-weight:650;display:flex;align-items:center;gap:10px}.page-h h1 .ico{display:none}.page-h h1 em{font-style:normal;color:var(--accent);font-weight:600}.page-h .sub{color:var(--ink-2);font-size:13px;margin-top:6px}.btn{border:1px solid var(--rule-2);border-radius:4px;padding:9px 15px;font-weight:500;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--surface);color:var(--ink);white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.btn:hover{border-color:var(--ink-3);background:var(--surface-2)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn-green{background:var(--st-disponivel);border-color:var(--st-disponivel);color:#fff}.btn-green:hover{background:#276a4d;border-color:#276a4d}.btn-danger{background:var(--surface);border-color:#d9b1ab;color:var(--st-vendido)}.btn-danger:hover{background:#f7ecea;border-color:var(--st-vendido)}.btn-ghost{background:var(--surface)}.btn-sm{padding:6px 10px;font-size:12px}.btn-block{width:100%}.chip{border:1px solid var(--rule-2);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:500;background:var(--surface);color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.chip:hover{color:var(--ink);border-color:var(--ink-3)}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip .dot{width:8px;height:8px;border-radius:2px}.seg{display:inline-flex;gap:0;padding:2px;border-radius:5px;background:var(--surface-3);border:1px solid var(--rule)}.seg>button{border:0;border-radius:3px;padding:6px 13px;font-size:12.5px;font-weight:500;background:transparent;color:var(--ink-2);cursor:pointer;display:inline-flex;gap:6px;align-items:center}.seg>button:hover{color:var(--ink)}.seg>button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #1b22251f,0 0 0 1px var(--rule)}.seg.green>button.on{color:var(--st-disponivel)}.icon-btn{border:1px solid var(--rule);width:32px;height:32px;border-radius:4px;background:var(--surface);cursor:pointer;display:grid;place-items:center;font-size:15px;color:var(--ink-2)}.icon-btn:hover{color:var(--ink);border-color:var(--ink-3)}input.inp,select.inp,textarea.inp{width:100%;background:var(--surface);border:1px solid var(--rule-2);border-radius:4px;padding:9px 11px;outline:none;color:var(--ink)}input.inp:focus,select.inp:focus,textarea.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f5f5b22}label.fl{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-2);font-weight:500}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:18px;position:relative}.card h3{font-size:15px;font-weight:600}.kpi{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:14px 16px 15px;position:relative}.kpi .v{font-family:var(--f-display);font-stretch:108%;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;margin-top:6px;letter-spacing:-.01em}.kpi .ic{display:none}.kpi-mini{grid-template-columns:1.25fr 1.25fr .8fr}.kpi-mini .kpi{padding:12px 12px 13px;min-width:0}.kpi-mini .v{font-size:16px;font-stretch:100%;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:600;background:var(--surface-3);color:var(--ink-2)}.pill.g{background:#e3f0e9;color:#23624a}.pill.y{background:#f7edd6;color:#8a6212}.pill.r{background:#f5e4e1;color:#8b3a31}.pill.b{background:#e2ebf1;color:#2f5873}.pill.v{background:var(--accent-soft);color:var(--accent-2)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:12px;background:var(--ink-2);color:#fff;flex:none}.bar{height:6px;border-radius:1px;background:var(--surface-3);overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent)}hr.sep{border:0;border-top:1px solid var(--rule);margin:14px 0}.empty{text-align:center;color:var(--ink-3);padding:30px 10px;font-size:13px}.esp{position:absolute;inset:0;display:grid;grid-template-columns:1fr var(--panel)}.stage{position:relative;overflow:hidden;background:#1b2225}.bld-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;cursor:grab}.stage-top{position:absolute;top:14px;left:14px;right:14px;display:flex;gap:10px;align-items:flex-start;z-index:3;pointer-events:none}.stage-top>*{pointer-events:auto}.stage-top .stack{display:flex;flex-direction:column;gap:8px}.stage .seg{background:var(--glass);border-color:#ffffff1a;backdrop-filter:blur(8px)}.stage .seg>button{color:#c9d0d2}.stage .seg>button:hover{color:#fff}.stage .seg>button.on{background:#f5f6f4;color:var(--ink);box-shadow:none}.planta-sel{margin-left:auto;background:var(--glass);color:#fff;border:1px solid #ffffff1a;border-radius:4px;padding:8px 11px;font-weight:500;font-size:12.5px;backdrop-filter:blur(8px);min-width:230px}.planta-sel option{color:var(--ink)}.toolbar{position:absolute;right:14px;top:50%;translate:0 -50%;display:flex;flex-direction:column;gap:1px;z-index:3;background:#ffffff1a;border-radius:5px;overflow:hidden}.tool{width:38px;height:38px;border:0;background:var(--glass);color:#d4dadc;cursor:pointer;display:grid;place-items:center;font-size:16px;backdrop-filter:blur(8px)}.tool:hover{color:#fff;background:#1b2225e6}.tool.on{background:#f5f6f4;color:var(--ink)}.viewbar{position:absolute;left:14px;top:50%;translate:0 -50%;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px;border-radius:5px;background:var(--glass);border:1px solid #ffffff1a;backdrop-filter:blur(8px);z-index:3}.vbtn{width:36px;height:36px;border:0;border-radius:3px;background:transparent;color:#c9d0d2;display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s}.vbtn:hover{background:#ffffff14;color:#fff}.vbtn.on{background:#f5f6f4;color:var(--ink)}.vsep{width:22px;height:1px;background:#ffffff26;margin:3px 0}.vzoom{font-family:var(--f-data);font-size:10px;color:#c9d0d2;min-height:14px}.legend{position:absolute;left:14px;bottom:14px;display:flex;gap:6px;z-index:3;flex-wrap:wrap}.legend .chip{background:var(--glass);border-color:#ffffff1a;color:#dce1e2;backdrop-filter:blur(8px)}.legend .chip.on{background:#f5f6f4;border-color:#f5f6f4;color:var(--ink)}.credit{position:absolute;right:14px;bottom:8px;font-size:10px;color:#ffffff8c;z-index:2}.tip{position:fixed;z-index:50;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:4px;padding:9px 11px;font-size:12px;min-width:170px;box-shadow:0 8px 24px #1b222529;display:none}.tip b{font-family:var(--f-display);font-stretch:112%;font-size:13px}.sel-label{position:absolute;left:0;top:0;z-index:3;padding:3px 8px;border-radius:3px;background:var(--surface);color:var(--ink);font-family:var(--f-display);font-stretch:112%;font-size:12px;font-weight:600;pointer-events:none;box-shadow:0 4px 12px #0005}.marker-layer{position:absolute;inset:0;pointer-events:none;z-index:2}.bld-marker{position:absolute;left:0;top:0;pointer-events:auto;border:0;border-radius:3px;padding:3px 7px;font-size:11px;font-weight:600;color:var(--ink);background:var(--surface);box-shadow:inset 3px 0 0 var(--info),0 4px 12px #0006;cursor:pointer;white-space:nowrap}.bld-marker.ch{box-shadow:inset 3px 0 0 var(--warm),0 4px 12px #0006}.bld-marker.fin{box-shadow:inset 3px 0 0 var(--st-vendido),0 4px 12px #0006}.loading{position:absolute;inset:0;display:grid;place-items:center;z-index:4;background:#1b2225;color:#c9d0d2;transition:opacity .6s}.loading .mut{color:#c9d0d2}.loading.hide{opacity:0;pointer-events:none}.loading .spin{width:120px;height:2px;background:#ffffff1f;margin:0 auto 14px;position:relative;overflow:hidden}.loading .spin:after{content:"";position:absolute;inset:0;width:40%;background:var(--sand);animation:sp 1.2s ease-in-out infinite}@keyframes sp{0%{translate:-100% 0}to{translate:250% 0}}.panel{background:var(--surface);border-left:1px solid var(--rule);position:relative;overflow:hidden;display:flex;flex-direction:column}.panel-scroll{overflow:auto;padding:22px 22px 40px;flex:1}.panel h2{font-size:24px;font-weight:650}.back{background:none;border:0;color:var(--ink-2);font-size:12.5px;cursor:pointer;padding:0;margin-bottom:10px}.back:hover{color:var(--ink)}.mirror{display:grid;grid-template-columns:26px repeat(4,1fr);gap:3px;padding:8px 0 10px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);position:relative}.mirror .fl{font-family:var(--f-data);font-size:10px;color:var(--ink-3);display:grid;place-items:center start}.mirror button{position:relative;border:1px solid var(--rule-2);border-radius:1px;height:26px;font-family:var(--f-display);font-stretch:115%;font-size:11px;font-weight:600;color:var(--ink);background:var(--surface);cursor:pointer;transition:border-color .12s,box-shadow .12s;box-shadow:inset 0 -3px 0 var(--st, transparent)}.mirror button:hover{border-color:var(--ink);z-index:1}.mirror button.sel{outline:2px solid var(--ink);outline-offset:1px;z-index:2}.mirror button.dim{opacity:.28}.st-disponivel{--st: var(--st-disponivel)}.st-reservado{--st: var(--st-reservado);background:#f7edd6!important;border-color:#e2c98f!important}.st-vendido{--st: var(--st-vendido);color:#6e7578!important;border-color:#cfd3d1!important;background:repeating-linear-gradient(135deg,#e9ebe9 0 1px,#f7f8f6 1px 6px)!important}.st-bloqueado{--st: var(--st-bloqueado);color:var(--ink-3)!important;background:var(--surface-3)!important}.stackbar span.st-disponivel,.stackbar i.st-disponivel,.stackbar div.st-disponivel{background:var(--st-disponivel)!important}.stackbar{display:flex;height:6px;border-radius:1px;overflow:hidden;gap:2px}.price{font-family:var(--f-display);font-stretch:108%;font-variant-numeric:tabular-nums;font-size:30px;font-weight:650;color:var(--ink);letter-spacing:-.01em}.thumb{border-radius:4px;background:var(--surface-3);border:1px solid var(--rule);overflow:hidden;position:relative;cursor:zoom-in}.thumb img{display:block;width:100%;aspect-ratio:640/520;object-fit:cover}.thumb .btn{position:absolute;right:10px;bottom:10px}.spec{background:var(--surface-2);border:1px solid var(--rule);border-radius:4px;padding:8px 10px}.spec .eyebrow{font-size:10px}.spec b{font-family:var(--f-display);font-variant-numeric:tabular-nums;font-weight:600;font-size:16px}.crm-card{background:var(--sand-soft);border:1px solid #E2D6C0;border-radius:var(--r);padding:14px}.stat3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat3>div{background:var(--surface);border-radius:4px;padding:9px;font-size:11px;cursor:pointer;border:1px solid var(--rule);color:var(--ink-2)}.stat3>div:hover{border-color:var(--ink-3)}.stat3 b{display:block;font-family:var(--f-display);font-variant-numeric:tabular-nums;font-weight:600;font-size:20px;color:var(--ink)}.sec{margin-top:14px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:12px 14px}.sec-h{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;margin-bottom:10px}.sec-h .ico{color:var(--ink-3)}.enc{display:grid;grid-template-columns:74px 1fr;gap:10px;padding:10px;border-radius:4px;background:var(--surface-2);border:1px solid var(--rule);margin-bottom:8px}.enc img{width:74px;height:58px;object-fit:cover;border-radius:3px}.enc-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;background:var(--surface);border:1px solid var(--rule);border-radius:3px;padding:7px;font-size:10.5px;grid-column:1 / -1;color:var(--ink-2)}.enc-meta b{display:block;font-size:12px;color:var(--ink)}.steps{display:grid;grid-template-columns:repeat(3,1fr);position:relative;margin:10px 0 4px;font-size:10.5px}.steps:before{content:"";position:absolute;left:6px;right:6px;top:5px;height:1px;background:var(--rule-2)}.steps>div{position:relative;padding-top:18px;color:var(--ink-3)}.steps>div:before{content:"";position:absolute;top:0;left:0;width:11px;height:11px;border-radius:50%;background:var(--surface);border:1px solid var(--rule-2)}.steps>div.done{color:var(--ink)}.steps>div.done:before{background:var(--accent);border-color:var(--accent)}.steps>div:nth-child(2){text-align:center}.steps>div:nth-child(2):before{left:50%;translate:-50% 0}.steps>div:nth-child(3){text-align:right}.steps>div:nth-child(3):before{left:auto;right:0}.bill{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:4px;background:var(--surface-2);border:1px solid var(--rule);margin-bottom:6px;font-size:12.5px}.tl{position:relative;padding-left:18px}.tl:before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:1px;background:var(--rule-2)}.tl>div{position:relative;padding:4px 0 10px;font-size:12.5px}.tl>div:before{content:"";position:absolute;left:-17px;top:10px;width:7px;height:7px;border-radius:50%;background:var(--surface);border:1.5px solid var(--accent)}.person{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:12.5px}.person:last-child{border-bottom:0}.chart{display:flex;align-items:flex-end;gap:14px;height:230px;padding:20px 6px 0}.chart .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;cursor:pointer}.chart .b i{width:56%;max-width:40px;border-radius:1px;background:var(--accent);transition:height .6s cubic-bezier(.2,.8,.2,1),background .15s;min-height:2px}.chart .b:hover i{background:var(--accent-2)}.chart .b span{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding-top:6px;border-top:1px solid var(--ink);width:100%;text-align:center}.chart .b em{font-style:normal;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.funnel>div{display:grid;grid-template-columns:120px 1fr 30px;gap:10px;align-items:center;font-size:12.5px;margin-bottom:10px}.funnel>div>:last-child{font-variant-numeric:tabular-nums;font-weight:600;text-align:right}.rank{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--rule)}.rank:last-child{border-bottom:0}.dash{display:grid;grid-template-columns:2fr 1fr;gap:16px}table.tbl{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--rule)}.tbl th{text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:10px 12px;font-weight:600;border-bottom:1px solid var(--ink);background:var(--surface);position:sticky;top:0}.tbl td{padding:11px 12px;border-bottom:1px solid var(--rule)}.tbl tr:last-child td{border-bottom:0}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--surface-2)}.kanban{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}.kcol{background:var(--surface-3);border:1px solid transparent;border-radius:var(--r);padding:10px;min-height:300px;transition:background .2s,border-color .2s}.kcol.over{background:var(--accent-soft);border-color:var(--accent)}.kcol-h{display:flex;justify-content:space-between;font-weight:600;font-size:12.5px;margin:2px 4px 10px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}.kcard{background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:10px;margin-bottom:8px;cursor:grab;font-size:12px;color:var(--ink-2);box-shadow:0 1px #1b222510}.kcard:hover{border-color:var(--rule-2)}.kcard:active{cursor:grabbing}.kcard.drag{opacity:.4}.kcard b{font-size:13px;display:block;color:var(--ink)}.hero{position:relative;border-radius:var(--r);overflow:hidden;padding:24px;background:var(--ink);color:#f1f2f0}.hero .mut,.hero .mut2{color:#a9b1b3}.hero .big{font-family:var(--f-display);font-stretch:112%;font-size:64px;font-weight:600;line-height:1;letter-spacing:-.02em}.hero .eyebrow{color:#a9b1b3!important}.cube3d{display:none}.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:22px;border-top:1px solid #ffffff24;padding-top:14px;gap:10px}.hero-stats b{font-family:var(--f-display);font-variant-numeric:tabular-nums;font-weight:600;font-size:26px}.hero .btn{background:transparent;color:#fff;border-color:#ffffff40}.hero .btn:hover{background:#ffffff14}.hero .btn-primary,.hero .btn-green{background:var(--sand);border-color:var(--sand);color:var(--ink)}.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.pcard{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden}.pcard .ph{position:relative;aspect-ratio:480/340;background:var(--surface-3)}.pcard .ph img{width:100%;height:100%;object-fit:cover;display:block}.pcard .ph .tag{position:absolute;top:8px;left:8px;background:var(--surface);color:var(--ink);padding:2px 7px;border-radius:3px;font-family:var(--f-display);font-stretch:112%;font-weight:600;font-size:12px}.pcard .ph .tag2{position:absolute;top:8px;right:8px;background:#1b2225cc;color:#fff;padding:2px 7px;border-radius:3px;font-size:11px}.pcard .ph .tag3{position:absolute;bottom:8px;left:8px;padding:2px 7px;border-radius:3px;font-size:10.5px;font-weight:600}.pcard .bd{padding:11px 12px 12px;font-size:12px;color:var(--ink-2)}.ov{position:fixed;inset:0;z-index:60;background:#1b222573;display:grid;place-items:center;animation:fi .15s}@keyframes fi{0%{opacity:0}}.modal{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r);padding:24px;box-shadow:0 24px 60px -12px #1b222559;animation:mi .2s ease-out}.modal.wide{width:min(860px,calc(100vw - 32px))}@keyframes mi{0%{transform:translateY(8px);opacity:0}}.modal h3{font-size:20px;margin-bottom:4px}.modal .foot{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid var(--rule)}.toasts{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;gap:8px}.toast{background:var(--ink);color:#f1f2f0;border-left:3px solid #6FBF95;padding:11px 14px;border-radius:4px;font-size:13px;min-width:260px;max-width:380px;box-shadow:0 10px 28px #1b222540;animation:ti .2s ease-out}.toast.warn{border-left-color:#e2b04a}.toast.err{border-left-color:#d9705f}.toast.info{border-left-color:var(--sand)}@keyframes ti{0%{transform:translateY(8px);opacity:0}}.dropdown{position:fixed;z-index:70;left:92px;top:60px;width:380px;max-height:70vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r);padding:10px;box-shadow:0 20px 50px -10px #1b222547;animation:mi .15s}.notif{display:flex;gap:10px;padding:10px;border-radius:4px;cursor:pointer;font-size:12.5px}.notif .ico{color:var(--ink-3);margin-top:2px}.notif:hover{background:var(--surface-2)}.notif.unread{background:var(--accent-soft)}.planv{position:fixed;inset:0;z-index:55;background:#e4e7e4;display:grid;grid-template-rows:auto 1fr;animation:fi .2s}.planv-h{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--rule);background:var(--surface)}.planv-b{display:grid;grid-template-columns:1fr 300px;min-height:0}.planv-stage{position:relative;overflow:hidden}.planv-stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important;cursor:grab}.plan-labels{position:absolute;inset:0;pointer-events:none}.plan-label{position:absolute;left:0;top:0;pointer-events:auto;border:0;background:var(--ink);color:#fff;padding:4px 8px;border-radius:3px;font-size:10.5px;line-height:1.25;display:flex;flex-direction:column;align-items:center;cursor:pointer;box-shadow:0 3px 10px #0004}.plan-label span{font-family:var(--f-data);color:#c9d0d2;font-size:9.5px}.plan-label.on{background:var(--accent)}.planv-side{border-left:1px solid var(--rule);padding:16px;overflow:auto;background:var(--surface)}.amb{display:flex;justify-content:space-between;width:100%;border:1px solid var(--rule);background:var(--surface);border-radius:4px;padding:9px 12px;margin-bottom:6px;cursor:pointer;font-weight:500;font-size:12.5px;color:var(--ink)}.amb:hover{border-color:var(--ink-3)}.amb.on{background:var(--ink);border-color:var(--ink);color:#fff}.phone{width:300px;height:600px;border-radius:40px;background:#1b2225;padding:11px;margin:0 auto;box-shadow:0 30px 60px -20px #1b222566}.phone .scr{width:100%;height:100%;border-radius:30px;overflow:auto;background:#f5f6f4;color:var(--ink);padding:18px 14px;font-size:12.5px}.phone .scr .c{background:#fff;border-radius:10px;padding:12px;margin-bottom:10px;border:1px solid var(--rule)}.qr{width:120px;height:120px;margin:8px auto;display:grid;grid-template-columns:repeat(21,1fr)}.qr i{background:#111}.qr i.w{background:transparent}.view,.panel-scroll{scrollbar-width:thin;scrollbar-color:var(--rule-2) transparent}.print-area{display:none}@media print{body *{visibility:hidden!important}.print-area,.print-area *{visibility:visible!important}.print-area{display:block!important;position:absolute;left:0;top:0;width:100%;color:#111;background:#fff;padding:30px;font-family:var(--f-body)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:1100px){:root{--panel: 330px}.dash{grid-template-columns:1fr}.grid4{grid-template-columns:1fr 1fr}}@media(max-width:800px){#app{grid-template-columns:1fr;grid-template-rows:1fr 64px}.sidebar{order:2;flex-direction:row;overflow-x:auto;padding:6px}.logo-t,.nav-sec{display:none}.logo{width:36px;height:36px;flex:none}.nav-item{width:64px;flex:none}.nav-item.on{box-shadow:inset 0 2px 0 var(--sand)}.esp{grid-template-columns:1fr;grid-template-rows:55% 45%}.panel{border-left:0;border-top:1px solid var(--rule)}.view{padding:18px 16px 40px}.hero-stats,.grid3{grid-template-columns:1fr 1fr}.planv-b{grid-template-columns:1fr;grid-template-rows:1fr 200px}.planta-sel{min-width:0}.viewbar{flex-direction:row;top:auto;bottom:46px;left:50%;translate:-50% 0;max-width:calc(100% - 16px);padding:3px}.vbtn{width:32px;height:32px}.vsep{width:1px;height:20px;margin:0 2px}.vzoom{min-width:30px;text-align:center;font-size:9px}.legend{flex-wrap:nowrap;overflow-x:auto;left:8px;right:8px;bottom:8px;scrollbar-width:none}.legend::-webkit-scrollbar{display:none}.legend .chip{flex:none}.legend{-webkit-mask:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:24px}.sidebar:after{content:"";position:sticky;right:-6px;flex:none;width:32px;margin-left:-32px;align-self:stretch;background:linear-gradient(90deg,transparent,var(--ink) 80%);pointer-events:none}.nav-item{width:58px;font-size:10px}.nav-item .badge{right:8px}.grid3.kpi-mini{grid-template-columns:1.25fr 1.25fr .8fr}.credit{display:none}.toolbar{top:62px;right:8px;translate:none}.tool{width:34px;height:34px;font-size:14px}}.btn-walk{background:linear-gradient(135deg,#c7b08a,#a88d62);color:#1b2225;border:0;font-weight:700;letter-spacing:.01em;box-shadow:0 6px 18px #c7b08a55}.btn-walk:hover{filter:brightness(1.06)}.pv-walk-ui{position:absolute;inset:0;pointer-events:none;z-index:3;display:none}.pv-walk-ui.on{display:block}.pv-room-badge{position:absolute;top:16px;left:50%;translate:-50% 0;background:#1b2225c7;backdrop-filter:blur(8px);color:#f2eee6;border:1px solid rgba(199,176,138,.45);border-radius:999px;padding:8px 18px;display:flex;gap:10px;align-items:baseline;font-family:var(--f-display, "Archivo"),sans-serif;font-size:15px;box-shadow:0 8px 24px #0005}.pv-room-badge span{font-family:var(--f-data, "IBM Plex Mono"),monospace;color:#c7b08a;font-size:12px}.pv-room-badge:empty{display:none}.pv-room-badge.pulse{animation:pvPulse .5s ease}@keyframes pvPulse{0%{transform:scale(.92);opacity:.4}to{transform:none;opacity:1}}.pv-hint{position:absolute;bottom:22px;left:50%;translate:-50% 0;max-width:min(92%,640px);text-align:center;background:#1b2225cc;color:#f2eee6;font-size:13px;line-height:1.45;padding:10px 16px;border-radius:12px;transition:opacity .8s}.pv-hint.some{opacity:0}.pv-joy{position:absolute;left:22px;bottom:22px;width:116px;height:116px;border-radius:50%;background:#1b222559;border:2px solid rgba(242,238,230,.55);pointer-events:auto;touch-action:none;backdrop-filter:blur(4px)}.pv-joy i{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#c7b08a;box-shadow:0 4px 14px #0006;transition:transform .08s}.planv.walking [data-act=pv-zoom],.planv.walking #pvZoom,.planv.walking #pvRot{display:none}.planv.walking .planv-stage>.mut.xs{display:none}.planv.walking .planv-stage canvas{cursor:grab}
