/* style/shell.css — a casca. E' o <style> do index.html como ficou no fim do corte de CSS (v305), inteiro e na
   ordem original: base, tema da casca, telefone, impressao, @keyframes, e toda regra cujo seletor tem mais de um dono
   (as classes genericas .card .lines .seg3 .v .d ..., os baloes .pop/.gpop/.cpop, o dialogo .mdc/.mdh, a barra .pcbar,
   o escolhedor .apk). As regras de impressao ficam aqui, na posicao original, de proposito (secao 6 da doc: impressao
   a partir do telefone). Os comentarios sao os do <style> de sempre. */
  .page{background:#fff;max-width:1120px;margin:24px auto;padding:0.5in 0.6in;box-shadow:0 1px 2px rgba(20,30,50,.06),0 8px 24px rgba(20,30,50,.08);border:1px solid var(--line);border-radius:12px}
  body[data-view="B"] .page,body[data-view="C"] .page{max-width:1380px;padding:.35in .45in}
  .viewrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:2px 0 12px}
  .seg3{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
  .seg3 button{font:inherit;background:#fff;border:none;border-right:1px solid var(--line);padding:6px 14px;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;gap:0;min-width:150px;text-align:left} .seg3 button:last-child{border-right:none}
  .seg3 button b{font-family:Archivo,sans-serif;font-weight:700;font-size:13px} .seg3 button span{font-family:"Source Sans 3",sans-serif;font-size:11px;color:var(--muted)}
  .seg3 button[aria-pressed="true"]{background:var(--accent);color:var(--on-acc)} .seg3 button[aria-pressed="true"] span{color:#dbe6fb} .seg3 button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  /* layout A: lines and map side by side */
  #a-two{display:grid;grid-template-columns:1fr;gap:18px;align-items:start} /* v97: one column — the map sits under the windows table, never beside it (Rafael 2026-09-07: 'map goes to right of windows line item') */ #a-two [data-blk="map"]{max-width:960px} #a-two>div{min-width:0} #a-two [data-blk="map"] h2{margin-top:22px}
  /* layout B: workbench */
                                 
  .rail{background:var(--soft);border-right:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:12px;position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto}
  .rail .jobline{margin:0;flex-direction:column;gap:2px;align-items:flex-start} .rail .jobline b{font-family:Archivo,sans-serif;font-size:17px;line-height:1.15}
  .rail .cards{grid-template-columns:1fr 1fr;gap:6px;margin:0} .rail .card{padding:6px 8px;background:#fff} .rail .card .v{font-size:18px} .rail .card .d{font-size:10.5px} .rail .card .crow{display:none} .rail #s-tubesplit,.rail #s-canleft{display:none} .rail h2{display:none}
  .rail .card.hb{padding:6px 8px;background:#fff} .rail .cards[style]{grid-template-columns:1fr!important;margin:0!important}
  .nav{display:flex;flex-direction:column;gap:2px} .nav button{font:inherit;font-family:Archivo,sans-serif;font-weight:700;font-size:13px;text-align:left;border:none;background:none;padding:7px 10px;border-radius:7px;cursor:pointer;color:var(--ink);display:flex;justify-content:space-between;align-items:center} .nav button small{font-family:"Source Sans 3",sans-serif;font-weight:400;color:var(--muted)} .nav button[aria-pressed="true"]{background:#fff;color:var(--accent);box-shadow:0 1px 2px rgba(20,30,50,.08)}
  .tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:4px 0 8px} .tabs button{font:inherit;font-family:Archivo,sans-serif;font-weight:700;font-size:12.5px;border:none;background:none;padding:7px 12px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px} .tabs button[aria-pressed="true"]{color:var(--accent);border-bottom-color:var(--accent)}
  .drawer{border-left:1px solid var(--line);background:#fff;padding:12px 14px;position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto} .drawer[hidden]{display:none}
  .drawer .ovg{grid-template-columns:1fr!important;border:none!important;padding:0!important} .drawer .ovg .ttl{position:sticky;top:0;background:#fff;padding-bottom:6px;border-bottom:1px solid var(--line)} .wincard .ovg{grid-template-columns:1fr!important;border:none!important;padding:0!important}
  /* layout C: map first */
    .wincard{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;position:sticky;top:8px;max-height:96vh;overflow:auto;font-size:12.5px}
  .wincard h4{font-size:15px;font-weight:800;display:flex;gap:8px;align-items:center;margin:0 0 8px} .wincard .no{display:inline-flex;width:22px;height:22px;border-radius:50%;color:var(--on-acc);align-items:center;justify-content:center;font-size:11px;font-weight:800;background:var(--accent)}
  .wincard .csec{border-top:1px dashed var(--line);padding-top:6px;margin-top:8px} .wincard .csec b.l{font-family:Archivo,sans-serif;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:3px}
  .gpk{font:inherit;font-size:12px;border:none;border-bottom:1px dashed #bbb;background:transparent;padding:1px 3px;cursor:pointer;color:var(--ink);max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left} .gpk.big{border:1px solid var(--line);border-radius:8px;padding:5px 8px;max-width:none;width:100%;font-size:12.5px} .gpk:focus-visible{outline:2px solid var(--accent)}
  .gpop{position:fixed;z-index:90;display:flex;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(20,30,50,.22);padding:8px;font-size:12px;max-width:min(520px,94vw)} .gpop .gl{display:flex;flex-direction:column;max-height:320px;overflow:auto;min-width:150px;padding-right:4px} .gpop .gh{font-family:Archivo,sans-serif;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 8px 2px}
  .gpop .gl button{font:inherit;font-size:12px;text-align:left;border:none;background:none;padding:4px 8px;border-radius:6px;cursor:pointer;color:var(--ink)} .gpop .gl button:hover,.gpop .gl button:focus{background:var(--acc2);color:var(--accent);outline:none} .gpop .gl button.on{font-weight:700;color:var(--accent)}
  @media print{.gpop{display:none}}
  /* dark theme (Rafael 2026-09-05: the artifact's dark palette as a toggle) — tokens first, then the few literal colours the page still carries */
  .cpop{position:fixed;z-index:90;display:flex;flex-direction:column;gap:4px;max-height:340px;overflow:auto;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(20,30,50,.22);padding:8px}  
  @media print{.cpop{display:none}}
  .ttab{font-size:12.5px} .ttab td{vertical-align:middle} .ttab tr.sev-warn td{background:#fffaf0}     
  .tchk{width:18px;height:18px;border:1.5px solid #9aa3b2;border-radius:4px;background:#fff;cursor:pointer;font:700 12px/1 Archivo,sans-serif;color:#fff;padding:0;vertical-align:middle;position:relative} .tchk.on{background:#d1434b;border-color:#d1434b} .tchk.part{background:linear-gradient(135deg,#d1434b 50%,#fff 50%);color:#b91c1c} .tchk.noreason{box-shadow:0 0 0 2px #fff,0 0 0 4px #d97706}
.tchk.on.ok{background:#1a7f4b;border-color:#1a7f4b}
.tchk.part.ok{background:linear-gradient(135deg,#1a7f4b 50%,#fff 50%);color:#166534} .tchk:hover{border-color:#d1434b}   
.tchk.part.ok{background:linear-gradient(135deg,#1a7f4b 50%,var(--soft) 50%)}
  .rpk{max-width:96px} .rpop{position:fixed;z-index:90;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(20,30,50,.22);padding:8px 10px;max-width:min(560px,94vw);max-height:70vh;overflow:auto} .rpop .gh{font-family:Archivo,sans-serif;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:4px 0 4px} .rtags{display:flex;flex-wrap:wrap;gap:4px} .rtag{font:inherit;font-size:12px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:3px 10px;cursor:pointer} .rtag:hover{border-color:var(--accent);color:var(--accent)} .rtag.on{background:var(--accent);border-color:var(--accent);color:var(--on-acc)} .rnew{display:flex;gap:6px;margin-top:8px} .rnew input{flex:1;font:inherit;font-size:12px;border:1px solid var(--line);border-radius:8px;padding:4px 8px} .rnew button{font:inherit;font-size:11.5px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:3px 8px;cursor:pointer} 
  th.hcol{cursor:pointer;user-select:none} .hmode{font-weight:400;color:var(--muted);margin-left:4px;font-size:10px} .pcbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px} .pcbar .pct{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;border-radius:9px;padding:5px 9px;cursor:pointer;color:var(--ink);font-size:12px} .pcbar .pct svg{width:16px;height:16px;flex:none} .pcbar .pct[aria-pressed="true"]{background:var(--accent);color:var(--on-acc);border-color:var(--accent)} .pcbar .pct[aria-pressed="true"] svg [fill="currentColor"]{fill:#fff} .pcseg{display:inline-flex;gap:0} .pcseg .pct{border-radius:0} .pcseg .pct:first-child{border-radius:9px 0 0 9px} .pcseg .pct:last-child{border-radius:0 9px 9px 0} .pcseg .pct+.pct{margin-left:-1px} .pcsep{width:1px;height:22px;background:var(--line);margin:0 4px} .pcload{display:inline-flex;align-items:center;gap:5px} .pcload svg{width:16px;height:16px} .pcbar button,.pcopts select,.pcopts input,.pcbar select{font:inherit;font-size:12px} .pcload{border:1px solid var(--line);border-radius:9px;padding:5px 10px;cursor:pointer;background:#fff;font-size:12px}            
.noteic{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:#fff;color:#9aa3b2;cursor:pointer;vertical-align:middle;padding:0} .noteic svg{width:13px;height:13px} .noteic.has{color:var(--on-acc);background:var(--accent);border-color:var(--accent)} .noteic.info{color:#1f6fd0;border-color:#1f6fd0;background:#eef4fd} .noteic.pend{color:#b3261e;border-color:#b3261e;background:#fdeeed} .notecell{display:inline-flex;align-items:center;gap:3px;white-space:nowrap} .notedot{width:6px;height:6px;border-radius:50%;background:#b3261e;display:inline-block} td:has(>.notecell){white-space:nowrap}   .notepop{position:fixed;z-index:95;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:8px 10px;font-size:12.5px;width:340px;max-width:92vw;white-space:pre-wrap} .notepop textarea{width:100%;min-height:70px;font:inherit;font-size:12.5px;border:1px solid var(--line);border-radius:8px;padding:6px;box-sizing:border-box;resize:vertical}
.campop{position:fixed;z-index:72;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:8px 10px;font-size:12px;max-width:min(92vw,720px);pointer-events:none}  .campop img{display:block;max-width:300px;max-height:220px;border-radius:8px;border:1px solid var(--line)} 
.pct.ico{padding:5px 7px} .pct.ico span{display:none}     
.pctip{position:fixed;z-index:90;width:260px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.28);padding:8px 10px 9px;font-size:12px;pointer-events:none} .pctip b{display:block;font-size:12.5px;margin-bottom:2px} .pctip .d{color:var(--ink2);line-height:1.35}  .pctip .k{display:inline-block;border:1px solid var(--line);border-radius:4px;padding:0 4px;font:600 11px ui-monospace,monospace;background:var(--soft)}       
    .pcchip{font:500 11.5px/1 ui-monospace,monospace;padding:5px 8px;border-radius:999px;background:var(--soft);border:1px solid var(--line)} .pcchip.ok{background:#e3f4e8;border-color:#9bd3ab} .pcchip.look{background:#fff1dc;border-color:#f0c48a} .pcchip.bad{background:#fde3e3;border-color:#f0a3a3}         #editcard .mdf{grid-template-columns:repeat(2,1fr);min-width:0} .rsbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0;padding:6px 10px;border:1px dashed var(--accent);border-radius:9px;font-size:12px} .rsbar button{font:inherit;font-size:12px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 9px;cursor:pointer} .rsbar button[aria-pressed="true"]{background:var(--accent);color:var(--on-acc);border-color:var(--accent)} .rsbar .seg3 button{min-width:0;padding:4px 10px;display:inline-block;text-align:center} .rsbar .rsz{display:inline-flex;align-items:center;gap:4px;white-space:nowrap} .rsbar .rsz input{width:52px;font:inherit;font-size:12px;padding:3px 5px;border:1px solid var(--line);border-radius:6px} .rsbar .rsz small{color:var(--muted)}      .asmfs{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end} .asmf{display:inline-flex;flex-direction:column;gap:3px;min-width:0} .asmf>small{color:var(--muted);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase} .asmf .apk{font:inherit;font-size:13px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:5px 9px;cursor:pointer;color:var(--ink);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left} .asmf .apk.sz{min-width:64px;font-family:ui-monospace,monospace} .asmf .apk:hover{border-color:var(--accent)} .asmf .apk[aria-expanded="true"]{border-color:var(--accent);box-shadow:0 0 0 2px #dbe7f6} .asmx{align-self:flex-end;padding:0 0 7px;color:var(--muted)}     #ddlg .apk{font:inherit;font-size:13px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:5px 9px;cursor:pointer;color:var(--ink)} #ddlg .seg3 button{font:inherit;font-size:12px;border:1px solid var(--line);background:#fff;cursor:pointer} #ddlg .seg3 button[aria-pressed="true"]{background:var(--accent);color:var(--on-acc);border-color:var(--accent)}                   .vp{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:600;color:#245c8f;background:#e8f0fb;border:1px solid #c9daf3;border-radius:999px;padding:1px 8px;white-space:nowrap;vertical-align:middle}  th.hcol:hover{color:var(--accent)}
   .fixbtn{font:inherit;font-size:11px;border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:999px;padding:1px 9px;cursor:pointer;white-space:nowrap} .fixbtn:hover{background:var(--accent);color:var(--on-acc)}  
  /* ===== v129 themes (Rafael 2026-09-07: "technology from 2050 … have the three and select between them") — HUD night · Light lab · Holo bands; the classic light / dark stay ===== */
  /* surfaces: glass on the dark themes, soft cards on lab */
  /* v130 (Rafael: dialogs, the window hover card and the help tips showed the page through them; the look list was unreadable): anything that floats over the page is a SOLID surface */
  .themesel option{background:#fff;color:#1c2430} 
  /* the view switch */
  /* tabs: HUD = glowing underline · lab / holo = capsule in a track */
  /* rail nav */
  /* tools (the buttons in every bar) — glass tiles, the pressed one lit; the one that commits glows */
  #draftbar{position:fixed;left:0;right:0;bottom:0;z-index:2000;background:#1f2f42;color:#fff;font:500 13px/1.4 "Source Sans 3",system-ui,sans-serif;padding:9px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;box-shadow:0 -6px 24px rgba(0,0,0,.25)} #draftbar button{font:inherit;font-weight:700;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;border-radius:999px;padding:5px 14px;cursor:pointer} #draftbar [data-drestore]{background:#fff;color:#1f2f42;border-color:#fff} @media print{#draftbar{display:none}}
  /* v139 — copies, drafts, offline */
  .joblinks{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:10px;vertical-align:middle} .joblink{font:600 12px/1 inherit;font-family:inherit;padding:5px 10px;border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:99px;text-decoration:none;white-space:nowrap} .joblink:hover{background:var(--accent);color:var(--on-acc)} body[data-phone] .joblink{font-size:14px;padding:8px 14px} @media print{.joblinks{display:none}}
  .jobfiles{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto} .jobfiles button,.jobfiles .jobopen{font:inherit;font-size:12px;padding:4px 10px;border:1px solid var(--line);background:#fff;border-radius:99px;cursor:pointer;color:var(--ink2)} .jobfiles #jobsave{border-color:var(--accent);color:var(--accent);font-weight:700} .netchip{font:600 11.5px/1 ui-monospace,monospace;padding:4px 9px;border-radius:999px;background:#fff1dc;border:1px solid #f0c48a;color:#8a4b00} body.offline .netchip{display:inline-block!important}
  #draftlist{position:fixed;left:50%;top:12vh;transform:translateX(-50%);z-index:2100;background:var(--dlg,#fff);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.35);padding:14px 16px;min-width:min(520px,94vw);max-height:76vh;overflow:auto;font-size:13px} #draftlist h3{margin:0 0 8px;font-size:14px} #draftlist table{width:100%;border-collapse:collapse} #draftlist td{padding:5px 6px;border-top:1px solid var(--line)} #draftlist button{font:inherit;font-size:12px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:3px 10px;cursor:pointer} #draftlist .pri{background:var(--accent);color:var(--on-acc);border-color:var(--accent);font-weight:700}
  #toast{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:2100;background:#1f2f42;color:#fff;font:500 13px/1.4 "Source Sans 3",system-ui,sans-serif;padding:9px 14px;border-radius:999px;box-shadow:0 8px 30px rgba(0,0,0,.35);display:flex;gap:10px;align-items:center} #toast button{font:inherit;font-weight:700;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;border-radius:999px;padding:3px 10px;cursor:pointer}
  @media print{.jobfiles,#draftlist,#toast{display:none!important}}
  /* v138 — contract check */
  @media print{.ctr-way,.ctr-head input,.ctr-tab .xrow{display:none}}
  /* v131 — photo check in the new looks: solid surfaces, readable header select / steps / chips, dark text on glowing buttons */
  /* section chips */
  /* the lead banner: the warm light */
  /* the map as a hologram on the dark themes */
  @media print{body:is([data-theme="hud"],[data-theme="holo"],[data-theme="lab"],[data-theme="sketch"],[data-theme="sketchdark"]){--ink:#1c2430;--ink2:#4b5563;--muted:#7b8494;--line:#d9dce3;--soft:#f0f2f5;--accent:#245c8f;--acc2:#e3edf7;--warn:#b7690a;--bad:#b3261e;--good:#1a6b3c;--paper:#fff;--panel:#fff;background:#fff;font-family:"Source Sans 3",sans-serif}}
  .themesel{font:inherit;font-size:12px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:4px 10px;cursor:pointer;margin-left:auto}
  @media print{body:is([data-theme="dark"],[data-theme="hud"],[data-theme="holo"],[data-theme="sketchdark"]){--ink:#1c2430;--ink2:#4b5563;--muted:#7b8494;--line:#d9dce3;--soft:#f0f2f5;--accent:#245c8f;--acc2:#e3edf7;--warn:#b7690a;--bad:#b3261e;--good:#1a6b3c;--paper:#fff;--panel:#fff} }
  /* the line editor keeps its look when it lives in the workbench drawer or the map-first card */
  .drawer .ovg,.wincard .ovg{display:grid;gap:10px 16px;align-items:end;font-size:12px;background:#fff} .drawer .ovg .grp,.wincard .ovg .grp{display:flex;flex-direction:column;gap:4px} .drawer .ovg .gl,.wincard .ovg .gl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)} .drawer .ovg .ttl,.wincard .ovg .ttl{font-weight:700;font-size:12.5px;color:var(--accent);display:flex;justify-content:space-between;align-items:center;gap:8px}
  .drawer .ovg select,.wincard .ovg select{font:inherit;font-size:12.5px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;width:100%;background:#fff} .drawer .ovg button,.wincard .ovg button{font:inherit;font-size:11px;border:1px solid var(--line);background:#fff;border-radius:4px;padding:1px 6px;cursor:pointer}
  .drawer .ovg .done,.wincard .ovg .done{background:var(--accent);color:var(--on-acc);border-color:var(--accent);font-weight:700;padding:5px 12px;border-radius:9px} .drawer .ovg .achip,.wincard .ovg .achip{font-size:11.5px;border-radius:999px;padding:3px 10px} .drawer .ovg .achip.on,.wincard .ovg .achip.on{background:#1f6feb;border-color:#1f6feb;color:#fff;font-weight:600} .drawer .ovg .sw,.wincard .ovg .sw{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.3);vertical-align:-2px;margin-right:3px}
  .rail .card.hb .note{display:none}  .rail .card.hb .kv td:first-child{padding-right:6px}
  /* ===== v173 · one clear close button on every dialog (Rafael: "close buttons almost hidden") ===== */
  .mdh{position:sticky;top:0;background:inherit;z-index:2}
  /* v199 · D4 — todo botao de fechar veste igual; no telefone todos a 44px (R11).
   v207: o comentario estava colado no meio da lista de seletores. Sem ele o CSS lia
   ".mdh body[data-phone] :is(...)" — um <body> dentro de .mdh, que nunca casa, entao o
   :is() inteiro estava morto desde a v199. Medido em body[data-phone]: a v197 dava
   min-width:44px a rcx/eclose/hclose (3 de 12) e a v206 so a eclose (1 de 12) — a
   mudanca cobria menos que a versao no ar. O prefixo orfao sai; o :is() volta a valer. */
  /* ===== v173 · house settings behind ⚙, hover cards toggle ===== */
  .mapcard .no,.mdh .no,.maptray .no,.wincard .no,.cwsum .cwt .no{flex:none;aspect-ratio:1}
  /* v185 (Rafael: "colour circles stretched"): the 44px tap-target rule for <button> was making every round colour chip an oval — the chips keep their own size, and on a phone they grow to 44 so they stay both round and tappable */
  body[data-phone] .swatch{width:44px;height:44px;flex-basis:44px}
  /* ===== v173 · required entries: highlight pulse, 'not chosen' look, Go buttons ===== */
  @keyframes reqpulse{0%,100%{box-shadow:0 0 0 0 rgba(217,119,6,0)}20%{box-shadow:0 0 0 6px rgba(217,119,6,.55)}60%{box-shadow:0 0 0 6px rgba(217,119,6,.35)}} .reqhl{animation:reqpulse 2.6s ease-out 1;outline:2px solid #d97706!important;outline-offset:2px;border-radius:8px}
  .metatxt{font:inherit;padding:4px 8px;border:1px solid var(--line);border-radius:8px;min-width:200px} #m-cust .metatxt{font-weight:700;font-size:16px} .metatxt:placeholder-shown{border:2px dashed #d97706}
   tr.wgo{cursor:pointer} tr.wgo:hover td{background:var(--soft,#f1f5f9)}
  /* ===== v171 · report composer ===== */
  .rcc{width:640px}      
  body[data-phone][data-rc] #mtabs{display:none!important} 
  /* ===== v170 · Layout E "Clean" ===== */
  #lay-E{display:grid;grid-template-columns:56px minmax(0,1fr);min-height:100vh;gap:0} #lay-E[hidden]{display:none} #lay-E.open{grid-template-columns:232px minmax(0,1fr)}
/* v207 · porta aberta: sem rail, uma coluna so — e a calha de 56px volta para o conteudo */
#lay-E.hubonly{grid-template-columns:minmax(0,1fr)}
/* v208 · enviar relatorio: o destino e a prontidao, antes do clique */
/* v210 · o peso por secao e o total */
  body[data-view="E"] .page{max-width:none;padding:0;margin:0;background:transparent;box-shadow:none;border-radius:0} body[data-view="E"] .page>h1,body[data-view="E"] .page>.sub,body[data-view="E"] .draft{display:none}
  .erail{position:sticky;top:0;height:100vh;box-sizing:border-box;background:var(--panel,#fff);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:8px 8px;gap:2px;overflow:hidden;cursor:pointer;z-index:5}
  .erail button{display:flex;align-items:center;gap:12px;width:100%;height:40px;border:0;background:transparent;border-radius:10px;padding:0 6px;font:inherit;font-size:13px;color:var(--ink2);cursor:pointer;text-align:left;white-space:nowrap}
  .erail button:hover{background:var(--soft,#f1f5f9)} .erail button[aria-pressed="true"]{background:#e0ecf8;color:var(--accent);font-weight:700} 
  .erail .eic{position:relative;width:28px;min-width:28px;text-align:center;font-size:18px;line-height:1} .erail .enm{display:none;overflow:hidden;text-overflow:ellipsis} #lay-E.open .erail .enm{display:inline}
  .erail .esep{height:1px;background:var(--line);margin:6px 4px} .ebd{position:absolute;top:-6px;right:-8px;background:var(--danger,#c62828);color:#fff;font-size:9.5px;font-weight:700;border-radius:8px;padding:1px 4px;line-height:1.2} .ebd.w{background:#b45309} .ebd.n{background:var(--accent);color:var(--on-acc)}
  .emain{min-width:0;padding:0 14px 20px;display:flex;flex-direction:column;gap:12px} #lay-E.has-drawer:not(.wide) .emain{padding-right:580px}
  .etop{position:sticky;top:0;z-index:4;background:var(--panel,#fff);border-bottom:1px solid var(--line);margin:0 -14px 2px;padding:8px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap} .etop b{font-family:Archivo,sans-serif;font-size:17px} .etop .em{color:var(--muted);font-size:13px} .etop .esp,.ehd .esp,.ebk .esp{flex:1}
  .etop button,.ehd button{font:inherit;font-size:12.5px;padding:5px 11px;border:1px solid var(--line);background:var(--panel,#fff);color:var(--ink2);border-radius:8px;cursor:pointer} .etop button.pri{background:var(--accent);border-color:var(--accent);color:var(--on-acc);font-weight:700} .etop .erailbtn{font-size:16px;padding:3px 9px} .ehd button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);font-weight:700}
  #emain-map>[data-blk]>h2,#emain-lines>[data-blk]>h2,#emain-sum>[data-blk]>h2{margin-top:6px} #emain-sum .cards{margin-bottom:0}
  .edrawer{position:fixed;top:0;right:0;bottom:0;width:560px;max-width:100vw;background:var(--panel,#fff);border-left:1px solid var(--line);box-shadow:-10px 0 28px rgba(0,0,0,.10);z-index:6;display:flex;flex-direction:column} .edrawer[hidden]{display:none} #lay-E.wide .edrawer{width:calc(100vw - 56px)} #lay-E.wide.open .edrawer{width:calc(100vw - 232px)}
  .ehd{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)} .ehd b{font-family:Archivo,sans-serif;font-size:16px} .ebody{padding:10px 16px 24px;overflow:auto;flex:1;min-width:0}
   /* long explanations → 📖 */
  body[data-view="E"] .math,body[data-view="E"] h2 .tag{display:none} #lay-E.showmath .ebody .math,#lay-E.showmath .ebody h2 .tag{display:block} #lay-E.showmath .ebody h2 .tag{display:inline}
  .ebook{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:8px} .ebk{display:flex;align-items:center;gap:8px} .ebk button{font:inherit;font-size:12px;padding:3px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel,#fff);cursor:pointer} .ebm{color:var(--muted);font-size:12.5px;margin-top:6px;line-height:1.45}
  #eset .viewrow,#eset #sectrow,#eset .jobrow,.ebody .viewrow,.ebody #sectrow,.ebody .jobrow{margin:0 0 14px} .ebody .jobrow{flex-wrap:wrap} .ebody #sheeturl{width:100%!important;box-sizing:border-box}
  @media print{body[data-view="E"] .erail,body[data-view="E"] .etop,body[data-view="E"] .edrawer{display:none!important} body[data-view="E"] #lay-E{display:block} body[data-view="E"] .emain{padding:0!important}}
  @media print{.viewrow,.rail,.tabs,.drawer,.cchips{display:none!important} body[data-view] .page{max-width:none;padding:0}    .wincard{display:none}}
  @media (max-width:900px){#a-two{grid-template-columns:1fr}  .rail{position:static;max-height:none} .drawer{position:static;max-height:none;border-left:none;border-top:1px solid var(--line)}}
  h1{font-size:26px;font-weight:800;margin:0 0 2px;letter-spacing:-.01em}
  h2{font-size:12.5px;font-weight:800;margin:22px 0 8px;padding-bottom:4px;border-bottom:2px solid var(--accent);color:var(--accent);text-transform:uppercase;letter-spacing:.1em}
  .sub{color:var(--muted);font-size:12px;margin:0 0 14px}
  .grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;font-size:13px}
  .jobline{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;font-size:13px;margin:2px 0 8px} .jobline b{font-size:15px} .jobline span:empty{display:none} .jobline span{color:var(--ink2)}
     .wtab tr.sev-error td{background:#fff5f5}  
  .lines tbody tr:hover td,.lines tbody tr.active td{background:#e8f0fb!important} .lines tbody tr.active td:first-child,.lines tbody tr:hover td:first-child{box-shadow:inset 4px 0 0 var(--accent)} .lines tbody tr.active td{font-weight:600}  tr.ghost:hover td{background:#fafbfd!important;box-shadow:none}
  .wflag{border:none;background:none;cursor:pointer;font-size:12px;line-height:1;padding:0 2px} .wflag.error{color:#b91c1c} .wflag.warn{color:#d97706} .wflag.info{color:#6b7280}
  .card.hb{padding:8px 12px 9px;font-size:12px} .card.hb table{width:auto;border-collapse:collapse;font-size:12px} .card.hb td,.card.hb th{border:none;padding:1px 6px 1px 0;vertical-align:baseline;background:none;line-height:1.35}
  .card.hb .kv td:first-child{color:var(--muted);white-space:nowrap;padding-right:10px} .card.hb .kv td:empty::after{content:'—';color:#bbb}
  .card.hb .tqt th{font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);text-align:right;font-weight:600;padding-right:8px} .card.hb .tqt th:first-child{text-align:left} .card.hb .tqt td.n{padding-right:8px}
  .card.hb .tqt tr.total td{font-weight:700;border-top:1px solid var(--ink);padding-top:3px} .card.hb .bad{color:#b91c1c;font-weight:700}
  .grid b{color:var(--muted);font-weight:600}
  table{width:100%;border-collapse:collapse;font-size:12.5px}
  th,td{padding:5px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
  th{background:var(--soft);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink2)}
  td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
  tr.total td{font-weight:700;border-top:2px solid var(--ink);border-bottom:none}
  .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 4px}
  .card{border:1px solid var(--line);border-radius:6px;padding:10px 12px}
  .card .k{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
  .card .v{font-size:26px;font-weight:700;line-height:1.1;margin-top:2px}
  .card .d{font-size:11.5px;color:var(--muted)}
  .box{border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin:8px 0;font-size:12.5px}
  .sectrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:-2px 0 10px;font-size:12px} .sectrow .sch{font:inherit;font-size:11.5px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;cursor:pointer;color:var(--ink2)} .sectrow .sch[aria-pressed="true"]{background:var(--acc2);border-color:var(--accent);color:var(--accent);font-weight:600} .sectrow .sch.off{opacity:.55;text-decoration:line-through} .sectrow select,.sectrow input{font:inherit;font-size:12px;padding:3px 6px;border:1px solid var(--line);border-radius:8px;background:#fff} .sectrow .lbl{color:var(--muted);margin-right:2px} .sectrow .sep{width:1px;height:18px;background:var(--line);margin:0 4px} .sectrow[hidden]{display:none} @media print{.sectrow{display:none}}
  .box b{display:inline-block;min-width:70px}
  .bar{display:flex;height:14px;border:1px solid #999;margin-top:4px;background:#f59e0b}
  .bar span{display:block;height:100%}
  .const{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 18px;font-size:12.5px}
  .cg h4{margin:10px 0 4px;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);border-bottom:1px solid var(--line);padding-bottom:2px}
  .const label{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px dotted var(--line);padding:2px 0}
  .const input{width:72px;text-align:right;border:1px solid var(--line);border-radius:4px;padding:2px 4px;font:inherit}
  .note{font-size:11.5px;color:var(--muted);margin-top:6px}
  .tag{display:inline-block;background:#fef3c7;color:var(--warn);border-radius:4px;padding:0 6px;font-size:11px;font-weight:600}
  .draft{position:fixed;top:8px;right:12px;background:var(--warn);color:#fff;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:700}
  .pick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 14px}
  .pk{position:relative}
  .pk .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px}
  .pick.sys{align-items:end} .pick.sys select{width:100%;font:inherit;font-size:13px;padding:9px 30px 9px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05);appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23666' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center} 
  .pk button.cur{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit;cursor:pointer;text-align:left}
  .pk button.cur:focus{outline:2px solid var(--accent);outline-offset:1px}
  .chip{width:22px;height:22px;border-radius:4px;border:1px solid rgba(0,0,0,.25);flex:none}
  .pk .meta{font-size:11px;color:var(--muted)}
  .pk .list{position:absolute;z-index:5;top:100%;left:0;right:0;max-height:260px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.15);margin-top:4px;padding:4px}
  .pk .list[hidden]{display:none}
  .pk .opt{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:4px;cursor:pointer;font-size:12.5px}
  .pk .opt:hover,.pk .opt[aria-selected="true"]{background:#e8f0fa}
  .pk .opt .code{margin-left:auto;font-size:11px;color:var(--muted)}
  .pk input.filter{width:100%;margin:2px 0 6px;padding:5px 6px;border:1px solid var(--line);border-radius:4px;font:inherit}
  .cut th,.cut td{padding:4px 6px}
  .cut td.tg{font-size:11px;color:var(--muted)}
  .wchip{display:inline-block;width:11px;height:11px;border-radius:2px;border:1px solid rgba(0,0,0,.3);vertical-align:-1px;margin-right:4px}
  .stripe{display:inline-flex;width:24px;height:16px;border:1px solid rgba(0,0,0,.35);border-radius:3px;overflow:hidden;vertical-align:middle;cursor:default}
  .stripe i{flex:1;display:block}
  .stripe.ov{outline:2px solid var(--accent);outline-offset:1px}
  td.sc{padding:5px 2px;width:34px}
  .stripe{cursor:pointer}
  tr.editing td{background:#dbe6fb!important} tr.editing td:first-child{box-shadow:inset 4px 0 0 var(--accent)}
  tr.ovr td{background:#dbe6fb;border-bottom:3px solid var(--accent);padding:0 6px 12px} tr.ovr td:first-child{box-shadow:inset 4px 0 0 var(--accent)}
  .lines.has-edit{background:#f1f3f7}
  tr.ovr .ovg{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:10px 16px;align-items:end;font-size:12px;background:#fff;border:1px solid #c7d7f5;border-radius:12px;padding:10px 12px}
  tr.ovr .ovg .grp{display:flex;flex-direction:column;gap:4px} tr.ovr .ovg .gl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)} tr.ovr .ovg .ttl{grid-column:1/-1;font-weight:700;font-size:12.5px;color:var(--accent);display:flex;justify-content:space-between;align-items:center}
  tr.ovr select{font:inherit;font-size:12.5px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;max-width:none;width:100%;background:#fff}
  /* v707 (S1, Rafael 22/10): On the map — Together | Separate no editor da linha do PC, o par do passo Qty do telefone */
  .ovg .ovapart{display:flex;gap:4px} .ovg .ovapart button{flex:1 1 0;font:inherit;font-size:12.5px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);cursor:pointer} .ovg .ovapart button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-acc)}
  tr.ovr .achip{font-size:11.5px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;cursor:pointer} tr.ovr .achip.on{background:#1f6feb;border-color:#1f6feb;color:#fff;font-weight:600}
  tr.ovr .done{background:var(--accent);color:var(--on-acc);border-color:var(--accent);font-weight:700;padding:5px 12px;border-radius:9px}
  .lines tbody tr.dim td{opacity:.35;background:#f1f3f7}
  .card .crow{margin-top:4px;border-top:1px dashed var(--line);padding-top:4px} .card .crow>div{display:flex;justify-content:space-between;gap:6px;align-items:baseline;line-height:1.5} .card .crow .cn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .card .crow .cv{white-space:nowrap;flex:0 0 auto}
  .leadpos{background:#d1434b;color:#fff;font-weight:900;font-size:22px;letter-spacing:.12em;text-align:center;padding:10px;border-radius:10px;margin:6px 0 12px} .leadneg{display:inline-block;background:#e6f6ee;color:#1a6b3c;font-weight:700;padding:3px 10px;border-radius:99px;font-size:12px}
  .jobnotes{border-left:4px solid #d98a00;background:#fff8e6;padding:8px 12px;border-radius:0 8px 8px 0;margin:6px 0 12px;font-size:13px;white-space:pre-line}
   .mapbar button{font:inherit;font-size:12px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 12px;cursor:pointer;margin-left:6px}  
   .lines td.sc{white-space:nowrap;width:58px;padding-right:2px}
  tr.ovr .sw{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.3);vertical-align:-2px;margin-right:3px}
  tr.ovr button{font:inherit;font-size:11px;border:1px solid var(--line);background:#fff;border-radius:4px;padding:1px 6px;cursor:pointer}
  .seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;font-size:12px;margin:2px 0 8px} .seg[hidden]{display:none} /* v390: o hidden vale — o Table/Visual do trim sumia so no titulo e na lista, e o botao ficava orfao */
  .seg button{background:#fff;border:none;padding:4px 12px;cursor:pointer;font:inherit;color:var(--ink)}
  .seg button[aria-pressed="true"]{background:var(--accent);color:var(--on-acc)}
  .vbox{border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin:8px 0}
  .vbox h4{margin:0 0 4px;font-size:13px}
  .vbox svg{width:100%;height:auto;display:block;margin:4px 0}
  .sec-h{display:flex;align-items:center;justify-content:space-between;margin:14px 0 4px}
  .sec-h h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2)}
  table.lines{margin-bottom:4px}
  .lines input,.lines select{font:inherit;font-size:12.5px;border:1px solid transparent;border-bottom:1px dashed #bbb;background:transparent;padding:1px 3px;border-radius:3px;max-width:100%}
  .lines input:focus,.lines select:focus{border:1px solid var(--accent);outline:none;background:#fff}
  .lines input.num{width:50px;text-align:right}
  .lines select.sz{width:66px}
  .lines input[data-f=qty]{width:34px}
  /* v708 (Q1): Together | Separate ao lado do Qty — cinza = juntas no mapa, azul = separadas */
  .lines .qapart{display:inline-flex;align-items:center;justify-content:center;width:24px;height:22px;margin-left:2px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:#9aa3b2;cursor:pointer;vertical-align:middle} .lines .qapart svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linejoin:round} .lines .qapart[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-acc)}
  /* v709: no telefone a coluna do Qty e' estreita e o botao saia cortado (E8 phone-windows) — la o Together | Separate fica no passo Qty do editor */
  body[data-phone] .lines .qapart{display:none}
  .lines .qapart.qapart-none{visibility:hidden;cursor:default} /* v792: o lugar do Together | Separate nas linhas de 1 unidade — o numero do Qty alinha com o das outras */
  .lines td.n,.lines th.n{white-space:nowrap}
  .lines{font-size:12px}
  .lines td{padding:4px 3px}
  .lines th{padding:4px 3px;font-size:10.5px}
  .lines select.type{max-width:96px}
  .lines select.room{max-width:78px}
  .lines select.op{max-width:104px;font-size:11px}
.math details{border:1px dashed var(--accent);border-radius:8px;padding:6px 10px;margin:-4px 0 10px;background:#fbfcff} .math summary{cursor:pointer;font-size:12.5px;color:var(--accent);font-weight:600} .math table{margin-top:6px;font-size:12px} .math td{vertical-align:middle} .math input.ex{font:inherit;font-family:ui-monospace,Consolas,monospace;font-size:12px;width:100%;min-width:220px;padding:3px 6px;border:1px solid var(--line);border-radius:5px} .math input.ex.bad{border-color:#d1434b;background:#fdeaea} .math .ck{display:inline-block;background:#eef2ff;border-radius:4px;padding:0 5px;margin:1px 2px;font-size:11px;white-space:nowrap} .math .vv{display:inline-block;background:#e6f6ee;border-radius:4px;padding:0 5px;margin:1px 2px;font-size:11px;white-space:nowrap} .math button{font:inherit;font-size:11px;padding:1px 6px;border:1px solid var(--line);background:#fff;border-radius:4px;cursor:pointer}
  .lines input.notes{width:100%;min-width:170px;font:inherit;font-size:11.5px;border:none;border-bottom:1px dashed var(--line);background:transparent;padding:2px 0}
  .lines .del{border:none;background:none;color:#b91c1c;cursor:pointer;font-size:14px;padding:0 4px}
  /* v675 (C9 / D4 a): o ⧉ Duplicate antes do ×, como no cartao do telefone (.jv-ldup); a coluna fica presa na direita — aparece no Split view sem rolar a tabela.
     O fundo cobre o que rola por baixo: --panel; nos temas de painel translucido (hud, holo) o --paper. A copia nova pisca 2 s como o cartao (jv-lnew) */
  .lines td.lacts button{width:34px;height:30px;padding:0;margin-left:4px;border:1px solid var(--line);border-radius:8px;background:transparent;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;cursor:pointer}
  .lines td.lacts button:first-child{margin-left:0} .lines .dup{color:var(--accent,#1f5c99)}
  .lines .dup svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .lines :is(td,th).lacts{position:sticky;right:0;z-index:1;white-space:nowrap;box-shadow:-6px 0 8px -6px rgba(0,0,0,.2)}
  .lines td.lacts,.lines tr.keep td.lacts{background-color:var(--panel,#fff)}
  body:is([data-theme="hud"],[data-theme="holo"]) .lines td.lacts{background-color:var(--paper)}
  .lines tr.lnew td{animation:lnew 2s ease-out}
  /* v738 — a alca ⋮⋮ de arrastar a linha, na celula # (sem coluna nova). No iPad a alca cresce para o dedo e o touch-action:none impede que o dedo role a
     tabela. v740: a linha que vai LEVANTA (fundo, moldura azul, sombra) e segue o mouse; as outras andam e abrem o espaco vazio, com a moldura tracejada */
  .lines .lgrip{display:inline-flex;align-items:center;justify-content:center;width:16px;height:24px;margin:-4px 3px -4px -3px;border-radius:4px;color:var(--muted);font-size:12px;letter-spacing:-2px;vertical-align:middle;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}
  .lines .lgrip:hover{color:var(--accent);background:var(--acc2)}
  @media (pointer:coarse){ .lines .lgrip{width:28px;height:36px;font-size:15px} }
  .lines tr.ldrag{position:relative;z-index:5}
  .lines tr.ldrag td{background:var(--panel,#fff)!important;box-shadow:inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent),0 12px 18px -10px rgba(0,0,0,.45)!important}
  .lines tr.ldrag td:first-child{box-shadow:inset 2px 0 0 var(--accent),inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent),0 12px 18px -10px rgba(0,0,0,.45)!important}
  .lines tr.ldrag td:last-child{box-shadow:inset -2px 0 0 var(--accent),inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent),0 12px 18px -10px rgba(0,0,0,.45)!important}
  .ldragging>*:not(.ldrag){transition:transform .16s ease}
  .ldrop-slot{position:absolute;z-index:1;box-sizing:border-box;border:2px dashed var(--accent);border-radius:8px;background:var(--acc2);pointer-events:none;transition:top .16s ease}
  body.ldragnow,body.ldragnow *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}
  @keyframes lnew{0%,40%{background-color:#fff3c4}}
  .pend{color:var(--warn);font-size:11.5px}
  .flagw{position:relative;display:inline-flex;align-items:center;gap:2px}
  .flag{border:none;background:none;cursor:pointer;font-size:13px;line-height:1;padding:0 2px;color:var(--accent)}
  .flag.ov{color:var(--warn)}
  .pop{position:fixed;z-index:60;min-width:240px;max-width:300px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.15);padding:8px 10px;font-size:11.5px;line-height:1.4;white-space:normal;text-align:left}
  .pop b{color:var(--accent)} .pop button{font:inherit;font-size:11px;border:1px solid var(--line);background:#fff;border-radius:4px;padding:2px 7px;cursor:pointer;margin:6px 4px 0 0}
  .lines select.auto{color:var(--accent);font-style:italic;border-bottom-color:var(--accent)}
  @media print{.flag,.pop{display:none}}
  tr.ghost td{background:#fafbfd;border-top:1px dashed var(--accent)} tr.ghost select,tr.ghost input{opacity:.65} tr.ghost select:focus,tr.ghost input:focus{opacity:1}
  @media print{.lines input,.lines select{border:none;-webkit-appearance:none;appearance:none}.del,.dup,.lgrip,tr.ghost{display:none}.lines :is(td,th).lacts{position:static;box-shadow:none}}
  .info{position:relative;display:inline-block;margin:2px 0 6px}
  .ibtn{border:1px solid var(--line);background:#fff;border-radius:14px;cursor:pointer;font-size:12px;padding:1px 8px;color:var(--accent);line-height:18px}
  .ibtn[aria-expanded="true"]{background:var(--accent);color:var(--on-acc)}
  .ipop{position:absolute;z-index:40;top:100%;left:0;width:min(560px,80vw);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:10px 12px;font-size:12px;line-height:1.45;color:#374151;margin-top:4px}
  .ipop[hidden]{display:none}
  @media print{.info{display:none}
    .math,.seg,.mapbar button,.maptray,#cp-note,tr.ghost,tr.ovr,.del,.dup,.draft,.pk .list,[data-addfloor],#jobpick,.jobpick-l,#sheeturl,#sheetload,#sheetmsg,label:has([data-mdir]),label:has([data-mopen]){display:none!important}
    .lines tbody tr.dim td{opacity:1;background:transparent}
    h2{break-after:avoid;page-break-after:avoid} .card,.cards,#map-out svg,.vbox svg,.box svg,tr{break-inside:avoid;page-break-inside:avoid} thead{display:table-header-group}
    .cards{grid-template-columns:repeat(4,1fr)} #map-out svg{max-height:5.2in}
    .pick.sys select{border:none;background-image:none!important;padding-left:0}
    body{font-size:11px} .page{padding:0}
  }
  @media print{tr.ovr{display:none}.pk .list{display:none!important}.pk button.cur{border:none;padding:0}body{background:#fff}.page{box-shadow:none;margin:0;max-width:none}.draft{display:none}.const input{border:none;padding:0}}
  /* v52: manufacturer tags, editable To-check card, custom work, map hover card + editor */
  .toolrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 6px} .toolrow .seg{margin:0} .toolrow .info{margin:0}
  #mfrtags{display:inline-flex;gap:6px;align-items:center}     
  .tagmenu{position:absolute;z-index:45;top:100%;left:0;margin-top:4px;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:4px;display:flex;flex-direction:column} .tagmenu button{font:inherit;font-size:12.5px;text-align:left;border:none;background:none;padding:6px 10px;border-radius:6px;cursor:pointer;display:flex;flex-direction:column} .tagmenu button span{font-size:10.5px;color:var(--muted)} .tagmenu button:hover{background:#e8f0fa} .tagmenu button.on{background:var(--accent);color:var(--on-acc)} .tagmenu button.on span{color:#dbe6fb}
  .card.hb input.hv,.card.hb select.hv{font:inherit;font-size:12px;border:none;border-bottom:1px dashed #bbb;background:transparent;padding:0 2px;width:52px;text-align:left}   
  .mapcard{position:fixed;z-index:70;width:380px;max-width:92vw;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.22);padding:10px 12px;font-size:12.5px;pointer-events:none} .mapcard[hidden]{display:none}  .mapcard .no,.mdh .no{display:inline-block;color:var(--on-acc);border-radius:50%;width:22px;height:22px;line-height:22px;text-align:center;font-size:11px;font-weight:800;background:var(--accent)} .mchips{display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start} .mchip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:2px 9px;font-size:11.5px;background:#f7f9fc} .mchip.red{background:#d1434b;border-color:#d1434b;color:#fff;font-weight:700} .mchip.mfr{background:#eef4fb;border-color:#c7d7f5;color:var(--accent)} .mchip.cw{background:#fff8ee;border-color:#e07a00;color:#a35400} 
  .mdlg{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:16px} .mdlg[hidden]{display:none} .mdc{background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.35);width:720px;max-width:100%;max-height:92vh;overflow:auto;padding:12px 16px 14px;font-size:12.5px} .mdh{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px} .mdh button{border:none;background:none;font-size:20px;cursor:pointer;color:var(--muted)} .mdb{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap} .mdp{flex:0 0 auto;background:#f4f6f9;border-radius:10px;padding:8px} .mdf{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px 12px;min-width:280px} .mdf label{display:flex;flex-direction:column;gap:3px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)} .mdf{min-width:0} .mdf label{min-width:0} .mdf input,.mdf select{font:inherit;font-size:12.5px;text-transform:none;letter-spacing:0;color:var(--ink);padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%;min-width:0}   .mdft{display:flex;justify-content:flex-end;gap:8px;margin-top:10px} .mdft button{font:inherit;font-size:12px;border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 12px;cursor:pointer} .mdft .done{background:var(--accent);color:var(--on-acc);border-color:var(--accent);font-weight:700}
  @media print{.mapcard,.mdlg,#mfrtags{display:none!important} .card.hb .hv{border:none}}
/* ---- v96 phone layout (Rafael 2026-09-07: "checking it for mobile view and its pretty messed up") — one column, no fixed widths, wide tables scroll inside their box, dialogs fill the screen ---- */
@media (max-width:640px){
  html{-webkit-text-size-adjust:100%} body{font-size:13px}
  .page,body[data-view="C"] .page{margin:0;padding:10px 10px 40px;border-radius:0;border:none;box-shadow:none;max-width:100%;overflow-x:hidden}
  .draft{position:static;display:block;margin:0 0 8px;text-align:center;border-radius:6px;font-size:11px}
  .viewrow .seg3{display:flex;width:100%} .viewrow .seg3 button{min-width:0;flex:1;padding:6px 8px} .viewrow .seg3 button span{font-size:10px}
  .cards{grid-template-columns:1fr 1fr!important;gap:6px} .cards .card{padding:8px} .page>.cards[style*="auto auto"],.cards:has(.card.hb){grid-template-columns:1fr!important}
  .grid,.const,.pick,.mdf,.ovr .ovg{grid-template-columns:1fr 1fr!important}
  body[data-view="B"]{display:block} .has-drawer{grid-template-columns:1fr!important}
  .page table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .page table.kv,.page .card table{display:table;width:100%}
  .page table[hidden]{display:none} /* v466: o display:block acima vencia o hidden (a tabela do corte aparecia junto com o desenho) */
  .mdlg{padding:0;align-items:stretch;left:0;right:0;width:100%} .mdc{width:100%!important;max-width:100%;max-height:100dvh;border-radius:0;padding:8px 10px 14px;overflow-x:hidden;box-sizing:border-box}
  .mapcard,.notepop,.campop,.rpop,.cpop,.gpop,.pop{max-width:94vw} .pctip{width:min(260px,92vw)} 
  .const input{width:60px} 
  .jobrow .jobpick-l:nth-of-type(2){margin-left:0!important;flex-basis:100%} #sheeturl{width:100%!important;min-width:0;box-sizing:border-box} .jobrow{flex-wrap:wrap}
  .math input.ex{min-width:0}
  .rsbar{padding:6px} 
}
/* ---- v141 phone rule set (Mobile UX - Design Options §3 D1): on phones every tappable thing is at least 44 px (the 7–10 mm fingertip),
   text is 15 px and inputs 16 px — 16 px is what stops iOS Safari from zooming the page when a field is tapped. Desktop untouched. ---- */
@media (max-width:640px){
  body{font-size:15px}
  small,.muted,.sub,.hint,.foot,.dh,.lbl,.note{font-size:13px}
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea{font-size:16px!important;min-height:44px;padding:8px 10px;box-sizing:border-box;border-radius:10px}
  input[type="checkbox"],input[type="radio"]{width:24px;height:24px;margin:10px;flex:none}
  button,[role="button"],.sch,.dni,.chip,.pk button,.seg3 button,label.sw,.jobfiles button,#draftbar button{min-height:44px;padding:10px 14px;font-size:15px;touch-action:manipulation;-webkit-tap-highlight-color:rgba(36,92,143,.18)}
  .sectrow .sch{font-size:14px;padding:9px 14px;border-radius:999px}
  .seg3 button span{font-size:12px}
  .lines td,.lines th{padding:6px 6px} .lines input.num{width:64px} .lines select.sz{min-width:96px}
  /* photo check keeps its own compact toolbar until F1 (bottom toolbar) — but its buttons still get a 44 px hit area */
  .pcbar button,.pcbar .pcchip,.pcbar .pcseg button{min-height:44px;padding:8px 10px}
  a{padding:4px 0}
  #toast{font-size:15px;padding:12px 18px}
  /* table text and the small in-table controls (contract T/B toggles, grid pickers, checks) */
  td,th,td b,.ck,.tg,.vv,.gpk,.seg button,.pk .lbl,.card .k,.card .d,h2 .tag,.ibtn,.fixbtn,.info{font-size:14px}
  td button,[data-ctb],.gpk,.ibtn,.fixbtn{min-width:44px}
  input[type="checkbox"]{width:28px;height:28px}
}
/* ---- v142 phone mode (Mobile UX - Design Options §3 A1 + C1). body[data-phone] is set by phoneActive(): Auto = screen ≤640 px, or forced from the Phone/PC select.
   PC layouts A/B/C/D are untouched; on the phone the page becomes one tab at a time with a fixed bottom bar, and every popover becomes a bottom sheet with a Done pill. ---- */
body[data-phone] .viewrow,body[data-phone] #sectrow,body[data-phone] .draft{display:none!important}
body[data-phone]:not([data-mtab="more"]) .jobrow{display:none!important}
body[data-phone] .jobrow{flex-direction:column;align-items:stretch;gap:10px;font-size:15px} body[data-phone] .jobrow .jobpick-l{margin:0!important} body[data-phone] .jobrow select,body[data-phone] .jobrow input{width:100%!important} body[data-phone] .jobfiles{display:flex;flex-wrap:wrap;gap:8px}
body[data-phone] .page{padding-bottom:calc(96px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto}
body[data-phone] h1{font-size:22px;margin:6px 0 0} body[data-phone] .sub{font-size:12px;margin:0 0 6px}
body[data-phone] #lay-M{display:block}
/* v148: dialogs on the phone — the page itself never pinch-zooms (the photo / 3-D surfaces keep their own pinch), panels are the screen width, drawings keep their ratio */
html:has(body[data-phone]){overflow-x:hidden} body[data-phone]{overflow-x:hidden;touch-action:pan-x pan-y}
body[data-phone] .mdlg{padding:0!important;align-items:stretch;left:0;right:0;width:100%} body[data-phone] .mdc{width:100%!important;max-width:100%!important;max-height:100dvh;border-radius:0;overflow-x:hidden;box-sizing:border-box}
body[data-phone] .mdc svg#elevsvg,body[data-phone] .mdc svg#applymap{width:100%!important;height:auto!important;max-width:100%} body[data-phone] .mdc .seg3{max-width:100%;overflow-x:auto} body[data-phone] .mdh>.note,body[data-phone] .mdh>span.note{display:none}
/* while the measure sheet is open a toast sits under the header, never over the tap fields */
body[data-phone][data-mz] #toast{top:60px;bottom:auto} body[data-mz] #mtabs{display:none!important} 
#mhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 12px;min-height:44px} #mhead b{font-size:19px;line-height:1.2} #mhead span{color:var(--muted);font-size:13px} #mhead button{margin-right:auto}
#mtabs{position:fixed;left:0;right:0;bottom:0;z-index:1800;display:grid;grid-template-columns:repeat(6,1fr);gap:2px;background:var(--panel,#fff);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px rgba(0,0,0,.08)} #mtabs[hidden]{display:none}
#mtabs button{min-height:54px;border:none;background:transparent;font:inherit;font-size:11.5px;color:var(--ink2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:12px;padding:4px 2px;position:relative;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#mtabs button svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#mtabs button[aria-pressed="true"]{color:var(--accent);background:var(--acc2);font-weight:700}
#mtabs button .bd{position:absolute;top:3px;left:calc(50% + 6px);min-width:18px;height:18px;border-radius:9px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;line-height:1} #mtabs button .bd.w{background:#b45309} #mtabs button .bd.n{background:var(--accent);color:var(--on-acc)}
.msheet{display:flex;flex-direction:column;gap:10px;margin-bottom:14px} .msheet h3{margin:10px 0 0;font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.msheet .mrow{display:flex;align-items:center;gap:12px;min-height:54px;border:1px solid var(--line);border-radius:12px;padding:8px 14px;background:var(--panel,#fff);font:inherit;font-size:16px;color:var(--ink);text-align:left;width:100%;cursor:pointer} .msheet .mrow small{margin-left:auto;color:var(--muted);font-size:13px} .msheet .mrow svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--accent);flex:none}
.mseg{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel,#fff)} .mseg button{flex:1;min-height:48px;border:none;background:transparent;font:inherit;font-size:15px;color:var(--ink2)} .mseg button[aria-pressed="true"]{background:var(--acc2);color:var(--accent);font-weight:700}
.msheet select{width:100%}
#mphotos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px} #mphotos button{min-height:66px;font:inherit;font-size:16px;font-weight:700;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px} #mphotos button small{font-weight:400;color:var(--muted);font-size:13px}
/* C1: every popover is a bottom sheet on the phone */
body[data-phone] :is(.pop,.gpop,.cpop,.notepop,.campop,.rpop,.mapcard,.pctip,.ipop,.tagmenu,.pk .list){position:fixed!important;left:0!important;right:0!important;top:auto!important;bottom:0!important;width:100%!important;max-width:100%!important;min-width:0!important;max-height:80dvh;overflow:auto;border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.3);z-index:1900;padding:18px 16px calc(90px + env(safe-area-inset-bottom))!important;box-sizing:border-box;transform:none!important;margin:0!important;font-size:15px}
body[data-phone] :is(.pop,.gpop,.cpop,.notepop,.campop,.rpop,.mapcard,.ipop,.tagmenu) button{min-height:44px}
#sheetdone{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom));z-index:1950;min-height:50px;padding:10px 34px;border-radius:999px;border:none;background:var(--accent);color:var(--on-acc);font:inherit;font-size:17px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.35);cursor:pointer} #sheetdone[hidden]{display:none}
@media print{#mtabs,#sheetdone,#lay-M{display:none!important}}
/* ---- v143 Measure tool (Measure Tool - Design.md): the phone tab for entering windows on site — clean map, hold to add, wheel pickers, drawing + chips ---- */
#mtabs{grid-template-columns:repeat(7,1fr)} #mtabs button{font-size:10.5px}
 body[data-mtab="measure"] #mapsvg{touch-action:none;-webkit-user-select:none;user-select:none}
.mzhint{display:flex;align-items:center;gap:10px;border:1px dashed var(--accent);border-radius:12px;padding:10px 12px;margin:0 0 10px;color:var(--ink2);font-size:14px} .mzhint svg{width:26px;height:26px;stroke:var(--accent);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
 @keyframes mzr{from{width:16px;height:16px;opacity:.95}to{width:96px;height:96px;opacity:0}}
/* v148 colour families — one hue per field (Measure Tool - Design §4d) */
#mz [data-mzt="type"]{--mzc:#1f5fa8;--mzs:#e3eefb;--mzt:#1f5fa8} #mz [data-mzt="qty"]{--mzc:#6d4fc4;--mzs:#ece7fa;--mzt:#6d4fc4} #mz [data-mzt="size"]{--mzc:#d9640f;--mzs:#fdebdc;--mzt:#ae500c} #mz [data-mzt="leg"]{--mzc:#b8860b;--mzs:#fbf1d3;--mzt:#8c6608} #mz [data-mzt="grids"]{--mzc:#0f8b8d;--mzs:#dbf3f3;--mzt:#0d7879} #mz [data-mzt="temper"]{--mzc:#c62828;--mzs:#fbe1e1;--mzt:#c62828} #mz [data-mzt="room"]{--mzc:#2e8b3d;--mzs:#e0f3e3;--mzt:#287a36} #mz [data-mzt="photos"]{--mzc:#c2367e;--mzs:#fbe2ee;--mzt:#b63376} #mz [data-mzt="notes"]{--mzc:#5a6472;--mzs:#e8ebef;--mzt:#5a6472}
   @keyframes mzpop{0%{transform:scale(1)}35%{transform:scale(1.65)}100%{transform:scale(1)}}
 @keyframes mzflash{0%{box-shadow:0 0 0 0 var(--mzc,var(--accent));background:var(--mzs,var(--acc2))}60%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}              
/* v309: o #mz (o Measure tool) mudou-se para js/tools/window-editor/window-editor.css — e' da ferramenta */ 
       @keyframes mzb{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}} 
#mzplace{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom));z-index:1850;display:flex;gap:8px} #mzplace button{min-height:50px;padding:10px 20px;border-radius:999px;border:none;font:inherit;font-size:16px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.3)} #mzplace .ok{background:var(--good);color:#fff} #mzplace .edit{background:#fff;color:var(--ink)} #mzplace[hidden]{display:none}
body[data-phone] #toast{bottom:calc(150px + env(safe-area-inset-bottom));left:10px;right:10px;max-width:none;transform:none;width:auto;border-radius:14px;white-space:normal;font-size:15px;line-height:1.35;padding:12px 14px} body[data-phone] #toast span{flex:1;min-width:0} body[data-phone] #toast button{flex:none}
/* v146 (Rafael's phone bug list): sideways-scrolling photo-check bars, one look for every close button, sticky dialog header */
.mzjob{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px} .mzjob input{flex:1 1 140px} .mzjob button{min-height:44px;border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:12px;font:inherit;font-size:15px;font-weight:600;padding:8px 14px;margin-left:auto}
@media print{#mz,#mzplace{display:none!important}}
/* ---- v145 Measure tool: picker styles per tab (double-tap a nav icon), standard-size wheel + tick, map loupe while dragging ---- */
.mzpick{position:fixed;inset:0;z-index:1960;background:rgba(20,30,50,.45);display:flex;align-items:flex-end} .mzpick[hidden]{display:none}
.mzpick .sheet{background:var(--paper);width:100%;border-radius:18px 18px 0 0;padding:14px 14px calc(18px + env(safe-area-inset-bottom))} .mzpick h4{margin:0 0 10px;font-size:15px;font-family:Archivo,sans-serif} .mzpick .opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mzpick .opts button{min-height:64px;border:2px solid var(--line);border-radius:14px;background:#fff;font:inherit;font-size:16px;font-weight:600;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px} .mzpick .opts button small{font-weight:400;color:var(--muted);font-size:12px} .mzpick .opts button[aria-pressed="true"]{border-color:var(--accent);background:var(--acc2);color:var(--accent)} .mzpick .opts button svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mzpick .sheet.look{max-height:88dvh;overflow:auto}           .mzpick .swatch{width:36px;height:36px;flex:0 0 36px;aspect-ratio:1;min-height:0;border-radius:50%;border:2px solid var(--line);padding:0;position:relative} .mzpick .swatch[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--acc2)} .mzpick .swatch[aria-pressed="true"] i{position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 2px #fff}  
 @keyframes mztick{from{transform:translateY(-3px)}to{transform:none}}
#mzloupe{position:fixed;left:8px;right:8px;top:8px;height:200px;z-index:1850;border:2px solid var(--accent);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.35);pointer-events:none} #mzloupe[hidden]{display:none}   #mzloupe .lab{position:absolute;left:8px;bottom:6px;background:rgba(31,47,66,.85);color:#fff;font-size:12px;padding:3px 8px;border-radius:8px}
.mzrow{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px} .mzrow button{min-height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit;font-size:15px;color:var(--ink);padding:8px 14px;display:inline-flex;align-items:center;gap:8px} .mzrow button b{background:var(--acc2);color:var(--accent);border-radius:999px;padding:0 8px;font-size:13px} .mzrow button.mzadd{background:var(--accent);color:var(--on-acc);border-color:var(--accent);font-weight:700} .mzrow button.mzadd svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8} .mzrow button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}
/* ---- v97 selects: one chevron drawn in em so it zooms with the text (Rafael: the native arrows stayed big when the page was zoomed out) ---- */
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23555' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right .45em center!important;background-size:.6em auto!important;padding-right:1.5em!important}
select[multiple],select[size]{background-image:none!important;padding-right:.5em!important}
/* v198 · R12 — no iPhone, campo com fonte menor que 16px faz o Safari dar zoom na pagina inteira. Uma regra so, apenas no telefone, sem tocar nos ~30 seletores existentes. */body[data-phone] input,body[data-phone] select,body[data-phone] textarea{font-size:16px!important}body[data-phone] input[type=checkbox],body[data-phone] input[type=radio],body[data-phone] input[type=range],body[data-phone] input[type=color]{font-size:inherit!important}/* v205 · a porta e a primeira tela nas duas larguras. R4 altura: alvo de 46px no PC e 56 no telefone. R8 tela de navegacao: ordem de leitura. R11: nada abaixo de 44. Usa .seg3, .eic e .ebd do proprio app. */#emain-hub[hidden],#emain-back[hidden]{display:none}.hubl{font:700 8px/1 ui-monospace,monospace;letter-spacing:.11em;color:var(--muted);margin:2px 0 8px}.hubwrap{max-width:840px}.hubsec{margin:0 0 18px}.hubl{font:700 8px/1 ui-monospace,monospace;letter-spacing:.11em;color:var(--muted);margin:0 0 9px;display:flex;align-items:center;gap:9px}.hubl::after{content:'';flex:1;height:1px;background:var(--line)}.hubg{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(252px,1fr))}.hubg .seg3{display:flex;align-items:center;gap:11px;min-height:58px;padding:9px 13px;width:100%;border-radius:11px;text-align:left}.hubg .seg3:hover{border-color:var(--accent)}.hubg .seg3[disabled]{opacity:.4;cursor:default}.hubg .seg3[disabled]:hover{border-color:var(--line)}.hubg .eic{font-size:19px;flex:none;width:24px;text-align:center;position:relative}
/* v207 · o icone da porta e SVG: precisa de tamanho explicito, e .erail usa display:flex,
   que empata em especificidade com [hidden] — sem o !important a barra nao sumiria. */
.hubg .eic svg{width:21px;height:21px;display:block;margin:0 auto;color:var(--ink2)}
.hubg button:disabled .eic svg{opacity:.45}
.erail[hidden]{display:none!important}.hubg .enm{display:block;font:600 13px/1.25 Archivo,sans-serif;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hubg .est{display:block;font:400 11px/1.35 inherit;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.hubg .etx{min-width:0;flex:1}.tback{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:9px;min-height:38px;padding:0 13px;font:inherit;font-size:12.5px;color:var(--ink);cursor:pointer}.tback:hover{border-color:var(--accent)}body[data-phone] .hubwrap{max-width:none}body[data-phone] .hubg{grid-template-columns:1fr}body[data-phone] .hubg .seg3{min-height:60px}body[data-phone] .tback{min-height:44px}
/* v569 — a janela sem troca (esboco "Janela sem troca", P1–P3; js/job/keep.js): o circulo Replace antes do ×, a linha listrada, a etiqueta no lugar
   de Grids / Temp e o balao (um .pop do openFlags). Cores pelos tokens — o tema escuro os troca. Na impressao a coluna do circulo some (a etiqueta fica). */
.lines .kp-th{width:58px}
.lines .rcirc{width:26px;height:26px;border-radius:50%;border:2px solid var(--good);background:transparent;color:var(--good);display:inline-grid;place-items:center;padding:0;cursor:pointer;vertical-align:middle}
.lines .rcirc.off{border-style:dashed;border-color:var(--muted);color:var(--bad)}
.lines .rcirc:focus-visible,.lines .kp-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.kp-ic{width:14px;height:14px;flex:none;vertical-align:-2px}
.kp-no{color:var(--bad)}
.lines .kp-num{margin-left:3px;width:12px;height:12px}
.lines tr.keep td{background:repeating-linear-gradient(135deg,var(--soft) 0 8px,transparent 8px 16px)}
.lines .kp-chip{display:inline-flex;align-items:center;gap:5px;border:1.5px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);font:700 10.5px/1 Archivo,sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;cursor:pointer;white-space:nowrap}
.lines .kp-chip b{font-weight:700;color:inherit;text-transform:none;letter-spacing:0;font-size:11.5px}
.kp-tot{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink2)}
.pop.kpop{width:300px;padding:12px;font-size:12.5px;display:flex;flex-direction:column;gap:8px}
.kpop .kp-hd{font:800 13px/1.2 Archivo,sans-serif;color:var(--ink)} .kpop .kp-hd span{font-weight:500;color:var(--muted)}
.pop.kpop .kp-opt{display:flex;gap:9px;align-items:flex-start;width:100%;margin:0;text-align:left;border:1.5px solid var(--line);border-radius:9px;padding:8px 10px;background:transparent;color:var(--ink);font-size:12.5px}
.pop.kpop .kp-opt.on{border-color:var(--ink);background:var(--soft)}
.kpop .kp-opt b{color:var(--ink);display:block} .kpop .kp-opt small{display:block;color:var(--muted);font-size:11.5px}
.kpop .kp-dot{flex:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--muted);margin-top:1px;box-sizing:border-box}
.kpop .kp-opt.on .kp-dot{border:5px solid var(--ink)}
.kpop .kp-works{display:flex;flex-wrap:wrap;gap:6px}
.pop.kpop .kp-work{display:inline-flex;align-items:center;gap:5px;margin:0;border:1.5px solid var(--line);border-radius:999px;padding:5px 9px;background:transparent;color:var(--ink2);font-size:12px;font-weight:600}
.pop.kpop .kp-work.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.kpop .kp-mat{font:700 9px/1 Archivo,sans-serif;font-style:normal;letter-spacing:.06em;text-transform:uppercase;background:#e4f2e9;color:#1a6b3c;border-radius:4px;padding:3px 4px}
.kpop .kp-work.on .kp-mat{background:var(--good);color:#fff}
.kpop .kp-note{width:100%;font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--paper);color:var(--ink)}
.kpop .kp-foot{font-size:11px;color:var(--muted)}
.pop.kpop .kp-close{align-self:flex-end;margin:0}
@media print{.lines .kp-th,.lines .kp-td{display:none}}
/* v804 (contraste dos temas, T3; esboco aprovado 04/11): nos 4 escuros a pilula ISLO / OSLI (.vp) e o Add photos (.pcload) seguem o tema */
body:is([data-theme="dark"],[data-theme="hud"],[data-theme="holo"],[data-theme="sketchdark"]) .vp{color:var(--accent);background:var(--acc2);border-color:var(--line)}
body:is([data-theme="dark"],[data-theme="hud"],[data-theme="holo"],[data-theme="sketchdark"]) .pcload{background:var(--panel);color:var(--ink)}
