:root{--bg:#071522;--panel:#0d2033;--panel2:#10283f;--line:#20384e;--muted:#9fb0c0;--text:#f7fafc;--orange:#ff9825;--orange2:#ffb24d;--blue:#38a9ff;--red:#ff5b64;--green:#39d98a;--shadow:0 18px 50px rgba(0,0,0,.28)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.boot{height:100vh;display:grid;place-items:center;align-content:center;gap:25px}.logo{font-size:30px;font-weight:900;letter-spacing:3px}.logo b{color:var(--orange)}.spinner{width:34px;height:34px;border:3px solid #1b3349;border-top-color:var(--orange);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shell{min-height:100vh;background-image:linear-gradient(rgba(29,57,82,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(29,57,82,.22) 1px,transparent 1px);background-size:70px 70px}.topbar{height:76px;display:flex;align-items:center;padding:0 34px;border-bottom:1px solid #11293c;background:rgba(7,21,34,.93);backdrop-filter:blur(14px);position:sticky;top:0;z-index:30}.topbar .logo{font-size:24px}.topbar nav{margin-left:auto;display:flex;align-items:center;gap:10px}.topbar .userchip{color:var(--muted);font-size:13px;margin-right:8px}.container{max-width:1500px;margin:auto;padding:34px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.hero h1{font-size:34px;margin:0 0 7px}.hero p{margin:0;color:var(--muted)}.btn{border:1px solid var(--line);background:#0b1b2a;color:#eaf2f8;border-radius:11px;padding:11px 16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:.18s}.btn:hover{transform:translateY(-1px);border-color:#3c5b74}.btn.primary{background:var(--orange);color:#071522;border-color:var(--orange);box-shadow:0 8px 25px rgba(255,152,37,.22)}.btn.danger{color:#ffb5ba;border-color:#73333a}.btn.ghost{background:transparent}.btn.small{padding:7px 10px;border-radius:8px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.project-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);transition:.2s;cursor:pointer}.project-card:hover{transform:translateY(-3px);border-color:#36546e}.cover{height:155px;background:linear-gradient(140deg,#142e46,#0b1b2a);position:relative;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover}.cover .empty{height:100%;display:grid;place-items:center;color:#587087;font-size:38px}.project-body{padding:16px}.project-title{font-weight:800;font-size:16px;margin-bottom:5px}.project-client{color:#b8c6d3;font-size:13px;min-height:19px}.project-meta{display:flex;justify-content:space-between;color:#74899d;font-size:11px;margin-top:13px}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.auth-brand{padding:8vw;display:flex;flex-direction:column;justify-content:center;background-image:linear-gradient(rgba(31,66,96,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(31,66,96,.25) 1px,transparent 1px);background-size:70px 70px}.auth-brand .logo{font-size:46px}.auth-brand h1{font-size:54px;line-height:1.02;margin:35px 0 20px;max-width:800px}.auth-brand h1 span{color:var(--orange)}.auth-brand p{color:#a9bbca;font-size:19px;max-width:650px;line-height:1.6}.auth-box-wrap{display:grid;place-items:center;padding:40px;background:#08192a}.auth-box{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);padding:34px;border-radius:20px;box-shadow:var(--shadow)}.auth-box h2{margin:0 0 7px}.auth-box>p{color:var(--muted);margin:0 0 25px}.field{display:flex;flex-direction:column;gap:7px;margin:14px 0}.field label{font-size:12px;color:#b8c6d3;font-weight:700}.input,.select,.textarea{width:100%;background:#081827;border:1px solid #294157;color:#fff;border-radius:10px;padding:12px 13px;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--orange)}.textarea{min-height:100px;resize:vertical}.auth-box .btn{width:100%;margin-top:12px}.link{color:var(--orange2);text-decoration:none}.hint{font-size:12px;color:#758a9e;line-height:1.5}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.65);display:grid;place-items:center;z-index:100;padding:20px}.modal{width:min(560px,100%);max-height:90vh;overflow:auto;background:#0c2032;border:1px solid #2c465d;border-radius:18px;box-shadow:0 30px 90px #000;padding:25px}.modal h2{margin-top:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.project-head{display:flex;gap:16px;align-items:center;margin-bottom:22px}.project-head .back{font-size:20px}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:20px}.tab{padding:12px 16px;color:#94a8ba;border-bottom:2px solid transparent;cursor:pointer;font-weight:700}.tab.active{color:#fff;border-bottom-color:var(--orange)}.project-layout{display:grid;grid-template-columns:1fr 320px;gap:18px}.viewer-card{background:#050b12;border:1px solid var(--line);border-radius:16px;overflow:hidden;min-height:620px;position:relative}.viewer-stage{height:620px;position:relative;overflow:hidden}.viewer-stage canvas{display:block;width:100%;height:100%}.viewer-empty{height:100%;display:grid;place-items:center;color:#7890a6;text-align:center;padding:30px}.sidepanel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;min-height:620px}.sidepanel h3{margin:5px 5px 13px}.thumb-list{display:grid;gap:10px;max-height:520px;overflow:auto;padding-right:3px}.thumb{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:center;border:1px solid #233c53;background:#0a1a29;border-radius:10px;padding:7px;cursor:pointer}.thumb.active{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange) inset}.thumb img{width:90px;height:58px;object-fit:cover;border-radius:7px;background:#162b3d}.thumb .name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thumb .sub{font-size:10px;color:#7890a6;margin-top:4px}.uploadzone{border:1px dashed #38546a;border-radius:12px;padding:17px;text-align:center;color:#95a8ba;margin:10px 0;background:#091a29}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:15px}.image-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:hidden}.image-card img{width:100%;height:170px;object-fit:cover;background:#07121d}.image-card .info{padding:12px}.progress{height:7px;background:#132a3e;border-radius:10px;overflow:hidden;margin-top:9px}.progress>i{display:block;height:100%;background:var(--orange);width:0}.hotspot{position:absolute;width:30px;height:30px;border:3px solid #a8e5ff;border-radius:50%;box-shadow:0 0 0 4px rgba(4,26,41,.55),0 0 18px rgba(77,202,255,.65);transform:translate(-50%,-50%);cursor:pointer;z-index:5;background:rgba(7,44,65,.3)}.hotspot.arrow:after{content:'↑';position:absolute;inset:0;display:grid;place-items:center;color:#d6f4ff;font-weight:900}.hotspot.chevron:after{content:'⌃';position:absolute;inset:0;display:grid;place-items:center;color:#d6f4ff;font-weight:900}.hotspot.door:after{content:'▯';position:absolute;inset:0;display:grid;place-items:center;color:#d6f4ff}.hotspot-label{position:absolute;transform:translate(-50%,10px);background:rgba(1,10,17,.82);padding:5px 8px;border-radius:7px;color:#fff;font-size:11px;white-space:nowrap;pointer-events:none;z-index:5}.viewer-controls{position:absolute;right:14px;top:14px;display:flex;flex-direction:column;gap:8px;z-index:8}.viewer-control{width:38px;height:38px;border-radius:9px;border:1px solid #3a5367;background:rgba(4,15,24,.78);color:#fff;font-size:18px}.drop-indicator{position:absolute;inset:0;border:3px dashed var(--orange);background:rgba(255,152,37,.08);display:none;z-index:7;pointer-events:none}.viewer-stage.dragging .drop-indicator{display:block}.toast{position:fixed;right:25px;bottom:25px;z-index:200;background:#102a3f;border:1px solid #355269;color:#fff;padding:13px 17px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s;max-width:400px}.toast.show{opacity:1;transform:none}.toast.err{border-color:#8a3e45}.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.share-card{border:1px solid var(--line);background:#091a29;border-radius:13px;padding:15px}.share-card .url{font-size:11px;color:#8ca0b3;word-break:break-all;background:#06131f;padding:8px;border-radius:7px;margin:10px 0}.admin-shell{min-height:100vh;background:#050f18}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:25px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}.stat b{font-size:26px;display:block}.stat span{font-size:12px;color:#8ca0b3}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--panel)}table{width:100%;border-collapse:collapse;min-width:900px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #1d3549;font-size:13px}th{color:#90a5b6;background:#0a1a29;position:sticky;top:0}td small{color:#758a9e}.badge{display:inline-block;padding:4px 8px;border-radius:20px;font-size:10px;font-weight:800;background:#163148;color:#a9c6dc}.badge.ok{background:#153b2d;color:#7ce5b3}.badge.off{background:#44232a;color:#ff9da5}.public-view{height:100vh;background:#020609;position:relative}.public-view .viewer-stage{height:100vh}.public-top{position:absolute;left:18px;top:16px;z-index:12;background:rgba(3,13,22,.77);border:1px solid #324a5c;border-radius:12px;padding:11px 14px;backdrop-filter:blur(10px)}.public-top b{font-size:14px}.public-top small{display:block;color:#8ba0b0;margin-top:3px}.filmstrip{position:absolute;left:50%;bottom:17px;transform:translateX(-50%);z-index:12;display:flex;gap:7px;background:rgba(3,13,22,.82);border:1px solid #31495d;padding:7px;border-radius:12px;max-width:80vw;overflow:auto}.filmstrip img{width:76px;height:47px;object-fit:cover;border-radius:6px;border:2px solid transparent;cursor:pointer}.filmstrip img.active{border-color:var(--orange)}.lockbox{height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 35% 25%,#183b5d,#071522 55%)}.qrbox{background:white;padding:14px;border-radius:12px;display:inline-block}.qrbox canvas{display:block}.loading-overlay{position:absolute;inset:0;background:rgba(2,8,13,.72);display:grid;place-items:center;z-index:20}.loading-overlay.hidden{display:none}.loading-card{text-align:center}.loading-card .spinner{margin:auto}.empty-state{padding:70px 20px;text-align:center;color:#8095a8;border:1px dashed #315067;border-radius:16px}.kbd{border:1px solid #3b5366;border-bottom-width:2px;border-radius:5px;padding:2px 5px;font-size:10px}.row{display:flex;gap:10px;align-items:center}.row.between{justify-content:space-between}.muted{color:var(--muted)}.orange{color:var(--orange)}.hidden{display:none!important}@media(max-width:1000px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.project-layout{grid-template-columns:1fr}.sidepanel{min-height:0}.stats{grid-template-columns:repeat(2,1fr)}.share-grid{grid-template-columns:1fr}.container{padding:20px}.topbar{padding:0 20px}.viewer-stage{height:68vh}.viewer-card{min-height:68vh}}@media(max-width:600px){.hero{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr}.topbar .userchip{display:none}}

.qrbox svg{display:block;width:260px;height:260px}

/* ===== V1.4 - Editor 360 ampliado, galeria publica e suporte ===== */
.project-workspace{max-width:none;width:100%;padding:18px 26px 28px}
.project-workspace .project-head{margin:0 0 8px;min-height:64px;justify-content:space-between}
.project-head-left,.project-head-actions{display:flex;align-items:center;gap:12px}
.project-head-left h1{margin:0;font-size:25px;line-height:1.05}
.project-client-line{font-size:12px;margin-top:4px}
.project-head-actions{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.project-workspace .tabs{margin-bottom:10px}
.project-workspace .tab{padding:10px 14px}
.project-layout{grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:stretch;transition:grid-template-columns .2s ease}
.project-layout.panel-closed{grid-template-columns:minmax(0,1fr)}
.viewer-card{min-height:calc(100vh - 212px);height:calc(100vh - 212px);border-radius:14px}
.viewer-stage{height:100%;min-height:560px}
.sidepanel{min-height:calc(100vh - 212px);height:calc(100vh - 212px);padding:12px;overflow:hidden;transition:opacity .16s ease,transform .16s ease}
.sidepanel.hidden-panel{display:none}
.sidepanel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.sidepanel-head h3{margin:0;font-size:17px}
.sidepanel-head .row{gap:6px;flex-wrap:nowrap}
.sidepanel-head .btn.small{padding:7px 9px;white-space:nowrap}
.edit-mode-hint{padding:9px 10px;margin-bottom:8px;background:#081827;border:1px solid #243c51;border-radius:9px;min-height:54px}
.thumb-list{max-height:calc(100vh - 345px);overflow-y:auto;overflow-x:hidden;padding-right:4px}
.thumb{grid-template-columns:110px minmax(0,1fr);gap:10px;padding:8px;min-height:100px;align-items:stretch}
.thumb img{width:110px;height:84px;align-self:center}
.thumb-copy{min-width:0;display:flex;flex-direction:column;justify-content:center}
.thumb .name{font-size:12px;line-height:1.25;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.thumb .sub{font-size:10px;white-space:normal}
.thumb-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.viewer-editing .hotspot{border-color:#ffd34e;box-shadow:0 0 0 5px rgba(255,174,0,.18),0 0 20px rgba(255,174,0,.75)}
.is-editable .hotspot-label{outline:1px solid rgba(255,174,0,.45)}
body.hotspot-edit-mode::after{content:'';position:fixed;inset:0;border:4px solid #ffc21c;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);z-index:90;pointer-events:none}
body.hotspot-edit-mode::before{content:'MODO DE EDIÇÃO DOS PONTOS 360º  •  ESC PARA SAIR';position:fixed;left:50%;top:8px;transform:translateX(-50%);z-index:91;background:#ffc21c;color:#101820;font-size:11px;font-weight:900;letter-spacing:.04em;padding:6px 12px;border-radius:20px;pointer-events:none;box-shadow:0 6px 24px rgba(0,0,0,.3)}

.public-top{display:flex;align-items:center;gap:12px;max-width:min(620px,calc(100vw - 36px))}
.public-images-btn{border:1px solid #ffb24d;background:#ff9825;color:#081522;font-weight:900;border-radius:9px;padding:9px 13px;cursor:pointer;white-space:nowrap}
.public-gallery-overlay{position:fixed;inset:0;z-index:300;background:#05090d;display:grid;grid-template-rows:auto minmax(0,1fr) 100px;padding:14px 22px 12px;color:#fff}
.public-gallery-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:3px 2px 12px}
.public-gallery-top b{font-size:18px}.public-gallery-top small{display:block;color:#8296a9;margin-top:3px}
.public-gallery-close{width:42px;height:42px;border-radius:50%;border:1px solid #31475a;background:#0d1c29;color:#fff;font-size:28px;line-height:1;cursor:pointer}
.public-gallery-stage{min-height:0;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;gap:16px}
.public-gallery-image-wrap{height:100%;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.public-gallery-image-wrap img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 20px 70px rgba(0,0,0,.35)}
.gallery-arrow{height:88px;width:54px;align-self:center;border:1px solid rgba(255,174,0,.45);border-radius:14px;background:#0c1721;color:#ffb02e;font-size:58px;font-weight:300;line-height:.9;cursor:pointer;transition:.15s}
.gallery-arrow:hover{background:#ff9825;color:#071522;transform:scale(1.03)}
.public-gallery-thumbs{display:flex;justify-content:flex-start;align-items:center;gap:8px;overflow-x:auto;overflow-y:hidden;padding:10px 4px 2px;scrollbar-width:thin}
.public-gallery-thumbs button{padding:0;border:2px solid transparent;background:none;border-radius:8px;overflow:hidden;cursor:pointer;flex:0 0 auto}
.public-gallery-thumbs button.active{border-color:#ff9825}
.public-gallery-thumbs img{display:block;width:108px;height:68px;object-fit:cover;background:#101b24}

.blocked-page{min-height:100vh;display:grid;place-items:center;padding:34px;background-image:radial-gradient(circle at 30% 18%,rgba(33,83,126,.58),transparent 42%),linear-gradient(rgba(31,66,96,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(31,66,96,.2) 1px,transparent 1px);background-size:auto,70px 70px,70px 70px;background-color:#071522}
.blocked-card{width:min(590px,100%);background:#0c2032;border:1px solid #2b465d;border-radius:22px;padding:38px;box-shadow:0 30px 90px rgba(0,0,0,.42);text-align:center}
.blocked-card .logo{font-size:30px}.blocked-icon{width:62px;height:62px;margin:26px auto 17px;display:grid;place-items:center;border-radius:50%;background:#43242b;border:1px solid #8a3d46;color:#ff9ea5;font-size:34px;font-weight:900}
.blocked-card h1{margin:0 0 12px;font-size:30px}.blocked-card>p{color:#a9bbca;line-height:1.55}.blocked-help{font-size:14px}
.blocked-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.blocked-actions .btn:last-child{grid-column:1/-1}

.admin-project-card,.admin-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.admin-project-card>div:first-child,.admin-list-item>div:first-child{min-width:0}.admin-project-actions{flex:0 0 auto}
.admin-link-card{margin-bottom:9px}.admin-link-card .url{word-break:break-all}

@media(max-width:1100px){
  .project-layout{grid-template-columns:minmax(0,1fr) 320px}.sidepanel-head{align-items:flex-start;flex-direction:column}.sidepanel-head .row{width:100%;flex-wrap:wrap}.thumb{grid-template-columns:92px minmax(0,1fr)}.thumb img{width:92px;height:72px}
}
@media(max-width:900px){
  .project-workspace{padding:14px}.project-head{align-items:flex-start;flex-direction:column}.project-head-actions{width:100%;margin-left:0;justify-content:flex-start}.project-layout{grid-template-columns:1fr}.sidepanel{height:auto;min-height:0}.thumb-list{max-height:400px}.viewer-card{height:68vh;min-height:520px}.viewer-stage{min-height:520px}.public-gallery-overlay{padding:10px;grid-template-rows:auto minmax(0,1fr) 88px}.public-gallery-stage{grid-template-columns:46px minmax(0,1fr) 46px;gap:7px}.gallery-arrow{width:42px;height:68px;font-size:44px}.public-gallery-thumbs img{width:88px;height:56px}
}
@media(max-width:600px){
  .project-head-actions .btn{font-size:11px;padding:8px 10px}.blocked-actions{grid-template-columns:1fr}.blocked-actions .btn:last-child{grid-column:auto}.public-top{align-items:flex-start;flex-direction:column}.public-gallery-stage{grid-template-columns:38px minmax(0,1fr) 38px}.gallery-arrow{width:36px;height:58px;font-size:38px}
}

/* ===== V1.5 - workspace 16:9, drag/drop, capas, ordenacao e mobile ===== */
.project-page .topbar{height:64px;padding-left:26px;padding-right:26px}
.project-page .topbar .logo{font-size:22px}
.project-page .project-workspace{max-width:none;width:100%}
body.project-360-active{overflow:hidden}
body.project-360-active .shell{height:100vh;min-height:0;overflow:hidden}
body.project-360-active .project-workspace{height:calc(100vh - 64px);padding:8px 18px 10px;display:flex;flex-direction:column;overflow:hidden}
body.project-360-active .project-head{flex:0 0 52px;min-height:52px;margin:0;gap:10px}
body.project-360-active .project-head-left h1{font-size:21px}
body.project-360-active .project-client-line{margin-top:2px;font-size:11px}
body.project-360-active .project-head .btn{padding:8px 12px;border-radius:9px}
body.project-360-active .tabs{flex:0 0 39px;margin:0 0 6px}
body.project-360-active .tab{padding:8px 12px}
body.project-360-active .project-tabbody{flex:1;min-height:0;overflow:hidden}
body.project-360-active .project-layout{height:100%;min-height:0}
body.project-360-active .viewer-card,body.project-360-active .sidepanel{height:100%;min-height:0}
body.project-360-active .viewer-stage{height:100%;min-height:0}
body.project-360-active .sidepanel{display:flex;flex-direction:column}
body.project-360-active .thumb-list{max-height:none;min-height:0;flex:1;overflow-y:auto}
.pan-upload-top{background:var(--orange)!important;color:#071522!important;border-color:var(--orange)!important}
.project-head-actions{gap:8px}

.thumb{grid-template-columns:20px 96px minmax(0,1fr);gap:8px;position:relative}
.thumb img{width:96px;height:72px}
.thumb-grip,.image-drag-grip{color:#7890a6;font-weight:900;letter-spacing:-4px;cursor:grab;user-select:none;display:grid;place-items:center}
.thumb.sorting,.image-card.sorting{opacity:.48;outline:2px dashed var(--orange);outline-offset:-2px}
.thumb-actions .danger{color:#ffb5ba}
.external-file-dragging{position:relative}
.external-file-dragging::after{content:'SOLTE OS ARQUIVOS AQUI';position:absolute;inset:8px;z-index:70;border:3px dashed var(--orange);border-radius:16px;background:rgba(7,21,34,.86);color:var(--orange);font-size:24px;font-weight:900;letter-spacing:.04em;display:grid;place-items:center;pointer-events:none;box-shadow:inset 0 0 60px rgba(255,152,37,.08)}

.images-tab-head{margin-bottom:16px;align-items:flex-end}
.image-card{position:relative;display:flex;flex-direction:column;min-width:0}
.image-card .image-drag-grip{position:absolute;top:8px;left:8px;z-index:3;width:32px;height:32px;border-radius:8px;background:rgba(5,16,25,.78);border:1px solid #38546a;letter-spacing:-3px}
.image-card .info{display:flex;flex-direction:column;gap:8px;min-width:0}
.image-card .info>b{overflow-wrap:anywhere;line-height:1.25}
.image-meta{color:var(--muted);font-size:12px}
.image-actions{display:flex;gap:7px;flex-wrap:wrap}
.image-actions .btn{flex:1 1 auto}
.image-drop-empty{min-height:330px}

.public-view{position:fixed;inset:0;height:100dvh;min-height:100dvh;overflow:hidden;overscroll-behavior:none}
.public-view .viewer-stage{height:100dvh;min-height:0;touch-action:none;overscroll-behavior:none;user-select:none;-webkit-user-select:none}
.public-view canvas,.viewer-stage canvas{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none}
.public-title{min-width:0}.public-title b,.public-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}
.public-no-panorama{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#9fb0c0;padding:30px;background:#06111b}.public-no-panorama h2{color:#fff}
.public-gallery-overlay{height:100dvh;overscroll-behavior:none;touch-action:manipulation}

@media(max-width:1100px) and (min-width:901px){
  body.project-360-active .project-layout{grid-template-columns:minmax(0,1fr) 310px}
  .thumb{grid-template-columns:18px 78px minmax(0,1fr)}.thumb img{width:78px;height:62px}
}
@media(max-width:900px){
  body.project-360-active{overflow:auto}
  body.project-360-active .shell{height:auto;min-height:100vh;overflow:visible}
  body.project-360-active .project-workspace{height:auto;min-height:calc(100vh - 64px);overflow:visible;padding:10px}
  body.project-360-active .project-head{flex:0 0 auto;min-height:0}
  body.project-360-active .project-tabbody{overflow:visible}
  body.project-360-active .project-layout{height:auto}
  body.project-360-active .viewer-card{height:68vh;min-height:420px}
  body.project-360-active .sidepanel{height:auto;min-height:0}
  body.project-360-active .thumb-list{max-height:390px}
  .pan-upload-top{order:-1}
}
@media(max-width:600px){
  .public-top{left:10px;top:max(10px,env(safe-area-inset-top));max-width:calc(100vw - 20px);gap:8px;padding:9px 10px;flex-direction:row;align-items:center}
  .public-title b{font-size:12px}.public-title small{font-size:10px;max-width:180px}.public-images-btn{padding:7px 9px;font-size:11px}
  .filmstrip{bottom:max(10px,env(safe-area-inset-bottom));max-width:94vw}.filmstrip img{width:64px;height:40px}
  .public-gallery-overlay{padding:max(8px,env(safe-area-inset-top)) 6px max(8px,env(safe-area-inset-bottom));grid-template-rows:auto minmax(0,1fr) 76px}
  .public-gallery-stage{grid-template-columns:34px minmax(0,1fr) 34px;gap:4px}.gallery-arrow{width:32px;height:54px;font-size:34px}
  .public-gallery-thumbs img{width:72px;height:46px}
}

/* ===== V1.6 - pontos, planta 2D, fullscreen, checkout e mobile consistente ===== */
:root{--yellow:#ffbd2e;--yellow-hover:#ffc94f}
button,input,select,textarea{-webkit-appearance:none;appearance:none}
.btn.primary,.pan-upload-top,.public-action-btn,.checkout-buy{background:#ffbd2e!important;border-color:#ffbd2e!important;color:#071522!important}
.btn.primary:hover,.pan-upload-top:hover,.public-action-btn:hover,.checkout-buy:hover{background:#ffc94f!important;border-color:#ffc94f!important}
.logo b,.orange,.link{color:#ffbd2e}
.tab.active{border-bottom-color:#ffbd2e}.thumb.active{border-color:#ffbd2e;box-shadow:0 0 0 1px #ffbd2e inset}.progress>i{background:#ffbd2e}.filmstrip img.active{border-color:#ffbd2e}

/* Preview de criacao de hotspot e movimentacao */
.viewer-editing .hotspot{cursor:move;touch-action:none}
.drop-hotspot-preview{position:absolute;z-index:16;display:none;place-items:center;pointer-events:none;transform:translate(-50%,-58%);min-width:68px;text-align:center;color:#071522}
.drop-hotspot-preview span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#ffbd2e;border:3px solid #fff;font-size:23px;font-weight:900;box-shadow:0 8px 26px rgba(0,0,0,.45),0 0 0 5px rgba(255,189,46,.23)}
.drop-hotspot-preview small{margin-top:5px;padding:4px 7px;border-radius:7px;background:rgba(4,14,22,.92);color:#fff;font-size:10px;font-weight:800;white-space:nowrap}
.viewer-stage.dragging .drop-hotspot-preview{display:grid}
.viewer-stage.dragging .drop-indicator{border-color:#ffbd2e;background:rgba(255,189,46,.045)}
.creating-hotspot{outline:2px solid #ffbd2e;box-shadow:0 0 0 3px rgba(255,189,46,.15)}

/* Botao fullscreen do editor no canto superior esquerdo */
.viewer-fullscreen-control{position:absolute;left:14px;top:14px;z-index:18;width:42px;height:42px;border:1px solid rgba(255,189,46,.62);border-radius:10px;background:rgba(4,14,22,.76);color:#ffbd2e;font-size:24px;line-height:1;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px)}
.viewer-fullscreen-control:hover{background:#ffbd2e;color:#071522}
.editor-fullscreen-fallback{position:fixed!important;inset:0!important;z-index:500!important;width:100vw!important;height:100dvh!important;min-height:0!important;border-radius:0!important;border:0!important;background:#020609!important}
.editor-fullscreen-fallback .viewer-stage{width:100%!important;height:100%!important;min-height:0!important}
.editor-fullscreen-fallback:fullscreen,.editor-fullscreen-fallback:-webkit-full-screen{width:100vw;height:100vh;border:0;border-radius:0;background:#020609}
body.editor-preview-fullscreen{overflow:hidden!important}

/* QR centralizado */
.qrbox{width:100%;display:grid;place-items:center;background:transparent;padding:12px}
.qrbox svg,.qrbox canvas{display:block;width:min(330px,78vw)!important;height:auto!important;aspect-ratio:1/1;background:#fff;border-radius:14px;padding:12px;margin:auto}

/* Planta 2D - gerenciamento */
.floorplan-manage-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}
.floorplan-editor-shell{background:#07131e;border:1px solid var(--line);border-radius:16px;padding:14px;min-width:0}
.floorplan-editor{position:relative;display:inline-block;max-width:100%;line-height:0;background:repeating-conic-gradient(#102436 0 25%,#0b1c2b 0 50%) 50%/18px 18px;border-radius:10px;overflow:hidden;touch-action:none}
.floorplan-editor img{display:block;max-width:100%;max-height:68vh;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}
.floorplan-point{position:absolute;transform:translate(-50%,-50%);z-index:4;width:34px;height:34px;border-radius:50%;border:3px solid #fff;background:#ffbd2e;color:#071522;font-weight:900;display:grid;place-items:center;cursor:move;box-shadow:0 6px 20px rgba(0,0,0,.45),0 0 0 4px rgba(255,189,46,.18);touch-action:none}
.floorplan-point small{position:absolute;top:38px;left:50%;transform:translateX(-50%);background:rgba(2,12,20,.9);color:#fff;border-radius:6px;padding:4px 6px;font-size:10px;line-height:1;white-space:nowrap;pointer-events:none}
.floorplan-tools{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px;position:sticky;top:82px}
.floorplan-point-list{display:grid;gap:8px;margin-top:13px;max-height:45vh;overflow:auto}
.floorplan-point-row{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#081827;border:1px solid #203a50;border-radius:10px;padding:9px}
.floorplan-point-row>div{min-width:0}.floorplan-point-row b{font-size:12px;overflow-wrap:anywhere}.floorplan-empty{padding:48px 20px;text-align:center;border:1px dashed #35536a;border-radius:16px;color:var(--muted)}

/* Acoes publicas e fullscreen limpo */
.public-top{display:flex;align-items:center;gap:9px}
.public-action-btn{border:1px solid #ffbd2e;background:#ffbd2e;color:#071522;font-weight:900;border-radius:9px;padding:9px 13px;cursor:pointer;white-space:nowrap}
.public-fullscreen-btn{position:absolute;right:max(14px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));z-index:40;width:43px;height:43px;border-radius:10px;border:1px solid rgba(255,189,46,.64);background:rgba(4,14,22,.72);color:#ffbd2e;font-size:24px;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px)}
.public-fullscreen-btn:hover{background:#ffbd2e;color:#071522}
.public-clean .public-top,.public-clean .filmstrip,.public-clean .floorplan-float{display:none!important}
.public-clean .public-fullscreen-btn{opacity:.7}.public-clean .public-fullscreen-btn:hover{opacity:1}

/* Galeria publica: zoom/foco e swipe */
.public-gallery-overlay{touch-action:none;overscroll-behavior:none}
.public-gallery-image-wrap{cursor:zoom-in;touch-action:none;user-select:none;-webkit-user-select:none}
.public-gallery-image-wrap img{-webkit-user-drag:none;user-select:none}
.gallery-focus-close{position:fixed;right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));z-index:340;width:48px;height:48px;border-radius:50%;border:1px solid #ffbd2e;background:rgba(5,14,22,.8);color:#ffbd2e;font-size:32px;display:grid;place-items:center;cursor:pointer}
.public-gallery-overlay.image-focus{display:flex;padding:0;align-items:center;justify-content:center;background:#010407}
.public-gallery-overlay.image-focus .public-gallery-top,.public-gallery-overlay.image-focus .public-gallery-thumbs,.public-gallery-overlay.image-focus .gallery-arrow{display:none!important}
.public-gallery-overlay.image-focus .public-gallery-stage{display:flex;width:100vw;height:100dvh;align-items:center;justify-content:center}
.public-gallery-overlay.image-focus .public-gallery-image-wrap{width:100vw;height:100dvh;cursor:default;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
.public-gallery-overlay.image-focus .public-gallery-image-wrap img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:0;box-shadow:none;object-fit:contain}

/* Planta flutuante no viewer publico */
.floorplan-float{position:fixed;left:24px;bottom:24px;z-index:120;width:min(430px,42vw);height:min(340px,48vh);min-width:240px;min-height:170px;background:rgba(7,21,34,.96);border:1px solid #345168;border-radius:14px;box-shadow:0 22px 65px rgba(0,0,0,.5);display:flex;flex-direction:column;overflow:hidden;resize:none}
.floorplan-float-head{height:42px;flex:0 0 42px;display:flex;align-items:center;justify-content:space-between;padding:0 9px 0 13px;background:#10273b;border-bottom:1px solid #29445a;cursor:move;user-select:none;touch-action:none}
.floorplan-mini-btn{width:29px;height:29px;border:1px solid #39556a;background:#0a1b29;color:#fff;border-radius:7px;cursor:pointer;display:grid;place-items:center}
.floorplan-float-body{flex:1;min-height:0;overflow:hidden;padding:8px;background:rgba(2,8,14,.55)}
.public-floorplan-canvas{height:100%;width:100%;position:relative;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#142536 0 25%,#0d1c2a 0 50%) 50%/16px 16px;border-radius:8px;overflow:hidden}
.public-floorplan-canvas img{display:block;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;user-select:none}
.public-floor-point{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;border:2px solid #fff;background:#ffbd2e;color:#071522;box-shadow:0 5px 18px rgba(0,0,0,.5);cursor:pointer;display:grid;place-items:center;font-weight:900}
.public-floor-point small{position:absolute;top:33px;left:50%;transform:translateX(-50%);background:rgba(2,10,16,.88);color:#fff;padding:3px 5px;border-radius:5px;font-size:9px;white-space:nowrap;pointer-events:none}
.floorplan-resizer{position:absolute;right:0;bottom:0;width:26px;height:26px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 50%,#ffbd2e 51% 58%,transparent 59% 66%,#ffbd2e 67% 74%,transparent 75%)}
.floorplan-float.minimized{height:42px!important;min-height:42px!important;width:260px!important}.floorplan-float.minimized .floorplan-float-body,.floorplan-float.minimized .floorplan-resizer{display:none}

/* Pre-checkout e paginas legais */
.checkout-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.72fr);background-image:linear-gradient(rgba(29,57,82,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(29,57,82,.18) 1px,transparent 1px);background-size:70px 70px;background-color:#071522}
.checkout-summary{padding:clamp(40px,6vw,96px);display:flex;flex-direction:column;justify-content:center;max-width:980px}.checkout-summary h1{font-size:clamp(38px,5vw,68px);line-height:1.02;margin:25px 0 15px}.checkout-summary h1 span{color:#ffbd2e}.checkout-summary>p{color:#a9bbca;font-size:18px;line-height:1.6;max-width:720px}
.checkout-badge{width:max-content;max-width:100%;padding:8px 12px;border:1px solid rgba(255,189,46,.38);background:rgba(255,189,46,.08);border-radius:999px;color:#ffd77b;font-weight:800;font-size:13px}
.checkout-price{display:flex;align-items:baseline;gap:12px;margin:20px 0}.checkout-price strong{font-size:46px;color:#fff}.checkout-price span{color:#9fb0c0}.checkout-features{padding:0;margin:8px 0 16px;list-style:none;display:grid;gap:9px}.checkout-features li:before{content:'✓';color:#ffbd2e;font-weight:900;margin-right:9px}.checkout-note{font-size:13px!important;color:#8096a8!important}
.checkout-form-wrap{background:#08192a;display:grid;place-items:center;padding:34px}.checkout-card{width:min(520px,100%);background:#0d2033;border:1px solid #29465e;border-radius:20px;padding:30px;box-shadow:0 25px 80px rgba(0,0,0,.35)}.checkout-card h2{margin-top:0}.checkout-total{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-top:1px solid #294157;margin-top:14px}.checkout-total b{font-size:24px;color:#ffbd2e}.checkout-buy{width:100%;padding:14px 16px}.checkout-security{font-size:11px;line-height:1.5;color:#738a9f;margin-top:13px;text-align:center}.checkout-consent{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:#aab9c6;line-height:1.45}.checkout-consent input{width:18px;height:18px;flex:0 0 18px;border:1px solid #4d6578;border-radius:4px;background:#071827;margin-top:1px}.checkout-consent input:checked{background:#ffbd2e;box-shadow:inset 0 0 0 4px #071827}.checkout-consent a{color:#ffbd2e}
.legal-page{min-height:100vh;padding:44px 18px;background:#071522;display:flex;justify-content:center}.legal-card{width:min(900px,100%);background:#0d2033;border:1px solid #29465e;border-radius:20px;padding:clamp(25px,5vw,52px);line-height:1.65}.legal-card h1{font-size:36px}.legal-card h2{margin-top:30px}.legal-actions{margin-top:30px;flex-wrap:wrap}
.cookie-banner{position:fixed;z-index:1000;left:18px;right:18px;bottom:18px;margin:auto;max-width:1050px;background:#0d2033;border:1px solid #36536a;border-radius:15px;padding:14px 16px;box-shadow:0 18px 55px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:space-between;gap:18px}.cookie-banner p{margin:4px 0 0;color:#9fb0c0;font-size:12px}.cookie-banner a{color:#ffbd2e}

@media(max-width:900px){
  .floorplan-manage-layout{grid-template-columns:1fr}.floorplan-tools{position:static}.checkout-page{grid-template-columns:1fr}.checkout-summary{padding:50px 24px 28px}.checkout-form-wrap{padding:20px 18px 48px}.floorplan-float{width:min(88vw,430px);height:min(38vh,330px);left:14px;bottom:max(14px,env(safe-area-inset-bottom))}
}
@media(max-width:600px){
  .public-action-btn{font-size:11px;padding:7px 9px!important;background:#ffbd2e!important;color:#071522!important;border-color:#ffbd2e!important;-webkit-appearance:none!important;appearance:none!important}
  .public-top{gap:6px;max-width:calc(100vw - 74px);flex-wrap:wrap}.public-title{flex:1 1 100%}.public-title small{max-width:230px}
  .public-fullscreen-btn{width:39px;height:39px;font-size:21px}
  .floorplan-float{width:calc(100vw - 22px);height:38vh;min-width:0;left:11px;bottom:max(11px,env(safe-area-inset-bottom));border-radius:12px}
  .gallery-focus-close{width:42px;height:42px;font-size:27px}
  .cookie-banner{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));flex-direction:column;align-items:stretch}.cookie-banner .row{justify-content:flex-end}
  .checkout-summary h1{font-size:40px}.checkout-price strong{font-size:38px}
}
.public-floorplan-layer{position:relative;max-width:100%;max-height:100%;flex:0 0 auto}
.public-floorplan-layer>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:fill}
.checkline{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:#aab9c6;line-height:1.45;margin-top:14px}.checkline input{width:18px;height:18px;flex:0 0 18px;border:1px solid #4d6578;border-radius:4px;background:#071827;margin-top:1px}.checkline input:checked{background:#ffbd2e;box-shadow:inset 0 0 0 4px #071827}.checkline a{color:#ffbd2e}

/* ===== V1.7 - ajustes de checkout, drag, tamanhos e painel lateral ===== */
body.project-360-active .sidepanel.hidden-panel{display:none!important}
.project-layout.panel-closed .sidepanel{display:none!important}
.thumb.sort-over{border-color:#ffbd2e!important;box-shadow:0 0 0 2px #ffbd2e inset,0 0 26px rgba(255,189,46,.16)}
.native-panorama-drag-ghost{position:fixed;left:-200px;top:-200px;width:44px;height:44px;border-radius:50%;background:#ffbd2e;color:#071522;border:3px solid #fff;box-shadow:0 0 0 5px rgba(7,21,34,.75),0 8px 28px rgba(0,0,0,.5);display:grid;place-items:center;font-size:26px;font-weight:1000;z-index:-1;pointer-events:none}
.native-panorama-drag-ghost span{transform:translateY(-1px)}
.hotspot-size-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.hotspot-size-choice{position:relative;display:block;cursor:pointer}
.hotspot-size-choice input{position:absolute;opacity:0;pointer-events:none}
.hotspot-size-choice span{min-height:46px;border:1px solid #294157;background:#081827;border-radius:10px;display:grid;place-items:center;color:#b8c6d3;font-weight:800;transition:.16s}
.hotspot-size-choice input:checked+span{background:#ffbd2e;color:#071522;border-color:#ffbd2e;box-shadow:0 8px 24px rgba(255,189,46,.18)}
.hotspot-size-choice:hover span{border-color:#ffbd2e}
.checkout-total{justify-content:flex-start!important;gap:24px}
.checkout-total b{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
.checkout-total b small{font-size:13px;color:#ffd77b;font-weight:800}
@media(max-width:600px){.hotspot-size-options{grid-template-columns:1fr}.checkout-total{gap:14px}.checkout-total b{font-size:20px}}
