:root{
  --brown:#5A3827;--brown-2:#3E2519;--brown-soft:#F2EAE5;--gold:#C9A13A;--gold-2:#E1C46B;
  --white:#FFFFFF;--ink:#2E211A;--muted:#806E63;--line:#E8DDD6;--ok:#4C9E64;--cloud:#6F7C91;
  --danger:#B54B4B;--shadow:0 20px 45px rgba(62,37,25,.18)
}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--brown-soft);color:var(--ink);overflow:hidden}button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.app-shell{height:100vh;height:100dvh;background:var(--white);display:flex;flex-direction:column}
.topbar{min-height:72px;padding:10px 16px calc(10px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(201,161,58,.28);background:linear-gradient(135deg,var(--brown-2),var(--brown));z-index:20;flex:0 0 auto;gap:12px}.brand{width:145px;max-height:44px;object-fit:contain;object-position:left center;flex:0 1 auto}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.installation-btn{height:36px;max-width:180px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.08);color:white;padding:0 11px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;min-width:0}.installation-btn span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{color:var(--gold-2);font-size:15px}.mode-badge{appearance:none;-webkit-appearance:none;cursor:pointer;height:34px;padding:0 11px;border-radius:999px;display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;letter-spacing:.08em;background:rgba(255,255,255,.10);color:var(--white);border:1px solid rgba(255,255,255,.12);white-space:nowrap}.mode-badge .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(201,161,58,.15)}.mode-badge.local{background:#EDF7F0;color:#347247}.mode-badge.local .dot{background:var(--ok);box-shadow:0 0 0 4px rgba(76,158,100,.13)}.mode-badge.cloud{background:#EEF1F5;color:#566173}.mode-badge.cloud .dot{background:var(--cloud);box-shadow:0 0 0 4px rgba(111,124,145,.13)}.mode-badge.checking .dot{animation:pulse 1s infinite}.icon-btn{width:38px;height:38px;border:1px solid rgba(255,255,255,.20);border-radius:12px;background:rgba(255,255,255,.08);color:var(--white);display:grid;place-items:center;font-size:18px;flex:0 0 auto}
.viewer-wrap{position:relative;flex:1;min-height:0;background:#F7F4F1}.viewer-panel{position:absolute;inset:0;background:white}#dashboardFrame{border:0;width:100%;height:100%;display:block;background:white}
.loading-screen,.error-panel,.welcome-panel{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:22px;background:linear-gradient(145deg,#fff,#F5EEE9);overflow:auto}.welcome-panel{justify-content:flex-start;padding-top:34px;padding-bottom:34px}.welcome-card{width:min(460px,100%);background:white;border:1px solid var(--line);border-radius:26px;padding:24px;box-shadow:var(--shadow);text-align:left}.welcome-icon{width:70px;height:70px;object-fit:contain;display:block;margin:0 auto 10px}.centered{text-align:center}.welcome-card h1{text-align:center;margin:5px 0 8px;color:var(--brown);font-size:24px}.welcome-copy{text-align:center;margin:0 auto 20px;color:var(--muted);font-size:13px;line-height:1.5;max-width:390px}.privacy-note{text-align:center;color:var(--muted);font-size:10px;margin:14px 0 0}.install-form{text-align:left}.wide{width:100%}
.splash-icon{width:82px;height:82px;object-fit:contain;margin-bottom:18px;filter:drop-shadow(0 10px 24px rgba(90,56,39,.14))}.loading-screen h1{margin:0 0 8px;font-size:24px;color:var(--brown)}.loading-screen p{margin:0;color:var(--muted);font-size:14px}.loader{width:34px;height:34px;border:3px solid #E9DDD5;border-top-color:var(--gold);border-radius:50%;margin-top:22px;animation:spin .8s linear infinite}
.error-card{max-width:380px;background:white;border:1px solid var(--line);border-radius:24px;padding:26px;box-shadow:var(--shadow)}.error-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:#F9EAEA;color:var(--danger);font-size:28px;font-weight:900}.error-card h2{margin:0 0 8px;color:var(--brown)}.error-card p{margin:0 0 20px;color:var(--muted);line-height:1.45}.error-actions{display:grid;gap:9px}
.primary-btn,.secondary-btn,.danger-btn{min-height:44px;border-radius:13px;padding:10px 14px;font-weight:800}.primary-btn{border:0;background:linear-gradient(135deg,var(--gold),var(--gold-2));color:var(--brown-2)}.secondary-btn{border:1px solid var(--line);background:white;color:var(--brown)}.danger-btn{border:1px solid #E9CACA;background:#FFF7F7;color:var(--danger)}
.drawer{position:fixed;inset:0;z-index:50;pointer-events:none;visibility:hidden}.drawer.open{pointer-events:auto;visibility:visible}.drawer-backdrop{position:absolute;inset:0;background:rgba(46,33,26,.32);opacity:0;transition:.22s}.drawer-card{position:absolute;top:0;right:0;height:100%;width:min(430px,94vw);background:white;padding:22px;padding-top:calc(22px + env(safe-area-inset-top));box-shadow:-20px 0 50px rgba(46,33,26,.18);transform:translateX(102%);transition:.25s;overflow:auto}.drawer.open .drawer-backdrop{opacity:1}.drawer.open .drawer-card{transform:translateX(0)}.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.drawer-head h2{margin:3px 0 0;color:var(--brown)}.eyebrow{margin:0;color:var(--gold);font-size:10px;letter-spacing:.14em;font-weight:900}.connection-card{background:var(--brown);color:white;border-radius:17px;padding:16px;margin-bottom:20px;display:flex;justify-content:space-between;gap:12px;align-items:center}.connection-card span{opacity:.7;font-size:12px}.connection-card strong{font-size:13px;text-align:right}
label{display:block;margin:15px 0 6px;color:var(--brown);font-size:12px;font-weight:800}input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 13px;color:var(--ink);background:#FCFAF9;outline:none;font-size:16px}input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,161,58,.12)}.drawer-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.hint{font-size:11px;line-height:1.45;color:var(--muted);margin-top:16px}.section-divider{height:1px;background:var(--line);margin:20px 0}.drawer-card .danger-btn{margin-top:10px}.drawer-card .icon-btn{border:1px solid var(--line);background:white;color:var(--brown)}.form-error{color:var(--danger);background:#FFF3F3;border:1px solid #F0D0D0;border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.4;margin:13px 0 0}
.popover{position:fixed;inset:0;z-index:45}.popover-backdrop{position:absolute;inset:0;background:rgba(46,33,26,.12)}.installation-menu-card{position:absolute;top:calc(68px + env(safe-area-inset-top));right:14px;width:min(330px,calc(100vw - 28px));background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:10px;max-height:65%;overflow:auto}.menu-title-row{display:flex;align-items:center;justify-content:space-between;padding:7px 6px 10px;color:var(--brown)}.mini-action{border:0;background:#F7F1EC;color:var(--brown);border-radius:10px;padding:8px 10px;font-size:11px;font-weight:800}.installation-list{display:grid;gap:5px}.installation-row{width:100%;border:1px solid transparent;background:white;border-radius:12px;min-height:48px;padding:8px 11px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--ink)}.installation-row.active{background:#FBF6EA;border-color:#E7D49C}.installation-row-name{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.installation-row-mark{color:var(--gold);font-weight:900;margin-left:10px}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}
@media(max-width:620px){.topbar{padding-left:10px;padding-right:10px}.brand{width:104px}.installation-btn{max-width:112px;padding:0 8px}.mode-badge{padding:0 8px;font-size:9px}.icon-btn{width:36px;height:36px}.welcome-panel{padding:18px 14px 30px}.welcome-card{padding:20px;border-radius:22px}.drawer-actions{grid-template-columns:1fr}.mode-badge .dot{width:7px;height:7px}}
@media(min-width:850px){.topbar{padding-left:24px;padding-right:24px}.brand{width:170px}.mode-badge{font-size:11px}.drawer-card{padding-left:28px;padding-right:28px}}

.mode-badge:active{transform:scale(.96)}

/* V7 — indicador único de conexão */
.mode-badge.online{background:#EDF7F0;color:#347247;border-color:rgba(76,158,100,.22)}
.mode-badge.online .dot{background:#32B95C;box-shadow:0 0 0 4px rgba(50,185,92,.14),0 0 10px rgba(50,185,92,.55)}
.mode-badge.offline{background:#FFF0F0;color:#A63D3D;border-color:rgba(181,75,75,.22)}
.mode-badge.offline .dot{background:#D9534F;box-shadow:0 0 0 4px rgba(217,83,79,.12)}
