:root{--navy:#173b7a;--blue:#2456a6;--green:#35a64a;--bg:#f5f7fb}
body{background:var(--bg);color:#243041}.app-header{background:linear-gradient(90deg,#173b7a,#284f9a)}
.app-logo{width:38px;height:38px;border-radius:8px;object-fit:contain;background:white;padding:3px}
.brand-logo{width:120px;max-width:65%;height:auto;object-fit:contain}
.brand-title{color:var(--navy);font-weight:800}.login-shell{min-height:75vh;display:grid;place-items:center}.login-card{width:min(100%,480px)}
.demo-box{background:#eef3fb;border-radius:12px;padding:12px;font-size:.9rem}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:74px;background:white;display:flex;justify-content:space-around;align-items:center;border-top:1px solid #ddd;z-index:1050}
.bottom-nav a{color:#48515d;text-decoration:none;display:flex;flex-direction:column;align-items:center;font-size:.75rem}.bottom-nav i{font-size:1.45rem}
.bottom-nav .add{width:58px;height:58px;border-radius:50%;background:var(--navy);color:white;display:grid;place-items:center;transform:translateY(-14px)}.bottom-nav .add i{font-size:2rem}
.kpi-card,.form-card,.comment-card,.os-card{background:white;border-radius:14px;box-shadow:0 3px 14px #1c29401a;padding:16px}
.kpi-number{font-size:2rem;font-weight:800;color:var(--navy)}.os-card{margin-bottom:12px;border-left:6px solid #6f42c1}
.priority-baixa{border-left-color:#4caf50!important}.priority-media{border-left-color:#6f42c1!important}.priority-alta{border-left-color:#ff7a00!important}.priority-critica{border-left-color:#dc3545!important}
.status{font-size:.78rem;padding:4px 8px;border-radius:20px;text-transform:capitalize}.status-aberta{background:#fff3cd}.status-aguardando{background:#fff3cd}.status-agendada{background:#dbeafe}.status-em_andamento{background:#d1fae5}.status-aguardando_terceiro{background:#fce7f3}.status-em_aprovacao{background:#e0e7ff}.status-concluida{background:#dcfce7}.status-cancelada{background:#fee2e2}
.thumb{width:90px;height:90px;border-radius:10px;background:#edf1f7;display:grid;place-items:center;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}
.maintenance-photo-preview,.maintenance-photo-saved,.maintenance-comment-photo,.maintenance-kanban-photo,.maintenance-thumb{overflow:hidden;border-radius:10px;background:#edf1f7;border:1px solid #dde5ef}.maintenance-photo-preview{width:min(100%,420px);aspect-ratio:4/3}.maintenance-photo-preview img,.maintenance-photo-saved img,.maintenance-comment-photo img,.maintenance-kanban-photo img,.maintenance-thumb img{width:100%;height:100%;object-fit:cover;display:block}.maintenance-photo-saved{width:min(100%,680px);margin:14px 0}.maintenance-photo-saved img{max-height:420px}.maintenance-photo-saved figcaption{padding:8px 10px;font-size:.85rem;color:#64748b;background:white}.maintenance-comment-photo{width:min(100%,360px);aspect-ratio:4/3}.maintenance-thumb{width:58px;height:58px;display:inline-block;vertical-align:middle;margin-right:8px}.maintenance-kanban-photo{aspect-ratio:16/9;margin:8px 0}
.empty-state{padding:28px;text-align:center;background:white;border-radius:14px;color:#6c757d}.comment-card{margin-bottom:10px}.audit-line{border-left:3px solid #ced4da;padding:7px 12px;margin-left:5px;font-size:.88rem}
.filter-scroll{display:flex;gap:8px;overflow:auto;white-space:nowrap}.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(280px,1fr));gap:14px;overflow-x:auto;padding-bottom:14px}
.kanban-column{background:#e9eef7;border-radius:14px;min-height:480px}.kanban-column header{padding:14px;font-weight:700;display:flex;justify-content:space-between}
.kanban-dropzone{padding:0 10px 20px;min-height:420px}.kanban-card{background:white;padding:12px;border-radius:12px;margin-bottom:10px;box-shadow:0 2px 8px #00000015;border-left:5px solid #6f42c1;cursor:grab}.kanban-card.dragging{opacity:.45}
@media(max-width:768px){main.container{padding-left:12px;padding-right:12px}.kanban-board{grid-template-columns:repeat(4,82vw)}}

.sidebar{position:fixed;left:0;top:0;bottom:0;width:270px;background:#0d2238;color:white;z-index:1100;overflow:auto}
.sidebar-brand{height:74px;display:flex;align-items:center;gap:12px;padding:0 22px;border-bottom:1px solid #ffffff14;font-size:1.1rem}
.sidebar nav{padding:18px 10px}.sidebar nav a{display:flex;align-items:center;gap:12px;color:#d9e2ec;text-decoration:none;padding:11px 14px;border-radius:8px;margin-bottom:3px}
.sidebar nav a:hover{background:#d8b346;color:#12283e}.topbar{position:fixed;left:270px;right:0;top:0;height:74px;background:white;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:0 28px;z-index:1000}
.topbar-actions{display:flex;align-items:center;gap:10px;min-width:0}.topbar-condo{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-chip{width:42px;height:42px;border-radius:50%;background:#eef1f5;display:grid;place-items:center;font-weight:700}
.gps-button{height:40px;display:inline-flex;align-items:center;gap:7px;border:1px solid #d7deea;background:#fff;color:#173b7a;border-radius:999px;padding:0 12px;font-weight:800}.gps-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.gps-button:hover{background:#f4f7fb}.gps-output{max-width:320px;color:#64748b;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.content-shell{margin-left:270px;padding:110px 32px 128px;min-height:100vh}.page-title{font-size:2rem;font-weight:800}.data-card{background:white;border:1px solid #e1e6ed;border-radius:12px;overflow:hidden}
.erp-table{width:100%;border-collapse:collapse}.erp-table th,.erp-table td{padding:12px;border-bottom:1px solid #edf0f4;text-align:left}.erp-table th{background:#f8fafc;color:#64748b;font-weight:600}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.toolbar .form-control,.toolbar .form-select{max-width:320px}
.purchase-value-form{min-width:150px}.purchase-value-form .form-control{max-width:110px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.attention-card{border-radius:14px;padding:22px;border:1px solid #dde4ec;background:white}.attention-card strong{font-size:2.2rem;display:block}
.chart-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.chart-card{min-height:320px}.chart-canvas-wrap{height:210px}.chart-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:.86rem}.chart-legend span{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.modal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal-form-grid .full{grid-column:1/-1}
@media(max-width:992px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.topbar{left:0}.content-shell{margin-left:0;padding:95px 14px 132px}.kpi-grid,.chart-grid{grid-template-columns:1fr 1fr}.modal-form-grid{grid-template-columns:1fr}.gps-output{display:none}}
@media(max-width:576px){.kpi-grid,.chart-grid{grid-template-columns:1fr}.erp-table{min-width:780px}.data-card{overflow:auto}.topbar{padding:0 12px}.topbar-condo{font-size:.86rem}.gps-button{width:40px;padding:0;justify-content:center}.gps-button span{display:none}}
.tabbar-shell{--tabbar-bg:#ffffff;--tabbar-active:#173b7a;--tabbar-accent:#d8b346;--tabbar-muted:#697586;--tabbar-count:5;position:fixed;left:calc(270px + 32px);right:32px;bottom:max(18px,env(safe-area-inset-bottom));z-index:1040;display:flex;justify-content:center;pointer-events:none}.tabbar-state{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.animated-tabbar{width:min(640px,100%);height:76px;position:relative;display:grid;grid-template-columns:repeat(var(--tabbar-count),1fr);align-items:center;padding:8px;border:1px solid #dfe6f0;border-radius:24px;background:var(--tabbar-bg);box-shadow:0 18px 40px rgba(15,23,42,.16),inset 0 1px rgba(255,255,255,.9);overflow:hidden;pointer-events:auto}.tabbar-item{position:relative;z-index:2;min-width:0;height:60px;display:grid;place-items:center;align-content:center;gap:4px;color:var(--tabbar-muted);text-decoration:none;transition:color .28s ease,transform .34s cubic-bezier(.34,1.56,.64,1)}.tabbar-item svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .34s cubic-bezier(.34,1.56,.64,1),filter .28s ease}.tabbar-item span{font-size:.68rem;font-weight:700;white-space:nowrap}.tabbar-indicator{position:absolute;z-index:1;left:8px;bottom:8px;width:calc((100% - 16px)/var(--tabbar-count));height:60px;border-radius:18px;background:linear-gradient(180deg,#fff8df,#f3d26c);box-shadow:0 12px 24px rgba(216,179,70,.32),inset 0 1px #fff;transition:transform .42s cubic-bezier(.68,-.45,.26,1.45),border-radius .28s ease}.tabbar-state:nth-of-type(1):checked~.animated-tabbar .tabbar-indicator{transform:translateX(0)}.tabbar-state:nth-of-type(2):checked~.animated-tabbar .tabbar-indicator{transform:translateX(100%)}.tabbar-state:nth-of-type(3):checked~.animated-tabbar .tabbar-indicator{transform:translateX(200%)}.tabbar-state:nth-of-type(4):checked~.animated-tabbar .tabbar-indicator{transform:translateX(300%)}.tabbar-state:nth-of-type(5):checked~.animated-tabbar .tabbar-indicator{transform:translateX(400%)}.tabbar-state:nth-of-type(1):checked~.animated-tabbar .tabbar-item:nth-child(1),.tabbar-state:nth-of-type(2):checked~.animated-tabbar .tabbar-item:nth-child(2),.tabbar-state:nth-of-type(3):checked~.animated-tabbar .tabbar-item:nth-child(3),.tabbar-state:nth-of-type(4):checked~.animated-tabbar .tabbar-item:nth-child(4),.tabbar-state:nth-of-type(5):checked~.animated-tabbar .tabbar-item:nth-child(5){color:var(--tabbar-active);transform:translateY(-9px)}.tabbar-state:nth-of-type(1):checked~.animated-tabbar .tabbar-item:nth-child(1) svg,.tabbar-state:nth-of-type(2):checked~.animated-tabbar .tabbar-item:nth-child(2) svg,.tabbar-state:nth-of-type(3):checked~.animated-tabbar .tabbar-item:nth-child(3) svg,.tabbar-state:nth-of-type(4):checked~.animated-tabbar .tabbar-item:nth-child(4) svg,.tabbar-state:nth-of-type(5):checked~.animated-tabbar .tabbar-item:nth-child(5) svg{transform:translateY(-2px) scale(1.14);filter:drop-shadow(0 7px 10px rgba(23,59,122,.22))}
@media(max-width:992px){.tabbar-shell{left:14px;right:14px}}
@media(max-width:576px){.animated-tabbar{height:72px;border-radius:22px;padding:7px}.tabbar-item{height:58px}.tabbar-item span{font-size:.58rem}.tabbar-item svg{width:23px;height:23px}.tabbar-indicator{left:7px;bottom:7px;height:58px;width:calc((100% - 14px)/var(--tabbar-count))}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
