*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  --green:#009640;
  --green-dark:#007d35;
  --green-soft:#e8f7ee;
  --text:#1f2933;
  --muted:#737373;
  --input:#e9e9e9;
  --bg:#ffffff;
  --line:#e4e4e4;
  --shadow:0 14px 35px rgba(31,45,61,.08);
}
html,body{width:100%;min-height:100%;margin:0;background:#fff;font-family:'Source Sans Pro',Arial,Helvetica,sans-serif;color:var(--text);touch-action:manipulation;-webkit-text-size-adjust:100%;overscroll-behavior:none}
body{overflow-x:hidden}
button,input,select,textarea{font-family:'Source Sans Pro',Arial,Helvetica,sans-serif}
input,textarea,select{font-size:16px}
button{cursor:pointer}
.app{width:100%;max-width:620px;min-height:100vh;margin:0 auto;background:#fff;position:relative}
.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#6b7280;font-weight:700}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);z-index:9999;background:#102033;color:#fff;border-radius:999px;padding:11px 16px;font-size:14px;font-weight:700;box-shadow:0 10px 26px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:.22s ease;max-width:calc(100vw - 28px);text-align:center}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.loginPage{min-height:100vh;background:#fff;position:relative;overflow:hidden;padding:42px 13px 86px}
.loginBg{position:absolute;top:0;left:0;right:0;height:500px;background:url('../images/background_linhas.png') top center no-repeat;opacity:1;z-index:0;pointer-events:none}
.loginContent{position:relative;z-index:1}
.loginLogo{width:100%;display:flex;justify-content:center;margin-top:80px;margin-bottom:80px}
.loginLogo img{width:460px;max-width:86%;height:auto;display:block}
.loginForm{width:100%}
.loginInput{width:100%;height:53px;background:var(--input);border:0;border-radius:10px;padding:0 12px;outline:none;color:#333;margin-bottom:14px;font-size:16px}
.loginInput::placeholder{color:#555}
.loginBtn,.configBtn{width:100%;height:54px;background:var(--green);color:#fff;border:0;border-radius:10px;font-weight:700;font-size:20px;box-shadow:0 7px 16px rgba(0,150,64,.22)}
.loginBtn:active,.configBtn:active{background:var(--green-dark);transform:scale(.995)}
.loginBtn:disabled,.configBtn:disabled{opacity:.65;cursor:not-allowed}
.loginFooter{position:absolute;left:13px;right:13px;bottom:24px;z-index:2;text-align:center;color:#737373;font-size:16px;line-height:1.45}
.loginFooterLogo{display:block;margin:8px auto 0;max-width:205px;height:auto}
.configLink{display:block;text-align:center;margin-top:14px;color:#737373;font-size:13px;text-decoration:none}
.apiConfigBox{margin-top:18px;background:rgba(255,255,255,.92);border:1px solid #d6e2ec;border-radius:14px;padding:16px 14px 14px;box-shadow:0 8px 22px rgba(13,92,151,.08)}
.apiConfigBox h1{font-size:22px;line-height:1.15;margin:0 0 8px;color:#152d3f;font-weight:700;letter-spacing:-.2px}
.apiConfigBox p{font-size:13px;line-height:1.45;color:#5f7182;margin:0 0 15px}
.configField{width:100%;margin-bottom:12px}
.configField label{display:block;width:100%;font-size:15px;line-height:1.25;color:#263846;font-weight:600;margin:0 0 6px}
.configField input,.configInput{width:100%;height:44px;background:#fff;border:1px solid #d8dfe5;border-radius:10px;padding:0 12px;outline:none;color:#333;font-size:16px;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}
.configPasswordWrap{position:relative}
.configPasswordWrap .configInput{padding-right:48px}
.configPasswordToggle{position:absolute;right:6px;top:5px;width:34px;height:34px;border:0;border-radius:9px;background:#eef3f7;color:#4b5563}
.configInstallInfo{font-size:12px;color:#6b7280;background:#f5f8fb;border-radius:10px;padding:9px 10px;margin-bottom:12px}
.pwaStatusBox{position:relative;z-index:1;margin-top:16px;background:#fff;border:1px solid #dfe7ef;border-radius:14px;padding:13px;box-shadow:0 8px 22px rgba(13,92,151,.06)}
.pwaStatusTitle{font-weight:800;margin-bottom:10px;color:#17212b}
.pwaStatusGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.pwaStatusItem{background:#f6f8fa;border-radius:11px;padding:9px}
.pwaStatusItem span{display:block;font-size:11px;color:#64748b;font-weight:700;text-transform:uppercase}
.pwaStatusItem strong{display:block;margin-top:2px;font-size:14px;color:#102033}
.installOnly{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:#f5f8fb}
.installCard{width:100%;max-width:400px;background:#fff;border-radius:22px;padding:26px;text-align:center;box-shadow:var(--shadow)}
.installCard img{max-width:220px;width:72%;height:auto;margin-bottom:12px}
.installCard h1{margin:0 0 8px;font-size:26px;color:#102033}
.installCard p{margin:0 0 18px;color:#637082;line-height:1.45}
.installSteps{background:#f6f8fa;border-radius:14px;padding:13px;color:#55606e;font-size:14px;line-height:1.4}
.topbar{position:sticky;top:0;z-index:80;background:#fff;border-bottom:1px solid #edf0f2;box-shadow:0 4px 16px rgba(15,23,42,.04)}
.toprow{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;gap:10px}
.topMenuBtn{width:42px;height:42px;border:0;background:#f3f6f8;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:0 0 auto}
.topMenuBtn span{width:18px;height:2px;border-radius:4px;background:#22313f;display:block}
.topLogoImg{max-width:185px;max-height:38px;object-fit:contain}
.topRightStatus,.statusButton{border:0;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;background:#eef7f1;color:var(--green);white-space:nowrap}
.topRightStatus.offlineStatus,.statusButton.offlineStatus{background:#fff1f1;color:#c0392b}
.content{padding:16px 14px 28px}
.dashboardContent{background:#f6f8fa;min-height:calc(100vh - 68px)}
.dashGreeting{background:linear-gradient(135deg,#ffffff 0%,#edf9f2 100%);border:1px solid #e4efe8;border-radius:20px;padding:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;box-shadow:var(--shadow)}
.dashGreeting span{display:block;font-size:12px;color:var(--green);font-weight:900;text-transform:uppercase;letter-spacing:.5px}
.dashGreeting h1{margin:4px 0 4px;font-size:27px;line-height:1.05;color:#102033;letter-spacing:-.4px}
.dashGreeting small{display:block;color:#6b7280;font-size:13px;line-height:1.3}
.dashGreetingActions{display:flex;gap:8px;flex:0 0 auto}
.dashSyncBtn{width:42px;height:42px;border:0;border-radius:14px;background:var(--green);color:#fff;font-size:22px;font-weight:900;box-shadow:0 8px 18px rgba(0,150,64,.22)}
.osSummaryGrid,.dashKpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 18px}
.dashKpi{background:#fff;border:1px solid #e4eaf0;border-radius:18px;padding:14px;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.dashKpi small{display:block;color:#6b7280;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}
.dashKpi strong{display:block;margin-top:4px;font-size:30px;line-height:1;color:#102033;letter-spacing:-.5px}
.dashKpi span{display:block;margin-top:4px;color:#8a94a3;font-size:13px}
.dashSection{background:#fff;border:1px solid #e4eaf0;border-radius:20px;overflow:hidden;box-shadow:0 10px 24px rgba(15,23,42,.05);margin-top:14px}
.dashSectionTitle{padding:15px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1f5}
.dashSectionTitle strong{display:block;font-size:18px;color:#102033;line-height:1.1}
.dashSectionTitle span{display:block;margin-top:4px;font-size:12px;color:#6b7280;line-height:1.25}
.dashTag{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:28px;border-radius:999px;background:#eef7f1;color:var(--green);font-weight:900;font-size:13px;padding:0 9px}
.dashList{display:grid;gap:0;max-height:none;overflow:auto}
.dashListItem{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;color:inherit}
.dashListItem:active{background:#f6f8fa;transform:scale(.997)}
.dashListMain{min-width:0;flex:1}
.dashListMain strong{display:block;color:#102033;font-size:15px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashListMain span{display:block;margin-top:4px;color:#6b7280;font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashListSide{text-align:right;flex:0 0 auto;max-width:120px}
.dashListSide strong{display:block;color:var(--green);font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashListSide span{display:block;margin-top:4px;color:#8a94a3;font-size:12px;white-space:nowrap}
.dashEmpty{padding:22px 15px;text-align:center;color:#7b8794;border:1px dashed #cfd9e3;border-radius:14px;margin:14px;background:#fbfcfd}
.sideMenuOverlay{position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:300;opacity:0;pointer-events:none;transition:.22s ease}
.sideMenuPanel{position:fixed;top:0;bottom:0;left:0;width:min(86vw,360px);background:#fff;z-index:301;transform:translateX(-105%);transition:.25s ease;box-shadow:18px 0 42px rgba(15,23,42,.20);display:flex;flex-direction:column;padding:16px}
body.sideMenuOpen .sideMenuOverlay{opacity:1;pointer-events:auto}
body.sideMenuOpen .sideMenuPanel{transform:translateX(0)}
.sideMenuHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid #edf1f5}
.sideMenuHeader img{max-width:185px;max-height:44px;object-fit:contain}
.sideMenuClose{width:38px;height:38px;border:0;border-radius:13px;background:#f3f6f8;color:#22313f;font-size:25px;line-height:1}
.sideMenuUser{padding:16px 0 12px}
.sideMenuUser strong{display:block;font-size:19px;color:#102033;line-height:1.15}
.sideMenuUser span{display:block;margin-top:4px;color:#6b7280;font-size:13px;line-height:1.3}
.sideMenuStatus{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.sideMenuStatus div,.sideMenuApi{background:#f6f8fa;border-radius:14px;padding:11px;border:1px solid #edf1f5}
.sideMenuStatus span,.sideMenuApi span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.35px;font-weight:900;color:#7b8794}
.sideMenuStatus strong,.sideMenuApi strong{display:block;margin-top:3px;font-size:14px;color:#102033;word-break:break-word}
.sideMenuStatus strong.onlineStatus{color:var(--green)}
.sideMenuStatus strong.offlineStatus{color:#c0392b}
.sideMenuApi{margin-bottom:14px}
.sideMenuNav{display:grid;gap:8px;margin-top:2px}
.sideMenuNav button{width:100%;min-height:48px;border:0;border-radius:14px;background:#f5f8fb;color:#22313f;font-weight:800;font-size:15px;display:flex;align-items:center;gap:11px;padding:0 12px;text-align:left}
.sideMenuNav button i{width:28px;height:28px;border-radius:10px;background:#e8f7ee;color:var(--green);display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:900}
.sideMenuNav button.sideMenuDanger{background:#fff4f4;color:#c0392b}
.sideMenuNav button.sideMenuDanger i{background:#ffe1e1;color:#c0392b}
.sideMenuNav button:disabled{opacity:.55;filter:grayscale(1);cursor:not-allowed}
.syncContent{background:#f6f8fa;min-height:calc(100vh - 68px)}
.syncHeroCard,.syncMainCard,.syncLogBox{background:#fff;border:1px solid #e4eaf0;border-radius:20px;padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.05);margin-bottom:14px}
.syncHeroIcon{width:44px;height:44px;border-radius:15px;background:#e8f7ee;color:var(--green);display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:900;margin-bottom:10px}
.syncHeroCard strong{display:block;font-size:22px;color:#102033;line-height:1.1}
.syncHeroCard span{display:block;color:#6b7280;font-size:13px;line-height:1.35;margin-top:6px}
.syncMainHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.syncMainHeader strong{display:block;font-size:18px;color:#102033}
.syncMainHeader span{display:block;color:#6b7280;font-size:12px;line-height:1.25;text-align:right}
.syncTotalProgress{margin-bottom:14px}
.syncProgressInfo{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:#6b7280;font-size:12px;font-weight:800}
.syncProgressInfo strong{color:var(--green);font-size:14px}
.syncProgressBar{height:9px;background:#e9eef3;border-radius:999px;overflow:hidden}
.syncProgressBar i{display:block;height:100%;width:0;background:var(--green);border-radius:999px;transition:.22s ease}
.syncModuleList{display:grid;gap:12px;margin-bottom:14px}
.syncModuleCard{background:#fff;border:1px solid #e4eaf0;border-radius:18px;padding:14px;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.syncModuleTop{display:flex;align-items:center;gap:12px;margin-bottom:11px}
.syncModuleIcon{width:42px;height:42px;border-radius:15px;background:#e8f7ee;color:var(--green);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900}
.syncModuleTop strong{display:block;color:#102033;font-size:16px}
.syncModuleTop span{display:block;margin-top:2px;color:#6b7280;font-size:12px}
.syncModuleFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:#6b7280;font-size:12px}
.syncModuleFooter span{font-weight:800;color:#102033}
.syncGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.syncBox{background:#fff;border:1px solid #e4eaf0;border-radius:18px;padding:14px;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.syncBox small{display:block;color:#6b7280;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}
.syncBox strong{display:block;margin-top:4px;font-size:28px;line-height:1;color:#102033}
.syncBox span{display:block;margin-top:4px;color:#8a94a3;font-size:13px}
.syncLogBox .row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:25px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:900;background:#eef3f7;color:#64748b}
.badge.ok{background:#e8f7ee;color:var(--green)}
.badge.errorBadge,.errorBadge{background:#ffecec!important;color:#c0392b!important}
.syncLog{display:grid;gap:7px;max-height:230px;overflow:auto;background:#f7f9fb;border-radius:14px;padding:11px;color:#56616f;font-size:12px;line-height:1.35}
.syncLogLine.ok{color:var(--green)}
.syncLogLine.error{color:#c0392b}
.syncOfflineDisabled{opacity:.55;filter:grayscale(1)}
@media (max-width:420px){.osSummaryGrid,.dashKpis,.syncGrid,.pwaStatusGrid{grid-template-columns:1fr}.dashGreeting{align-items:stretch}.topLogoImg{max-width:150px}}
.syncGridSingle{grid-template-columns:1fr}
.osContent{padding-bottom:34px}
.osSearchCard{background:#fff;border:1px solid #dfe8e4;border-radius:25px;padding:14px 14px 15px;box-shadow:0 10px 24px rgba(15,23,42,.05);margin:14px 0 15px}
.osSearchRow{display:flex;align-items:center;gap:9px;border:1px solid #d8e5df;border-radius:22px;background:#fbfdfc;padding:8px 8px 8px 15px;box-shadow:inset 0 1px 2px rgba(15,23,42,.03)}
.osSearchRow input{width:100%;height:44px;border:0;background:transparent;outline:none;color:#102033;font-size:20px;line-height:1;font-weight:500;padding:0;min-width:0}
.osSearchRow input::placeholder{color:#334155;opacity:.9}
.osSearchRow button{width:48px;height:48px;border:1px solid #d7e1dc;border-radius:17px;background:#fff;color:#102033;font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(15,23,42,.08);flex:0 0 auto}
.osSearchRow button:active{transform:scale(.97);background:#f3f6f8}
.osSearchTotal{margin:12px 0 0 2px;color:#7c8796;font-size:15px;font-weight:700;line-height:1.25}
.osCardList{display:grid;gap:14px;overflow:visible}
.osCardItem{width:100%;display:block;border:1px solid #e3e9ee;border-radius:22px;background:#fff;text-align:left;color:inherit;padding:0;overflow:hidden;box-shadow:0 10px 24px rgba(15,23,42,.06)}
.osCardOpen{display:block;width:100%;border:0;background:transparent;text-align:left;color:inherit;padding:17px 17px 16px}
.osCardOpen:active{background:#fbfcfd}
.osCardTop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.osCardTop>strong{display:block;color:#102033;font-size:19px;line-height:1.08;font-weight:900;text-transform:uppercase;letter-spacing:.1px;word-break:break-word}
.osCardQtd{text-align:right;min-width:92px;color:#6b7280;font-size:15px;line-height:1.1}
.osCardQtd strong{display:block;color:var(--green);font-size:22px;line-height:1;font-weight:900;margin-bottom:4px}
.osCardQtd span{display:block;color:#6b7280;font-size:14px;white-space:nowrap}
.osCardMeta{margin-top:9px;color:#7b8794;font-size:16px;font-weight:600;line-height:1.25}
.osCardAddress{display:flex;align-items:flex-start;gap:10px;margin-top:13px;padding:12px 13px;border:1px solid #e5ebef;border-radius:16px;background:#f8fafb;color:#314154}
.osCardAddressIcon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:10px;background:#e8f7ee;color:var(--green);font-size:18px;font-weight:900}
.osCardAddress>span:last-child{display:block;min-width:0}
.osCardAddress strong{display:block;color:#26364a;font-size:15px;line-height:1.25;font-weight:900;word-break:break-word}
.osCardAddress small{display:block;margin-top:3px;color:#718096;font-size:13px;line-height:1.25;font-weight:700;word-break:break-word}
.osCardBadges{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px}
.osCardBadges span{min-height:32px;border-radius:999px;background:#e8f7ee;color:var(--green);font-size:15px;font-weight:900;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0 13px}
.osMapButton{width:100%;min-height:49px;border:0;border-top:1px solid #e7edf1;background:#fff;color:var(--green);display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:900;text-transform:uppercase;letter-spacing:.2px}
.osMapButton span{font-size:20px;line-height:1}
.osMapButton:active{background:#e8f7ee;transform:none}
.osMapModal{position:fixed;inset:0;z-index:470;display:none;align-items:flex-end;justify-content:center;padding:16px;box-sizing:border-box}
.osMapModal.show{display:flex}
.osMapOverlay{position:absolute;inset:0;background:rgba(15,23,42,.58);backdrop-filter:blur(2px)}
.osMapPanel{position:relative;width:min(460px,100%);border-radius:24px;background:#fff;padding:20px;box-shadow:0 24px 65px rgba(15,23,42,.28);animation:osMapUp .18s ease-out}
@keyframes osMapUp{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}
.osMapHeader{display:flex;align-items:flex-start;gap:13px}
.osMapHeader>div{min-width:0;flex:1}
.osMapHeader strong{display:block;color:#102033;font-size:20px;line-height:1.15;font-weight:900}
.osMapHeader span{display:block;margin-top:7px;color:#6f7e8e;font-size:14px;line-height:1.35;font-weight:700;word-break:break-word}
.osMapClose{width:38px;height:38px;border:0;border-radius:13px;background:#f1f4f6;color:#455466;font-size:25px;line-height:1;flex:0 0 auto}
.osMapActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.osMapAppButton{min-height:76px;border:1px solid #dfe7e3;border-radius:18px;background:#f9fbfa;color:#102033;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:12px}
.osMapAppButton span{color:var(--green);font-size:25px;line-height:1}
.osMapAppButton strong{font-size:14px;font-weight:900}
.osMapAppButton:active{background:#e8f7ee;transform:scale(.985)}
.osModal{position:fixed;inset:0;z-index:420;display:none}
.osModal.show{display:block}
.osModalOverlay{position:absolute;inset:0;background:rgba(15,23,42,.52)}
.osModalPanel{position:absolute;left:50%;top:18px;bottom:18px;transform:translateX(-50%);width:min(calc(100% - 28px),590px);background:#fff;border-radius:26px;box-shadow:0 22px 55px rgba(15,23,42,.30);overflow:hidden;display:flex;flex-direction:column}
.osModalHeader{padding:17px 17px 14px;border-bottom:1px solid #edf1f5;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex:0 0 auto}
.osModalHeader strong{display:block;font-size:23px;color:#102033;line-height:1.05;font-weight:900}
.osModalHeader span{display:block;margin-top:5px;font-size:14px;color:#6b7280;line-height:1.28}
.osModalClose{width:42px;height:42px;border:0;border-radius:15px;background:#f3f6f8;color:#22313f;font-size:28px;line-height:1;flex:0 0 auto}
.osModalScroll{overflow:auto;min-height:0;flex:1 1 auto;-webkit-overflow-scrolling:touch;background:#f7f9fb}
.osModalBody{padding:14px 14px 18px}
.osModalResumo{display:grid;grid-template-columns:1fr 112px 112px;gap:10px;margin-bottom:14px}
.osModalResumo div{border:1px solid #e4eaf0;border-radius:16px;padding:12px;background:#fff}
.osModalResumo small{display:block;color:#7b8794;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.35px}
.osModalResumo strong{display:block;margin-top:5px;color:#102033;font-size:15px;line-height:1.22;word-break:break-word}
.osEquipListTitle{font-size:16px;font-weight:900;color:#102033;margin:4px 0 10px}
.osEquipList{display:grid;gap:9px}
.osEquipItem{display:flex;align-items:center;gap:11px;border:1px solid #e4eaf0;border-radius:17px;background:#fff;padding:13px}
.osEquipIndex{width:30px;height:30px;border-radius:11px;background:#e8f7ee;color:var(--green);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;flex:0 0 auto}
.osEquipItem strong{font-size:16px;color:#102033;line-height:1.22}
body.modalOpen{overflow:hidden}
@media (max-width:420px){.osSearchCard{border-radius:24px;padding:13px}.osSearchRow input{font-size:18px}.osSearchRow button{width:46px;height:46px}.osCardTop>strong{font-size:18px}.osCardQtd strong{font-size:20px}.osModalPanel{top:14px;bottom:14px;width:calc(100% - 24px);border-radius:24px}.osModalResumo{grid-template-columns:1fr}.osMapActions{grid-template-columns:1fr}.osMapAppButton{min-height:58px;flex-direction:row}.osMapModal{padding:12px}}
.osEquipRow{width:100%;text-align:left;cursor:pointer}
.osEquipRow>div{min-width:0;flex:1}
.osEquipRow strong{display:block;word-break:break-word}
.osEquipRow small{display:block;margin-top:4px;color:#7b8794;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.25px}
.osEquipAction{width:34px;height:34px;border:0;border-radius:12px;background:#f3f6f8;color:#102033;font-size:25px;line-height:1;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.osEquipRow:active{transform:scale(.996);background:#fbfcfd}
.osEquipAction:active{background:#e8f7ee;color:var(--green);transform:scale(.96)}
.osActivityModal{z-index:440}
.osActivityForm{display:grid;gap:13px}
.osActivityInfo{background:#fff;border:1px solid #e4eaf0;border-radius:18px;padding:14px;box-shadow:0 10px 24px rgba(15,23,42,.04)}
.osActivityInfo small{display:block;color:#7b8794;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.35px}
.osActivityInfo strong{display:block;margin-top:4px;color:#102033;font-size:17px;line-height:1.2;font-weight:900;word-break:break-word}
.osActivityInfo span{display:inline-flex;margin-top:9px;min-height:28px;border-radius:999px;background:#e8f7ee;color:var(--green);font-size:13px;font-weight:900;align-items:center;padding:0 11px}
.osActivityGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;width:100%;max-width:100%;overflow:hidden}
.osActivityGrid.one{grid-template-columns:1fr}
.osActivityGridDuasColunas{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.osActivityGrid label,.osFieldFull{display:block;min-width:0;max-width:100%;overflow:hidden}
.osActivityGrid span,.osFieldFull span{display:block;color:#314154;font-size:13px;font-weight:900;margin:0 0 5px}
.osActivityGrid input,.osFieldFull textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:1px solid #d8e2ec;background:#fff;border-radius:15px;color:#102033;font-size:17px;outline:none;box-shadow:inset 0 1px 2px rgba(15,23,42,.03)}
.osActivityGrid input{height:50px;padding:0 13px}.osActivityGrid input[type="time"]{-webkit-appearance:none;appearance:none;text-align:center;padding-left:8px;padding-right:8px;font-size:16px}
.osFieldFull textarea{resize:none;padding:12px 13px;line-height:1.35}
.osActivitySectionTitle{margin-top:1px;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.45px}
.osPhotoBox{border:1px dashed #b9c7d4;background:#fff;border-radius:18px;min-height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:15px;color:#102033}
.osPhotoBox strong{font-size:16px;color:var(--green);font-weight:900}
.osPhotoBox span{display:block;margin-top:5px;color:#64748b;font-size:13px;line-height:1.25;font-weight:700}
.osPhotoBox .osPhotoGuidance{margin-top:9px;padding:7px 10px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:12px;line-height:1.25;font-weight:900}
#osActivityFotos,#osActivityFotoUnica,#osActivityFotoInicial,#osActivityFotoFinal{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.osPhotoPreview{border-radius:14px;background:#f1f5f9;color:#64748b;font-size:13px;font-weight:800;padding:10px 12px;text-align:center}
.osPhotoPreview.ok{background:#e8f7ee;color:var(--green)}
.osActivitySaveBtn{width:100%;height:50px;border:0;border-radius:15px;background:var(--green);color:#fff;font-size:18px;font-weight:900;box-shadow:0 8px 18px rgba(0,150,64,.22)}
.osActivitySaveBtn:disabled{opacity:.65;cursor:not-allowed}
.osActivitySaveBtn:active{background:var(--green-dark);transform:scale(.995)}
@media (max-width:420px){.osActivityGridDuasColunas{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.osActivityGridDuasColunas input{font-size:16px;padding:0 8px}.osActivityGridDuasColunas input[type="time"]{font-size:15px;padding-left:4px;padding-right:4px}.osActivitySaveBtn{height:48px}}

.osHistoryModal{z-index:435}
.osPhotoPreview.ok{background:#fff;color:#102033;border:1px solid #e4eaf0;padding:10px;text-align:left}
.osPhotoPreviewTitle{font-size:13px;font-weight:900;color:var(--green);margin-bottom:8px}
.osPhotoThumbGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.osPhotoThumb{position:relative;border-radius:13px;overflow:hidden;background:#eef3f7;aspect-ratio:1/1;border:1px solid #dce5ec;padding:0;display:block;width:100%;cursor:pointer}
.osPhotoThumb img{width:100%;height:100%;object-fit:cover;display:block}
.osPhotoThumb span{position:absolute;right:6px;top:6px;width:23px;height:23px;border-radius:999px;background:rgba(16,32,51,.78);color:#fff;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center}
.osHistoryList{display:grid;gap:12px}
.osHistoryCard{background:#fff;border:1px solid #e4eaf0;border-radius:18px;padding:14px;box-shadow:0 10px 24px rgba(15,23,42,.04)}
.osHistoryCard.osHistoryPending{border-color:#ffd28a;background:#fffaf3}
.osHistoryCard.osHistorySynced{border-color:#bdeccf;background:#fbfffc}
.osHistoryCardHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.osHistoryCardHead strong{font-size:15px;color:#102033;font-weight:900;line-height:1.2}
.osHistoryCardHead span{min-height:25px;border-radius:999px;background:#e8f7ee;color:var(--green);font-size:12px;font-weight:900;display:flex;align-items:center;padding:0 10px;text-transform:uppercase;flex:0 0 auto}
.osHistoryCardHead span.osHistoryStatusPending{background:#fff1d8;color:#d97706}
.osHistoryCardHead span.osHistoryStatusSynced{background:#e8f7ee;color:var(--green)}
.osHistoryMeasure{display:inline-flex;min-height:28px;border-radius:999px;background:#eef3f7;color:#102033;font-size:13px;font-weight:900;align-items:center;padding:0 11px;margin-bottom:10px}
.osHistoryFields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.osHistoryFields div{border:1px solid #e8eef3;background:#fbfcfd;border-radius:14px;padding:10px}
.osHistoryFields small,.osHistoryObs small{display:block;color:#7b8794;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.35px}
.osHistoryFields strong{display:block;margin-top:3px;color:#102033;font-size:17px;font-weight:900}
.osHistoryObs{border-top:1px solid #edf1f5;padding-top:10px;margin-top:2px}
.osHistoryObs p{margin:5px 0 0;color:#314154;font-size:14px;line-height:1.35;font-weight:600;white-space:pre-wrap}
.osHistoryPhotos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.osHistoryPhotoZoom{border:0;background:transparent;padding:0;border-radius:13px;display:block;width:100%;cursor:pointer}.osHistoryPhotoZoom img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:13px;border:1px solid #dce5ec;background:#eef3f7;display:block}.osHistoryPhotoZoom:active,.osPhotoThumb:active{transform:scale(.985)}
@media (max-width:420px){.osPhotoThumbGrid,.osHistoryPhotos{grid-template-columns:repeat(2,1fr)}}

.osPhotoZoomModal{position:fixed;inset:0;z-index:610;display:none}
.osPhotoZoomModal.show{display:block}
.osPhotoZoomOverlay{position:absolute;inset:0;background:rgba(15,23,42,.82);backdrop-filter:blur(2px)}
.osPhotoZoomPanel{position:absolute;left:14px;right:14px;top:calc(env(safe-area-inset-top) + 18px);bottom:calc(env(safe-area-inset-bottom) + 18px);display:flex;align-items:center;justify-content:center}
.osPhotoZoomPanel img{max-width:100%;max-height:100%;object-fit:contain;border-radius:18px;background:#111827;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.osPhotoZoomClose{position:absolute;right:8px;top:8px;width:42px;height:42px;border:0;border-radius:999px;background:rgba(255,255,255,.95);color:#102033;font-size:30px;line-height:1;font-weight:800;box-shadow:0 10px 30px rgba(15,23,42,.24);z-index:2}
.osPhotoZoomClose:active{transform:scale(.96)}

.appConfirmModal{position:fixed;inset:0;z-index:620;display:none}
.appConfirmModal.show{display:block}
.appConfirmOverlay{position:absolute;inset:0;background:rgba(15,23,42,.58);backdrop-filter:blur(2px)}
.appConfirmPanel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(calc(100% - 42px),380px);background:#fff;border-radius:25px;box-shadow:0 24px 65px rgba(15,23,42,.34);padding:20px;text-align:center;border:1px solid rgba(255,255,255,.65)}
.appConfirmIcon{width:58px;height:58px;border-radius:20px;margin:0 auto 13px;background:#e8f7ee;color:var(--green);display:flex;align-items:center;justify-content:center;font-size:31px;font-weight:900;box-shadow:0 10px 24px rgba(0,150,64,.16)}
.appConfirmContent strong{display:block;color:#102033;font-size:23px;line-height:1.08;font-weight:900;margin:0 0 7px}
.appConfirmContent p{margin:0;color:#64748b;font-size:15px;line-height:1.38;font-weight:600}

.appConfirmInputWrap{display:none;margin-top:15px;text-align:left}
.appConfirmInputWrap.show{display:block}
.appConfirmInputWrap label{display:block;color:#334155;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.35px;margin:0 0 7px}
.appConfirmInputWrap input{width:100%;height:52px;border:1px solid #dbe4ec;border-radius:16px;background:#f8fafc;color:#102033;font-size:20px;font-weight:900;text-align:center;letter-spacing:1.5px;text-transform:uppercase;outline:0;box-sizing:border-box}
.appConfirmInputWrap input:focus{border-color:rgba(0,150,64,.45);box-shadow:0 0 0 4px rgba(0,150,64,.09);background:#fff}
.appConfirmInputWrap small{display:block;margin-top:7px;color:#7b8794;font-size:12px;font-weight:700;line-height:1.3;text-align:center}
.appConfirmOk:disabled{opacity:.42;box-shadow:none;filter:grayscale(.2);cursor:not-allowed}
.appConfirmActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.appConfirmActions button{height:48px;border:0;border-radius:15px;font-size:16px;font-weight:900}
.appConfirmCancel{background:#f1f5f9;color:#334155}
.appConfirmOk{background:var(--green);color:#fff;box-shadow:0 8px 18px rgba(0,150,64,.22)}
.appConfirmModal.warning .appConfirmIcon{background:#fff1d8;color:#d97706;box-shadow:0 10px 24px rgba(217,119,6,.16)}
.appConfirmModal.warning .appConfirmOk{background:#d97706;box-shadow:0 8px 18px rgba(217,119,6,.22)}
.appConfirmModal.success .appConfirmIcon{background:#e8f7ee;color:var(--green)}
.appConfirmCancel:active,.appConfirmOk:active{transform:scale(.985)}
@media (max-width:380px){.appConfirmPanel{width:calc(100% - 28px);padding:17px;border-radius:22px}.appConfirmActions{gap:8px}.appConfirmActions button{font-size:15px}}


.syncLogLineWithAction{display:grid;gap:8px}
.syncLogPayloadMeta{font-size:12px;font-weight:800;color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:7px 9px}
.syncLogDebugButton{justify-self:start;border:0;border-radius:12px;background:#0a9d49;color:#fff;font-size:13px;font-weight:900;padding:9px 12px;box-shadow:0 6px 16px rgba(0,150,64,.18)}
.syncLogDebugButton:active{transform:scale(.98);background:#087a39}

.osPhotoDualGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.osPhotoSlot{min-width:0;display:grid;gap:8px}
.osPhotoSlotTitle{color:#314154;font-size:13px;font-weight:900}
.osPhotoSlot .osPhotoBox{min-height:78px;padding:12px}
.osPhotoSlot .osPhotoBox strong{font-size:14px}
.osPhotoSlot .osPhotoBox span{font-size:12px}
.osPhotoSlot input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.osActivityInputLocked{background:#eef3f7!important;color:#64748b!important;font-weight:900;pointer-events:none}
.osPhotoPreviewLocked{background:#fff!important;color:#102033!important}
.osHistoryCard.osHistoryProgress{border-color:#bfdbfe;background:#f8fbff}
.osHistoryCardHead span.osHistoryStatusProgress{background:#e8f1ff;color:#2563eb}
.osHistoryPhotoZoom{position:relative;overflow:hidden}
.osHistoryPhotoZoom span{position:absolute;left:6px;right:6px;bottom:6px;border-radius:999px;background:rgba(16,32,51,.78);color:#fff;font-size:11px;font-weight:900;line-height:1;padding:6px 8px;text-align:center}
.osHistoryEditBtn{width:100%;height:42px;margin-top:12px;border:0;border-radius:13px;background:#ffedd5;color:#c2410c;font-size:14px;font-weight:900}
.osHistoryEditBtn:active{transform:scale(.995)}
@media (max-width:420px){.osPhotoDualGrid{grid-template-columns:1fr;gap:10px}.osPhotoSlot .osPhotoBox{min-height:72px}.osPhotoSlot .osPhotoThumbGrid{grid-template-columns:repeat(2,1fr)}}
.osActivityFormCompletar{gap:15px}
.osActivityFormCompletar .osActivityGrid.one label,.osActivityFormCompletar .osFieldFull{background:#fff;border:1px solid #e4eaf0;border-radius:18px;padding:13px;box-shadow:0 10px 24px rgba(15,23,42,.04)}
.osActivityFormCompletar .osActivityGrid.one label input,.osActivityFormCompletar .osFieldFull textarea{margin-top:6px}
.osActivityFormCompletar .osActivitySectionTitle{margin-top:2px}
.osActivityStartProof{background:#fff;border:1px solid #dce5ec;border-radius:20px;padding:15px;box-shadow:0 10px 24px rgba(15,23,42,.04);display:grid;gap:13px}
.osActivityStartProofHead{display:grid;gap:7px}
.osActivityStartProofBadge{display:inline-flex;justify-self:start;align-items:center;min-height:28px;padding:0 11px;border-radius:999px;background:#eef3f7;color:#5b6775;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.35px}
.osActivityStartProofHead strong{color:#102033;font-size:15px;font-weight:900;line-height:1.2}
.osActivityStartProofGrid{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
.osActivityStartValue{background:#f6f9fc;border:1px solid #dce5ec;border-radius:16px;padding:14px;display:grid;gap:6px}
.osActivityStartValue small,.osActivityStartPhoto small{display:block;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.25px}
.osActivityStartValue strong{color:#102033;font-size:28px;font-weight:950;line-height:1.02;letter-spacing:-.02em}
.osActivityStartPhoto{min-width:0;display:grid;gap:7px}
.osActivityStartPhotoInner{background:#f8fafc;border:1px solid #e4eaf0;border-radius:16px;padding:10px}
.osActivityStartPhoto .osPhotoPreview{padding:0;border:0;background:transparent}
.osActivityStartPhoto .osPhotoPreviewTitle{display:none}
.osActivityStartPhoto .osPhotoThumbGrid{grid-template-columns:minmax(0,1fr);max-width:240px}
.osActivityStartPhoto .osPhotoThumb{aspect-ratio:4/3;border-radius:14px}
.osPhotoDualGridFinalOnly{grid-template-columns:1fr}
@media (max-width:420px){.osActivityFormCompletar{gap:13px}.osActivityStartProof{padding:13px}.osActivityStartValue{padding:12px}.osActivityStartValue strong{font-size:24px}.osActivityStartPhoto .osPhotoThumbGrid{max-width:none}.osActivityStartPhoto .osPhotoThumb{max-height:180px}}


/* Bloqueio de orientação: o Enterprise OS opera somente em modo retrato. */
.orientationLock{display:none;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:#f3f6f8;color:#102033;text-align:center}
.orientationLockCard{width:min(100%,390px);background:#fff;border:1px solid #e4eaf0;border-radius:26px;padding:28px 24px;box-shadow:0 24px 65px rgba(15,23,42,.22)}
.orientationLockIcon{width:72px;height:72px;margin:0 auto 16px;border-radius:23px;display:flex;align-items:center;justify-content:center;background:#e8f7ee;color:var(--green);font-size:44px;font-weight:900;line-height:1;transform:rotate(0deg);box-shadow:0 12px 28px rgba(0,150,64,.18)}
.orientationLockCard strong{display:block;font-size:25px;line-height:1.08;font-weight:900;color:#102033}
.orientationLockCard p{margin:9px 0 0;font-size:16px;line-height:1.4;font-weight:700;color:#64748b}
@media (orientation:landscape){
  html,body{overflow:hidden!important;overscroll-behavior:none}
  .orientationLock{display:flex!important}
  #app,#toast,#sideMenuSlot{pointer-events:none!important;user-select:none!important}
}
body.orientationLandscape .orientationLock{display:flex!important}
body.orientationLandscape{overflow:hidden!important;overscroll-behavior:none}
body.orientationLandscape #app,body.orientationLandscape #toast,body.orientationLandscape #sideMenuSlot{pointer-events:none!important;user-select:none!important}
