
.hidden{display:none!important}
.portal-screen{min-height:100vh;background:radial-gradient(circle at 50% 0,#fff 0,#f4f1eb 42%,#eae5dc 100%);padding:42px 5vw 22px;display:flex;flex-direction:column}
.portal-heading{text-align:center;margin-bottom:30px}.portal-heading p,.area-intro>span{margin:0;color:#a67a2f;font-size:12px;font-weight:900;letter-spacing:.2em}.portal-heading h1{font-size:clamp(34px,5vw,62px);margin:9px 0 7px}.portal-heading span{color:#6d6a64}.portal-grid{width:min(1220px,100%);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:24px}.company-entry{min-height:520px;border:0;border-radius:26px;padding:0;overflow:hidden;text-align:left;cursor:pointer;box-shadow:0 24px 70px rgba(0,0,0,.13);transition:transform .22s,box-shadow .22s;display:grid;grid-template-rows:58% 42%}.company-entry:hover{transform:translateY(-7px);box-shadow:0 30px 85px rgba(0,0,0,.18)}.private-entry{background:#1e1a17;color:white}.public-entry{background:white;color:#171717}.entry-logo{display:flex;align-items:center;justify-content:center;padding:30px}.entry-logo img{width:min(340px,80%);height:220px;object-fit:contain}.dark-logo{background:#221e1a}.light-logo{background:#fff}.entry-copy{padding:28px 34px}.entry-kicker{font-size:11px;font-weight:900;letter-spacing:.16em;color:#c99a47}.entry-copy h2{font-size:36px;margin:8px 0}.entry-copy p{line-height:1.55;margin:0 0 20px;color:inherit;opacity:.72}.entry-copy strong{color:#c99a47}.portal-footer{text-align:center;color:#777;font-size:12px;margin-top:22px}
.auth-overlay{position:fixed;inset:0;background:rgba(0,0,0,.68);z-index:100;display:grid;place-items:center;padding:18px}.auth-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:30px;position:relative;box-shadow:0 35px 100px rgba(0,0,0,.4);display:grid;gap:11px}.auth-card>img{width:110px;height:90px;object-fit:contain;background:#211d19;border-radius:13px;margin:auto}.auth-card>span{text-align:center;color:#a97d34;font-size:11px;font-weight:900;letter-spacing:.16em}.auth-card h2{text-align:center;margin:0;font-size:27px}.auth-card>p{text-align:center;margin:0 0 7px;color:#666}.auth-card label{font-size:13px;font-weight:800}.auth-card input{padding:14px;border:1px solid #cfc8bc;border-radius:10px;font-size:18px;letter-spacing:.15em}.auth-submit{border:0;border-radius:10px;background:#171717;color:#fff;padding:14px;font-weight:900;cursor:pointer}.auth-close{position:absolute;right:15px;top:13px;border:0;background:transparent;font-size:26px;cursor:pointer}.auth-error{color:#a22!important;min-height:18px;font-size:13px}.auth-card small{text-align:center;color:#888}.logout-btn{border:1px solid #555;background:transparent;color:#ddd;border-radius:8px;padding:8px 10px;margin-bottom:10px;cursor:pointer}
.aycom-area{min-height:100vh;background:#f4f1eb}.area-header{height:104px;background:#fff;display:flex;align-items:center;gap:20px;padding:14px 5vw;border-bottom:1px solid #ddd}.area-header img{width:145px;height:70px;object-fit:contain}.area-header h1{margin:0;font-size:25px}.area-header p{margin:4px 0;color:#777}.back-portal{margin-right:auto;border:1px solid #cfc7bb;background:#fff;padding:10px 14px;border-radius:9px;cursor:pointer}.aycom-main{padding:48px 5vw 70px}.area-intro{max-width:760px;margin:0 auto 34px;text-align:center}.area-intro h2{font-size:42px;margin:8px 0}.area-intro p{color:#69645d;line-height:1.6}.studio-grid{width:min(1180px,100%);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.studio-card{background:#fff;border:1px solid #ded8ce;border-radius:19px;padding:25px;text-align:left;cursor:pointer;min-height:310px;transition:.2s;position:relative}.studio-card:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(0,0,0,.1)}.studio-card>b{position:absolute;right:20px;top:17px;color:#c8c0b4}.studio-icon{font-size:58px;margin:28px 0 20px}.studio-card h3{font-size:25px;margin:0 0 10px}.studio-card p{color:#706b63;line-height:1.5}.studio-card span{position:absolute;bottom:25px;color:#a77b31;font-weight:800}.studio-placeholder{width:min(920px,100%);margin:30px auto 0;background:#211e1a;color:#fff;border-radius:20px;padding:35px;position:relative}.studio-placeholder>span{color:#c99a47;font-size:11px;font-weight:900;letter-spacing:.15em}.studio-placeholder h2{font-size:34px;margin:8px 0}.studio-placeholder p{color:#ccc}.studio-actions{display:flex;gap:10px;margin-top:22px}.studio-actions button{border:0;border-radius:9px;padding:12px 17px;font-weight:800;cursor:pointer}.studio-close{position:absolute;right:18px;top:15px;color:#fff;background:transparent;border:0;font-size:26px;cursor:pointer}
@media(max-width:800px){.portal-grid,.studio-grid{grid-template-columns:1fr}.company-entry{min-height:430px}.entry-logo img{height:160px}.area-header{height:auto;flex-wrap:wrap}.area-intro h2{font-size:32px}}
:root{--bg:#f2f0eb;--panel:#fff;--ink:#151515;--muted:#6d6a64;--gold:#c89b48;--gold-soft:#efe4d0;--line:#ddd8cf;--sidebar:#171717;--danger:#a33;--ok:#2d7b55}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--sidebar);color:white;padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px;border-bottom:1px solid #333}.brand img{width:54px;height:54px;object-fit:cover;border-radius:10px;border:2px solid #eee}.brand strong{font-size:20px}.brand span{display:block;color:var(--gold);font-weight:700}.sidebar nav{display:grid;gap:6px;margin-top:18px}.nav-btn{border:0;background:transparent;color:#ddd;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer;font-weight:700}.nav-btn:hover,.nav-btn.active{background:var(--gold);color:#111}.sidebar-footer{margin-top:auto;padding:14px 8px;color:#bbb;border-top:1px solid #333}.main{min-width:0}.topbar{height:92px;background:white;border-bottom:1px solid var(--line);padding:18px 28px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:5}.topbar h1{margin:0 0 4px;font-size:25px}.topbar p{margin:0;color:var(--muted)}.top-actions{display:flex;gap:12px;align-items:center;color:var(--muted)}.icon-btn,.btn{border:0;border-radius:9px;padding:10px 15px;cursor:pointer;font-weight:700}.icon-btn{background:#eee}.btn{background:#161616;color:white}.btn.gold{background:var(--gold);color:#111}.btn.soft{background:var(--gold-soft);color:#5a411a}.btn.danger{background:#fee;color:#922}.view{padding:26px}.grid{display:grid;gap:18px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 28px rgba(0,0,0,.05)}.card{padding:20px}.card .kpi{font-size:30px;font-weight:800;margin:6px 0}.card small{color:var(--muted)}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-head h2{margin:0}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;background:white}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#1b1b1b;color:white;font-size:13px}tr:last-child td{border-bottom:0}.status{display:inline-block;padding:5px 9px;border-radius:999px;background:#eee;font-size:12px;font-weight:700}.status.ok{background:#dff3e8;color:#205c3f}.status.pending{background:#fff0cf;color:#7c5a12}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid #cfc9bf;border-radius:9px;padding:11px;background:#fff}.field textarea{min-height:90px;resize:vertical}.editor-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);gap:20px}.line-editor{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px}.line-row{display:grid;grid-template-columns:1fr 130px 40px;gap:8px;margin-bottom:8px}.line-row input{border:1px solid #ccc;border-radius:8px;padding:9px}.summary-box{background:#181818;color:white;border-radius:14px;padding:17px}.summary-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #444}.summary-row.total{font-size:22px;font-weight:800;color:#fff;border:0;padding-top:16px}.empty{padding:35px;text-align:center;color:var(--muted)}.toast{position:fixed;right:22px;bottom:22px;background:#181818;color:#fff;padding:13px 18px;border-radius:10px;opacity:0;transform:translateY(15px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}.budget-sheet{width:210mm;min-height:297mm;margin:0 auto;background:#fff;padding:7mm 6mm 5mm;color:#111;box-shadow:0 5px 30px rgba(0,0,0,.15);position:relative;overflow:hidden}.budget-watermark{position:absolute;inset:45mm 4mm 24mm;opacity:.16;background:url('/assets/construbrick-watermark.png') center/94% auto no-repeat;pointer-events:none}.doc-head{display:grid;grid-template-columns:45mm 1fr 59mm;gap:7mm;align-items:start;border-bottom:2px solid var(--gold);padding-bottom:5mm}.doc-logo img{width:42mm;height:32mm;object-fit:contain}.doc-company{border-left:1px solid #777;padding-left:7mm}.doc-company h2{font-size:22px;margin:0 0 4mm}.doc-company p{margin:2mm 0;font-size:10px}.doc-title h1{font-size:25px;margin:0 0 4mm}.doc-number{background:#101010;color:white;padding:4mm;border-radius:2px;font-size:20px;font-weight:800}.doc-number span{color:var(--gold)}.doc-date{margin-top:4mm;font-size:10px}.doc-columns{display:grid;grid-template-columns:1.08fr .92fr;gap:9mm;margin-top:5mm;position:relative;z-index:1}.doc-section-title{font-weight:800;font-size:11px;margin:0 0 4mm;display:flex;align-items:center;gap:3mm}.doc-client-grid{display:grid;grid-template-columns:35mm 1fr;gap:2.5mm;font-size:9.5px;margin-bottom:8mm}.chapter{border-bottom:1px solid #ccc;padding:0 0 4mm;margin-bottom:4mm}.chapter-head{display:flex;gap:4mm;align-items:center;font-size:10px;font-weight:800}.chapter-num{background:#111;color:var(--gold);padding:2.5mm 3mm;font-size:13px}.chapter ul{margin:3mm 0 0 12mm;padding:0;font-size:8.7px;line-height:1.55}.measure{display:inline-block;background:var(--gold-soft);padding:2mm 4mm;font-weight:800;margin:2mm 0 0 12mm;font-size:9px}.doc-table{width:100%;font-size:8.5px;border:1px solid #999;border-radius:3px;overflow:hidden;margin-bottom:5mm}.doc-table th{padding:2.5mm;background:#111}.doc-table td{padding:2.2mm}.doc-table .sum td{font-weight:800;background:var(--gold-soft)}.totals{border:1px solid #999;margin-bottom:5mm}.totals div{display:flex;justify-content:space-between;padding:3mm;border-bottom:1px solid #ccc;font-size:10px}.totals .grand{background:#111;color:#fff;font-size:16px;font-weight:800;border:2px solid var(--gold)}.pay-box,.conditions{font-size:8.4px;margin-bottom:5mm}.pay-box h3,.conditions h3{font-size:11px}.pay-row{display:flex;justify-content:space-between;padding:2mm 3mm}.pay-row.highlight{background:var(--gold-soft);font-weight:800}.conditions li{margin-bottom:1.8mm}.materials-note{background:var(--gold-soft);padding:3mm;border-radius:2px;font-size:8px;color:#684d1e}.acceptance{border:1px solid #777;border-radius:3px;padding:4mm;display:grid;grid-template-columns:1.15fr .85fr;gap:5mm;font-size:8px;position:relative;z-index:1;margin-top:4mm}.signature{border-left:1px solid #aaa;padding-left:5mm}.signature p{border-bottom:1px solid #888;padding-bottom:2mm}.doc-footer{background:#111;color:white;margin:4mm -6mm -5mm;padding:3mm 7mm;display:flex;justify-content:space-between;font-size:9px;position:relative;z-index:1}.print-only{display:none}@media(max-width:1100px){.app-shell{grid-template-columns:86px 1fr}.brand div,.sidebar-footer,.nav-label{display:none}.brand{justify-content:center}.nav-btn{text-align:center}.cards{grid-template-columns:repeat(2,1fr)}.editor-layout{grid-template-columns:1fr}}@media(max-width:700px){.app-shell{display:block}.sidebar{height:auto;position:static;flex-direction:row;overflow:auto}.sidebar nav{display:flex;margin:0}.brand,.sidebar-footer{display:none}.topbar{position:static}.view{padding:12px}.cards,.form-grid{grid-template-columns:1fr}.budget-sheet{transform:scale(.48);transform-origin:top left;margin-bottom:-145mm}}@media print{body{background:white}.sidebar,.topbar,.no-print{display:none!important}.main,.view{padding:0}.budget-sheet{box-shadow:none;margin:0;width:210mm;min-height:297mm}.print-only{display:block}@page{size:A4;margin:0}}

/* Módulo Clientes v2.1 */
.clients-shell{display:grid;gap:18px}.clients-hero{background:linear-gradient(120deg,#171717,#2a251d);color:#fff;border-radius:18px;padding:26px 28px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 14px 38px rgba(0,0,0,.12)}.clients-hero h2{font-size:34px;margin:5px 0}.clients-hero p{margin:0;color:#d4d0c9}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:var(--gold)}.client-search{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.client-search span{font-size:25px}.client-search input{border:0;outline:0;font-size:15px}.client-search b{font-size:12px;color:var(--muted)}.client-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.client-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px;display:grid;grid-template-columns:58px 1fr;gap:15px;box-shadow:0 8px 24px rgba(0,0,0,.045)}.client-avatar{width:58px;height:58px;border-radius:16px;background:#171717;color:var(--gold);display:grid;place-items:center;font-size:19px;font-weight:900}.client-title{display:flex;justify-content:space-between;gap:12px}.client-title h3{margin:0;font-size:19px}.client-title span{font-size:12px;color:var(--muted)}.client-contact{display:grid;gap:7px;margin:14px 0;color:#555;font-size:13px}.client-contact a{color:#444;text-decoration:none}.client-stats{display:flex;gap:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0;margin-bottom:13px;font-size:12px;color:var(--muted)}.client-stats b{color:var(--ink);font-size:16px}.client-actions{display:flex;justify-content:flex-end;gap:8px}.client-detail{display:grid;gap:18px}.client-profile h2{margin:5px 0 0;font-size:30px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-grid>div{background:#f7f5f1;border:1px solid var(--line);border-radius:11px;padding:13px}.profile-grid .full{grid-column:1/-1}.profile-grid label{display:block;font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.profile-grid p{margin:0;white-space:pre-wrap}.profile-actions{margin-top:18px}.client-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:-4px 0 18px}.client-tabs button{border:0;background:transparent;padding:12px 14px;cursor:pointer;font-weight:800;color:var(--muted);border-bottom:3px solid transparent}.client-tabs button.active{color:var(--ink);border-bottom-color:var(--gold)}.history-list{display:grid;gap:8px}.history-list>div{display:flex;justify-content:space-between;padding:14px;border:1px solid var(--line);border-radius:10px}.client-form-panel{max-width:980px;margin:auto}
@media(max-width:950px){.client-grid{grid-template-columns:1fr}}@media(max-width:650px){.clients-hero{align-items:flex-start;gap:18px;flex-direction:column}.client-card{grid-template-columns:1fr}.client-avatar{width:48px;height:48px}.profile-grid{grid-template-columns:1fr}.profile-grid .full{grid-column:auto}}

/* Clientes v2.1.1: buscador, contador, fila clicable y acciones */
.client-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.client-summary-strip>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;justify-content:space-between;align-items:end;box-shadow:0 7px 22px rgba(0,0,0,.04)}.client-summary-strip small{color:var(--muted);font-weight:700}.client-summary-strip strong{font-size:26px}.client-table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 24px rgba(0,0,0,.045)}.client-table{min-width:1120px}.client-table th{white-space:nowrap}.client-row{cursor:pointer;transition:background .16s ease,transform .16s ease}.client-row:hover{background:#fbf7ed}.client-row td{vertical-align:middle}.client-table-name{display:flex;align-items:center;gap:11px;min-width:190px}.client-table-name small{display:block;margin-top:3px;color:var(--muted)}.client-mini-avatar{width:38px;height:38px;border-radius:11px;background:#171717;color:var(--gold);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.client-table-contact{display:grid;gap:5px;min-width:175px}.client-table-contact a{color:#383838;text-decoration:none}.client-table-contact a:hover{text-decoration:underline}.client-row-actions{display:flex;gap:6px;flex-wrap:nowrap}.btn.compact{padding:7px 9px;border-radius:8px;font-size:12px}.status.inactive{background:#eee;color:#666}.client-search:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(205,158,70,.14)}
@media(max-width:900px){.client-summary-strip{grid-template-columns:1fr}.client-row-actions{flex-wrap:wrap}}


/* Presupuestos 2.2 */
.budgets-shell{display:grid;gap:18px}.budgets-hero{background:linear-gradient(120deg,#171717,#2a251d);color:#fff;border-radius:18px;padding:26px 28px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 14px 38px rgba(0,0,0,.12)}.budgets-hero h2{font-size:34px;margin:5px 0}.budgets-hero p{margin:0;color:#d4d0c9}.budget-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.budget-summary-strip>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;justify-content:space-between;align-items:end;box-shadow:0 7px 22px rgba(0,0,0,.04)}.budget-summary-strip small{color:var(--muted);font-weight:700}.budget-summary-strip strong{font-size:22px}.budget-filters{display:grid;grid-template-columns:minmax(280px,1fr) 180px auto;gap:12px;align-items:center}.budget-search{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.budget-search span{font-size:25px}.budget-search input{border:0;outline:0;font-size:15px}.budget-search:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(205,158,70,.14)}.budget-filters select{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;font-weight:700}.budget-filters>b{font-size:12px;color:var(--muted)}.budget-table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 24px rgba(0,0,0,.045)}.budget-list-table{min-width:1180px}.budget-row{cursor:pointer;transition:background .16s ease}.budget-row:hover{background:#fbf7ed}.budget-row td{vertical-align:middle}.budget-row small{display:block;color:var(--muted);margin-top:3px}.budget-actions{display:flex;gap:6px;white-space:nowrap}
@media(max-width:950px){.budget-summary-strip{grid-template-columns:repeat(2,1fr)}.budget-filters{grid-template-columns:1fr}.budgets-hero{align-items:flex-start;gap:18px;flex-direction:column}}@media(max-width:600px){.budget-summary-strip{grid-template-columns:1fr}}

/* v2.3.0 · Editor profesional de presupuestos */
.budget-editor-shell{display:grid;gap:18px}.budget-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.budget-editor-head h2{margin:5px 0 4px;font-size:28px}.budget-editor-head p{margin:0;color:var(--muted)}.editor-tabs{display:flex;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px}.editor-tab{border:0;background:transparent;padding:11px 15px;border-radius:9px;font-weight:800;color:var(--muted);cursor:pointer}.editor-tab.active{background:var(--dark);color:var(--gold)}.editor-layout.professional{grid-template-columns:minmax(0,1fr) 330px;align-items:start}.editor-pane{display:none}.editor-pane.active{display:block}.section-heading{border-bottom:1px solid var(--line);margin-bottom:18px;padding-bottom:12px}.section-heading h3{margin:0 0 4px}.section-heading span{color:var(--muted);font-size:13px}.sticky-summary{position:sticky;top:18px}.vat-line>div{display:flex;align-items:center;gap:5px;margin-left:auto}.vat-line input{width:65px;padding:7px}.vat-line strong{min-width:90px;text-align:right}.editor-help{margin-top:18px}.editor-help ol{padding-left:20px;color:var(--muted);line-height:1.8}.chapter-editor-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px;background:#fcfcfb}.chapter-editor-top{display:flex;gap:12px;align-items:end}.chapter-index{width:32px;height:32px;border-radius:8px;background:var(--dark);color:var(--gold);display:grid;place-items:center;font-weight:900;margin-bottom:4px}.chapter-editor-top .grow{flex:1}.measure-field{width:210px}.solution-library{margin-top:22px;background:#f7f1e5;border:1px solid #ead9b9;border-radius:14px;padding:16px}.solution-library h3{margin:0}.solution-library p{margin:5px 0 12px;color:#735e3a}.solution-library .btn{margin:3px}.professional-lines-head,.professional-line-row{display:grid;grid-template-columns:minmax(220px,2.2fr) 80px 78px 105px 75px 120px 42px;gap:8px;align-items:center}.professional-lines-head{font-size:11px;font-weight:900;text-transform:uppercase;color:var(--muted);padding:0 4px 7px}.professional-line-row{padding:8px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:#fff}.professional-line-row input,.professional-line-row select{min-width:0}.professional-line-row strong{text-align:right}.editor-main h3{margin-top:18px}.editor-main textarea{min-height:105px}
@media(max-width:1100px){.editor-layout.professional{grid-template-columns:1fr}.sticky-summary{position:static}.professional-lines-head{display:none}.professional-line-row{grid-template-columns:1fr 80px 78px 100px 72px 110px 40px}}
@media(max-width:760px){.budget-editor-head,.chapter-editor-top{flex-direction:column;align-items:stretch}.measure-field{width:auto}.professional-line-row{grid-template-columns:1fr 1fr}.professional-line-row strong{text-align:left}.editor-tabs{display:grid;grid-template-columns:1fr 1fr}}


/* v2.4.0 · Lista de presupuestos más clara y bonita */
.budget-filters.modern{grid-template-columns:minmax(300px,1fr) auto auto}.budget-status-chips{display:flex;gap:7px;flex-wrap:wrap}.budget-chip{border:1px solid var(--line);background:#fff;color:var(--muted);padding:10px 13px;border-radius:999px;font-weight:800;cursor:pointer;transition:.16s ease}.budget-chip:hover{border-color:var(--gold);color:var(--ink);transform:translateY(-1px)}.budget-chip.active{background:var(--dark);border-color:var(--dark);color:var(--gold);box-shadow:0 7px 18px rgba(0,0,0,.12)}.budget-row:hover td:first-child b{color:#9b6c15}.budget-actions .btn:first-child{min-width:58px}
@media(max-width:1100px){.budget-filters.modern{grid-template-columns:1fr}.budget-status-chips{order:2}.budget-filters.modern>b{order:3}}

/* v2.5.0 · Editor bonito, rápido e inteligente */
.part-library{background:linear-gradient(135deg,#f9f4e9,#fff);border:1px solid #ead9b9;border-radius:16px;padding:17px;margin-bottom:24px}.part-library h3{margin:0}.part-library p{margin:4px 0 13px;color:#766343}.part-library-search{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 13px}.part-library-search:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(205,158,70,.13)}.part-library-search input{border:0;outline:0;padding:3px;font-size:14px}.part-library-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:11px}.part-library-item{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px;display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;text-align:left;cursor:pointer;transition:.16s}.part-library-item:hover{border-color:var(--gold);transform:translateY(-1px);box-shadow:0 7px 18px rgba(0,0,0,.06)}.part-library-item small{display:block;color:var(--muted);margin-top:3px}.part-library-item>strong{color:#9b6c15;font-size:20px}.line-kind{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:11px;font-weight:900}.line-kind.material{background:#f3e5bd;color:#76500e}.line-kind.labor{background:#171717;color:var(--gold)}.line-section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 9px}.line-section-title>div:first-child{display:flex;align-items:center;gap:10px}.line-section-title h3{margin:0}.labor-title{margin-top:29px}.library-empty{padding:12px;color:var(--muted)}
@media(max-width:800px){.part-library-results{grid-template-columns:1fr}.line-section-title{align-items:flex-start;flex-direction:column}}

.invoice-empty-state{padding:46px 20px;text-align:center;color:var(--muted)}.invoice-empty-state h3{margin:8px 0;color:var(--ink);font-size:22px}.invoice-empty-state p{margin:0 0 20px}.invoice-empty-icon{width:52px;height:52px;margin:0 auto;border-radius:16px;display:grid;place-items:center;background:var(--gold-soft);color:var(--gold);font-size:26px;font-weight:800}

/* Facturas v3.0: estado vencido */
.status.overdue{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}

/* Cerebro ConstruBrick - cierre de fase */
.brain-shell .history-list>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.brain-shell .history-list>div:last-child{border-bottom:0}
.brain-shell .history-list span{color:var(--muted);text-align:right}
body.brain-mobile-mode .brain-main-grid,body.brain-mobile-mode .brain-status-grid{grid-template-columns:1fr!important}
body.brain-mobile-mode #brainCommand{min-height:220px!important;font-size:19px!important}
body.brain-mobile-mode #brainVoiceBtn{font-size:18px;padding:14px 20px}
@media(max-width:900px){.brain-main-grid,.brain-status-grid{grid-template-columns:1fr!important}.brain-shell .grid[style*="repeat(3"]{grid-template-columns:1fr!important}.brain-shell .history-list>div{flex-direction:column}.brain-shell .history-list span{text-align:left}}

/* ===== CONTROL REAL DE OBRA V2 ===== */
.work-control-shell{display:grid;gap:18px}.work-hero{background:linear-gradient(120deg,#171717,#2a251d);color:#fff;border-radius:18px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 14px 38px rgba(0,0,0,.12)}.work-hero h2{font-size:32px;margin:5px 0}.work-hero p{margin:0;color:#d4d0c9}.work-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.work-summary-strip>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:0 7px 22px rgba(0,0,0,.04);display:grid;gap:5px}.work-summary-strip small{color:var(--muted);font-weight:800}.work-summary-strip strong{font-size:22px}.work-summary-strip span{font-size:12px;color:var(--muted)}.work-general-note{background:#fff7e8;border:1px solid #ead9b9;border-radius:13px;padding:13px 16px;display:flex;gap:14px}.work-general-note b{white-space:nowrap}.work-general-note span{color:#665a49}.work-tabs{display:flex;gap:7px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px}.work-tabs button{border:0;background:transparent;padding:10px 13px;border-radius:9px;font-weight:800;color:var(--muted);cursor:pointer}.work-tabs button.active{background:var(--dark);color:var(--gold)}.work-pane{display:none}.work-pane.active{display:block}.work-overview-grid,.work-economy-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.work-kpi-list{display:grid;gap:10px}.work-kpi-list>div,.economy-lines>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.work-kpi-list>div:last-child,.economy-lines>div:last-child{border-bottom:0}.work-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.work-info-grid>div{background:#f7f5f1;border:1px solid var(--line);border-radius:10px;padding:12px}.work-info-grid small{display:block;color:var(--muted);margin-bottom:5px}.work-entry-grid{display:grid;gap:8px;align-items:end;margin-bottom:16px}.work-entry-grid.material{grid-template-columns:1.8fr 1.3fr .7fr .65fr .8fr 1fr auto}.work-entry-grid.labor{grid-template-columns:1.2fr .85fr .65fr .75fr 1.7fr auto}.work-entry-grid.tasks{grid-template-columns:2fr 1fr .9fr .9fr auto}.work-entry-grid.expenses{grid-template-columns:.85fr 1.8fr 1fr .8fr .9fr auto}.work-entry-grid.incidents{grid-template-columns:.85fr .9fr 2.5fr auto}.work-entry-grid input,.work-entry-grid select,.work-table select,.work-economy-grid select{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff;min-width:0}.work-table{min-width:900px}.work-table td{vertical-align:middle}.work-task-list{display:grid;gap:8px}.work-task{display:grid;grid-template-columns:38px minmax(0,1fr) 120px auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff}.work-task.done{opacity:.62;background:#f7f7f5}.work-task.done b{text-decoration:line-through}.work-task>div{display:grid;gap:4px}.work-task span{font-size:12px;color:var(--muted)}.task-check{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:900;font-size:18px}.work-timeline{display:grid;gap:8px}.work-timeline>div{display:grid;grid-template-columns:110px minmax(0,1fr) 120px auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:11px 0}.work-timeline>div:last-child{border-bottom:0}.work-timeline small{color:var(--muted)}.economy-lines .total{font-size:17px;border-top:2px solid var(--line);margin-top:6px}.economy-lines .margin{background:#f5faf5;border-radius:9px;padding:12px}.economy-lines .margin.negative{background:#fff0f0;color:#9c2828}.btn.danger{background:#fff;color:#a02b2b;border:1px solid #e5bcbc}.btn.danger:hover{background:#fff0f0}
@media(max-width:1100px){.work-summary-strip{grid-template-columns:repeat(2,1fr)}.work-entry-grid.material,.work-entry-grid.labor,.work-entry-grid.tasks,.work-entry-grid.expenses,.work-entry-grid.incidents{grid-template-columns:repeat(2,minmax(0,1fr))}.work-entry-grid .btn{grid-column:1/-1}.work-overview-grid,.work-economy-grid{grid-template-columns:1fr}}
@media(max-width:700px){.work-hero{align-items:flex-start;flex-direction:column}.work-summary-strip{grid-template-columns:1fr}.work-entry-grid.material,.work-entry-grid.labor,.work-entry-grid.tasks,.work-entry-grid.expenses,.work-entry-grid.incidents{grid-template-columns:1fr}.work-task{grid-template-columns:38px 1fr}.work-task select,.work-task .btn{grid-column:2}.work-timeline>div{grid-template-columns:1fr}}
.works-shell{display:grid;gap:18px}.works-hero{background:linear-gradient(120deg,#171717,#2a251d);color:#fff;border-radius:18px;padding:25px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.works-hero h2{font-size:32px;margin:5px 0}.works-hero p{margin:0;color:#d4d0c9}.work-list{display:grid;gap:12px}.work-list-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px 20px;display:flex;justify-content:space-between;gap:18px;align-items:center;cursor:pointer;box-shadow:0 7px 22px rgba(0,0,0,.04);transition:transform .15s ease,box-shadow .15s ease}.work-list-card:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(0,0,0,.07)}.work-list-card>div:first-child{display:grid;gap:4px}.work-list-card b{font-size:18px}.work-list-card span{color:#444}.work-list-card small{color:var(--muted)}@media(max-width:700px){.works-hero,.work-list-card{align-items:flex-start;flex-direction:column}}
/* PLANTILLA PRESUPUESTO DEFINITIVA — referencia aprobada 11/08/2026 */
.budget-sheet{padding:5mm 7mm 4mm;font-family:Arial,Helvetica,sans-serif}
.budget-watermark{inset:48mm 28mm 35mm 28mm;opacity:.10;background-size:88% auto;background-position:center 48%}
.doc-head{grid-template-columns:43mm 1fr 62mm;gap:5mm;align-items:center;padding-bottom:3mm}
.doc-logo img{width:39mm;height:35mm;object-fit:cover;object-position:center;border:0}
.doc-company{border-left:0;padding-left:0}.doc-company h2{font-size:22px;margin:0 0 2.5mm}.doc-company p{margin:1.5mm 0;font-size:9.2px}
.doc-title{align-self:center}.doc-title h1{font-size:25px;margin:0 0 3mm}.doc-number{font-size:21px;padding:3.5mm 4mm}.doc-date{margin-top:3mm;font-size:9.5px}
.doc-columns{grid-template-columns:1.04fr .96fr;gap:8mm;margin-top:4mm}.doc-columns>div+div{border-left:1px solid #d8b46a;padding-left:7mm}
.doc-section-title{font-size:10.5px;margin-bottom:3mm}.doc-client-grid{grid-template-columns:31mm 1fr;gap:2mm;font-size:9px;margin-bottom:6mm}
.chapter{padding-bottom:3mm;margin-bottom:3mm}.chapter-head{display:grid;grid-template-columns:9mm 13mm 1fr;gap:3mm;align-items:center}.chapter-num{padding:2mm 0;text-align:center;font-size:12px}.chapter-icon{width:11mm;height:11mm;display:inline-flex;align-items:center;justify-content:center;color:var(--gold);font-size:24px;line-height:1}.chapter-icon-0:before{content:'⚒'}.chapter-icon-1:before{content:'♢';font-size:30px;transform:rotate(-35deg)}.chapter-icon-2:before{content:'▦';font-size:29px}.chapter-title{font-size:9.7px;font-weight:800}.chapter ul{margin:2mm 0 0 25mm;font-size:8.2px;line-height:1.45}.measure{margin-left:25mm}
.doc-table{font-size:8px;margin-bottom:3.5mm}.doc-table th{padding:2mm}.doc-table td{padding:1.8mm}.totals{margin-bottom:3.5mm}.totals div{padding:2.5mm;font-size:9.5px}.totals .grand{font-size:15px}.pay-box,.conditions{font-size:7.8px;margin-bottom:3mm}.pay-box h3,.conditions h3{font-size:10px;margin:2mm 0}.pay-row{padding:1.5mm 2mm}.conditions ul{padding-left:5mm;margin-top:2mm}.conditions li{margin-bottom:1.2mm}
.materials-note{font-size:7.6px;padding:2.5mm}.acceptance{margin-top:3mm;padding:3mm;font-size:7.5px}.acceptance h3{margin:0 0 2mm}.acceptance p{margin:1mm 0}.signature p{padding-bottom:1.5mm;margin:1.5mm 0}.doc-footer{margin:3mm -7mm -4mm;padding:2.5mm 7mm;font-size:8.5px}

/* Compras y proveedores */
.purchases-shell{display:grid;gap:18px}.purchase-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.purchase-form .full{grid-column:1/-1}.purchase-form small{display:block;color:var(--muted);margin-top:6px}@media(max-width:760px){.purchase-form{grid-template-columns:1fr}.purchase-form .full{grid-column:auto}}

.bank-details{margin-top:10px;padding-top:8px;border-top:1px solid #d8d1bf;font-size:8.5px;line-height:1.45}.bank-details>b{display:block;margin-bottom:3px}

/* ===== Diseño 2D · V8 ===== */
.design2d-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:16px;align-items:start}
.design2d-canvas-panel{overflow:hidden}.cb-plan-svg{width:100%;min-height:390px;display:block;border:1px solid var(--line,#ddd);border-radius:14px;background:#fafafa}.cb-plan-dim{font:700 14px Arial,sans-serif;fill:#555}.cb-plan-name{font:700 17px Arial,sans-serif;fill:#181818}.cb-plan-area{font:600 13px Arial,sans-serif;fill:#777}.design2d-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}.design2d-legend span{display:flex;align-items:center;gap:6px}.design2d-legend i{width:22px;height:4px;display:inline-block;border-radius:4px}.design2d-legend i.door{background:#b8860b}.design2d-legend i.window{background:#2676a8}.design2d-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.design2d-metrics>div{background:#f7f7f7;border:1px solid var(--line,#ddd);border-radius:10px;padding:10px}.design2d-metrics small{display:block;color:var(--muted);margin-bottom:4px}.design2d-metrics b{font-size:15px}.design2d-opening-form{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:10px;align-items:end}.design2d-opening-list{display:grid;gap:8px;margin-top:14px}.design2d-opening-list>div{display:grid;grid-template-columns:auto 100px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line,#ddd);border-radius:10px;padding:9px 10px}.opening-badge{font-size:11px;font-weight:800;padding:4px 8px;border-radius:999px;background:#eee}.opening-badge.door{background:#fff1c8;color:#785400}.opening-badge.window{background:#def2ff;color:#145c87}.design2d-next{display:flex;gap:12px;align-items:center}.design2d-next span{color:var(--muted)}
@media(max-width:900px){.design2d-grid{grid-template-columns:1fr}.design2d-opening-form{grid-template-columns:1fr 1fr}.design2d-opening-form .btn{grid-column:1/-1}.cb-plan-svg{min-height:300px}.design2d-opening-list>div{grid-template-columns:auto 1fr}.design2d-opening-list>div span:nth-child(3){grid-column:1/-1}.work-tabs{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}
@media(max-width:560px){.design2d-metrics{grid-template-columns:1fr}.design2d-opening-form{grid-template-columns:1fr}.cb-plan-svg{min-height:250px}.design2d-next{align-items:flex-start;flex-direction:column}}
/* V9 editor 2D */
.p2-vertex{fill:#d2a13f;stroke:#111;stroke-width:2;cursor:pointer}.p2-vertex:hover{r:9}.p2-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.p2-wall-list{display:grid;gap:8px}.p2-wall-list>div{display:grid;grid-template-columns:1fr 100px auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #e2ddd3;border-radius:9px}.cb-plan-editable{touch-action:manipulation}
@media(max-width:760px){.p2-wall-list>div{grid-template-columns:1fr auto}.p2-wall-list>div .btn{grid-column:1/-1}.p2-actions .btn{flex:1 1 45%}}

/* Diseño 2D V10 · selección directa y arrastre */
.p2-wall-hit{cursor:pointer}.p2-wall-select-line{stroke:transparent;stroke-width:24}.p2-wall-visible{stroke:#171717;stroke-width:8;stroke-linecap:round}.p2-wall-visible.selected{stroke:#d2a13f;stroke-width:10}.p2-wall-hit:hover .p2-wall-visible{stroke:#b48a31}.p2-dim-guide{stroke:#aaa;stroke-width:1}.p2-dim-group.selected .cb-plan-dim{fill:#9b6d08;font-weight:900}.p2-dim-group.selected .p2-dim-guide{stroke:#d2a13f;stroke-width:2}.p2-vertex{touch-action:none}.p2-vertex.dragging{fill:#fff;stroke:#d2a13f;stroke-width:4}.p2-selected-wall{margin-top:14px;border:1px solid #e2ddd3;background:#fbf8f1;border-radius:12px;padding:12px}.p2-selected-wall small{display:block;color:var(--muted);margin-bottom:4px}.p2-selected-wall>b{font-size:17px}.p2-wall-list>div{cursor:pointer}.p2-wall-list>div.selected{border-color:#d2a13f;background:#fbf5e7;box-shadow:0 0 0 1px #d2a13f inset}.cb-plan-editable{touch-action:none;user-select:none;-webkit-user-select:none}

/* V11 · cotas exteriores legibles */
.cb-plan-dim.p2-dim-outside{paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round;font-weight:800}
.p2-dim-group.selected .cb-plan-dim.p2-dim-outside{stroke:#fff;stroke-width:7px}
.p2-dim-guide{opacity:.72}
/* V12 · puertas y ventanas */
.design2d-metrics{grid-template-columns:repeat(3,1fr)}
@media(min-width:901px){.design2d-opening-form{grid-template-columns:repeat(4,minmax(120px,1fr));}.design2d-opening-form>.btn{align-self:end}}

/* V15 · Instalaciones y puntos técnicos */
.design2d-legend i.technical{background:#555;height:10px;width:10px;border-radius:50%}
.design2d-installation-form{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;align-items:end}.design2d-installation-form .full{grid-column:1/-2}.design2d-installation-form>.btn{align-self:end}.design2d-installation-list{display:grid;gap:8px;margin-top:14px}.design2d-installation-list>div:not(.empty){display:grid;grid-template-columns:auto 70px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line,#ddd);border-radius:10px;padding:9px 10px}.installation-badge{font-size:11px;font-weight:800;padding:4px 8px;border-radius:999px;background:#eee}.p2-installation-symbol{pointer-events:none}
@media(max-width:900px){.design2d-installation-form{grid-template-columns:1fr 1fr}.design2d-installation-form .full{grid-column:1/-1}.design2d-installation-form>.btn{grid-column:1/-1}.design2d-installation-list>div:not(.empty){grid-template-columns:auto 1fr}.design2d-installation-list>div:not(.empty)>span:nth-child(3){grid-column:1/-1}}
@media(max-width:560px){.design2d-installation-form{grid-template-columns:1fr}.design2d-installation-form .full{grid-column:auto}}


/* ConstruBrick 2D V16 · cierre funcional */
.p2-view-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 4px}.design2d-legend i.partition{background:#555;height:3px}.p2-partition-line{stroke:#555;stroke-width:5;stroke-dasharray:9 5;stroke-linecap:round}.p2-zone circle{fill:#fff8de;stroke:#b8860b;stroke-width:2}.p2-zone text{font:800 9px Arial;fill:#6d5000}.p2-zone .p2-zone-name{font:700 11px Arial;fill:#555}.p2-height-zone rect{fill:#7aa7c91a;stroke:#5883a0;stroke-width:2;stroke-dasharray:5 4}.p2-height-zone text{font:700 10px Arial;fill:#41657d}.p2-row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.design2d-partition-form{display:grid;grid-template-columns:1.3fr repeat(5,1fr) auto;gap:9px;align-items:end}.design2d-partition-list,.design2d-zone-list,.design2d-height-list{display:grid;gap:8px;margin-top:12px}.design2d-partition-list>div:not(.empty),.design2d-zone-list>div:not(.empty),.design2d-height-list>div:not(.empty){display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.5fr) auto;gap:10px;align-items:center;border:1px solid var(--line,#ddd);border-radius:10px;padding:9px 10px}.design2d-zone-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:9px;align-items:end}.design2d-height-form{display:grid;grid-template-columns:2fr repeat(5,1fr) auto;gap:9px;align-items:end}
@media(max-width:1000px){.design2d-partition-form,.design2d-height-form{grid-template-columns:1fr 1fr}.design2d-partition-form>.btn,.design2d-height-form>.btn{grid-column:1/-1}.design2d-zone-form{grid-template-columns:1fr 1fr}.design2d-zone-form>.btn{grid-column:1/-1}}
@media(max-width:600px){.p2-view-toolbar .btn{flex:1 1 28%}.design2d-partition-form,.design2d-height-form,.design2d-zone-form{grid-template-columns:1fr}.design2d-partition-form>.btn,.design2d-height-form>.btn,.design2d-zone-form>.btn{grid-column:auto}.design2d-partition-list>div:not(.empty),.design2d-zone-list>div:not(.empty),.design2d-height-list>div:not(.empty){grid-template-columns:1fr}.p2-row-actions{justify-content:flex-start}}


/* Cierre integrado · Presupuesto definitivo + Diseño 3D */
.budget-watermark{inset:47mm 7mm 25mm;opacity:.095;background-size:82% auto;background-position:center 42%;filter:grayscale(1);}
.doc-columns,.acceptance,.doc-head,.doc-footer{position:relative;z-index:1}
.design3d-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.65fr);gap:16px;align-items:start}.design3d-canvas-panel{overflow:hidden}.cb-plan-3d{width:100%;display:block;border:1px solid var(--line);border-radius:14px;background:linear-gradient(#fafafa,#f1eee7)}.p3-floor{fill:url(#p3floor);stroke:#222;stroke-width:2}.p3-wall{fill:#f3f0e9;fill-opacity:.74;stroke:#3a3a3a;stroke-width:1.5}.p3-partition{fill:#cfcfcf;fill-opacity:.86;stroke:#555;stroke-width:1.5}.p3-ceiling{fill:#cfe2ee;fill-opacity:.62;stroke:#5883a0;stroke-width:2;stroke-dasharray:6 4}.p3-edge{stroke:#111;stroke-width:2.4}.p3-zone{fill:#fff8de;stroke:#b8860b;stroke-width:2}.p3-zone-text{font:800 9px Arial;fill:#6d5000}.p3-zone-name{font:700 11px Arial;fill:#444}.p3-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.design3d-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}.design3d-metrics>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8f7f4}.design3d-metrics small{display:block;color:var(--muted);margin-bottom:4px}.p3-note{margin-top:14px;padding:12px;border-radius:10px;background:var(--gold-soft)}.p3-note p{margin:6px 0 0;color:#65563f;font-size:13px}@media(max-width:900px){.design3d-grid{grid-template-columns:1fr}}


/* MARCA DE AGUA DEFINITIVA APROBADA — NO TOCAR */
.budget-watermark{
  inset:42mm 5mm 22mm 5mm !important;
  opacity:.18 !important;
  background-image:url('/assets/construbrick-watermark-final.png') !important;
  background-repeat:no-repeat !important;
  background-position:center 48% !important;
  background-size:96% auto !important;
  filter:none !important;
  mix-blend-mode:multiply;
}
@media print{
  .budget-watermark{
    opacity:.18 !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
}

/* 3D V1.1 · conexión completa 2D → 3D */
.p3-opening-face.door{fill:#fff;fill-opacity:.95;stroke:#b8860b;stroke-width:2}.p3-opening-face.window{fill:#d8edf7;fill-opacity:.9;stroke:#2676a8;stroke-width:2}.p3-installation circle{fill:#444;stroke:#fff;stroke-width:1.5}.p3-installation text{font:700 9px Arial;fill:#333;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}


/* ===== V17 MOBILE FIRST ===== */
.mobile-hub{max-width:1220px;margin:auto}.mobile-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;border-radius:18px;background:linear-gradient(135deg,#181818,#333);color:#fff;margin-bottom:16px}.mobile-hero h2{margin:5px 0 7px;font-size:26px}.mobile-hero p{margin:0;color:#ddd}.mobile-voice-big{min-width:130px;min-height:56px;font-size:17px}.mobile-command textarea{width:100%;font-size:18px;min-height:90px}.mobile-result{margin-top:12px;padding:14px;border-radius:12px;background:#fbf8f1;border:1px solid #eadab5}.mobile-grid-actions{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:16px 0}.mobile-grid-actions>button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:15px 10px;min-height:92px;font-size:24px;cursor:pointer}.mobile-grid-actions b,.mobile-grid-actions small{display:block;font-size:13px;margin-top:4px}.mobile-grid-actions small{font-size:11px;color:var(--muted)}.mobile-photo-form{display:grid;grid-template-columns:1fr 1fr 2fr 1.3fr auto;gap:9px;align-items:end}.mobile-two{grid-template-columns:1fr 1fr;gap:16px}.mobile-work-list{display:grid;gap:8px}.mobile-work-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:10px}.warehouse-form,.tools-form,.staff-form{display:grid;grid-template-columns:repeat(6,1fr) auto;gap:9px;align-items:end}.tools-form{grid-template-columns:repeat(5,1fr) auto}.staff-form{grid-template-columns:2fr 1fr 1fr auto}.stock-low{background:#fff4e6}.worker-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.worker-card select{width:100%;margin:10px 0}.worker-card small{font-weight:800;color:#8a6500}.worker-card p{margin:5px 0;color:var(--muted)}
@media(max-width:900px){.mobile-grid-actions{grid-template-columns:repeat(3,1fr)}.mobile-photo-form{grid-template-columns:1fr 1fr}.mobile-photo-form input:nth-of-type(1){grid-column:1/-1}.mobile-photo-form .btn{grid-column:1/-1}.mobile-two{grid-template-columns:1fr}.warehouse-form,.tools-form{grid-template-columns:1fr 1fr}.warehouse-form .btn,.tools-form .btn{grid-column:1/-1}.worker-cards{grid-template-columns:1fr}}
@media(max-width:600px){body{font-size:15px}.mobile-hero{align-items:flex-start;flex-direction:column}.mobile-hero h2{font-size:23px}.mobile-voice-big{width:100%}.mobile-grid-actions{grid-template-columns:repeat(2,1fr)}.mobile-grid-actions>button{min-height:88px}.mobile-photo-form,.warehouse-form,.tools-form,.staff-form{grid-template-columns:1fr}.mobile-photo-form input:nth-of-type(1),.mobile-photo-form .btn,.warehouse-form .btn,.tools-form .btn{grid-column:auto}.mobile-command .toolbar .btn{flex:1 1 45%;min-height:46px}.nav-btn{min-height:44px}.btn{min-height:42px}.work-tabs button{min-height:44px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.cb-plan-3d,.cb-plan-editable{min-width:650px}.design3d-canvas-panel,.design2d-canvas-panel{overflow:auto;-webkit-overflow-scrolling:touch}}
\n/* ===== V17.3 · ACCESO MULTIDISPOSITIVO + VOZ MOBILE-FIRST ===== */
.global-voice-btn{min-height:48px;padding:11px 18px;font-size:14px;white-space:nowrap}
@media(max-width:700px){
  .topbar{height:auto;min-height:108px;padding:12px;align-items:flex-start;gap:10px;flex-direction:column}
  .top-actions{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px}
  .top-actions #clock{grid-column:1/-1;font-size:12px}
  .global-voice-btn{width:100%;min-height:62px;font-size:18px;border-radius:14px}
  .mobile-voice-big{width:100%;min-height:76px;font-size:21px;border-radius:16px;box-shadow:0 8px 24px rgba(200,155,72,.25)}
  .mobile-command textarea{min-height:110px;font-size:18px}
}
/* V17.4 · mejoras 3D */
.p3-ceiling-edge{stroke:#5883a0;stroke-width:2;stroke-dasharray:5 4}.p3-toolbar .btn{white-space:nowrap}@media(max-width:600px){.p3-toolbar{display:grid;grid-template-columns:repeat(2,1fr)}.p3-toolbar .btn{width:100%}}

/* V17.6 · cierre geometrico 3D */
.p3-zone{fill:#fff8de;stroke:#9a7410;stroke-width:1.6}.p3-zone-leader{stroke:#8a6b18;stroke-width:1.2;stroke-dasharray:3 3}.p3-zone-box{fill:#fffdf7;fill-opacity:.94;stroke:#c9ad61;stroke-width:1}.p3-zone-name{font:700 11px Arial;fill:#332b1b}.p3-wall{fill:#f0ece3;fill-opacity:.82}.p3-partition{fill:#bfc3c6;fill-opacity:.9}.p3-ceiling{fill:#d6e7f0;fill-opacity:.52}

/* 3D V4 · materiales y acabados */
.p3-material-panel{margin-bottom:16px}.p3-material-panel label{display:block;font-weight:800;font-size:12px;margin:10px 0 5px}.p3-material-panel select{width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.p3-save-materials{width:100%;margin-top:14px}
.cb-plan-3d.mat-floor-porcelanico_gris .p3-floor{fill:url(#p3tiles)}
.cb-plan-3d.mat-floor-porcelanico_beige .p3-floor{fill:#ded0b7}.cb-plan-3d.mat-floor-madera_roble .p3-floor{fill:url(#p3wood)}.cb-plan-3d.mat-floor-marmol_claro .p3-floor{fill:#eeeae1}.cb-plan-3d.mat-floor-hormigon .p3-floor{fill:#aaa}
.cb-plan-3d.mat-walls-pintura_blanca .p3-wall{fill:#f7f5ef}.cb-plan-3d.mat-walls-pintura_beige .p3-wall{fill:#e4d4ba}.cb-plan-3d.mat-walls-azulejo_blanco .p3-wall{fill:#edf2f2}.cb-plan-3d.mat-walls-piedra_clara .p3-wall{fill:#d7ccb8}.cb-plan-3d.mat-walls-hormigon .p3-wall{fill:#aaa}
.cb-plan-3d.mat-parts-pintura_blanca .p3-partition,.cb-plan-3d.mat-parts-pladur_blanco .p3-partition{fill:#eee}.cb-plan-3d.mat-parts-pintura_beige .p3-partition{fill:#dbcbb2}.cb-plan-3d.mat-parts-azulejo_blanco .p3-partition{fill:#e5eeee}
.cb-plan-3d.mat-ceil-pladur_blanco .p3-ceiling,.cb-plan-3d.mat-ceil-pintura_blanca .p3-ceiling{fill:#f4f4f1}.cb-plan-3d.mat-ceil-madera_roble .p3-ceiling{fill:#caa678}
@media(max-width:600px){.p3-material-panel select{min-height:46px;font-size:16px}.p3-save-materials{min-height:50px;font-size:15px}}

/* V17.9 · 3D V5 iluminación, cámaras y vista render */
.p3-render-panel{margin-bottom:16px}.p3-render-panel label{display:block;font-weight:800;font-size:12px;margin:10px 0 5px}.p3-render-panel select{width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.p3-render-actions{display:grid;gap:8px;margin-top:14px}.cb-plan-3d.light-day{background:linear-gradient(145deg,#fffdf7,#e9eef2)}.cb-plan-3d.light-warm{background:linear-gradient(145deg,#fff5df,#ead8bd)}.cb-plan-3d.light-neutral{background:linear-gradient(145deg,#fafafa,#e4e4e4)}.cb-plan-3d.light-evening{background:linear-gradient(145deg,#f0d2b0,#b9bfd2)}.cb-plan-3d.intensity-soft{filter:brightness(.94) contrast(.96)}.cb-plan-3d.intensity-medium{filter:brightness(1.02) contrast(1.03)}.cb-plan-3d.intensity-strong{filter:brightness(1.12) contrast(1.08)}.cb-plan-3d.p3-render-preview{box-shadow:inset 0 0 70px rgba(0,0,0,.08),0 14px 32px rgba(0,0,0,.12)}@media(max-width:600px){.p3-render-panel select{min-height:46px;font-size:16px}.p3-render-actions .btn{min-height:50px}}

/* V17.10 - vista render visible */
.p3-render-modal{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.68);display:flex;align-items:center;justify-content:center;padding:20px}.p3-render-dialog{width:min(1100px,96vw);max-height:94vh;overflow:auto;background:#f7f4ee;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.38)}.p3-render-head,.p3-render-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px}.p3-render-head small{font-weight:900;color:#a87416;letter-spacing:.08em}.p3-render-head h2{margin:2px 0 0}.p3-render-stage{padding:18px;min-height:520px;display:flex;align-items:center;justify-content:center}.p3-render-stage .cb-plan-3d{width:100%;height:auto;max-height:70vh;border-radius:14px;box-shadow:0 18px 42px rgba(0,0,0,.18)}.p3-render-stage.light-day{background:linear-gradient(145deg,#fffdf7,#dfe9f0)}.p3-render-stage.light-warm{background:linear-gradient(145deg,#fff0cf,#d7b98e)}.p3-render-stage.light-neutral{background:linear-gradient(145deg,#fff,#dcdcdc)}.p3-render-stage.light-evening{background:linear-gradient(145deg,#e8b888,#858da7)}.p3-render-stage.intensity-soft .cb-plan-3d{filter:brightness(.92) contrast(.98)}.p3-render-stage.intensity-medium .cb-plan-3d{filter:brightness(1.03) contrast(1.04)}.p3-render-stage.intensity-strong .cb-plan-3d{filter:brightness(1.14) contrast(1.08)}@media(max-width:600px){.p3-render-modal{padding:7px}.p3-render-dialog{width:100%;max-height:98vh;border-radius:12px}.p3-render-head,.p3-render-foot{padding:12px;align-items:flex-start}.p3-render-stage{padding:8px;min-height:360px}.p3-render-foot{flex-direction:column}.p3-render-foot .btn{width:100%}}


/* V17.11 · Render realista WebGL */
.p3-real-btn{background:#111!important;color:#fff!important;border-color:#111!important;font-weight:800}
.p3-real-modal{position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:18px}
.p3-real-dialog{width:min(1180px,96vw);max-height:94vh;background:#f7f4ed;border-radius:18px;overflow:auto;box-shadow:0 30px 90px rgba(0,0,0,.42)}
.p3-real-stage{position:relative;margin:0 18px 14px;border-radius:14px;overflow:hidden;background:#eef3f5;min-height:620px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.p3-real-canvas{display:block;width:100%;height:620px;touch-action:none}
.p3-real-badge{position:absolute;left:16px;bottom:14px;background:rgba(255,255,255,.86);backdrop-filter:blur(5px);padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;box-shadow:0 4px 18px rgba(0,0,0,.12)}
@media(max-width:700px){.p3-real-modal{padding:0}.p3-real-dialog{width:100vw;max-height:100vh;border-radius:0}.p3-real-stage{margin:0 10px 10px;min-height:62vh}.p3-real-canvas{height:62vh}.p3-render-head{padding:12px 14px}.p3-render-foot{padding:10px 14px;gap:8px;flex-wrap:wrap}.p3-real-btn{min-height:50px;font-size:16px}}

/* V17.26 · Portal premium aprobado */
.portal-screen{min-height:100vh;background:radial-gradient(circle at 50% 20%,#171717 0,#090909 48%,#030303 100%);color:#fff;padding:54px 24px 34px;display:flex;flex-direction:column;align-items:center}
.portal-heading{margin-bottom:38px}.portal-heading p{display:none}.portal-heading h1{font-size:clamp(32px,4vw,54px);margin:0 0 12px;color:#fff}.portal-heading span{font-size:clamp(15px,1.7vw,22px);color:#929292}.portal-heading span::before{content:'Selecciona el entorno con el que deseas trabajar';font-size:inherit}.portal-heading span{font-size:0}.portal-grid{width:min(1080px,100%);gap:54px}.company-entry{min-height:500px;background:#050505!important;color:#fff!important;border:2px solid #353535;border-radius:24px;display:flex;align-items:center;justify-content:center;padding:34px;box-shadow:none;position:relative}.company-entry:hover{transform:translateY(-4px);box-shadow:0 20px 55px rgba(0,0,0,.35)}.private-entry{border-color:#c99a47}.entry-logo,.dark-logo,.light-logo{background:transparent!important;padding:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.entry-logo img{width:min(390px,88%);height:360px;object-fit:contain;display:block}.public-entry .entry-logo img{filter:invert(1);width:min(360px,86%);height:300px}.entry-copy{display:none}.portal-footer{color:#555;margin-top:28px}
@media(max-width:800px){.portal-screen{padding:34px 16px}.portal-grid{grid-template-columns:1fr;gap:20px}.company-entry{min-height:330px}.entry-logo img{height:270px}.public-entry .entry-logo img{height:220px}}

/* V17.27 · Portal aprobado: usar exactamente las dos tarjetas visuales validadas */
.portal-grid{width:min(1320px,100%);gap:38px}
.company-entry{padding:0!important;overflow:hidden;background:#000!important;border:0!important;border-radius:22px!important;min-height:0;aspect-ratio:1.03/1;box-shadow:none!important}
.company-entry .entry-logo{width:100%;height:100%;padding:0!important;background:#000!important}
.company-entry .entry-logo img,.public-entry .entry-logo img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;filter:none!important;display:block!important}
.company-entry:hover{transform:translateY(-3px);box-shadow:0 18px 50px rgba(0,0,0,.35)!important}
.private-entry{outline:0!important}
.public-entry{outline:0!important}
@media(max-width:800px){.portal-grid{gap:18px}.company-entry{min-height:0!important;aspect-ratio:1.03/1}.company-entry .entry-logo img,.public-entry .entry-logo img{height:100%!important}}
/* V31 · acabados por estancia */
.p3-room-materials{margin:14px 0;padding:12px;border:1px solid #e1d5bd;border-radius:12px;background:#fbf7ef;display:grid;gap:7px}.p3-room-materials>b{color:#8b5c08;margin-bottom:2px}.p3-room-materials .btn{margin-top:5px;width:100%}

/* V32 · selector claro de acabados por estancia */
.p3-room-editor{margin-top:16px;padding:14px;border:2px solid #d2a246;border-radius:14px;background:#fffaf0}.p3-room-editor>select{margin:8px 0 2px;min-height:44px;font-weight:800}.p3-room-step{display:flex;flex-direction:column;gap:2px}.p3-room-step b{color:#8b5c08;font-size:14px}.p3-room-step span{font-size:12px;color:#6d6559}.p3-room-materials{margin:12px 0 0;background:#fff;border-color:#ead8b6}.p3-room-apply{min-height:46px;font-size:14px}.p3-general-materials{opacity:.92}
/* V37 · mobiliario 3D por estancia */
.p3-furniture-panel{margin-top:16px}.p3-furniture-panel label{display:block;font-weight:700;font-size:13px;margin:9px 0 4px}.p3-furniture-panel select,.p3-furniture-panel input{width:100%;box-sizing:border-box;padding:9px;border:1px solid #ddd4c4;border-radius:8px;background:#fff}.p3-furniture-dims{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.p3-furniture-panel>.btn{width:100%;margin-top:12px}.p3-furniture-list{margin-top:12px;display:grid;gap:7px}.p3-furniture-list>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px;border:1px solid #e6dfd2;border-radius:8px}.p3-furniture-list span{font-size:12px;color:#666}@media(max-width:700px){.p3-furniture-dims{grid-template-columns:1fr}.p3-furniture-list>div{grid-template-columns:1fr}}
/* V38 · colocación inteligente de mobiliario */
.p3-furniture-help{margin:10px 0;padding:9px 10px;border-radius:8px;background:#f7f0df;border:1px solid #e7d6ad;font-size:12px;line-height:1.35;color:#66522d}.p3-furniture-panel>.btn.soft{width:100%;margin-top:8px}

/* V42 · edición de mobiliario y cocina visual */
.p3-furniture-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.p3-furniture-list>div{align-items:center}
#p3FurnitureSaveEdit,#p3FurnitureCancelEdit{width:100%;margin-top:8px}
/* V44 · materiales y acabados preparados para render fotorrealista */
.p3-v44-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin-top:10px;padding-top:10px;border-top:1px solid #eadfc9}.p3-v44-grid label,.p3-v44-pbr label{margin:0;font-size:12px;font-weight:700}.p3-v44-grid select,.p3-v44-pbr input{width:100%;margin-top:4px}.p3-v44-pbr{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.p3-room-materials:before{content:'V44 · ESCENA FOTORREALISTA';display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:#a66b00;margin:8px 0}@media(max-width:700px){.p3-v44-grid,.p3-v44-pbr{grid-template-columns:1fr}}

/* V45 · biblioteca PBR independiente por estancia */
.p3-room-editor{box-shadow:0 8px 24px rgba(166,107,0,.06)}.p3-room-materials:before{content:'V45 · BIBLIOTECA PBR POR ESTANCIA'}.p3-v44-pbr{background:#f7f3ea;border-radius:10px;padding:10px}.p3-v44-pbr:before{content:'Ajuste avanzado de escena';grid-column:1/-1;font-size:11px;font-weight:800;color:#8b5c08}
/* V50 · pipeline de render final separado */
.p3-v50-stage{margin:18px;background:linear-gradient(145deg,#171717,#292929);color:#fff;border-radius:16px;padding:34px;min-height:390px;box-sizing:border-box}.p3-v50-stage h2{font-size:32px;margin:10px 0}.p3-v50-stage p{max-width:820px;line-height:1.55;color:#e7e7e7}.p3-v50-badge{display:inline-block;background:#d2a13e;color:#17120a;font-weight:900;letter-spacing:.08em;padding:8px 12px;border-radius:999px}.p3-v50-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}.p3-v50-grid>div{background:#fff;color:#171717;border-radius:12px;padding:16px}.p3-v50-grid small{display:block;color:#6b6255;margin-bottom:5px}.p3-v50-warning{background:#fff3d8;color:#4b3610;border:1px solid #d2a13e;border-radius:12px;padding:16px;max-width:900px}@media(max-width:800px){.p3-v50-grid{grid-template-columns:1fr 1fr}}
/* V52 · puente de render final Blender Cycles */
.p3-v51-actions{display:flex;gap:10px;align-items:center}.p3-v51-actions .btn:disabled{opacity:.45;cursor:not-allowed}.p3-v50-stage #p3V52Engine{margin-top:18px}.p3-v50-stage #p3V52Engine b{font-weight:900}@media(max-width:700px){.p3-v51-actions{width:100%;flex-direction:column}.p3-v51-actions .btn{width:100%}}
/* V52 · resultado Blender integrado */
#p3V52Engine img{box-shadow:0 12px 30px rgba(0,0,0,.28)}

/* ===== MOBILE V1 · navegación y uso real en teléfono ===== */
.mobile-menu-toggle{display:none}
@media(max-width:700px){
  body{overflow-x:hidden;-webkit-text-size-adjust:100%}
  .app-shell{display:block;min-height:100dvh}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(84vw,320px);height:100dvh;z-index:40;display:flex;flex-direction:column;padding:14px;background:#171717;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;box-shadow:12px 0 35px rgba(0,0,0,.28)}
  body.mobile-nav-open .sidebar{transform:translateX(0)}
  body.mobile-nav-open:after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:35}
  .sidebar .brand{display:flex;justify-content:flex-start;padding:4px 4px 14px}.sidebar .brand div{display:block}.sidebar .brand img{width:44px;height:44px}
  .sidebar nav{display:grid;gap:4px;margin-top:10px;overflow:visible}.sidebar .nav-btn{display:flex;align-items:center;gap:12px;text-align:left;min-height:48px;padding:10px 12px}.sidebar .nav-label{display:inline}.sidebar-footer{display:block;margin-top:14px}
  .topbar{position:sticky;top:0;height:auto;min-height:68px;padding:10px 12px;z-index:30;gap:8px}.topbar>div:first-child{min-width:0}.topbar h1{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar p{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:54vw}
  .top-actions{gap:6px}.top-actions #clock{display:none}.global-voice-btn{font-size:0;padding:10px 11px}.global-voice-btn:before{content:"🎙";font-size:18px}.icon-btn{padding:10px 11px}
  .mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;background:#171717;color:#fff;width:42px;height:42px;font-size:21px;cursor:pointer;flex:0 0 auto}
  .view{padding:10px 10px 24px}.panel,.card{border-radius:12px;padding:14px}.panel-head{align-items:flex-start;gap:10px;flex-wrap:wrap}.toolbar{width:100%}.toolbar .btn{flex:1 1 auto}
  .cards{grid-template-columns:1fr 1fr;gap:10px}.card .kpi{font-size:24px}.grid[style*="grid-template-columns:1.2fr"]{grid-template-columns:1fr!important}
  .form-grid,.editor-layout{grid-template-columns:1fr}.field.full{grid-column:auto}.line-row{grid-template-columns:minmax(0,1fr) 90px 38px}
  input,select,textarea,.btn,.icon-btn{min-height:44px}input,select,textarea{font-size:16px!important}
  .table-wrap,.client-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table,.client-table{min-width:720px}
  .client-row-actions{min-width:220px}.client-table-contact{min-width:160px}
  .mobile-hero{align-items:flex-start;flex-direction:column;padding:16px}.mobile-hero h2{font-size:22px}.mobile-voice-big{width:100%}
  .mobile-grid-actions{grid-template-columns:repeat(2,1fr);gap:8px}.mobile-grid-actions>button{min-height:84px}
  .mobile-photo-form{grid-template-columns:1fr}.mobile-photo-form>*{grid-column:1!important}.mobile-work-list>div{align-items:flex-start;flex-direction:column}.mobile-work-list>div>span{display:flex;gap:6px;width:100%}.mobile-work-list .btn{flex:1}
  .warehouse-form,.tools-form,.staff-form{grid-template-columns:1fr}.warehouse-form .btn,.tools-form .btn,.staff-form .btn{grid-column:1}
  .budget-sheet{transform:none!important;width:100%!important;min-height:0!important;margin:0!important;padding:12px!important;box-shadow:none}.doc-head,.doc-columns,.acceptance{grid-template-columns:1fr}.doc-company,.signature{border-left:0;padding-left:0}.doc-table{overflow:auto;display:block}.budget-watermark{display:none}
  .toast{left:12px;right:12px;bottom:12px;text-align:center}
}
@media(max-width:390px){.cards{grid-template-columns:1fr}.topbar p{max-width:45vw}}

/* MOBILE V2 · CENTRO DE ORDENES */
.mobile-v2{display:grid;gap:14px}.mobile-v2-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.mobile-v2-kpis>div{background:#fff;border:1px solid #ddd4c7;border-radius:14px;padding:14px}.mobile-v2-kpis small{display:block;color:#746b60}.mobile-v2-kpis b{display:block;font-size:20px;margin-top:4px}.mobile-v2-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.mobile-v2-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mobile-v2-grid button{background:#fff;border:1px solid #ddd4c7;border-radius:14px;padding:18px;min-height:96px;text-align:left;font:inherit}.mobile-v2-grid b,.mobile-v2-grid small{display:block;margin-top:5px}.mobile-v2-grid small{color:#746b60}.mobile-command textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px}
@media(max-width:700px){.mobile-v2{padding:8px}.mobile-v2-kpis{grid-template-columns:1fr 1fr}.mobile-v2-kpis b{font-size:16px}.mobile-v2-grid{grid-template-columns:1fr 1fr}.mobile-v2-actions .btn{width:100%;min-height:46px}.mobile-photo-form{grid-template-columns:1fr!important}.mobile-command textarea{font-size:16px}.mobile-hero{flex-direction:column;align-items:stretch}.mobile-voice-big{width:100%;min-height:50px}}

/* MOBILE V3 · DATOS REALES + CORRECCION DE CABECERA */
.mobile-v3{display:grid;gap:14px;padding-top:8px}
#view{scroll-margin-top:16px}
.mobile-v3 .mobile-hero{margin-top:0}
.m-table-wrap{overflow:auto;margin-top:10px;border:1px solid #e3dccf;border-radius:10px;background:#fff}
.m-mini-table{width:100%;border-collapse:collapse;min-width:520px}
.m-mini-table th,.m-mini-table td{padding:9px 10px;border-bottom:1px solid #eee;text-align:left;font-size:13px}
.m-mini-table th{background:#f6f1e8}
.mobile-result{line-height:1.45}
@media(max-width:700px){
  main,.main,.content,#content{padding-top:0!important}
  .mobile-v3{padding:6px 8px 18px}
  .mobile-v3 .mobile-hero{margin-top:0!important}
  .m-table-wrap{max-width:100%}
}

/* MOBILE V4 · GESTORIA + CORREO */
.gestoria-v4{border:2px solid #d5a63d}.gestoria-v4-filters{display:grid;grid-template-columns:1.2fr 1fr repeat(3,auto) auto;gap:9px;align-items:center}.gestoria-v4-filters label{white-space:nowrap}.gestoria-v4-preview{margin:12px 0;padding:12px;background:#fbf6eb;border:1px solid #e6d3aa;border-radius:10px;line-height:1.5}.gestoria-v4-mail{display:grid;grid-template-columns:1fr 1.4fr;gap:9px}.gestoria-v4-mail textarea{grid-column:1/-1}.gestoria-v4-mail input,.gestoria-v4-mail textarea,.gestoria-v4-filters select{font:inherit;padding:10px;border:1px solid #d8d0c4;border-radius:9px}.gestoria-v4-mail button{min-height:42px}
@media(max-width:800px){.gestoria-v4-filters,.gestoria-v4-mail{grid-template-columns:1fr}.gestoria-v4-mail textarea{grid-column:auto}.gestoria-v4-filters label{padding:7px 0}.gestoria-v4 .btn{width:100%;min-height:46px}}

/* MOBILE V5 · GMAIL REAL */
.gmail-v5-status{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;margin:10px 0 14px;border-radius:10px;background:#f5f1e9;border:1px solid #ddd2bf}
.gmail-v5-status span{flex:1}
@media(max-width:700px){.gmail-v5-status{align-items:stretch;flex-direction:column}.gmail-v5-status .btn{width:100%}}


/* V10 · WHATSAPP / CENTRO DE AVISOS */
.wa-shell{display:grid;gap:16px}.wa-columns{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.wa-form{display:grid;gap:9px}.wa-form input,.wa-form select,.wa-form textarea,.wa-filters select,.wa-edit select{font:inherit;padding:10px;border:1px solid #d8d0c4;border-radius:9px;background:#fff}.wa-form textarea{min-height:115px;resize:vertical}.wa-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.wa-list{display:grid;gap:10px}.wa-card{border:1px solid #ddd4c7;border-radius:13px;padding:13px;background:#fff}.wa-card.wa-urgent{border-color:#d05a4e;box-shadow:inset 4px 0 #d05a4e}.wa-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.wa-card p{font-size:15px;line-height:1.45;margin:10px 0}.wa-meta{display:flex;gap:12px;flex-wrap:wrap;color:#6d665d;font-size:12px;align-items:center}.wa-edit{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;margin:10px 0}.wa-priority{display:inline-block;background:#fff0cf;color:#7a5200;border:1px solid #e7ca82;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800}.wa-brief-work{padding:11px 0;border-bottom:1px solid #eee5d7}.wa-brief-work:last-child{border-bottom:0}.wa-brief-work h4{margin:0}.wa-brief-work small{color:#777}.wa-brief-work ul{margin:8px 0 0;padding-left:20px}.wa-brief-work li{margin:5px 0;line-height:1.35}.wa-brief-work li span{color:#777}.wa-meta-note{background:#fbf7ee;border-color:#e3d3af}.wa-meta-note p{color:#6e6252;line-height:1.5}@media(max-width:850px){.wa-columns{grid-template-columns:1fr}.wa-edit{grid-template-columns:1fr}.wa-card-top{align-items:flex-start;flex-direction:column}.wa-filters{display:grid;grid-template-columns:1fr}}

/* Renders IA desde fotografía V1 */
.rai-shell{display:flex;flex-direction:column;gap:18px}.rai-hero{background:linear-gradient(135deg,#151515,#24201a);border:1px solid #3b3324;border-radius:18px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.rai-hero h2{margin:5px 0 6px;font-size:30px}.rai-hero p{margin:0;color:var(--muted);max-width:760px}.rai-badge{background:#d7a52a;color:#16120a;border-radius:999px;padding:10px 14px;font-weight:800;white-space:nowrap}.rai-grid{display:grid;grid-template-columns:350px minmax(0,1fr);gap:18px}.rai-controls{padding:20px;display:flex;flex-direction:column;gap:10px}.rai-controls label{font-size:13px;font-weight:700;color:#cfc9bd;margin-top:4px}.rai-controls select,.rai-controls textarea{width:100%;box-sizing:border-box;background:#111;border:1px solid #414141;color:#eee;border-radius:10px;padding:11px 12px}.rai-controls textarea{resize:vertical;min-height:116px}.rai-step{display:flex;gap:11px;align-items:flex-start;margin-top:7px}.rai-step>b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#d7a52a;color:#111;flex:0 0 auto}.rai-step h3{margin:2px 0;font-size:15px}.rai-step p{margin:2px 0 0;color:var(--muted);font-size:12px}.rai-upload{border:1px dashed #796631!important;background:#171510;border-radius:13px;padding:18px!important;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px}.rai-upload>span{font-size:30px;color:#d7a52a}.rai-upload small{color:var(--muted);font-weight:400}.rai-check{display:flex!important;gap:10px;align-items:flex-start;background:#151515;border:1px solid #353535;border-radius:10px;padding:11px!important}.rai-check input{margin-top:4px}.rai-check span{display:flex;flex-direction:column;gap:3px}.rai-check small{color:var(--muted);font-weight:400;line-height:1.35}.rai-generate{margin-top:8px;padding:13px!important;font-size:15px}.rai-engine{font-size:12px;padding:10px;border-radius:10px;background:#171717;color:var(--muted)}.rai-engine.ok{color:#8fe1a8;border:1px solid #245f38}.rai-engine.warn{color:#f1c66d;border:1px solid #66501d}.rai-stage{min-width:0;display:flex;flex-direction:column;gap:14px}.rai-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rai-image-card{background:#101010;border:1px solid #333;border-radius:14px;overflow:hidden;min-width:0}.rai-card-head{height:48px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #333}.rai-card-head b{color:#d7a52a}.rai-card-head span{color:var(--muted);font-size:12px;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rai-image-empty,.rai-image-wrap{height:520px;display:flex;align-items:center;justify-content:center;text-align:center;background:#181818;color:#868686;padding:20px;box-sizing:border-box}.rai-image-wrap{padding:0;background:#0b0b0b}.rai-image-wrap img{width:100%;height:100%;object-fit:contain}.rai-working{flex-direction:column;gap:10px}.rai-working small{max-width:360px}.rai-spinner{width:34px;height:34px;border:3px solid #444;border-top-color:#d7a52a;border-radius:50%;animation:raiSpin .8s linear infinite}@keyframes raiSpin{to{transform:rotate(360deg)}}.rai-help{display:flex;justify-content:space-between;gap:18px;align-items:center}.rai-help p{margin:6px 0 0;color:var(--muted);max-width:740px}.rai-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.rai-tags span{border:1px solid #444;border-radius:999px;padding:6px 9px;font-size:11px}.rai-result-actions{display:flex;justify-content:flex-end;gap:8px}.hidden{display:none!important}@media(max-width:1050px){.rai-grid{grid-template-columns:1fr}.rai-controls{order:0}.rai-compare{grid-template-columns:1fr}.rai-image-empty,.rai-image-wrap{height:420px}.rai-hero{align-items:flex-start;flex-direction:column}.rai-help{flex-direction:column;align-items:flex-start}.rai-tags{justify-content:flex-start}}

/* ===== FIX V13 · BARRA LATERAL COMPLETA EN ESCRITORIO ===== */
@media (min-width:701px){
  .app-shell{min-height:100vh;align-items:stretch}
  .sidebar{
    background:var(--sidebar)!important;
    height:100vh!important;
    min-height:100vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    align-self:start;
    scrollbar-width:thin;
    scrollbar-color:#555 #171717;
  }
  .sidebar nav{flex:0 0 auto}
  .sidebar-footer{flex:0 0 auto;margin-top:14px!important;background:var(--sidebar)!important}
  .sidebar .nav-btn,.sidebar .sidebar-footer,.sidebar .logout-btn{position:relative;z-index:1}
}

/* ===== Rentabilidad real por obra V4 ===== */
.profitability-summary{margin:18px 0}
.profitability-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center}
.work-card-main{min-width:0;display:flex;flex-direction:column;gap:4px}
.work-card-main>b{font-size:17px}.work-card-main span,.work-card-main small{color:var(--muted)}
.work-card-profit{min-width:110px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.work-card-profit>b{font-size:20px}.work-card-profit small{color:var(--muted)}
.profit-alert{margin:12px 0 16px;padding:13px 15px;border-radius:12px;display:flex;gap:8px;flex-direction:column;border:1px solid #ddd;background:#fafafa}
.profit-alert b{font-size:14px}.profit-alert span{font-size:13px;color:var(--muted)}
.profit-alert.critical{border-color:#efb0b0;background:#fff1f1}.profit-alert.critical b{color:#a61b1b}
.profit-alert.warning{border-color:#e4c675;background:#fff9e6}.profit-alert.warning b{color:#795600}
.profit-alert.healthy{border-color:#aed5ba;background:#f1faf4}.profit-alert.healthy b{color:#1f6c39}
.profit-note{margin:14px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.profit-dashboard-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:10px}
.profit-dashboard-alerts button{appearance:none;border:1px solid #ddd;background:#fff;border-radius:12px;padding:12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px}
.profit-dashboard-alerts button:hover{border-color:#caa047;box-shadow:0 5px 18px rgba(0,0,0,.06)}
.profit-dashboard-alerts button small{color:var(--muted)}
@media(max-width:900px){.profitability-card{grid-template-columns:1fr}.work-card-profit{align-items:flex-start;text-align:left}.profitability-card>.toolbar{justify-content:flex-start}}


/* ===== V19 · BOTON PRINCIPAL DAR ORDEN ===== */
.global-voice-btn{
  width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;
  padding:10px!important;border-radius:50%!important;white-space:normal!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;
  background:linear-gradient(145deg,#ef3434,#a90000)!important;color:#fff!important;
  border:4px solid rgba(255,255,255,.92)!important;box-shadow:0 7px 20px rgba(160,0,0,.38),0 0 0 3px rgba(190,0,0,.18)!important;
  font-size:13px!important;font-weight:900!important;line-height:1.15!important;letter-spacing:.2px!important;
  cursor:pointer!important;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease!important;
}
.global-voice-btn:hover{transform:scale(1.05);filter:brightness(1.06);box-shadow:0 10px 26px rgba(160,0,0,.48),0 0 0 4px rgba(190,0,0,.16)!important}
.global-voice-btn:active{transform:scale(.97)}
.mobile-voice-big{
  width:132px!important;height:132px!important;min-width:132px!important;min-height:132px!important;border-radius:50%!important;
  background:linear-gradient(145deg,#ef3434,#a90000)!important;color:#fff!important;border:5px solid rgba(255,255,255,.9)!important;
  box-shadow:0 10px 28px rgba(160,0,0,.4)!important;font-size:18px!important;font-weight:900!important;white-space:normal!important;text-align:center!important;
}
.mobile-voice-big:disabled{opacity:1!important;background:linear-gradient(145deg,#ff5a4f,#c40000)!important;animation:cbVoicePulse 1.05s ease-in-out infinite!important}
@keyframes cbVoicePulse{0%,100%{transform:scale(1);box-shadow:0 10px 28px rgba(160,0,0,.4)}50%{transform:scale(1.06);box-shadow:0 12px 36px rgba(220,0,0,.65)}}
@media(max-width:700px){
  .top-actions{display:flex!important;align-items:center!important;justify-content:space-between!important}
  .global-voice-btn{width:96px!important;height:96px!important;min-width:96px!important;min-height:96px!important;font-size:12px!important}
  .mobile-voice-big{width:124px!important;height:124px!important;min-width:124px!important;min-height:124px!important}
}

/* ===== V20 · BOTÓN ROJO CIRCULAR · CACHE BUST ===== */
.top-actions .global-voice-btn{
  box-sizing:border-box!important;width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;
  max-width:92px!important;max-height:92px!important;padding:8px!important;border-radius:999px!important;
  background:#d71920!important;background-image:none!important;color:#fff!important;border:4px solid #fff!important;
  box-shadow:0 5px 16px rgba(150,0,0,.35)!important;font-size:12px!important;font-weight:900!important;line-height:1.15!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;white-space:normal!important;
}
.top-actions .global-voice-btn:hover{background:#b70f16!important;transform:scale(1.04)!important}

/* V22 · DAR ORDEN: un solo botón rojo, grande y circular */
#mobileVoice.mobile-voice-big{width:132px!important;height:132px!important;min-width:132px!important;border-radius:50%!important;background:#d71920!important;color:#fff!important;border:4px solid #fff!important;box-shadow:0 7px 22px rgba(150,0,0,.38)!important;font-weight:900!important;line-height:1.15!important;white-space:normal!important;}
#mobileVoice.mobile-voice-big:hover{background:#b70f16!important;transform:scale(1.03)}


/* V27 · IDENTIDAD CORPORATIVA APROBADA */
.budget-watermark{
 inset:38mm 2mm 18mm 2mm !important;
 opacity:.22 !important;
 background-image:url('/assets/construbrick-watermark-v27.png') !important;
 background-repeat:no-repeat !important;
 background-position:center 48% !important;
 background-size:100% auto !important;
 filter:none !important;
 mix-blend-mode:multiply;
}
.doc-logo img{width:38mm!important;height:35mm!important;object-fit:contain!important;border-radius:4mm!important;}
@media print{.budget-watermark{opacity:.22!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}}

/* ===== V29 · PIE DE PRESUPUESTO MÁS BAJO ===== */
/* Da más aire al cierre del documento y acerca la franja negra al borde inferior. */
.acceptance{margin-top:10mm}
.doc-footer{margin-top:7mm}

/* ===== V30 · APROVECHAMIENTO VERTICAL A4 ===== */
/* Mantiene el encabezado y contenido; lleva aceptación y pie al fondo real del folio. */
.budget-sheet{display:flex;flex-direction:column;height:297mm;min-height:297mm}
.acceptance{margin-top:auto}
.doc-footer{margin-top:5mm}
@media print{.budget-sheet{height:297mm;min-height:297mm}}


/* V33 · confirmación visual de cliente + CP inteligente */
.client-created-card{background:linear-gradient(135deg,#f4fbf6,#f8fcf9);border:1px solid #78bf8e;border-radius:14px;padding:18px 20px;color:#17231b;box-shadow:0 8px 22px rgba(29,94,52,.06)}
.client-created-title{display:flex;align-items:center;gap:10px;color:#15713a;font-size:18px;margin-bottom:16px}.client-created-title>span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#16964b;color:#fff;font-weight:900}.client-created-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:36px;row-gap:12px}.client-field{display:grid;grid-template-columns:24px 145px minmax(0,1fr);align-items:start;gap:8px;line-height:1.35}.client-icon{filter:saturate(.75)}.client-missing{color:var(--muted);font-style:italic}.client-auto{display:inline-block;margin-left:6px;color:#15713a;font-size:12px;font-weight:700}.client-warn{display:block;color:#93651a;font-size:12px;margin-top:2px}.client-created-foot{border-top:1px solid rgba(37,112,61,.17);margin-top:16px;padding-top:12px;color:#35443a}@media(max-width:760px){.client-created-grid{grid-template-columns:1fr}.client-field{grid-template-columns:24px 125px minmax(0,1fr)}}

/* V34 · lenguaje visual común del Centro de Órdenes */
.mobile-v2-kpis .m-kpi{display:flex;align-items:center;gap:12px;padding:13px 14px}
.m-kpi-icon,.m-action-icon{display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;font-size:21px;width:42px;height:42px;background:#f2f2f2}
.m-kpi-icon.blue,.m-action-icon.blue{background:#e8f2ff}.m-kpi-icon.green,.m-action-icon.green{background:#e9f7ec}.m-kpi-icon.purple,.m-action-icon.purple{background:#f1eaff}.m-kpi-icon.orange,.m-action-icon.orange{background:#fff0df}.m-action-icon.gold{background:#fff4d8}.m-action-icon.teal{background:#e4f7f5}
.mobile-v2-grid button{display:grid;grid-template-columns:46px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;text-align:left}
.mobile-v2-grid .m-action-icon{grid-row:1/3}.mobile-v2-grid b{margin-top:0;font-size:15px}.mobile-v2-grid small{margin-top:2px}
.mobile-v2-grid button:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(24,24,24,.07)}
.client-created-card .client-icon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eef5ff;filter:none}
.client-created-card .client-field:nth-child(2n) .client-icon{background:#f4edff}
@media(max-width:700px){.mobile-v2-kpis .m-kpi{padding:11px}.m-kpi-icon{width:36px;height:36px;font-size:18px}}

/* V36: ficha de cliente definitiva + validaciones */
.client-created-col{display:flex;flex-direction:column;gap:12px}.client-valid{display:inline-block;margin-left:7px;padding:2px 8px;border:1px solid #9bd2ad;border-radius:999px;background:#edf9f1;color:#15713a;font-size:11px;font-weight:800}.client-validation-ok{margin-top:15px;padding:9px 12px;border-radius:8px;background:#edf9f1;border:1px solid #a8d9b7;color:#15713a;font-weight:700}.client-validation-errors{color:#8a2d2d}.client-error-title{color:#9b2c2c}.client-error-title>span{background:#c43c3c}@media(max-width:760px){.client-created-col{gap:10px}}


/* V37 · Centro de Órdenes definitivo: visual + validación detallada */
.company-active-card{margin:0 12px 14px;padding:10px 12px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.045);color:#fff;display:flex;align-items:center;gap:10px}.company-active-card .company-active-icon{font-size:20px}.company-active-card small{display:block;color:#aeb2b7;font-size:10px}.company-active-card b{display:block;font-size:12px;margin-top:2px}.client-validation-detail{display:flex;align-items:center;gap:7px;color:#6a6f75;font-size:12px;padding:8px 12px 0}.client-validation-detail>span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#e7efff;color:#356dcc;font-weight:900}.m-kpi-icon,.m-action-icon{box-shadow:inset 0 0 0 1px rgba(0,0,0,.025)}.mobile-v2-kpis .m-kpi b{font-size:17px}.mobile-v2-grid button{border-radius:14px}.client-created-card{box-shadow:0 7px 20px rgba(26,91,49,.07)}

/* Cerebro V48 · interfaz de orden y revisión */
.brain-command-panel #brainCommand{width:100%;min-height:150px;resize:vertical;font-size:16px;line-height:1.5;padding:14px 16px;box-sizing:border-box}
.brain-command-actions{display:flex;gap:10px;flex-wrap:wrap}
.brain-mail-review-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.9fr);gap:16px;align-items:stretch}
.brain-ready{color:#267a4b;font-weight:800}
.brain-original-order{background:#fffdf8}.brain-original-order p{font-size:16px;line-height:1.55;margin-top:18px}
.brain-review-note{text-align:center;color:var(--muted);margin:12px 0 0}
.brain-mail-error{border:1px solid #ead9b9;background:#fffdf8}
@media(max-width:900px){.brain-mail-review-grid{grid-template-columns:1fr}.brain-command-panel #brainCommand{min-height:180px}}

/* V56 · Cámara y galería como acciones principales en la cabecera de Dar una orden */
.brain-command-heading{align-items:flex-start;gap:18px}
.brain-media-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.brain-camera-top,.brain-gallery-top{border:1px solid #7bb79b;background:#eaf7f0;color:#175f43;font-weight:800;box-shadow:0 2px 8px rgba(23,95,67,.08)}
.brain-camera-top:hover,.brain-gallery-top:hover{background:#dff1e7;border-color:#5da884}
.brain-command-meta{display:flex;justify-content:flex-end;margin:-4px 0 10px;color:var(--muted);font-size:12px}
@media(max-width:760px){.brain-command-heading{flex-direction:column;align-items:stretch}.brain-media-actions{justify-content:flex-start;width:100%}.brain-media-actions .btn{flex:1;min-width:145px}.brain-command-meta{justify-content:flex-start;margin-top:8px}.brain-command-panel #brainCommand{min-height:170px}}

/* ===== V57 · FOTO GLOBAL JUNTO A DAR ORDEN ===== */
.top-actions .global-photo-btn{box-sizing:border-box!important;width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;max-width:104px!important;max-height:104px!important;padding:8px!important;border-radius:50%!important;background:#7b8f55!important;background-image:none!important;color:#fff!important;border:4px solid #fff!important;box-shadow:0 6px 18px rgba(70,90,45,.34)!important;font-size:12px!important;font-weight:900!important;line-height:1.1!important;display:inline-flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;white-space:normal!important;cursor:pointer!important;transition:.15s!important}
.top-actions .global-photo-btn:hover{background:#657747!important;transform:scale(1.04)!important}
@media(max-width:700px){.top-actions .global-photo-btn{width:88px!important;height:88px!important;min-width:88px!important;min-height:88px!important;font-size:11px!important}.top-actions{gap:7px!important}}

/* V58 · selector Cámara / Galería desde el botón global */
.global-photo-modal{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:9999;display:flex;align-items:center;justify-content:center;padding:18px}
.global-photo-dialog,.global-camera-dialog{width:min(680px,96vw);background:#fff;border-radius:18px;padding:20px;box-shadow:0 22px 70px rgba(0,0,0,.3)}
.global-photo-title{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.global-photo-title b{font-size:22px}.global-photo-title span{display:block;color:var(--muted);margin-top:4px}
.global-photo-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.global-photo-option{min-height:180px;border:1px solid var(--line);border-radius:16px;background:#f7f6f2;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px}.global-photo-option:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}.global-photo-option>span{font-size:44px}.global-photo-option b{font-size:18px}.global-photo-option small{color:var(--muted)}.global-photo-option.camera{border-color:#7b8f55}.global-photo-option.gallery{border-color:#b69b62}
.global-camera-dialog video,.global-camera-dialog #globalCameraPreview{width:100%;max-height:62vh;object-fit:contain;background:#111;border-radius:14px}.global-camera-actions{margin-top:14px;justify-content:center}
@media(max-width:600px){.global-photo-options{grid-template-columns:1fr}.global-photo-option{min-height:130px}.global-camera-dialog{padding:12px}.global-photo-title b{font-size:19px}}

/* V59 · compartir desde WhatsApp normal / PWA */
.global-photo-options{grid-template-columns:repeat(3,1fr)}
.global-photo-option.share{border-color:#7b8f55;background:#f3f6ed}
.share-help-steps{display:grid;gap:10px;margin:14px 0}.share-help-steps>div{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#faf9f5}.share-help-steps>div>b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff}.share-help-note{padding:10px 12px;border-radius:10px;background:#fff8e8;border:1px solid #ead8aa}
@media(max-width:800px){.global-photo-options{grid-template-columns:1fr}.global-photo-option{min-height:115px}}


/* ===== V64 · MOBILE RESPONSIVE REAL + FOTO ACTIVA ARRIBA ===== */
.brain-photo-stage{margin-top:0;scroll-margin-top:84px}
.brain-photo-stage:not(.active){display:none}
.brain-photo-workspace{border:2px solid #7b8f55;background:#fffdf8;box-shadow:0 10px 30px rgba(65,80,43,.10)}
.brain-photo-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.brain-photo-work-grid{display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);gap:18px;align-items:start}
.brain-photo-preview-wrap{position:sticky;top:102px;align-self:start}
.brain-photo-preview{display:block;width:100%;max-height:520px;object-fit:contain;background:#111;border-radius:14px;border:1px solid var(--line)}
.brain-photo-controls{min-width:0}.brain-photo-budget-info{margin-top:8px}.brain-photo-voice-actions{margin-top:8px}.brain-photo-action-buttons{margin-top:6px;flex-wrap:wrap}.brain-photo-footer{margin-top:16px}
@media(max-width:700px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  .main,.view,.brain-shell,.mobile-hub,.budgets-shell,.works-shell,.purchases-shell{width:100%;max-width:100%;min-width:0}
  .view{padding:8px 8px 28px!important;overflow-x:hidden}
  .panel,.card,.budgets-hero,.works-hero,.mobile-hero{width:100%;max-width:100%;min-width:0;margin-left:0!important;margin-right:0!important}
  .grid,.cards,.brain-status-grid,.editor-layout,.doc-columns,.profitability-card,.wa-columns,.rai-grid,.rai-compare{grid-template-columns:1fr!important;min-width:0!important}
  .form-grid{grid-template-columns:1fr!important;min-width:0}.field,.field.full{grid-column:auto!important;min-width:0}
  input,select,textarea{max-width:100%;width:100%;min-width:0}img,video,canvas,svg{max-width:100%}
  .section-heading,.panel-head,.brain-command-heading{min-width:0}.section-heading>div,.panel-head>div,.brain-command-heading>div{min-width:0}
  h1,h2,h3,p,span,b,small,label{overflow-wrap:anywhere}
  .topbar{position:sticky!important;top:0!important;z-index:60!important;width:100%;padding:8px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
  .topbar>div:first-child{min-width:0}.topbar h1{font-size:18px!important;line-height:1.1}.topbar p{max-width:44vw!important;font-size:11px!important}
  .top-actions{display:flex!important;width:auto!important;align-items:center!important;gap:5px!important;flex-wrap:nowrap!important}.top-actions .v21-badge,.top-actions #backupBtn{display:none!important}
  .top-actions .global-photo-btn,.top-actions #globalVoiceBtn{width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;max-width:64px!important;max-height:64px!important;font-size:9px!important;border-width:3px!important;padding:4px!important}
  .top-actions .global-photo-btn span:first-child,.top-actions #globalVoiceBtn span:first-child{font-size:18px!important}.mobile-menu-toggle{width:38px!important;height:38px!important;min-height:38px!important}
  .brain-shell>.budgets-hero{padding:14px!important;margin-bottom:10px!important}.brain-shell>.budgets-hero h2{font-size:21px!important}.brain-command-panel{margin-top:10px!important}.brain-command-panel #brainCommand{min-height:150px!important;font-size:16px!important}
  .brain-command-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.brain-command-actions .btn{width:100%!important;min-width:0!important}
  .brain-media-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;gap:8px!important}.brain-media-actions .btn{min-width:0!important;width:100%!important;padding:10px 8px!important}
  .brain-status-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .brain-photo-stage.active{display:block;position:relative;margin:8px 0 10px;scroll-margin-top:78px}.brain-photo-workspace{padding:10px!important;border-radius:14px!important}
  .brain-photo-head{position:sticky;top:76px;z-index:22;background:#fffdf8;padding:4px 2px 9px;margin:-2px -2px 8px;border-bottom:1px solid #e9dfc9}.brain-photo-head h3{font-size:18px;margin:0 0 3px}.brain-photo-head .status{font-size:10px;white-space:nowrap}
  .brain-photo-work-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.brain-photo-preview-wrap{position:sticky!important;top:132px!important;z-index:21;background:#fffdf8;padding:0 0 8px;margin-bottom:0}
  .brain-photo-preview{width:100%!important;max-height:38vh!important;min-height:180px;object-fit:contain!important;border-radius:12px!important}.brain-photo-controls{padding-top:2px}.brain-photo-controls select,.brain-photo-controls textarea{font-size:16px!important;min-height:48px}.brain-photo-controls textarea{min-height:130px!important}
  .brain-photo-budget-info .empty{padding:14px 8px!important}.brain-photo-voice-actions .btn{width:100%!important;min-height:50px!important}
  .brain-photo-action-buttons{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%}.brain-photo-action-buttons .btn{width:100%!important;min-width:0!important;padding:10px 6px!important}.brain-photo-action-buttons .btn:last-child{grid-column:1/-1}.brain-photo-footer .btn{width:100%}
  .history-list>div{grid-template-columns:1fr!important;gap:4px!important}.table-wrap,.client-table-wrap,.m-table-wrap{max-width:100%;overflow-x:auto!important}
  .global-photo-modal{padding:8px!important;align-items:flex-end!important}.global-photo-dialog,.global-camera-dialog{width:100%!important;max-width:100%!important;max-height:94dvh!important;overflow-y:auto!important;border-radius:18px 18px 0 0!important;padding:14px!important}
  .global-photo-options{grid-template-columns:1fr!important;gap:8px!important}.global-photo-option{min-height:94px!important;padding:12px!important}.global-photo-option>span{font-size:32px!important}.global-camera-dialog video,.global-camera-dialog #globalCameraPreview{max-height:58dvh!important}
  .global-camera-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}.global-camera-actions .btn{width:100%!important}
}
@media(max-width:390px){.brain-command-actions,.brain-media-actions,.brain-photo-action-buttons{grid-template-columns:1fr!important}.brain-photo-action-buttons .btn:last-child{grid-column:auto}.top-actions .global-photo-btn,.top-actions #globalVoiceBtn{width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;max-width:58px!important;max-height:58px!important}.brain-photo-preview{max-height:34vh!important}}
\n\n/* ===== V65 · CEREBRO MÓVIL SIMPLIFICADO · FOTO SIN CONTROLES DUPLICADOS ===== */
@media(max-width:700px){
  body.brain-photo-active .brain-command-panel,
  body.brain-photo-active .brain-interpretation-panel,
  body.brain-photo-active .brain-status-grid{display:none!important}
  body.brain-photo-active .brain-shell>.budgets-hero{margin-bottom:8px!important}
  body.brain-photo-active .brain-photo-stage.active{margin-top:4px!important}
  body.brain-photo-active .brain-photo-head{top:76px!important}
  body.brain-photo-active .brain-photo-preview-wrap{top:128px!important}
  .brain-photo-voice-actions{display:block!important;width:100%!important}
  .brain-photo-voice-actions .btn{width:100%!important;min-height:54px!important;font-size:15px!important}
  .brain-photo-quick-actions label{font-size:12px!important;color:var(--muted)!important}
}


/* ===== V66 · MODO FOTO EXCLUSIVO REAL EN MOVIL ===== */
@media(max-width:700px){
 body.brain-photo-active .brain-command-panel,
 body.brain-photo-active .brain-interpretation-panel,
 body.brain-photo-active .brain-status-grid{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;border:0!important}
 body.brain-photo-active .brain-photo-stage.active{display:block!important}
 body.brain-photo-active .brain-photo-workspace{margin-bottom:0!important}
}


/* ===== V67 · MODO FOTO ARRIBA · UN SOLO MICROFONO · EJECUTAR ===== */
.brain-photo-close{border:0;background:#f2eee5;color:#222;width:38px;height:38px;border-radius:50%;font-size:26px;line-height:1;cursor:pointer;flex:0 0 auto}
.brain-photo-hint{display:block;margin-top:8px;color:var(--muted);line-height:1.35}
.brain-photo-review:empty{display:none}
.brain-photo-review-card{border:2px solid #b69b62;background:#fffaf0;border-radius:14px;padding:14px}
.brain-photo-review-card>b{font-size:17px}.brain-photo-review-card p{margin:8px 0 10px;white-space:pre-wrap}
.brain-photo-detected{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}.brain-photo-detected span{color:var(--muted)}
.brain-photo-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.brain-photo-review-actions .btn{width:100%}
@media(max-width:700px){
 body.brain-photo-active .brain-shell>.budgets-hero{display:none!important}
 body.brain-photo-active .brain-photo-stage.active{margin-top:0!important;scroll-margin-top:76px!important}
 body.brain-photo-active .brain-photo-workspace{padding:8px!important;border-radius:12px!important}
 body.brain-photo-active .brain-photo-head{position:relative!important;top:auto!important;padding:2px 2px 7px!important;margin:0 0 6px!important}
 body.brain-photo-active .brain-photo-preview-wrap{position:relative!important;top:auto!important;padding:0!important}
 body.brain-photo-active .brain-photo-preview{max-height:36vh!important;min-height:150px!important}
 body.brain-photo-active .brain-photo-work-grid{gap:8px!important}
 body.brain-photo-active .brain-photo-controls textarea{min-height:92px!important}
 body.brain-photo-active .top-actions #globalVoiceBtn{display:inline-flex!important}
 body.brain-photo-active .top-actions #globalPhotoBtn{display:none!important}
 .brain-photo-review-actions{grid-template-columns:1fr!important}
}


/* ===== V68 · EJECUTAR / CORREGIR SIEMPRE ARRIBA EN MODO FOTO ===== */
.brain-photo-top-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}
.brain-photo-top-actions .btn{width:100%;min-height:48px}
@media(max-width:700px){
 body.brain-photo-active .brain-photo-top-actions{position:relative;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:9px!important}
 body.brain-photo-active .brain-photo-top-actions .btn{min-height:52px!important;font-size:15px!important;padding:10px 8px!important}
 body.brain-photo-active .brain-photo-review{margin-top:6px!important}
}

/* V70 · presupuesto visible + resultados 2D/3D en la misma pantalla */
.brain-selected-budget{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:2px solid #b58a2b;border-radius:12px;margin:8px 0;background:#fffaf0}.brain-selected-budget small{width:100%;font-weight:800;letter-spacing:.06em}.brain-selected-budget strong{font-size:1.45rem;line-height:1}.brain-selected-budget span{font-weight:700}.brain-visual-result{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:14px;overflow:auto;background:#fff}.brain-visual-result-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.brain-visual-result-head b{font-size:1.2rem}.brain-visual-result svg{max-width:100%;height:auto}.brain-visual-note{font-size:.9rem;color:var(--muted);margin-top:12px}@media(max-width:700px){.brain-selected-budget strong{font-size:1.6rem}.brain-visual-result{padding:8px}.brain-visual-result-head{align-items:flex-start;flex-direction:column}}


/* V72 · resultados 2D/3D dobles y ajustados a móvil */
.brain-visual-stack{display:grid;grid-template-columns:1fr;gap:14px;margin-top:12px}
.brain-visual-result{overflow:hidden!important;max-width:100%;min-width:0;background:#fff}
.brain-visual-result-head>div{display:flex;flex-direction:column;gap:2px}.brain-visual-result-head small{font-size:10px;font-weight:900;letter-spacing:.08em;color:#8d6a22}
.brain-visual-canvas{width:100%;max-width:100%;min-width:0;overflow:hidden;border-radius:10px;background:#fafafa}
.brain-visual-canvas svg,.brain-visual-result.fit svg{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;min-width:0!important;max-height:none!important;margin:0 auto!important}
.brain-visual-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.brain-visual-actions .btn{min-height:40px}
.brain-visual-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.brain-visual-summary>div{display:flex;flex-direction:column;gap:3px}.brain-visual-summary>div>b{font-size:18px}.brain-visual-summary>div>span{color:var(--muted);font-size:13px}
.brain-visual-result.expanded{position:fixed!important;inset:8px!important;z-index:10020!important;margin:0!important;padding:10px!important;background:#fff!important;overflow:auto!important;border-radius:14px!important;box-shadow:0 20px 70px rgba(0,0,0,.4)!important}
.brain-visual-result.expanded .brain-visual-canvas{min-height:calc(100vh - 150px);display:flex;align-items:center;justify-content:center}
.brain-visual-result.expanded .brain-visual-canvas svg{width:min(1100px,100%)!important;max-width:100%!important}
@media(max-width:600px){
  .brain-photo-results-card{padding:10px!important}
  .brain-visual-result{padding:8px!important;margin-top:10px!important;overflow:hidden!important}
  .brain-visual-result-head{margin-bottom:7px!important}
  .brain-visual-result-head b{font-size:1.05rem!important}
  .brain-visual-result .cb-plan-3d,.brain-visual-result .cb-plan-editable,.brain-visual-result .cb-plan-svg{min-width:0!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important}
  .brain-visual-canvas{overflow:hidden!important}
  .brain-visual-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important}
  .brain-visual-actions .btn{width:100%!important;padding:8px 6px!important;font-size:12px!important}
  .brain-visual-summary{position:sticky;top:0;background:#fffaf0;z-index:2;padding:4px 0 7px}
}

/* ===== V75 · CÁMARA MÓVIL COMPLETA + ZOOM TÁCTIL 2D/3D ===== */
@media(max-width:700px){
  #globalCameraCapture.global-photo-modal{padding:0!important;align-items:stretch!important;background:#000!important}
  #globalCameraCapture .global-camera-dialog{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;border-radius:0!important;padding:0!important;background:#000!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
  #globalCameraCapture .global-photo-title{position:absolute!important;z-index:3!important;top:0!important;left:0!important;right:0!important;margin:0!important;padding:12px 14px!important;background:linear-gradient(rgba(0,0,0,.72),transparent)!important;color:#fff!important}
  #globalCameraCapture .global-photo-title span{color:#fff!important}
  #globalCameraCapture .global-photo-title .icon-btn{background:rgba(255,255,255,.9)!important}
  #globalCameraCapture video,#globalCameraCapture #globalCameraPreview{width:100vw!important;height:100dvh!important;max-height:none!important;object-fit:cover!important;border-radius:0!important;background:#000!important}
  #globalCameraCapture .global-camera-actions{position:absolute!important;z-index:4!important;left:0!important;right:0!important;bottom:0!important;margin:0!important;padding:16px 12px calc(16px + env(safe-area-inset-bottom))!important;background:linear-gradient(transparent,rgba(0,0,0,.78))!important;display:flex!important;gap:8px!important;justify-content:center!important;flex-wrap:wrap!important}
  #globalCameraCapture .global-camera-actions .btn{min-height:52px!important}
  .brain-visual-result.expanded{inset:0!important;border-radius:0!important;padding:8px!important;touch-action:none!important;overscroll-behavior:contain!important}
  .brain-visual-result.expanded .brain-visual-canvas{height:calc(100dvh - 135px)!important;min-height:0!important;overflow:hidden!important;touch-action:none!important;display:flex!important;align-items:center!important;justify-content:center!important}
  .brain-visual-result.expanded .brain-visual-canvas svg{transform-origin:center center!important;will-change:transform!important;max-width:none!important}
}


/* ===== V79 · PORTAL MÓVIL MÁS COMPACTO ===== */
@media(max-width:700px){
  #portal.portal-screen{padding:18px 12px 24px!important}
  #portal .portal-heading{margin-bottom:14px!important}
  #portal .portal-heading p{font-size:11px!important}
  #portal .portal-heading span{font-size:13px!important}
  #portal .portal-grid{width:min(430px,100%)!important;gap:12px!important;margin:0 auto!important}
  #portal .company-entry{
    width:100%!important;
    max-width:390px!important;
    margin:0 auto!important;
    border-radius:16px!important;
  }
  #portal .company-entry .entry-logo img,
  #portal .public-entry .entry-logo img{
    transform:scale(.88)!important;
    transform-origin:center!important;
    object-fit:contain!important;
    background:#000!important;
  }
  #portal .portal-footer{font-size:11px!important;margin-top:14px!important}
}

/* ===== V79 · CONFIRMACIÓN DE FOTO ===== */
#cbPhotoFlash{
  position:fixed;inset:0;z-index:999999;
  pointer-events:none;opacity:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.96);
}
#cbPhotoFlash.show{animation:cbPhotoFlashAnim .72s ease-out both}
#cbPhotoFlash .cb-photo-captured{
  padding:16px 22px;border-radius:14px;
  background:#111;color:#fff;font-weight:900;
  letter-spacing:.05em;font-size:18px;
  box-shadow:0 12px 36px rgba(0,0,0,.25)
}
@keyframes cbPhotoFlashAnim{
  0%{opacity:0}
  8%{opacity:1}
  34%{opacity:.92}
  100%{opacity:0}
}


/* ===== V80 · FOTO COMPARTIBLE ===== */
.brain-photo-export-actions{
  display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:10px
}
.brain-touch-hint{
  text-align:center;font-size:12px;opacity:.72;padding:8px 6px 2px
}
.brain-visual-canvas{
  overflow:hidden;
  touch-action:none;
}
.brain-visual-canvas svg{
  transform-origin:center center;
  will-change:transform;
}
@media(max-width:700px){
  .brain-photo-export-actions .btn{flex:1 1 145px}
  .brain-visual-actions{display:none!important}
  .p3-toolbar button[onclick*="p3Zoom"],
  .p3-toolbar button[onclick*="p3Rotate"],
  .p3-toolbar button[onclick*="p3Tilt"]{display:none!important}
}
