:root{--bg:#eceeef;--bg-op:.2;--surface:#fff;--ink:#15212b;--muted:#5b6b77;--line:#d3dbe1;--accent:#0b6f94;--accent-ink:#fff;--accent-soft:#dcedf3;--gold:#85660f;--zA:#2f9e44;--zB:#d9a400;--zC:#e8590c;--zD:#d92d20;--zN:#8a98a3;--zA-bg:#e3f4e6;--zB-bg:#fbf1cf;--zC-bg:#fde5d6;--zD-bg:#fbe0de;--zN-bg:#e9edf0;--s1:#0b6f94;--s2:#b5487a;--s3:#5f7f1f;--display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;--body:"Barlow","Segoe UI",Roboto,Arial,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111315;--bg-op:.16;--surface:#1d2023;--ink:#e8eaec;--muted:#9ea4a9;--line:#363b40;--accent:#4fb3d9;--accent-ink:#06202b;--accent-soft:#16323f;--gold:#c9a646;--zA:#4cc265;--zB:#f0c419;--zC:#ff8640;--zD:#ff5a4d;--zN:#7f8f9b;--zA-bg:#163222;--zB-bg:#352c0c;--zC-bg:#3a2112;--zD-bg:#3d1714;--zN-bg:#222e37;--s1:#4fb3d9;--s2:#e47aa9;--s3:#a3c95a;color-scheme:dark}}:root[data-theme=dark]{--bg:#111315;--bg-op:.16;--surface:#1d2023;--ink:#e8eaec;--muted:#9ea4a9;--line:#363b40;--accent:#4fb3d9;--accent-ink:#06202b;--accent-soft:#16323f;--gold:#c9a646;--zA:#4cc265;--zB:#f0c419;--zC:#ff8640;--zD:#ff5a4d;--zN:#7f8f9b;--zA-bg:#163222;--zB-bg:#352c0c;--zC-bg:#3a2112;--zD-bg:#3d1714;--zN-bg:#222e37;--s1:#4fb3d9;--s2:#e47aa9;--s3:#a3c95a;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45}html:before{inset:0;z-index:-1;pointer-events:none;background:url(/vibapp/fondo.jpg) 50%/cover no-repeat;opacity:var(--bg-op,.2)}body:before,html:before{content:"";position:fixed}body:before{inset:0 0 auto;height:env(safe-area-inset-top,0);z-index:10;background:var(--surface)}.wrap{max-width:720px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:12px 48px}header.bar{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}header.bar .in{max-width:720px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:10px;gap:10px}.brand,header.bar .in{display:flex;align-items:center}.brand{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.02em;line-height:1;gap:9px}.brand .bt{display:flex;flex-direction:column}.brand .logo{height:46px;width:auto;display:block;margin-block:-4px}.brand small{font-size:12px;font-weight:600;color:var(--gold);letter-spacing:.04em}.crumbs{display:flex;gap:6px;flex-wrap:wrap;font-size:13px;color:var(--muted);min-width:0}.crumbs button{background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer}h1,h2,h3{font-family:var(--display);font-weight:600;text-wrap:balance;margin:0}h1{font-size:28px;line-height:1.1}h2{font-size:20px;margin-top:22px}h3{font-size:17px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.stack{flex-direction:column}.row,.stack{display:flex;gap:10px}.row{flex-wrap:wrap;align-items:center}.list{flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.item,.list{display:flex}.item{align-items:center;gap:12px;padding:12px 14px;border:0;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;width:100%}.item:first-child{border-top:0}.item:hover{background:var(--accent-soft)}.item .main{flex:1 1;min-width:0}.item .t{font-weight:600}.item .s{font-size:13px;color:var(--muted)}.stripe{width:6px;align-self:stretch;border-radius:3px;background:var(--zN)}.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:13px;padding:2px 8px;border-radius:6px;background:var(--zN-bg);color:var(--ink);white-space:nowrap}.chip i{width:8px;height:8px;border-radius:50%;background:var(--zN);display:inline-block}.zA{background:var(--zA-bg)}.stripe.zA,.zA i{background:var(--zA)}.zB{background:var(--zB-bg)}.stripe.zB,.zB i{background:var(--zB)}.zC{background:var(--zC-bg)}.stripe.zC,.zC i{background:var(--zC)}.zD{background:var(--zD-bg)}.stripe.zD,.zD i{background:var(--zD)}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px}.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:8px 16px;gap:8px 16px}.kv div{min-width:0}.kv .k{font-size:12px;color:var(--muted)}.kv .v{font-weight:500;overflow-wrap:anywhere}.btn{font:inherit;font-weight:600;border-radius:8px;padding:10px 16px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer}.btn.ghost{background:transparent;color:var(--gold);border-color:var(--gold)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.item:focus-visible,.seg button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);min-width:0}input,select,textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 10px;width:100%}input.num{font-family:var(--mono);text-align:right}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex-wrap:wrap}.seg button{font:inherit;font-size:13px;padding:6px 10px;border:0;background:var(--surface);color:var(--ink);cursor:pointer}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.pt{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.pt>.hd{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--accent-soft)}.pt table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}.pt th:first-child{width:34%}.pt td,.pt th{padding:6px 8px;border-top:1px solid var(--line);text-align:left}.pt th{font-weight:500;color:var(--muted);font-size:12px}.pt td input{padding:7px 8px}.pt td.var{white-space:nowrap}.pt td.var small{display:block;color:var(--muted);font-size:11px}.scroll{overflow-x:auto}.warn{font-size:12px;color:var(--zC)}.note{font-size:13px}.legend,.note{color:var(--muted)}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}.legend span{display:inline-flex;align-items:center;gap:5px}.legend b{width:14px;height:3px;border-radius:2px;display:inline-block}.chart svg{width:100%;height:auto;display:block}.hist td,.hist th{padding:6px 8px;border-top:1px solid var(--line);font-size:13px;text-align:left;white-space:nowrap}.hist{border-collapse:collapse;width:100%}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-weight:500;z-index:20}.empty{padding:20px;text-align:center;color:var(--muted)}.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.btn.small{padding:6px 12px;font-size:13px}.sheet[hidden]{display:none}.grupos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:8px;gap:8px}.gbtn{display:flex;flex-direction:column;gap:2px;text-align:left;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer}.gbtn span{font-size:13px;color:var(--muted)}.gbtn small{font-size:12px;color:var(--muted)}.gbtn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.gbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;background:var(--zB-bg);border:1px solid var(--zB);border-radius:10px;padding:10px 14px;font-size:14px}.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px}.ph{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12px;color:var(--muted)}.ph a{display:block}.ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:var(--zN-bg)}.termo{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px}.sug{display:flex;flex-direction:column;gap:8px}.sug li{align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.sug li,.sug ul{display:flex;gap:10px}.sug ul{list-style:none;margin:0;padding:0;flex-direction:column}.sug li span{flex:1 1;min-width:200px}.tag{font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:4px;background:var(--accent-soft);color:var(--accent)}.pct,.tag{font-size:11px}.pct{font-family:var(--mono);color:var(--muted)}.pct.hi{color:var(--zC);font-weight:600}.pct.vh{color:var(--zD)}.due,.pct.vh{font-weight:600}.due{font-size:12px}.due.late{color:var(--zD)}.due.soon{color:var(--zC)}.due.ok{color:var(--muted)}.camera{position:relative;overflow:hidden}.btn svg{width:18px;height:18px;vertical-align:-3px;margin-right:6px;flex:none}.btn.camera{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:0;color:var(--accent)}.btn.photo{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.btn.thermal{background:var(--zC-bg);color:var(--zC);border-color:var(--zC)}.btn.ghost.camera{color:var(--gold)}.btn.home{display:inline-flex;align-items:center;gap:0}.btn.home svg{width:16px;height:16px;margin-right:5px;vertical-align:0}@media (max-width:480px){.btn.home span{display:none}.btn.home svg{margin-right:0}header.bar .btn.small{padding:6px 9px}header.bar .in{flex-wrap:wrap;row-gap:6px}header.bar .crumbs{order:3;flex-basis:100%}.brand{gap:6px;font-size:18px}.brand .logo{height:36px;margin-block:-2px}header.bar .in{gap:6px}header.bar .btn.small{padding:6px 7px}}.camera input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.hist .actions{white-space:nowrap}.ph textarea.obs{font-size:14px;padding:6px 8px;resize:vertical;min-height:52px}.esq{width:100%;max-width:680px;margin-inline:auto;height:auto;display:block;font-family:var(--body)}.esq .eq-b{fill:var(--accent-soft)}.esq .eq-b,.esq .eq-f{stroke:var(--muted);stroke-width:1.5}.esq .eq-f{fill:var(--bg)}.esq .eq-p{fill:var(--line);stroke:var(--muted);stroke-width:1}.esq .eq-s{fill:var(--muted)}.esq .eq-c{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}.esq .eq-l{opacity:.6}.esq .eq-k,.esq .eq-l{stroke:var(--muted);stroke-width:1}.esq .eq-k{stroke-dasharray:3 3}.esq .eq-m{stroke:var(--ink);stroke-width:2}.esq .eq-n{font:700 13px var(--body);text-anchor:middle}.esq .eq-t{font:600 15px var(--body);fill:var(--muted);text-anchor:middle}.esq .eq-x{fill:var(--surface);stroke-width:1.5}.esq .eq-h{font:500 17px var(--body);fill:var(--ink)}.esq .eq-d{font:700 17px var(--mono);fill:var(--muted)}.esq .eq-v{font:600 18px var(--mono);fill:var(--ink)}.esq .esq-pt{cursor:pointer}.esq .eq-a{stroke:var(--ink);stroke-width:1.5}.esq .esq-pt:focus{outline:none}.esq .esq-pt:focus-visible .eq-m{stroke:var(--accent);stroke-width:3}.ctc{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:8px;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;position:relative}.ctc .q{grid-column:1/-1;justify-self:end}.buscar{position:relative}.buscar svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.buscar input{padding-left:36px}.res-h{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:4px 0 -4px}.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.sheet{position:fixed;inset:0;z-index:30;background:var(--bg);display:flex;flex-direction:column}.sheet-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--surface);border-bottom:1px solid var(--line);padding:calc(10px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px))}.sheet-bar h3{margin-right:auto}.sheet-body{overflow:auto;flex:1 1;width:100%}.refimg{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.zt{border-collapse:collapse;width:100%;font-size:13px}.zt td,.zt th{border-top:1px solid var(--line);padding:6px 8px;text-align:left}.zt tr.on td{background:var(--accent-soft);font-weight:600}@media (prefers-reduced-motion:no-preference){.btn,.item{transition:background .15s}}.shell{display:block}#side{display:none}.cols,.cols>div,.pts{display:flex;flex-direction:column;gap:10px}.cols>div{min-width:0}.plano{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}.plano img{display:block;width:100%;height:auto}.plano.ubicando{cursor:crosshair;outline:2px dashed var(--accent);outline-offset:2px}.pin{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:0;background:none;border:0;padding:0;cursor:pointer;font:inherit}.pin b{font:600 12px var(--body);color:#fff;background:var(--zN);padding:2px 7px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.35)}.pin i{width:2px;height:10px;background:var(--ink)}.pin.zA b{background:var(--zA)}.pin.zB b{background:var(--zB);color:#15212b}.pin.zC b{background:var(--zC)}.pin.zD b{background:var(--zD)}.pin:focus-visible b{outline:2px solid var(--accent);outline-offset:2px}.side-h{font:600 12px var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:4px 10px}.side-l{display:flex;flex-direction:column}.side-l button{display:flex;align-items:center;gap:8px;text-align:left;background:none;border:0;border-radius:6px;padding:7px 10px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer;width:100%}.side-l button:hover{background:var(--accent-soft)}.side-l button[aria-current=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.side-l button.eq{padding-left:22px;font-size:13px}.side-l .dot{width:9px;height:9px;border-radius:50%;background:var(--zN);flex:none}.side-l .dot.zA{background:var(--zA)}.side-l .dot.zB{background:var(--zB)}.side-l .dot.zC{background:var(--zC)}.side-l .dot.zD{background:var(--zD)}.side-l .tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:1000px){.shell,header.bar .in{max-width:1400px}.shell{display:grid;grid-template-columns:270px minmax(0,1fr);grid-gap:20px;gap:20px;margin:0 auto;padding-inline:20px}#side{display:block;position:-webkit-sticky;position:sticky;top:64px;align-self:start;max-height:calc(100vh - 76px);overflow:auto;padding-block:16px;border-right:1px solid var(--line);padding-right:12px}.shell>.wrap{max-width:none;padding-inline:0;margin:0}#sync{max-width:1400px}.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.cols.wide-r{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.cols h2:first-child{margin-top:0}.pts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;align-items:start}.sheet-body.wrap{max-width:1100px;margin:0 auto}}.pie{max-width:1400px;margin:0 auto;padding:18px 16px 28px;font-size:13px;color:var(--muted);text-align:center}.pie a{color:var(--accent)}.acceso{max-width:400px;margin:56px auto 0;padding-inline:16px}.acceso .logo-grande{display:block;width:96px;margin:0 auto 14px}.acceso h1{margin:0}.acceso .err{color:var(--zD);font-size:14px;margin:0}.acceso .ok{color:var(--zA);font-size:14px;margin:0}.instalar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:50;max-width:480px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.25);font-size:14px}.instalar img{border-radius:9px;flex:none}.instalar .txt{flex:1 1;display:flex;flex-direction:column;gap:2px;line-height:1.25}.instalar .txt span{color:var(--muted);font-size:13px}.instalar .cerrar{background:none;border:0;font-size:22px;line-height:1;color:var(--muted);cursor:pointer;padding:2px 4px}.aviso-demo{background:var(--accent-soft);color:var(--ink);border-bottom:1px solid var(--line);padding:9px 16px;font-size:14px;line-height:1.4;text-align:center}.aviso-demo b{color:var(--accent)}