
:root{--bg:#f4f6fa;--panel:#fff;--ink:#172033;--muted:#6b7280;--line:#e3e8f0;--blue:#2563eb;--dark:#111827;--danger:#dc2626;--radius:14px}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.boot,.login{min-height:100vh;display:grid;place-items:center}.login-card{width:min(420px,92vw);background:#fff;padding:32px;border-radius:20px;box-shadow:0 24px 70px #0f172a20}.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#2563eb,#06b6d4);color:white;display:grid;place-items:center;font-weight:900}.brand span{display:block;color:var(--muted);font-size:12px}.login-card h1{margin:0 0 6px}.login-card p{color:var(--muted)}label{display:grid;gap:6px;font-weight:650;font-size:13px;margin:14px 0}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}textarea{min-height:80px;resize:vertical}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;background:#e9eef8;color:#24304a}.btn.primary{background:var(--blue);color:#fff}.btn.danger{background:#fee2e2;color:#991b1b}.btn.ghost{background:transparent;border:1px solid var(--line)}.btn.small{padding:7px 10px;font-size:12px}.alert{padding:10px 12px;border-radius:10px;background:#fee2e2;color:#991b1b;margin:10px 0}
.shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{background:#111827;color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:20px}.sidebar .brand{padding:0 8px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:#cbd5e1;text-align:left;padding:11px 12px;border-radius:10px;font-weight:650}.nav button:hover,.nav button.active{background:#ffffff14;color:#fff}.userbox{margin-top:auto;padding:12px;border-top:1px solid #ffffff18;display:flex;justify-content:space-between;align-items:center}.userbox small{display:block;color:#94a3b8}.main{padding:28px;min-width:0}.header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.header h1{margin:0;font-size:26px}.header p{margin:4px 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 20px #0f172a08}.stat{padding:18px}.stat span,.stat small{display:block;color:var(--muted)}.stat strong{display:block;font-size:30px;margin:6px 0}.panel{padding:18px;margin-bottom:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel-head h2{margin:0;font-size:18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.badge{display:inline-flex;padding:4px 8px;border-radius:99px;background:#e0e7ff;color:#3730a3;font-size:11px;font-weight:800}.actions{display:flex;gap:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.modal-back{position:fixed;inset:0;background:#0f172a80;display:grid;place-items:center;padding:20px;z-index:100}.modal{width:min(760px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 30px 80px #0005}.modal h2{margin-top:0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.icon-picker{border:1px solid var(--line);border-radius:12px;padding:10px}.icon-search{display:flex;gap:8px;margin-bottom:10px}.icon-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;max-height:300px;overflow:auto}.icon-option{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 4px;display:grid;place-items:center;gap:3px;min-height:62px}.icon-option.active{outline:2px solid var(--blue);background:#eff6ff}.icon-option b{font-size:22px}.icon-option span{font-size:9px;text-align:center;color:var(--muted)}
.editor-page{position:fixed;inset:0;background:#e9edf4;z-index:50;display:grid;grid-template-rows:58px 1fr}.editor-top{background:#111827;color:#fff;display:flex;align-items:center;gap:8px;padding:8px 12px}.editor-top .spacer{flex:1}.editor-body{display:grid;grid-template-columns:260px 1fr 270px;min-height:0}.toolbox,.properties{background:#fff;padding:14px;overflow:auto;border-right:1px solid var(--line)}.properties{border-right:0;border-left:1px solid var(--line)}.tool-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}.tool-tabs button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px}.tool-tabs button.active{background:#dbeafe;border-color:#93c5fd}.equipment-library{display:grid;grid-template-columns:1fr 1fr;gap:8px}.equipment-card{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff;text-align:left}.equipment-card b{display:block}.equipment-card .glyph{font-size:24px;color:var(--blue)}.canvas-wrap{overflow:auto;padding:30px;background-image:linear-gradient(#cbd5e155 1px,transparent 1px),linear-gradient(90deg,#cbd5e155 1px,transparent 1px);background-size:20px 20px}.canvas{position:relative;width:1200px;height:800px;background:#fff;box-shadow:0 10px 35px #0f172a25;overflow:hidden;transform-origin:top left}.canvas-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.svg-layer{position:absolute;inset:0;width:100%;height:100%}.equip-item{position:absolute;width:70px;height:70px;display:grid;place-items:center;border:1px solid transparent;border-radius:10px;user-select:none;touch-action:none}.equip-item.selected{border:2px solid var(--blue);background:#dbeafe88}.equip-item .glyph{font-size:34px;line-height:1}.equip-item small{font-size:10px;background:#fff;padding:2px 4px;border-radius:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawing.selected{filter:drop-shadow(0 0 3px #2563eb)}.prop-section{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.prop-section h3{font-size:14px;margin:0 0 10px}.color-row{display:flex;gap:8px;align-items:center}.color-row input[type=color]{width:48px;padding:2px;height:38px}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:10;flex-direction:row;align-items:center;overflow:auto}.sidebar .brand,.userbox{display:none}.nav{display:flex}.main{padding:16px}.stats{grid-template-columns:1fr 1fr}.editor-body{grid-template-columns:210px 1fr}.properties{display:none}.grid2,.grid3{grid-template-columns:1fr}}

:root{--primary:#2563eb;--sidebar:#111827}
.sidebar{background:var(--sidebar)}
.btn.primary,.nav button.active{background:var(--primary)}
.sidebar.collapsed{width:76px}.shell.menu-collapsed{grid-template-columns:76px 1fr}.sidebar.collapsed .nav-label,.sidebar.collapsed .brand-text,.sidebar.collapsed .userbox div{display:none}
.nav button{display:flex;align-items:center;gap:10px}.nav-icon{font-size:18px;width:22px;text-align:center}
.product-tabs,.project-tabs,.page-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.product-tabs button,.project-tabs button,.page-tabs button{border:1px solid var(--line);background:#fff;padding:8px 12px;border-radius:9px}.product-tabs button.active,.project-tabs button.active,.page-tabs button.active{background:#dbeafe;border-color:#93c5fd}
.page-tabs{padding:8px;background:#fff;border-bottom:1px solid var(--line);margin:0}.page-tabs .spacer{flex:1}
.logo-preview{max-height:56px;max-width:220px}.theme-sample{height:100px;border-radius:12px;color:#fff;padding:18px;display:flex;align-items:center;gap:12px}
.editor-page{grid-template-rows:58px 48px 1fr}.plant-rotator{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.canvas-bg{transform-origin:center center}
.project-log{max-height:400px;overflow:auto}.log-row{padding:10px 0;border-bottom:1px solid var(--line)}.log-row small{color:var(--muted)}
.collab-list{display:grid;gap:8px}.collab-row{display:grid;grid-template-columns:1fr 130px;gap:8px;align-items:center}
@media print{.editor-top,.toolbox,.properties,.page-tabs{display:none!important}.editor-page{position:static;display:block;background:#fff}.editor-body{display:block}.canvas-wrap{padding:0;overflow:visible;background:none}.canvas{box-shadow:none;margin:auto;transform:none!important}.shell,.sidebar{display:none!important}body{background:#fff}}

/* v1.3 — editor mais leve e intuitivo */
body{background:#f7f9fc}
.sidebar{box-shadow:4px 0 20px rgba(15,23,42,.08)}
.main{max-width:1600px;margin:0 auto;width:100%}
.panel,.stat{box-shadow:0 8px 28px rgba(15,23,42,.05);border-color:#e8edf5}
.editor-page{background:#eef3f8;grid-template-rows:60px 52px 1fr}
.editor-top{background:#fff;color:#182033;border-bottom:1px solid #e6ebf2;padding:10px 16px}
.editor-title{display:grid}.editor-title small{color:#7b8494;font-weight:500}
.editor-subbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #e4eaf2}
.editor-subbar .spacer{flex:1}.save-hint{font-size:12px;color:#7c8798}.page-select-wrap{display:flex;align-items:center;gap:8px;margin:0}.page-select-wrap select{min-width:180px}
.editor-body{grid-template-columns:250px minmax(600px,1fr) 310px}
.toolbox,.properties{background:#fbfcfe;padding:16px;border-color:#e5ebf3}
.toolbox-section,.prop-card{background:#fff;border:1px solid #e6ebf2;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 5px 18px rgba(15,23,42,.035)}
.toolbox-section h3,.prop-card h3{margin:0 0 12px;font-size:14px}
.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.tool-btn{border:1px solid #e3e8f0;background:#fff;border-radius:11px;padding:10px;display:flex;align-items:center;gap:8px;color:#344054}
.tool-btn b{font-size:18px}.tool-btn span{font-size:12px}.tool-btn:hover{background:#f3f7fd}.tool-btn.active{border-color:var(--primary);background:#eef5ff;color:var(--primary)}
.equipment-library{display:grid;grid-template-columns:1fr;gap:7px;margin-top:10px;max-height:56vh;overflow:auto}
.equipment-card{display:flex;align-items:center;gap:10px;min-height:58px;border-color:#e6ebf2;box-shadow:none}
.equipment-card:hover{background:#f6f9fd;border-color:#cfd9e8}.equipment-card .glyph{width:36px;text-align:center}
.canvas-wrap{padding:24px;background-color:#edf2f7;background-image:linear-gradient(#dce4ed66 1px,transparent 1px),linear-gradient(90deg,#dce4ed66 1px,transparent 1px)}
.canvas{border-radius:4px;box-shadow:0 14px 40px rgba(15,23,42,.16)}
.equip-item{width:48px;height:54px;border:0!important;background:transparent!important;border-radius:0;display:flex;flex-direction:column;gap:1px}
.equip-item.selected{outline:2px dashed var(--primary);outline-offset:4px}
.equip-item .glyph{font-size:30px;filter:drop-shadow(0 2px 2px rgba(255,255,255,.9))}
.equip-item small{font-size:9px;font-weight:800;background:rgba(255,255,255,.92);color:#111827;padding:1px 3px;border:0;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.collab-row{grid-template-columns:1fr 100px}.checkline{display:flex;align-items:center;gap:7px;margin:0;font-size:12px}.checkline input{width:auto}
.legend-row{display:grid;grid-template-columns:26px 52px 1fr;gap:7px;align-items:center;padding:7px 0;border-bottom:1px solid #eef1f5;font-size:12px}
.legend-icon{font-size:20px;text-align:center}.legend-row b{font-size:11px;color:var(--primary)}
.project-log{max-height:190px}.log-row{display:grid;gap:2px}.log-row span{font-size:12px}.log-row small{font-size:10px}
.actions{flex-wrap:wrap}
@media(max-width:1100px){.editor-body{grid-template-columns:220px 1fr}.properties{position:fixed;right:0;top:112px;bottom:0;width:300px;z-index:4;box-shadow:-8px 0 24px rgba(15,23,42,.1)}}
@media print{.editor-subbar,.print-hide{display:none!important}.editor-page{grid-template-rows:0 0 1fr}.editor-top{display:none!important}.canvas{break-after:page}}

/* v1.4 */
.badge.collaborator{background:#ecfdf3;color:#027a48;margin-top:4px}
.legend-row span small{display:block;color:#667085;font-weight:500;margin-top:2px}
.report-log-table{max-height:620px;overflow:auto}
.print-document{display:none}
@media print{
  body>*:not(#printDocument){display:none!important}
  #printDocument{display:block!important}
  .print-sheet{page-break-after:always;background:#fff;color:#111;padding:10mm;width:100%}
  .print-sheet:last-child{page-break-after:auto}
  .print-header{display:flex;gap:14px;align-items:center;border-bottom:2px solid #111;padding-bottom:8px;margin-bottom:8px}
  .print-header img{max-width:42mm;max-height:18mm}
  .print-header h1{font-size:18px;margin:0}.print-header b,.print-header span{display:block;font-size:10px}
  .print-sheet h2{font-size:15px;margin:8px 0}.print-sheet h3{font-size:13px;margin:10px 0 5px}
  .print-canvas{position:relative;width:240mm;height:155mm;margin:auto;border:1px solid #bbb;overflow:hidden;background:#fff}
  .print-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:center}
  .print-equip{position:absolute;width:48px;height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform-origin:center}
  .print-equip span{font-size:28px}.print-equip b{font-size:8px;background:#fff;padding:1px 3px}
  .print-text,.print-shape{position:absolute}.print-shape.ellipse{border-radius:50%}
  .print-line{position:absolute;inset:0;width:100%;height:100%}
  .print-legend{width:100%;border-collapse:collapse;font-size:8px}
  .print-legend th,.print-legend td{border:1px solid #999;padding:4px;vertical-align:top}
  .legend-symbol{font-size:18px;text-align:center}
  .print-notes{font-size:9px;margin-top:7px;border:1px solid #aaa;padding:6px}
}

/* v1.5 — impressão corrigida */
@page{size:A4 landscape;margin:8mm}
@media print{
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  body>*:not(#printDocument){display:none!important}
  #printDocument{display:block!important}
  .print-sheet{
    width:auto!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    page-break-after:always!important;
    break-after:page!important;
    background:#fff!important;
    color:#111!important;
    overflow:visible!important;
  }
  .print-sheet:last-child{page-break-after:auto!important;break-after:auto!important}
  .print-header{
    display:flex!important;
    align-items:center!important;
    gap:10mm!important;
    min-height:18mm!important;
    padding:0 0 3mm!important;
    margin:0 0 3mm!important;
    border-bottom:1.5px solid #111!important;
  }
  .print-header img{max-width:42mm!important;max-height:15mm!important;object-fit:contain!important}
  .print-header h1{font-size:15pt!important;line-height:1.1!important;margin:0 0 1mm!important}
  .print-header b{font-size:10pt!important}
  .print-header span{font-size:8pt!important;line-height:1.35!important}
  .print-sheet-title{display:flex!important;justify-content:space-between!important;align-items:end!important;margin:0 0 2mm!important}
  .print-sheet-title h2{font-size:12pt!important;margin:0!important}
  .print-sheet-title span{font-size:8pt!important;color:#555!important}
  .print-canvas{
    position:relative!important;
    width:252mm!important;
    height:168mm!important;
    margin:0 auto!important;
    border:1px solid #999!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  .print-canvas-inner{
    position:absolute!important;
    left:0!important;
    top:0!important;
    width:1200px!important;
    height:800px!important;
    transform:scale(.7937)!important;
    transform-origin:top left!important;
  }
  .print-bg{position:absolute!important;inset:0!important;width:1200px!important;height:800px!important;object-fit:contain!important;transform-origin:center center!important}
  .print-equip{position:absolute!important;width:48px!important;height:54px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;transform-origin:center!important}
  .print-equip span{font-size:28px!important;line-height:1!important}
  .print-equip b{font-size:8px!important;line-height:1!important;background:#fff!important;padding:1px 3px!important}
  .print-text,.print-shape{position:absolute!important}
  .print-shape.ellipse{border-radius:50%!important}
  .print-line{position:absolute!important;left:0!important;top:0!important;width:1200px!important;height:800px!important}
  .print-legend{
    width:100%!important;
    border-collapse:collapse!important;
    table-layout:fixed!important;
    font-size:8.5pt!important;
  }
  .print-legend thead{display:table-header-group!important}
  .print-legend tr{page-break-inside:avoid!important;break-inside:avoid!important}
  .print-legend th,.print-legend td{border:1px solid #777!important;padding:2.2mm!important;vertical-align:top!important;word-wrap:break-word!important}
  .print-legend th:nth-child(1){width:12mm!important}
  .print-legend th:nth-child(2){width:22mm!important}
  .print-legend th:nth-child(3){width:48mm!important}
  .print-legend th:nth-child(4){width:48mm!important}
  .print-legend th:nth-child(5){width:auto!important}
  .legend-symbol{font-size:16pt!important;text-align:center!important}
  .print-notes{font-size:8.5pt!important;margin-top:4mm!important;border:1px solid #777!important;padding:3mm!important;page-break-inside:avoid!important}
}

/* v1.6 — interface profissional e mobile */
:root{--primary:#2563eb;--sidebar:#0f172a;--surface:#ffffff;--surface-2:#f8fafc;--text:#172033;--muted:#667085;--border:#e5eaf1}
body{background:#f6f8fb;color:var(--text)}
.shell{grid-template-columns:264px minmax(0,1fr)}
.sidebar{background:linear-gradient(180deg,var(--sidebar),color-mix(in srgb,var(--sidebar) 88%,#000));padding:20px 14px;border-right:1px solid rgba(255,255,255,.06);box-shadow:8px 0 30px rgba(15,23,42,.08)}
.sidebar .brand{padding:4px 8px 18px;margin:0;border-bottom:1px solid rgba(255,255,255,.09)}
.sidebar .brand-mark{border-radius:10px;background:var(--primary)}
.sidebar .brand b{font-size:14px}.sidebar .brand span{font-size:11px}
#toggleMenu{background:rgba(255,255,255,.08);color:#e5e7eb;border:1px solid rgba(255,255,255,.08);margin:0 6px}
.nav{gap:4px}.nav button{min-height:44px;border-radius:10px;color:#c7d0df;font-size:13px;padding:10px 12px}
.nav button:hover{background:rgba(255,255,255,.07)}.nav button.active{background:rgba(255,255,255,.11);box-shadow:inset 3px 0 0 var(--primary);color:#fff}
.nav-icon{font-size:16px;color:#9fb0c8}.nav button.active .nav-icon{color:#fff}
.main{padding:30px 34px;max-width:none}
.header{margin-bottom:20px}.header h1{font-size:25px;letter-spacing:-.02em}.header p{font-size:13px}
.panel,.stat{border:1px solid var(--border);box-shadow:0 8px 30px rgba(15,23,42,.045)}
.stats{gap:16px}.stat{border-radius:16px;padding:20px}.stat strong{font-size:28px}
.btn{transition:.15s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{box-shadow:0 5px 14px color-mix(in srgb,var(--primary) 25%,transparent)}
.settings-savebar{position:sticky;bottom:0;display:flex;justify-content:flex-end;padding:14px 0 0;background:linear-gradient(transparent,#fff 30%)}
.settings-save{min-width:190px;display:inline-flex!important;opacity:1!important;visibility:visible!important}
.client-search{max-width:520px;margin-bottom:18px}
.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.client-card{border:1px solid var(--border);background:#fff;border-radius:14px;padding:14px;display:grid;grid-template-columns:46px 1fr 20px;gap:12px;text-align:left;align-items:center;color:var(--text)}
.client-card:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));box-shadow:0 8px 22px rgba(15,23,42,.06)}
.client-avatar{width:46px;height:46px;border-radius:13px;background:color-mix(in srgb,var(--primary) 12%,#fff);color:var(--primary);display:grid;place-items:center;font-weight:800}
.client-card b,.client-card small,.client-card span{display:block}.client-card small{color:var(--muted);margin:3px 0}.client-card div>span{font-size:11px;color:#98a2b3}.client-card i{font-style:normal;color:#98a2b3}
.client-detail-head{display:flex;align-items:center;gap:15px;margin-bottom:18px}.client-detail-head h1{margin:0;font-size:25px}.client-detail-head p{margin:3px 0;color:var(--muted)}
.client-detail-head .spacer{flex:1}.client-tabs{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--border)}
.client-tabs button{border:0;background:transparent;padding:11px 14px;color:var(--muted);font-weight:700;border-bottom:2px solid transparent}
.client-tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}
.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.file-card{display:grid;gap:5px;border:1px solid var(--border);border-radius:12px;padding:14px;text-decoration:none;color:var(--text)}.file-card small{color:var(--muted)}
.note-compose{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.note-list{display:grid;gap:9px;margin-top:16px}.note-card{border:1px solid var(--border);border-radius:12px;padding:13px;background:#fff}.note-card p{margin:0 0 6px}.note-card small{color:var(--muted)}
.empty-state{padding:28px;text-align:center;color:var(--muted);background:var(--surface-2);border-radius:12px}.span2{grid-column:1/-1}.form-footer{display:flex;justify-content:flex-end;margin-top:16px}
.mobile-only{display:none}

/* Editor mobile como app */
@media(max-width:760px){
 body{padding-bottom:64px}
 .shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:64px;z-index:100;padding:5px 8px;background:var(--sidebar);display:block}
 .sidebar .brand,#toggleMenu,.userbox{display:none!important}.nav{height:54px;display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
 .nav button{padding:5px 2px;min-height:52px;display:grid;place-items:center;gap:1px;font-size:9px;border-radius:9px;text-align:center}
 .nav-icon{font-size:18px;width:auto}.nav button.active{box-shadow:none;background:rgba(255,255,255,.12)}
 .nav-label{display:block!important}.main{padding:18px 14px 82px}.header{align-items:flex-start}.header h1{font-size:22px}.header>.btn{font-size:12px}
 .stats{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:14px}.stat strong{font-size:23px}
 .grid2,.grid3{grid-template-columns:1fr}.span2{grid-column:auto}.client-grid{grid-template-columns:1fr}.client-detail-head{align-items:flex-start;flex-wrap:wrap}.client-detail-head .spacer{display:none}
 .client-tabs{overflow-x:auto}.client-tabs button{white-space:nowrap}.note-compose{grid-template-columns:1fr}.actions{min-width:150px}
 .mobile-only{display:inline-flex}
 .editor-page{inset:0;grid-template-rows:58px 50px 1fr;z-index:300}.editor-top{padding:8px;gap:5px}.editor-title{max-width:130px}.editor-title b,.editor-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .editor-top .btn{padding:8px;font-size:11px}.save-hint{display:none}.editor-subbar{padding:6px 8px;overflow-x:auto}.page-select-wrap{font-size:10px}.page-select-wrap select{min-width:120px}
 .editor-body{display:block;position:relative;min-height:0}.canvas-wrap{position:absolute;inset:0;padding:12px;overflow:auto;touch-action:pan-x pan-y;background-size:16px 16px}
 .canvas{transform-origin:top left}.toolbox,.properties{position:absolute!important;top:0!important;bottom:0!important;width:min(88vw,340px)!important;z-index:20!important;display:none!important;box-shadow:0 10px 35px rgba(15,23,42,.2);overflow:auto}
 .toolbox{left:0!important}.properties{right:0!important;left:auto!important}.toolbox.mobile-open,.properties.mobile-open{display:block!important}
 .equipment-library{max-height:none}.tool-grid{grid-template-columns:repeat(3,1fr)}
 .prop-card{padding:12px}.print-hide{display:none!important}
 .settings-savebar{padding-bottom:70px}
}

/* Impressão: cada planta sempre em uma única folha */
@page{size:A4 landscape;margin:5mm}
@media print{
 html,body{width:287mm!important;height:auto!important;margin:0!important;padding:0!important}
 .print-plan-sheet{height:200mm!important;max-height:200mm!important;overflow:hidden!important;box-sizing:border-box!important}
 .print-plan-sheet .print-header{height:17mm!important;min-height:17mm!important;margin-bottom:2mm!important;padding-bottom:2mm!important}
 .print-plan-sheet .print-sheet-title{height:8mm!important;margin:0 0 2mm!important}
 .print-plan-sheet .print-canvas{width:216mm!important;height:144mm!important;margin:0 auto!important;overflow:hidden!important}
 .print-plan-sheet .print-canvas-inner{width:1200px!important;height:800px!important;transform:scale(.68)!important;transform-origin:top left!important}
 .print-plan-sheet .print-bg{width:1200px!important;height:800px!important}
 .print-plan-sheet .print-line{width:1200px!important;height:800px!important}
 .print-legend-sheet{min-height:0!important;height:auto!important;overflow:visible!important}
}

/* v1.7 */
.brand-text{display:flex;align-items:center;min-width:0}.brand-text b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-table td:first-child{min-width:220px}.client-table td:last-child{min-width:145px}
.badge.inactive{background:#f2f4f7;color:#667085}
.report-placeholder{padding:34px;text-align:center;color:#667085;background:#f8fafc;border:1px dashed #d0d5dd;border-radius:12px}
@media(max-width:760px){
 .client-table{min-width:760px}
 .brand-text{display:none!important}
}

/* v1.9 — biblioteca por setor e desenho arquitetônico */
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}
h1,h2,h3,b,strong{letter-spacing:-.015em}
.toolbox{padding:12px}
.toolbox-section.collapsible{padding:0;overflow:hidden}
.toolbox-section.collapsible>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:13px 14px;font-size:13px;font-weight:800;cursor:pointer;background:#fff}
.toolbox-section.collapsible>summary::-webkit-details-marker{display:none}
.toolbox-section.collapsible>summary:after{content:"⌄";font-size:13px;color:#98a2b3;transition:.15s}
.toolbox-section.collapsible[open]>summary:after{transform:rotate(180deg)}
.toolbox-section.collapsible>.tool-grid,.toolbox-section.collapsible>.architect-hint,.toolbox-section.collapsible>.equipment-filters,.toolbox-section.collapsible>.equipment-library{margin-left:12px;margin-right:12px}
.toolbox-section.collapsible>.equipment-library{margin-bottom:12px}
.architect-hint{display:grid;gap:2px;background:#f8fafc;border:1px dashed #cbd5e1;padding:9px 10px;border-radius:9px;margin-top:10px;margin-bottom:12px}
.architect-hint b{font-size:11px}.architect-hint span{font-size:10px;color:#667085;line-height:1.4}
.equipment-filters{display:grid;gap:7px;padding:0 0 10px}
.equipment-filters input,.equipment-filters select{padding:9px 10px;font-size:11px;border-radius:8px}
.equipment-library{max-height:55vh;overflow:auto;display:block;padding-right:3px}
.equipment-group{border:1px solid #e6ebf2;border-radius:10px;background:#fff;margin-bottom:7px;overflow:hidden}
.equipment-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:10px 11px;cursor:pointer;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.035em;color:#344054;background:#f8fafc}
.equipment-group>summary::-webkit-details-marker{display:none}
.equipment-group>summary small{background:#e9eef6;color:#667085;border-radius:999px;padding:2px 7px;font-size:9px}
.equipment-group-list{display:grid;gap:2px;padding:5px}
.equipment-card{border:0;border-radius:7px;min-height:43px;padding:6px 8px;display:flex;align-items:center;gap:9px;background:#fff}
.equipment-card:hover{background:#f4f7fb;border:0}.equipment-card .glyph{font-size:20px;width:28px}.equipment-card b{font-size:11px;font-weight:700}.equipment-card small{font-size:9px;color:#98a2b3}
.snap-switch{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;color:#475467;white-space:nowrap}.snap-switch input{width:auto}
.tool-grid{grid-template-columns:repeat(2,1fr)}.tool-btn{min-height:42px;padding:8px}.tool-btn b{font-size:16px}.tool-btn span{font-size:10px}
.drawing{cursor:pointer}.drawing.selected{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--primary) 55%,transparent))}
.equipment-admin-filters{display:grid;grid-template-columns:minmax(260px,1fr) 220px 220px;gap:10px;margin-bottom:14px}
.admin-eq-row.hidden{display:none}
@media(max-width:900px){.equipment-admin-filters{grid-template-columns:1fr}.equipment-library{max-height:none}}
@media(max-width:760px){
 .toolbox-section.collapsible>summary{padding:12px}.equipment-library{max-height:none}
 .equipment-group>summary{position:sticky;top:0;z-index:2}
 .tool-grid{grid-template-columns:repeat(3,1fr)}
 .snap-switch{font-size:10px}
}

/* v2.0 — editor mais simples de operar */
.svg-layer{pointer-events:none}
.svg-layer .drawing{pointer-events:visiblePainted}
#itemLayer{pointer-events:none}
.equip-item{pointer-events:auto}
.tool-status{display:grid;gap:3px;margin:10px 12px 12px;padding:10px;border-radius:9px;background:#eef4ff;border:1px solid #d7e3ff}
.tool-status b{font-size:11px;color:#1d4ed8}
.tool-status span{font-size:10px;line-height:1.35;color:#5b6472}
.tool-btn.active{box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent)}
.canvas{cursor:crosshair}
.tool-btn[data-tool="select"].active~* .canvas{cursor:default}
@media(max-width:760px){
 .tool-status{position:sticky;bottom:0;z-index:5}
}

/* v2.1 — elementos simples arrastáveis */
.shape-library{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding:0 12px 12px}
.shape-card{border:1px solid #e5eaf1;background:#fff;border-radius:9px;padding:9px 7px;display:flex;align-items:center;gap:8px;text-align:left}
.shape-card:hover{background:#f6f8fb;border-color:#cfd7e4}
.shape-card b{font-size:18px;width:24px;text-align:center;color:#344054}
.shape-card span{font-size:10px;font-weight:700;color:#475467}
.shape-item{background:transparent!important;border:0!important;display:flex;align-items:center;justify-content:center;overflow:visible}
.shape-item.selected{outline:2px dashed var(--primary)!important;outline-offset:5px}
.shape-item small{position:absolute;left:50%;top:100%;transform:translateX(-50%);white-space:nowrap;background:rgba(255,255,255,.94);font-size:9px;font-weight:700;color:#111827;padding:1px 4px;border-radius:4px;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.simple-shape{width:100%;height:100%;pointer-events:none}
.wall-shape{border-radius:3px}
.line-shape{height:3px!important;align-self:center;border-radius:999px}
.rect-shape,.circle-shape{border:3px solid;background:transparent}
.circle-shape{border-radius:50%}
.door-shape{border-left:5px solid;border-bottom:2px dashed #94a3b8;border-radius:0 0 100% 0}
.arrow-shape,.circulation-shape{display:flex;align-items:center;justify-content:center;font-size:42px;line-height:1}
.circulation-shape{border-bottom:2px dashed currentColor}
.text-shape{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;white-space:nowrap}
.print-simple-shape{position:absolute;transform-origin:center}
.print-wall{border-radius:2px}
.print-door{border-left:5px solid;border-bottom:2px dashed #94a3b8;border-radius:0 0 100% 0}
.print-line-block{height:3px!important}
.print-rect,.print-circle{border:3px solid;background:transparent}
.print-circle{border-radius:50%}
.print-symbol{display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700}
@media(max-width:760px){
 .shape-library{grid-template-columns:repeat(2,1fr)}
 .shape-card{min-height:44px}
}

/* v2.2 — redimensionamento com Ctrl + arrastar */
.resize-tip{display:grid;gap:3px;margin-top:10px;padding:9px 10px;border:1px dashed #cbd5e1;border-radius:9px;background:#f8fafc}
.resize-tip b{font-size:10px;color:#344054}
.resize-tip span{font-size:9px;color:#667085}
body.is-resizing-object,body.is-resizing-object *{cursor:nwse-resize!important;user-select:none!important}
.equip-item.selected:after{content:"Ctrl + arrastar para redimensionar";position:absolute;left:50%;top:-24px;transform:translateX(-50%);white-space:nowrap;font-size:8px;font-weight:700;color:#475467;background:#fff;border:1px solid #d0d5dd;border-radius:5px;padding:3px 5px;box-shadow:0 2px 6px rgba(15,23,42,.08);pointer-events:none}
@media(max-width:760px){
 .equip-item.selected:after{display:none}
}

/* v2.3 — lápis livre com aplicação e alinhamento */
.pencil-card{background:#eef6ff;border-color:#cfe0ff}
.pencil-card b{color:#1d4ed8}
#applyPencil{width:100%;margin:8px 0 10px}
.drawing[data-drawing-id]{touch-action:none}
@media(max-width:760px){
 .pencil-card{grid-column:1/-1}
}

/* v3.0 — editor guiado e realmente responsivo */
.easy-editor{background:#eef3f8}
.editor-steps{display:flex;gap:6px;overflow:auto}
.editor-steps button{border:1px solid #dbe3ee;background:#fff;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:800;color:#667085;white-space:nowrap}
.editor-steps button.active{background:var(--primary);border-color:var(--primary);color:#fff}
.easy-actions{display:grid;gap:8px;margin-bottom:10px}
.easy-action{border:1px solid #dbe3ee;background:#fff;border-radius:12px;padding:12px;text-align:left;font-weight:800;color:#344054}
.easy-action.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.advanced-tools:not([open]){opacity:.9}
.canvas-wrap{display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:18px;min-width:0;min-height:0}
.canvas-stage{position:relative;flex:0 0 auto}
.canvas{position:absolute;left:0;top:0}
.equipment-thumb,.equipment-canvas-icon,.legend-icon,.legend-symbol{display:inline-grid;place-items:center}
.equipment-thumb{width:30px;height:30px}
.equipment-thumb svg,.equipment-canvas-icon svg,.legend-icon svg,.legend-symbol svg{width:100%;height:100%}
.equipment-canvas-icon{width:34px;height:34px}
.legend-icon{width:22px;height:22px}
.legend-symbol{width:24px;height:24px}
.equipment-card .equipment-thumb{flex:0 0 30px}
.editor-body{grid-template-columns:240px minmax(0,1fr) 300px}
.toolbox,.properties{min-width:0}
@media(max-width:980px){
 .editor-body{grid-template-columns:210px minmax(0,1fr) 280px}
}
@media(max-width:760px){
 body{overflow:hidden}
 .easy-editor{grid-template-rows:56px 48px minmax(0,1fr)}
 .editor-top{padding:7px 8px}
 .editor-title{max-width:110px}
 .editor-subbar{padding:6px 8px;gap:6px}
 .editor-steps{order:2;width:100%}
 .page-select-wrap,#addPage,#renamePage,#deletePage,.snap-switch{display:none!important}
 .editor-body{display:block;position:relative;min-height:0}
 .canvas-wrap{position:absolute;inset:0;padding:8px;justify-content:flex-start;align-items:flex-start;overflow:auto;-webkit-overflow-scrolling:touch}
 .canvas-stage{margin:0 auto}
 .toolbox,.properties{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:8px!important;width:auto!important;max-height:72vh!important;border-radius:18px!important;display:none!important;z-index:500!important;box-shadow:0 22px 60px rgba(15,23,42,.28)!important}
 .toolbox.mobile-open,.properties.mobile-open{display:block!important}
 .toolbox{padding:12px}.properties{padding:12px}
 .easy-actions{grid-template-columns:1fr}
 .equipment-library{max-height:42vh}
 .editor-top .mobile-only{display:inline-flex}
 .editor-top #printProject{display:none}
 .editor-top .btn{font-size:10px;padding:7px}
 .editor-steps button{padding:6px 9px;font-size:9px}
}

/* v4.0 — Montador Inteligente de Projetos */
.builder-dock{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:40;display:flex;gap:6px;padding:7px;background:rgba(15,23,42,.94);border-radius:16px;box-shadow:0 16px 40px rgba(15,23,42,.25);backdrop-filter:blur(10px)}
.builder-dock button{border:0;background:transparent;color:#cbd5e1;min-width:72px;padding:7px 9px;border-radius:11px;display:grid;gap:2px;place-items:center;font-size:16px}
.builder-dock button span{font-size:9px;font-weight:800}.builder-dock button:hover{background:rgba(255,255,255,.12);color:#fff}
.assisted-library{grid-template-columns:repeat(2,minmax(0,1fr))}
.room-shape{border:5px solid;background:rgba(255,255,255,.45);display:grid;place-items:center}
.room-shape span{font-size:15px;font-weight:800;color:#334155;background:rgba(255,255,255,.9);padding:4px 8px;border-radius:6px}
.window-shape{border-top:5px double;border-bottom:5px double}
.gate-shape{border:4px solid;border-left-width:8px;border-right-width:8px}
.fence-shape{display:grid;place-items:center;font-size:24px;letter-spacing:4px;overflow:hidden}
.street-shape,.sidewalk-shape{display:grid;place-items:center;border-radius:4px}
.street-shape span,.sidewalk-shape span{color:#fff;font-weight:800;letter-spacing:.08em}
.summary-list{display:grid;gap:5px}.summary-list>div{display:grid;grid-template-columns:36px 1fr;gap:7px;padding:6px 0;border-bottom:1px solid #eef2f6;font-size:11px}
.summary-list b{color:var(--primary)}.summary-total{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:10px;border-radius:10px;background:#f8fafc;font-size:11px}
.summary-total b{font-size:15px}.assistant-alert{margin-top:9px;padding:9px;border-radius:9px;background:#fff7ed;color:#9a3412;font-size:10px;line-height:1.4;border:1px solid #fed7aa}
.assistant-alert.ok{background:#ecfdf3;color:#027a48;border-color:#a7f3d0}
.easy-editor .canvas-wrap{padding-bottom:92px}
@media(max-width:760px){
 .builder-dock{position:fixed;left:8px;right:8px;bottom:8px;transform:none;justify-content:space-around;padding:5px;border-radius:14px}
 .builder-dock button{min-width:0;flex:1;padding:6px 3px}.builder-dock button span{font-size:8px}
 .easy-editor .canvas-wrap{padding-bottom:82px}
 .environment-panel,.equipment-panel{max-height:56vh;overflow:auto}
 .assisted-library{grid-template-columns:repeat(2,1fr)}
}

/* v4.1 — novos segmentos e renomeação rápida */
.assisted-sections{display:grid;gap:8px;padding:0 10px 12px}
.assisted-group{border:1px solid #e5eaf1;border-radius:10px;background:#fff;overflow:hidden}
.assisted-group>summary{list-style:none;cursor:pointer;padding:11px 12px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#344054;background:#f8fafc;display:flex;justify-content:space-between;align-items:center}
.assisted-group>summary::-webkit-details-marker{display:none}
.assisted-group>summary:after{content:"⌄";color:#98a2b3}
.assisted-group[open]>summary:after{transform:rotate(180deg)}
.assisted-group .shape-library{padding:8px;margin:0}
#quickRenameBtn{width:100%;margin:8px 0}
.room-shape{position:relative}
.room-shape:after{content:"Duplo clique para renomear";position:absolute;bottom:5px;left:50%;transform:translateX(-50%);font-size:7px;color:#98a2b3;white-space:nowrap}
@media(max-width:760px){
 .assisted-sections{padding:0 6px 10px}
 .assisted-group .shape-library{grid-template-columns:repeat(2,1fr)}
}

/* v4.2 — impressão completa dos ambientes e estruturas */
@media print{
  .print-simple-shape{
    position:absolute!important;
    box-sizing:border-box!important;
    transform-origin:center!important;
    overflow:visible!important;
  }
  .print-simple-shape>span,
  .print-simple-shape>small{
    position:absolute!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    white-space:nowrap!important;
    background:rgba(255,255,255,.95)!important;
    color:#111827!important;
    padding:1px 4px!important;
    border-radius:3px!important;
    font-size:8px!important;
    font-weight:700!important;
    line-height:1.2!important;
  }
  .print-room{
    border:5px solid!important;
    background:rgba(255,255,255,.08)!important;
  }
  .print-room>span{
    top:50%!important;
    transform:translate(-50%,-50%)!important;
    font-size:14px!important;
  }
  .print-wall{
    min-height:8px!important;
    border-radius:2px!important;
  }
  .print-wall>span{
    top:100%!important;
    margin-top:2px!important;
  }
  .print-door{
    border-left:5px solid!important;
    border-bottom:2px dashed #94a3b8!important;
    border-radius:0 0 100% 0!important;
  }
  .print-door>span,
  .print-window>span,
  .print-gate>span,
  .print-line-block>span{
    top:100%!important;
    margin-top:2px!important;
  }
  .print-window{
    border-top:5px double!important;
    border-bottom:5px double!important;
  }
  .print-gate{
    border:4px solid!important;
    border-left-width:8px!important;
    border-right-width:8px!important;
  }
  .print-fence{
    display:grid!important;
    place-items:center!important;
  }
  .print-fence-line{
    position:static!important;
    transform:none!important;
    background:transparent!important;
    color:inherit!important;
    padding:0!important;
    font-size:22px!important;
    letter-spacing:3px!important;
    overflow:hidden!important;
    width:100%!important;
    text-align:center!important;
  }
  .print-fence small{
    top:100%!important;
    margin-top:2px!important;
  }
  .print-street,
  .print-sidewalk{
    display:grid!important;
    place-items:center!important;
    border-radius:3px!important;
  }
  .print-street>span,
  .print-sidewalk>span{
    position:static!important;
    transform:none!important;
    background:transparent!important;
    color:#fff!important;
    font-size:11px!important;
    letter-spacing:.08em!important;
  }
  .print-line-block{
    min-height:3px!important;
  }
  .print-rect{
    border:3px solid!important;
    background:transparent!important;
  }
  .print-circle{
    border:3px solid!important;
    border-radius:50%!important;
    background:transparent!important;
  }
  .print-rect>span,
  .print-circle>span{
    top:50%!important;
    transform:translate(-50%,-50%)!important;
  }
  .print-symbol{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:34px!important;
    font-weight:800!important;
  }
  .print-symbol small{
    top:100%!important;
    margin-top:2px!important;
  }
  .print-text-symbol{
    font-size:14px!important;
  }
  .print-equip span{
    width:30px!important;
    height:30px!important;
    display:grid!important;
    place-items:center!important;
  }
  .print-equip span svg{
    width:30px!important;
    height:30px!important;
  }
}

/* v4.3 — zoom mobile, camadas e bloqueio */
.zoom-controls{display:flex;align-items:center;gap:5px}
.zoom-controls span{min-width:48px;text-align:center;font-size:10px;font-weight:800;color:#475467}
.object-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0}
.object-actions .btn{font-size:10px;padding:8px}
.item-lock-badge{position:absolute;right:-8px;top:-8px;width:20px;height:20px;border-radius:50%;background:#111827;color:#fff;display:grid;place-items:center;font-size:10px;box-shadow:0 3px 8px rgba(15,23,42,.2);z-index:50}
.equip-item.locked{outline:2px solid #f59e0b!important;outline-offset:3px}
.legend-row.element-legend-row{grid-template-columns:26px 54px 1fr 34px}
.legend-lock{border:0;background:#f2f4f7;border-radius:8px;width:30px;height:30px;display:grid;place-items:center;cursor:pointer}
.legend-lock.locked{background:#fff7ed;color:#b45309}
@media(max-width:760px){
 .zoom-controls{position:fixed;right:10px;bottom:82px;z-index:520;background:#fff;padding:6px;border-radius:12px;box-shadow:0 10px 28px rgba(15,23,42,.2)}
 .zoom-controls #fitZoom{display:none}
 .zoom-controls .btn{min-width:34px;padding:7px}
 .zoom-controls span{min-width:42px}
 .canvas-wrap{touch-action:pan-x pan-y}
}
@media print{
 .item-lock-badge{display:none!important}
 .print-simple-shape,.print-equip{z-index:auto!important}
}

/* v4.4 — bloqueio no próprio elemento, menus recolhíveis e ícone Thundera */
.equip-item.locked{outline:none!important}
.item-lock-badge{display:none!important}
.item-hover-lock{
  position:absolute;
  right:-11px;
  top:-11px;
  width:24px;
  height:24px;
  border:1px solid #d0d5dd;
  border-radius:50%;
  background:#fff;
  color:#475467;
  display:none;
  place-items:center;
  font-size:11px;
  box-shadow:0 4px 12px rgba(15,23,42,.16);
  cursor:pointer;
  z-index:80;
  padding:0;
}
.equip-item:hover .item-hover-lock,
.equip-item.selected .item-hover-lock,
.equip-item.locked:hover .item-hover-lock{display:grid}
.item-hover-lock.locked{background:#111827;color:#fff;border-color:#111827}
.equip-item.locked{cursor:default}
.side-collapse{
  position:sticky;
  top:0;
  z-index:30;
  margin:0 0 8px auto;
  width:28px;
  height:28px;
  border:1px solid #dbe3ee;
  border-radius:8px;
  background:#fff;
  color:#475467;
  display:grid;
  place-items:center;
  font-size:18px;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(15,23,42,.06);
}
.side-collapse.right{margin-left:0;margin-right:auto}
.editor-page.left-collapsed .editor-body{grid-template-columns:42px minmax(0,1fr) 300px}
.editor-page.right-collapsed .editor-body{grid-template-columns:240px minmax(0,1fr) 42px}
.editor-page.left-collapsed.right-collapsed .editor-body{grid-template-columns:42px minmax(0,1fr) 42px}
.editor-page.left-collapsed .toolbox>*:not(.side-collapse),
.editor-page.right-collapsed .properties>*:not(.side-collapse){display:none!important}
.editor-page.left-collapsed .toolbox,
.editor-page.right-collapsed .properties{padding:7px 6px;overflow:hidden}
.editor-page.left-collapsed .side-collapse,
.editor-page.right-collapsed .side-collapse{margin-left:auto;margin-right:auto}
@media(max-width:980px){
 .editor-page.left-collapsed .editor-body{grid-template-columns:42px minmax(0,1fr) 280px}
 .editor-page.right-collapsed .editor-body{grid-template-columns:210px minmax(0,1fr) 42px}
 .editor-page.left-collapsed.right-collapsed .editor-body{grid-template-columns:42px minmax(0,1fr) 42px}
}
@media(max-width:760px){
 .side-collapse{display:none!important}
 .item-hover-lock{display:grid;opacity:.92}
 .equip-item:not(.selected):not(.locked) .item-hover-lock{opacity:.35}
 .equip-item:not(.selected):not(.locked) .item-hover-lock:active{opacity:1}
}
@media print{
 .item-hover-lock{display:none!important}
}

/* v4.5 — ícones persistentes e presença de usuários */
.selected-icon-preview{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:10px;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc}
.selected-icon-preview>span{width:48px;height:48px;display:grid;place-items:center;background:#fff;border-radius:10px;border:1px solid #e5eaf1}
.selected-icon-preview svg{width:40px;height:40px}
.selected-icon-preview b,.selected-icon-preview small{display:block}
.selected-icon-preview small{margin-top:3px;color:#667085}
.icon-option b{width:32px;height:32px;display:grid;place-items:center}
.icon-option b svg{width:28px;height:28px}
.presence{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700}
.presence i{width:9px;height:9px;border-radius:50%;display:inline-block}
.presence.online{color:#027a48}.presence.online i{background:#12b76a;box-shadow:0 0 0 4px rgba(18,183,106,.12)}
.presence.offline{color:#667085}.presence.offline i{background:#98a2b3}

/* v4.7 — grade, visual clean e editor de itens */
:root{--text:#243247;--muted:#748094}
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:400}
h1,h2,h3,h4,b,strong,.btn,.nav button{font-weight:600!important}
.room-shape{border-width:3px!important;border-color:#52627a!important;background:rgba(255,255,255,.18)!important}
.room-shape span{font-weight:500!important;font-size:14px!important;color:#314158!important;background:rgba(255,255,255,.84)!important}
.room-shape:after{display:none!important}
.wall-shape{background:#52627a!important;height:5px!important;align-self:center}
.shape-item small,.equip-item small{font-weight:500!important}
.canvas{background-color:#fff;background-image:linear-gradient(rgba(71,85,105,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(71,85,105,.055) 1px,transparent 1px);background-size:10px 10px}
.zoom-controls{flex-wrap:wrap}
.items-manager{width:min(1080px,94vw);max-height:88vh;display:grid;grid-template-rows:auto minmax(0,1fr)}
.items-manager-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #e8edf3}
.items-manager-head h2{margin:0;font-size:20px}.items-manager-head p{margin:4px 0 0;color:var(--muted);font-size:12px}
.items-manager-body{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:0}
.items-list{padding:10px;border-right:1px solid #e8edf3;overflow:auto;background:#f8fafc}
.items-list button{width:100%;border:0;background:transparent;border-radius:10px;padding:10px;display:grid;grid-template-columns:36px 1fr 24px;gap:10px;text-align:left;align-items:center;color:var(--text)}
.items-list button:hover{background:#eef3f8}.items-list button.active{background:#e8f0ff;color:#1d4ed8}
.items-list button>span{width:32px;height:32px;display:grid;place-items:center}.items-list svg{width:28px;height:28px}
.items-list b,.items-list small{display:block;font-weight:500!important}.items-list small{color:var(--muted);margin-top:2px}
.item-editor-panel{padding:20px;overflow:auto;background:#fff}
.item-editor-title{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #e8edf3}
.item-editor-title>span{width:46px;height:46px;display:grid;place-items:center;border-radius:10px;background:#f8fafc}.item-editor-title svg{width:36px;height:36px}
.item-editor-title h3{margin:0;font-size:17px}.item-editor-title small{color:var(--muted)}
.item-editor-panel label{display:grid;gap:5px;margin-bottom:11px;font-size:11px;color:#566176}
.item-editor-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;padding-top:14px;border-top:1px solid #e8edf3}
@media print{
 .print-room{border-width:3px!important;border-color:#52627a!important}
 .print-room>span{font-weight:500!important}
}
@media(max-width:760px){
 .items-manager{width:96vw;max-height:92vh}
 .items-manager-body{grid-template-columns:1fr;grid-template-rows:220px minmax(0,1fr)}
 .items-list{border-right:0;border-bottom:1px solid #e8edf3}
 .zoom-controls #alignGrid,.zoom-controls #openItems{display:none}
}

/* v4.9 — estruturas existentes informativas */
.existing-badge{padding:8px 10px;margin:6px 0 10px;border:1px solid #d7dee8;border-radius:8px;background:#f8fafc;color:#64748b;font-size:10px}
.existing-pillar-shape,.existing-column-shape,.existing-shaft-shape,.existing-machine-shape{
  border:2px solid!important;background:
  repeating-linear-gradient(45deg,rgba(100,116,139,.12) 0 5px,transparent 5px 10px)!important;
  display:grid;place-items:center
}
.existing-pillar-shape span,.existing-column-shape span,.existing-shaft-shape span,.existing-machine-shape span,
.existing-beam-shape span,.existing-wall-shape span,.existing-stairs-shape span,.existing-pole-shape span,.existing-tree-shape span{
  position:absolute;left:50%;top:100%;transform:translateX(-50%);white-space:nowrap;
  font-size:9px;font-weight:500;background:rgba(255,255,255,.94);padding:1px 4px;border-radius:4px;color:#475569
}
.existing-beam-shape,.existing-wall-shape{border-top:4px solid!important;border-bottom:1px dashed!important;display:block}
.existing-stairs-shape{border:2px solid!important;background:repeating-linear-gradient(0deg,transparent 0 10px,rgba(100,116,139,.28) 10px 12px)!important}
.existing-pole-shape{border-left:6px solid!important;border-right:2px solid!important}
.existing-tree-shape{display:grid;place-items:center;font-size:48px;line-height:1}
.existing-machine-shape{border-radius:4px}
@media print{
 .print-existing{box-sizing:border-box!important}
 .print-existing-pillar,.print-existing-column,.print-existing-shaft,.print-existing-machine{
   border:2px solid!important;
   background:repeating-linear-gradient(45deg,rgba(100,116,139,.12) 0 5px,transparent 5px 10px)!important
 }
 .print-existing-beam,.print-existing-wall{border-top:4px solid!important;border-bottom:1px dashed!important}
 .print-existing-stairs{border:2px solid!important;background:repeating-linear-gradient(0deg,transparent 0 10px,rgba(100,116,139,.28) 10px 12px)!important}
 .print-existing-pole{border-left:6px solid!important;border-right:2px solid!important}
 .print-existing-tree{display:grid!important;place-items:center!important;font-size:40px!important}
 .print-existing>span{top:100%!important;margin-top:2px!important}
}

/* v5.0 — prefixos profissionais e menu alinhado */
.toolbox{padding:12px 10px 18px!important}
.easy-actions{margin:0 0 12px!important}
.easy-action{width:100%;min-height:48px;display:flex;align-items:center;justify-content:flex-start;gap:9px;padding:11px 13px!important;border-radius:10px!important}
.toolbox-section{margin:0 0 12px!important;border-radius:12px!important}
.toolbox-section>summary{min-height:46px;padding:12px 14px!important}
.assisted-sections{padding:10px!important;gap:8px!important}
.assisted-group{margin:0!important;border-radius:9px!important}
.assisted-group>summary{min-height:44px;padding:10px 12px!important;display:flex!important;align-items:center!important}
.shape-library.assisted-library{padding:8px!important;gap:7px!important}
.shape-card{min-height:44px!important;padding:8px 9px!important}
.tool-status{margin:10px!important}
.equipment-panel{margin-top:12px!important}
.equipment-filters{padding:10px!important}
.equipment-library{padding:0 10px 10px!important}
@media(max-width:760px){
 .toolbox{left:6px!important;right:6px!important;bottom:6px!important;max-height:78vh!important}
 .assisted-sections{padding:8px!important}
 .easy-actions{position:sticky;top:0;background:#fff;z-index:10;padding-top:2px}
}

/* v5.1 — menu sem barra visual e equipamentos em grade */
.editor-body{grid-template-columns:320px minmax(0,1fr) 300px}
.toolbox{scrollbar-width:none!important;-ms-overflow-style:none!important}
.toolbox::-webkit-scrollbar{width:0!important;height:0!important}
.compact-import{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;margin:0 0 12px}
.compact-import .btn{min-height:42px;border-radius:10px}
.import-btn{justify-content:flex-start!important;padding-left:13px!important;background:#fff!important;color:#243247!important;border:1px solid #dbe3ee!important}
.icon-fit{font-size:18px!important;padding:0!important}
.equipment-panel[open]{overflow:visible}
.equipment-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.equipment-filters input{grid-column:1/-1}
.equipment-library{display:grid;gap:10px}
.equipment-group-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:8px!important}
.equipment-card{min-width:0!important;min-height:72px!important;display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;align-items:center!important;gap:8px!important;padding:9px!important;border:1px solid #e6ebf2!important;border-radius:9px!important;background:#fff!important;text-align:left!important}
.equipment-card:hover{background:#f8fafc!important;border-color:#cfd8e6!important}
.equipment-card .equipment-thumb{width:30px!important;height:30px!important}
.equipment-card b{font-size:10px!important;line-height:1.25!important;font-weight:500!important}
.equipment-card small{font-size:8px!important;line-height:1.25!important;color:#7b8799!important;margin-top:3px!important}
.equipment-group>summary{min-height:42px}
.editor-page.left-collapsed .editor-body{grid-template-columns:42px minmax(0,1fr) 300px}
.editor-page.right-collapsed .editor-body{grid-template-columns:320px minmax(0,1fr) 42px}
.editor-page.left-collapsed.right-collapsed .editor-body{grid-template-columns:42px minmax(0,1fr) 42px}
@media(max-width:1100px){
 .editor-body{grid-template-columns:280px minmax(0,1fr) 280px}
 .editor-page.right-collapsed .editor-body{grid-template-columns:280px minmax(0,1fr) 42px}
}
@media(max-width:760px){
 .compact-import{position:sticky;top:0;z-index:20;background:#fff;padding:2px 0 8px}
 .equipment-group-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .equipment-filters{grid-template-columns:1fr 1fr}
 .equipment-card{min-height:68px!important}
}

/* v5.2 — cálculo de cabeamento */
.cable-summary{margin-top:10px;padding:10px;border:1px solid #e5eaf1;border-radius:10px;background:#f8fafc}
.cable-summary h4{margin:0 0 7px;font-size:11px;font-weight:600;color:#344054}
.cable-summary-row{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:7px 0;border-bottom:1px solid #e8edf3;font-size:11px}
.cable-summary-row:last-child{border-bottom:0}
.cable-summary-row b{font-weight:600}
.cable-summary-row small{grid-column:1/-1;color:#667085}
input[readonly]{background:#f2f4f7;color:#344054;font-weight:600}

/* v5.3 — tela Itens responsiva e câmeras com IA */
.modal>.items-manager{
  width:min(1180px,calc(100vw - 32px))!important;
  max-width:100%!important;
  height:min(840px,calc(100vh - 32px))!important;
  max-height:calc(100vh - 32px)!important;
  overflow:hidden!important;
  border-radius:18px!important;
}
.items-manager,.items-manager *{box-sizing:border-box}
.items-manager-head{position:sticky;top:0;z-index:5;background:#fff}
.items-manager-body{
  grid-template-columns:minmax(260px,320px) minmax(0,1fr)!important;
  overflow:hidden!important;
  min-width:0!important;
}
.items-list,.item-editor-panel{min-width:0!important;overflow:auto!important;scrollbar-width:thin}
.items-list{overflow-x:hidden!important}
.item-editor-panel{overflow-x:hidden!important}
.item-editor-panel input,
.item-editor-panel select,
.item-editor-panel textarea{width:100%!important;max-width:100%!important;min-width:0!important}
.item-editor-panel .grid2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.item-editor-title{position:sticky;top:0;background:#fff;z-index:3}
.ai-config{margin:12px 0;padding:12px;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc}
.ai-config-head{display:flex;align-items:center;justify-content:space-between}
.switchline{display:flex!important;align-items:center;gap:9px!important;font-size:12px!important;font-weight:600!important;margin:0!important}
.switchline input{width:auto!important}
.ai-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}
.ai-check{display:flex!important;align-items:flex-start!important;gap:7px!important;margin:0!important;padding:8px;border:1px solid #e3e8ef;border-radius:8px;background:#fff;font-size:10px!important}
.ai-check input{width:auto!important;margin-top:1px}
.ai-summary{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:10px;border-radius:10px;background:#eef4ff;color:#1d4ed8;font-size:11px}
.ai-summary b{font-size:16px}
@media(max-width:760px){
  .modal{align-items:stretch!important;padding:0!important}
  .modal>.items-manager{
    width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
  }
  .items-manager-head{padding:14px 16px!important}
  .items-manager-head h2{font-size:17px!important}
  .items-manager-head p{display:none}
  .items-manager-body{
    grid-template-columns:1fr!important;
    grid-template-rows:minmax(170px,32vh) minmax(0,1fr)!important;
  }
  .items-list{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-template-rows:repeat(2,minmax(64px,auto))!important;
    grid-auto-columns:minmax(180px,220px)!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    border-right:0!important;
    border-bottom:1px solid #e8edf3!important;
    padding:8px!important;
  }
  .items-list button{min-height:64px!important}
  .item-editor-panel{padding:14px!important}
  .item-editor-panel .grid2{grid-template-columns:1fr!important}
  .ai-feature-grid{grid-template-columns:1fr!important}
  .item-editor-actions{position:sticky;bottom:0;background:#fff;padding-bottom:8px}
}

/* v5.4 — selo Neural para câmeras com IA */
.ai-plant-badge{
  position:absolute;
  left:28px;
  top:-16px;
  z-index:45;
  display:flex;
  align-items:center;
  gap:2px;
  pointer-events:none;
  filter:drop-shadow(0 2px 3px rgba(15,23,42,.18));
}
.ai-plant-badge.neural{
  background:#fff;
  border:1px solid #ddd6fe;
  border-radius:8px;
  padding:2px 4px 2px 2px;
  color:#5b21b6;
}
.ai-plant-badge.neural svg{width:18px;height:18px}
.ai-plant-badge.neural small{
  position:static!important;
  background:transparent!important;
  padding:0!important;
  box-shadow:none!important;
  color:#5b21b6!important;
  font-size:6px!important;
  font-weight:700!important;
  line-height:1!important;
}
.ai-plant-badge.text{
  min-width:22px;
  height:18px;
  justify-content:center;
  padding:0 5px;
  border-radius:7px;
  background:#5b21b6;
  color:#fff;
  font-size:7px;
  font-weight:700;
  letter-spacing:.03em;
}
.print-ai-badge{
  position:absolute;
  left:26px;
  top:-12px;
  display:flex;
  align-items:center;
  gap:1px;
  font-style:normal;
  font-size:6px;
  font-weight:700;
  color:#5b21b6;
  background:#fff;
  border:1px solid #ddd6fe;
  border-radius:6px;
  padding:1px 3px;
  white-space:nowrap;
}
.print-ai-badge svg{width:14px!important;height:14px!important}
.print-ai-badge small{font-size:5px!important;color:#5b21b6!important}
@media(max-width:760px){
  .ai-plant-badge{transform:scale(.9);transform-origin:left bottom}
}
@media print{
  .ai-plant-badge{display:none!important}
  .print-ai-badge{display:flex!important}
}

/* v5.5 — selo IA e monitoramento em gravadores */
.ai-plant-badge.ia-only{
  min-width:24px;
  height:18px;
  justify-content:center;
  padding:0 5px;
  border-radius:7px;
  background:#2563eb;
  color:#fff;
  border:1px solid #1d4ed8;
  box-shadow:0 3px 8px rgba(37,99,235,.22);
}
.ai-plant-badge.ia-only b{
  font-size:7px!important;
  line-height:1!important;
  font-weight:700!important;
  color:#fff!important;
}
.print-ai-badge.ia-only{
  min-width:20px;
  justify-content:center;
  background:#fff;
  color:#2563eb;
  border-color:#93c5fd;
  font-size:6px;
  font-weight:700;
}
.monitoring-config{
  margin:12px 0;
  padding:12px;
  border:1px solid #cfe0ff;
  border-radius:12px;
  background:#f8fbff;
}
.monitor-camera-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:10px 0;
  max-height:220px;
  overflow:auto;
}
.monitor-camera-check{
  display:flex!important;
  align-items:flex-start!important;
  gap:8px!important;
  margin:0!important;
  padding:8px;
  border:1px solid #e3e8ef;
  border-radius:8px;
  background:#fff;
}
.monitor-camera-check input{width:auto!important;margin-top:2px}
.monitor-camera-check b,
.monitor-camera-check small{display:block}
.monitor-camera-check b{font-size:10px;font-weight:600!important}
.monitor-camera-check small{font-size:9px;color:#667085;margin-top:2px}
.monitoring-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:10px;
  padding:10px;
  border-radius:10px;
  background:#ecfdf3;
  color:#027a48;
  font-size:11px;
}
.monitoring-summary b{font-size:16px}
@media(max-width:760px){
  .monitor-camera-list{grid-template-columns:1fr}
}

/* v5.6 — filtros de visualização e selos automáticos */
.layer-menu{position:relative}
.layer-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px}
.layer-menu>summary::-webkit-details-marker{display:none}
.layer-menu>summary span{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#eef2ff;color:#4338ca;font-size:9px}
.layer-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:600;width:320px;padding:14px;border:1px solid #dfe6ef;border-radius:14px;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.18)}
.layer-popover h4{margin:0 0 10px;font-size:12px;font-weight:600}
.layer-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.layer-presets button{border:1px solid #dbe3ee;background:#f8fafc;border-radius:8px;padding:7px 9px;font-size:10px;cursor:pointer}
.layer-presets button:hover{background:#eef4ff;border-color:#bfd1ff;color:#1d4ed8}
.layer-checks{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.layer-checks label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #e7ebf1;border-radius:8px;font-size:10px;background:#fff}
.layer-checks input{width:auto}
.layer-popover>small{display:block;margin-top:10px;color:#7b8798;font-size:9px}
.ai-plant-badge.ia-only.lpr,.print-ai-badge.lpr{background:#0f766e!important;border-color:#0f766e!important;color:#fff!important}
.ai-plant-badge.ia-only.facial,.print-ai-badge.facial{background:#7c3aed!important;border-color:#7c3aed!important;color:#fff!important}
.ai-plant-badge.ia-only.ia,.print-ai-badge.ia{background:#2563eb!important;border-color:#2563eb!important;color:#fff!important}
.ai-plant-badge.ia-only.facial{min-width:38px}
@media(max-width:760px){
 .layer-menu{position:static}
 .layer-popover{position:fixed;left:8px;right:8px;top:auto;bottom:76px;width:auto;max-height:68vh;overflow:auto}
 .layer-checks{grid-template-columns:1fr}
}
@media print{
 .layer-menu{display:none!important}
}

/* v5.7 — painel contextual, loading com logo e refinamentos visuais */
.properties{
  scrollbar-width:thin!important;
  scrollbar-color:#6b7280 #eef2f6!important;
}
.properties::-webkit-scrollbar{width:8px!important}
.properties::-webkit-scrollbar-track{background:#eef2f6!important}
.properties::-webkit-scrollbar-thumb{background:#6b7280!important;border-radius:8px!important;border:2px solid #eef2f6!important}
.selected-only-card{min-height:calc(100vh - 150px)}
.selected-panel-head{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #e6ebf2}
.selected-panel-head h3{margin:0 0 4px;font-size:14px}
.selected-panel-head small{color:#7b8798}
.selected-empty{min-height:260px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:#7b8798;padding:20px}
.selected-empty span{font-size:34px;color:#aab4c2}
.selected-empty b{font-weight:600!important;color:#4b5563}
.selected-empty small{max-width:220px}
.project-settings-modal{width:min(760px,94vw);max-height:88vh;overflow:auto}
.project-settings-body{padding:18px 20px}
.project-collaborators{margin-top:16px;padding-top:12px;border-top:1px solid #e6ebf2}
.project-collaborators h3{font-size:13px;margin:0 0 8px}
.global-loader{
  position:fixed;inset:0;z-index:5000;display:grid;place-items:center;align-content:center;gap:18px;
  background:rgba(248,250,252,.92);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .2s ease
}
.global-loader.visible{opacity:1;pointer-events:auto}
.global-loader.hidden{display:none}
.loader-logo{width:min(280px,70vw);height:110px;display:grid;place-items:center}
.loader-logo img{max-width:100%;max-height:100%;object-fit:contain;background:transparent!important}
.loader-fallback{width:70px;height:70px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;font-size:28px;font-weight:700}
.loader-line{width:min(240px,62vw);height:4px;border-radius:999px;background:#dbe4ef;overflow:hidden}
.loader-line span{display:block;width:40%;height:100%;border-radius:inherit;background:var(--primary,#2563eb);animation:loaderMove 1s ease-in-out infinite}
@keyframes loaderMove{0%{transform:translateX(-110%)}50%{transform:translateX(110%)}100%{transform:translateX(260%)}}
.logo-preview,.login-logo,.theme-sample img,.sidebar .brand img{
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  object-fit:contain!important;
}
.login-brand{align-items:center}
.login-logo{width:150px;max-height:74px}
.theme-sample{background:transparent!important;border:1px solid #e5eaf1!important;color:#1f2937!important}
#eqError .alert{margin-top:12px}
@media(max-width:760px){
 .project-settings-modal{width:100vw;max-height:100dvh;border-radius:0}
 .project-settings-body{padding:14px}
 .selected-only-card{min-height:auto}
 .login-logo{width:120px;max-height:60px}
}

/* v5.8 — estabilidade, selos corretos e painel contextual leve */
.prop-topic{border:1px solid #e5eaf1;border-radius:12px;background:#fff;margin:0 0 10px;overflow:hidden}
.prop-topic>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:center;padding:12px 13px;background:#fbfcfe}
.prop-topic>summary::-webkit-details-marker{display:none}
.prop-topic>summary>span{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#eef2f7;color:#475569;font-size:9px;font-weight:700}
.prop-topic>summary b{display:block;font-size:12px;font-weight:650!important;color:#1f2937}
.prop-topic>summary small{display:block;margin-top:2px;font-size:9px;color:#7b8798}
.prop-topic[open]>summary{border-bottom:1px solid #edf1f5;background:#f8fafc}
.prop-topic-body{padding:12px 13px}
.prop-topic-body label:first-child{margin-top:0}
.intelligent-topic>summary>span{background:#eaf2ff;color:#1d4ed8}
.monitoring-topic>summary>span{background:#ecfdf3;color:#027a48}
.full-danger{width:100%;margin-top:8px}
.object-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.resize-tip{margin:8px 0}
.ai-plant-badge.ia-only.lpr{min-width:28px}
.ai-plant-badge.ia-only.facial{min-width:42px}
.global-loader{transition:opacity .14s ease}
@media(max-width:760px){
 .prop-topic>summary{padding:11px}
 .prop-topic-body{padding:11px}
 .object-actions{grid-template-columns:1fr}
}

/* v5.9 — resumo técnico e opções de impressão */
.print-options-modal{width:min(680px,94vw);max-height:88vh;overflow:auto}
.print-options-body{padding:18px 20px}
.print-option{display:grid!important;grid-template-columns:22px minmax(0,1fr);gap:10px!important;align-items:start!important;margin:0 0 10px!important;padding:13px!important;border:1px solid #e3e8ef;border-radius:12px;background:#fff;cursor:pointer}
.print-option.active{border-color:#93b4ff;background:#f5f8ff}
.print-option input{width:auto!important;margin-top:3px}
.print-option b,.print-option small{display:block}
.print-option b{font-size:12px;font-weight:650!important;color:#1f2937}
.print-option small{margin-top:3px;color:#6b7280;font-size:10px}
.print-options-extra{margin-top:14px;padding-top:12px;border-top:1px solid #e6ebf2}
.print-summary-sheet{padding-bottom:24px}
.summary-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}
.summary-kpis>div{padding:12px;border:1px solid #dfe6ef;border-radius:10px;background:#f8fafc}
.summary-kpis span,.summary-kpis b{display:block}
.summary-kpis span{font-size:9px;color:#667085}
.summary-kpis b{margin-top:4px;font-size:20px;font-weight:650!important;color:#1f2937}
.summary-section{margin-top:14px}
.summary-section h3{margin:0 0 7px;font-size:12px;font-weight:650;color:#1f2937}
.print-summary-table{width:100%;border-collapse:collapse;font-size:9px}
.print-summary-table th,.print-summary-table td{border:1px solid #cfd7e3;padding:6px 7px;text-align:left;vertical-align:top}
.print-summary-table th{background:#eef2f6;font-weight:650}
.print-summary-table td small{display:block;margin-top:2px;color:#667085}
.summary-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:14px}
.summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.summary-metrics>div{padding:10px;border:1px solid #dfe6ef;border-radius:9px;background:#f8fafc}
.summary-metrics span,.summary-metrics b{display:block}
.summary-metrics span{font-size:8px;color:#667085}
.summary-metrics b{margin-top:3px;font-size:16px;font-weight:650!important}
@media(max-width:760px){
 .print-options-modal{width:100vw;max-height:100dvh;border-radius:0}
 .summary-kpis,.summary-grid{grid-template-columns:1fr 1fr}
}
@media print{
 .print-summary-sheet{page-break-after:always}
 .print-summary-sheet:last-child{page-break-after:auto}
 .summary-kpis{grid-template-columns:repeat(4,1fr)!important}
 .summary-grid{grid-template-columns:1.35fr .65fr!important}
}

/* v6.0 — linhas de distância e cores fiéis na impressão */
.distance-shape,.print-distance{
  position:relative;
  width:100%;
  height:100%;
  display:grid;
  grid-template-columns:12px minmax(0,1fr) 12px;
  align-items:center;
  gap:0;
}
.distance-shape:before,.distance-shape:after,
.print-distance:before,.print-distance:after{
  content:"";
  position:absolute;
  top:50%;
  height:1.5px;
  background:currentColor;
  transform:translateY(-50%);
}
.distance-shape:before,.print-distance:before{left:7px;right:50%}
.distance-shape:after,.print-distance:after{left:50%;right:7px}
.distance-shape i,.print-distance i{
  position:relative;
  z-index:2;
  width:10px;
  height:22px;
  border-left:2px solid currentColor;
}
.distance-shape i:last-child,.print-distance i:last-child{
  justify-self:end;
  border-left:0;
  border-right:2px solid currentColor;
}
.distance-shape span,.print-distance span{
  position:relative;
  z-index:3;
  justify-self:center;
  padding:2px 6px;
  border:1px solid currentColor;
  border-radius:6px;
  background:#fff;
  color:inherit;
  font-size:10px;
  font-weight:650;
  white-space:nowrap;
}
@media print{
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .print-street,.print-sidewalk{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .print-distance span{font-size:9px!important}
}

/* v6.1 — mobile navegável e levantamento em campo */
body.modal-open{overflow:hidden!important}
.mobile-modal-close{
  display:none;position:absolute;right:10px;top:10px;z-index:30;width:38px;height:38px;border:0;border-radius:50%;
  background:#eef2f7;color:#1f2937;font-size:24px;line-height:1;cursor:pointer
}
.client-project-actions{display:flex;gap:8px;flex-wrap:wrap}
.survey-wizard{width:min(980px,94vw);max-height:90vh;overflow:auto}
.survey-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 14px;border-bottom:1px solid #e6ebf2}
.survey-head h2{margin:3px 0 5px;font-size:21px}
.survey-head p{margin:0;color:#667085;font-size:11px}
.survey-kicker{font-size:9px;letter-spacing:.12em;color:#2563eb;font-weight:700}
.survey-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:12px 22px;background:#f8fafc;border-bottom:1px solid #e6ebf2}
.survey-steps span{padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e3e8ef;font-size:10px;text-align:center}
.survey-steps span.active{background:#0f2a68;color:#fff;border-color:#0f2a68}
.survey-section{padding:18px 22px;border-bottom:1px solid #edf1f5}
.survey-section h3{margin:0 0 12px;font-size:14px}
.survey-section-head{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-bottom:12px}
.survey-section-head h3{margin:0}
.survey-section-head p{margin:3px 0 0;color:#667085;font-size:10px}
.survey-section-head input{width:min(280px,42vw)}
.survey-equipment-groups{display:grid;gap:10px}
.survey-group{border:1px solid #e1e7ef;border-radius:12px;overflow:hidden;background:#fff}
.survey-group>summary{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;background:#f8fafc;cursor:pointer;font-size:11px;font-weight:600}
.survey-group>summary b{min-width:22px;height:22px;border-radius:11px;background:#e9eef6;display:grid;place-items:center;font-size:9px}
.survey-equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}
.survey-equipment{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid #e6ebf2;border-radius:10px}
.survey-equipment-icon{width:34px;height:34px;display:grid;place-items:center}
.survey-equipment-icon svg{width:30px;height:30px}
.survey-equipment-name b,.survey-equipment-name small{display:block}
.survey-equipment-name b{font-size:10px;font-weight:600!important}
.survey-equipment-name small{font-size:8px;color:#7b8798;margin-top:2px}
.qty-control{display:grid;grid-template-columns:32px 44px 32px;align-items:center}
.qty-control button{height:34px;border:1px solid #dbe3ee;background:#f8fafc;font-size:18px}
.qty-control input{height:34px;text-align:center;border-left:0;border-right:0;border-radius:0!important;padding:0!important}
.survey-ai{grid-column:2/-1;display:flex!important;justify-content:flex-end;align-items:center;gap:7px!important;margin:0!important;font-size:9px!important}
.survey-ai input{width:54px!important}
.survey-review{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px 22px;background:#f8fafc}
.survey-review>div{padding:10px;border:1px solid #e1e7ef;border-radius:9px;background:#fff}
.survey-review span,.survey-review b{display:block}
.survey-review span{font-size:9px;color:#667085}
.survey-review b{margin-top:3px;font-size:18px}
.survey-actions{position:sticky;bottom:0;background:#fff;padding:12px 22px;border-top:1px solid #e6ebf2}
@media(max-width:760px){
  .modal-back{padding:0!important;align-items:stretch!important}
  .modal-back>.modal{width:100vw!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;overflow:auto!important;padding-top:52px!important}
  .mobile-modal-close{display:grid;place-items:center;position:fixed}
  .modal-back .modal-actions{padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .survey-wizard{width:100%!important;max-height:none!important;overflow:visible!important}
  .survey-head{padding:14px 16px 12px}
  .survey-head .btn{display:none}
  .survey-head h2{font-size:18px}
  .survey-steps{position:sticky;top:0;z-index:8;padding:8px;background:#fff;grid-template-columns:repeat(4,minmax(90px,1fr));overflow-x:auto}
  .survey-steps span{white-space:nowrap}
  .survey-section{padding:14px}
  .survey-section .grid2{grid-template-columns:1fr!important}
  .survey-section-head{display:grid}
  .survey-section-head input{width:100%}
  .survey-equipment-grid{grid-template-columns:1fr;padding:8px}
  .survey-equipment{grid-template-columns:36px minmax(0,1fr);padding:10px}
  .qty-control{grid-column:1/-1;grid-template-columns:44px 1fr 44px;margin-top:6px}
  .survey-ai{grid-column:1/-1;justify-content:space-between!important;padding-top:6px;border-top:1px solid #eef2f6}
  .survey-review{grid-template-columns:1fr 1fr;padding:10px 14px}
  .survey-review>div:last-child{grid-column:1/-1}
  .survey-actions{padding:10px 14px;display:grid;grid-template-columns:1fr}
  .survey-actions .btn[data-close]{display:none}
  .client-project-actions{width:100%;display:grid;grid-template-columns:1fr}
  .client-project-actions .btn{width:100%}
  .editor-top{overflow-x:auto}
  .editor-top .top-actions{min-width:max-content}
}

/* v6.2 — mobile sem rolagem lateral e importação do levantamento */
html,body,#app{max-width:100%;overflow-x:hidden}
*,*:before,*:after{box-sizing:border-box}
.modal-back,.modal-back>.modal,.survey-wizard,.survey-section,.survey-equipment-groups,.survey-group,.survey-equipment-grid,.survey-equipment{
  max-width:100%!important;
  min-width:0!important;
}
.modal-back>.modal{overflow-x:hidden!important}
.survey-wizard,.survey-wizard form{overflow-x:hidden!important}
.survey-section input,.survey-section select,.survey-section textarea{min-width:0!important;max-width:100%!important;width:100%}
.survey-section .grid2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.survey-equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.survey-equipment{grid-template-columns:38px minmax(0,1fr) auto!important}
.qty-control{min-width:108px}
.survey-import-modal{width:min(680px,94vw);max-height:88vh;overflow:auto}
.survey-import-body{padding:18px 20px}
.survey-import-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}
.survey-import-summary>div{padding:11px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}
.survey-import-summary span,.survey-import-summary b{display:block}
.survey-import-summary span{font-size:9px;color:#64748b}
.survey-import-summary b{margin-top:3px;font-size:18px}
.survey-import-note{margin-top:12px;padding:10px;border:1px solid #dbeafe;border-radius:9px;background:#eff6ff;color:#1d4ed8;font-size:10px}
.survey-import-top{background:#eef4ff!important;color:#1d4ed8!important;border-color:#bfd1ff!important}
@media(max-width:760px){
  html,body,#app{width:100%;max-width:100%;overflow-x:hidden!important}
  .modal-back{width:100vw!important;max-width:100vw!important;overflow-x:hidden!important}
  .modal-back>.modal{width:100vw!important;max-width:100vw!important;margin:0!important;padding-left:0!important;padding-right:0!important}
  .survey-head,.survey-section,.survey-review,.survey-actions{width:100%;max-width:100%}
  .survey-steps{width:100%;max-width:100%;grid-template-columns:repeat(4,minmax(72px,1fr))!important;overflow-x:hidden!important}
  .survey-steps span{white-space:normal!important;padding:7px 4px!important;font-size:8px!important}
  .survey-section .grid2{grid-template-columns:1fr!important}
  .survey-equipment-grid{grid-template-columns:1fr!important}
  .survey-equipment{grid-template-columns:34px minmax(0,1fr)!important}
  .qty-control{grid-column:1/-1;width:100%;min-width:0;grid-template-columns:44px minmax(0,1fr) 44px}
  .survey-ai{grid-column:1/-1!important}
  .survey-import-modal{width:100%!important;max-height:none!important}
  .survey-import-body{padding:14px}
  .survey-import-summary{grid-template-columns:1fr 1fr}
  .survey-actions{grid-template-columns:1fr!important}
  .survey-actions .btn{width:100%}
  .main,.panel,.client-detail-head,.client-tabs,.header{max-width:100%;overflow-x:hidden}
}
@media(min-width:761px) and (max-width:1200px){
  .survey-wizard{width:min(920px,96vw)}
  .survey-equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v6.3 — caixa flutuante de equipamentos */
.equipment-tray{
  position:absolute;
  z-index:850;
  width:310px;
  max-height:min(72vh,620px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  border:1px solid #d9e1ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 48px rgba(15,23,42,.2);
  overflow:hidden;
}
.equipment-tray.hidden{display:none!important}
.equipment-tray.collapsed{max-height:none}
.equipment-tray.collapsed .equipment-tray-body{display:none}
.equipment-tray-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 11px;background:#f8fafc;border-bottom:1px solid #e6ebf2;cursor:move;touch-action:none
}
.equipment-tray-head b,.equipment-tray-head small{display:block}
.equipment-tray-head b{font-size:11px;font-weight:650!important;color:#1f2937}
.equipment-tray-head small{font-size:8px;color:#667085;margin-top:2px}
.equipment-tray-head>div:last-child{display:flex;gap:5px}
.equipment-tray-head button{
  width:28px;height:28px;border:1px solid #dbe3ee;border-radius:8px;background:#fff;color:#475569;cursor:pointer
}
.equipment-tray-body{overflow:auto;padding:9px;scrollbar-width:thin}
.tray-group{margin:0 0 10px}
.tray-group:last-child{margin-bottom:0}
.tray-group h4{display:flex;justify-content:space-between;margin:0 0 6px;font-size:9px;color:#475569}
.tray-group h4 span{min-width:20px;height:20px;display:grid;place-items:center;border-radius:10px;background:#eef2f7;font-size:8px}
.tray-group>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tray-item{
  position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:7px;align-items:center;
  min-height:58px;padding:7px;border:1px solid #e5eaf1;border-radius:9px;background:#fff;text-align:left;cursor:grab;touch-action:none
}
.tray-item:active{cursor:grabbing}
.tray-item:hover{background:#f8fbff;border-color:#bfd1ff}
.tray-item>span{width:28px;height:28px;display:grid;place-items:center}
.tray-item svg{width:26px;height:26px}
.tray-item b,.tray-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tray-item b{font-size:9px;font-weight:650!important}
.tray-item small{font-size:7px;color:#7b8798;margin-top:2px}
.tray-item i{position:absolute;right:4px;top:4px;padding:1px 4px;border-radius:5px;background:#2563eb;color:#fff;font-size:6px;font-style:normal}
.tray-empty{padding:20px;text-align:center;color:#7b8798;font-size:10px}
.tray-drag-ghost{
  position:fixed;z-index:9999;pointer-events:none;width:62px;min-height:62px;padding:5px;
  display:grid;place-items:center;border:1px solid #93b4ff;border-radius:10px;background:rgba(255,255,255,.95);
  box-shadow:0 10px 28px rgba(15,23,42,.22)
}
.tray-drag-ghost svg{width:34px;height:34px}
.tray-drag-ghost b{font-size:8px}
@media(max-width:760px){
  .equipment-tray{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:76px!important;
    width:auto!important;
    max-height:48vh!important;
    border-radius:14px
  }
  .equipment-tray-head{cursor:default}
  .tray-group>div{grid-template-columns:1fr 1fr}
  .tray-item{min-height:56px}
}

/* v6.4 — permissões e feedback */
.read-only-editor .toolbox button,
.read-only-editor .toolbox input,
.read-only-editor .toolbox select,
.read-only-editor #importSurveyItems,
.read-only-editor #openSurvey{
  pointer-events:none;
  opacity:.55;
}
.read-only-editor #saveProject{background:#e5e7eb!important;color:#64748b!important}
#userError .alert{margin:12px 0 0}

/* v6.6 — faixa de direção das câmeras */
.camera-view-band{
  position:absolute;
  left:24px;
  top:24px;
  z-index:-1;
  width:var(--view-range,150px);
  height:96px;
  transform-origin:0 50%;
  pointer-events:none;
  opacity:.34;
  filter:drop-shadow(0 0 2px rgba(15,23,42,.14));
}
.camera-view-band::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,color-mix(in srgb,var(--view-color,#2563eb) 48%,transparent),color-mix(in srgb,var(--view-color,#2563eb) 8%,transparent));
  clip-path:polygon(0 48%,100% 0,100% 100%,0 52%);
  border-right:1px solid color-mix(in srgb,var(--view-color,#2563eb) 45%,transparent);
}
.camera-view-band.angle-60{height:64px}
.camera-view-band.angle-90{height:96px}
.camera-view-band.angle-120{height:124px}
.camera-view-band.angle-180{height:168px}
.camera-view-band.full{
  width:var(--view-range,150px);
  height:var(--view-range,150px);
  left:24px;
  top:24px;
  transform-origin:0 0!important;
  opacity:.2;
}
.camera-view-band.full::before{
  inset:auto;
  left:calc(var(--view-range,150px) / -2);
  top:calc(var(--view-range,150px) / -2);
  width:var(--view-range,150px);
  height:var(--view-range,150px);
  border-radius:50%;
  clip-path:none;
  border:1px solid color-mix(in srgb,var(--view-color,#2563eb) 45%,transparent);
}
.camera-direction-controls,.camera-view-config{
  margin-top:10px;
  padding:11px;
  border:1px solid #dbe7f5;
  border-radius:10px;
  background:#f8fbff;
}
.camera-direction-controls>small{
  display:block;
  margin-top:7px;
  color:#667085;
  font-size:9px;
  line-height:1.4;
}
.camera-direction-controls input[type=range],
.camera-view-config input[type=range]{
  width:100%;
  accent-color:var(--primary,#2563eb);
}
.camera-view-config h4{
  margin:0 0 9px;
  font-size:11px;
  font-weight:650;
}
.equip-item:not(.shape-item){isolation:isolate}
.equipment-canvas-icon{position:relative;z-index:3}
.print-equip{isolation:isolate}
.print-camera-view{z-index:0!important}
@media(max-width:760px){
  .camera-view-band{opacity:.28}
  .camera-direction-controls,.camera-view-config{padding:9px}
}
@media print{
  .camera-view-band{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
    opacity:.26!important;
  }
}

/* v6.7 — correção das faixas de câmera na impressão */
@media print{
  .print-equip{
    overflow:visible!important;
    isolation:isolate!important;
    z-index:20!important;
  }
  .print-equip>.print-camera-view{
    display:block!important;
    position:absolute!important;
    left:24px!important;
    top:24px!important;
    z-index:0!important;
    overflow:visible!important;
    opacity:.32!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .print-equip>span:not(.print-camera-view){
    position:relative!important;
    z-index:3!important;
  }
  .print-equip>b{
    position:relative!important;
    z-index:4!important;
  }
  .print-camera-view::before{
    display:block!important;
    content:""!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .print-canvas-inner,
  .print-canvas{
    overflow:hidden!important;
  }
}

/* v6.8 — faixa de câmera em SVG para impressão confiável */
.camera-view-svg{
  position:absolute;
  z-index:1;
  overflow:visible;
  pointer-events:none;
  opacity:1;
}
.equip-item>.camera-view-svg{z-index:1}
.equip-item>.equipment-canvas-icon,
.equip-item>small,
.equip-item>.ai-plant-badge,
.equip-item>.item-hover-lock{position:relative;z-index:4}
.print-equip>.print-camera-view-svg{
  position:absolute!important;
  display:block!important;
  z-index:1!important;
  overflow:visible!important;
  opacity:1!important;
}
.print-equip>span,
.print-equip>b,
.print-equip>em{position:relative!important;z-index:4!important}
@media print{
  .camera-view-svg,
  .camera-view-svg *,
  .print-camera-view-svg,
  .print-camera-view-svg *{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .print-equip{overflow:visible!important}
}
