:root{--navy:#142942;--blue:#2479b6;--bg:#f3f6f8;--line:#dce3e9;--text:#203040}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:15px Arial,sans-serif;color:var(--text);display:flex}aside{width:235px;min-height:100vh;background:var(--navy);padding:30px 20px;color:#dbe7f0;display:flex;flex-direction:column}.brand{color:#fff;font-size:24px;font-weight:800;text-decoration:none}.brand span{color:#46b5e7}aside small{margin:10px 0 28px;color:#9cb6c8}nav{display:grid;gap:7px}nav a,.logout{color:#dbe7f0;text-decoration:none;padding:11px;border-radius:7px}nav a:hover{background:#25455f}.logout{margin-top:auto}main{width:100%;max-width:1300px;padding:42px}.auth{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#142942,#2479b6)}.login-card{width:420px;background:#fff;border-radius:14px;padding:38px}h1{margin:0 0 7px;font-size:28px}h2{margin:0;font-size:18px}.muted,.waiting{color:#647487}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:28px 0}.stats article,.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px}.stats b{display:block;font-size:25px;color:var(--navy);margin-bottom:7px}.panel{margin:18px 0}summary{cursor:pointer;font-weight:700}form{margin-top:16px}label{display:grid;gap:6px;font-weight:600;color:#415264}input,select,textarea,button{font:inherit;border:1px solid #cbd5df;border-radius:6px;padding:10px}textarea{min-height:70px}button{border:0;background:var(--blue);color:#fff;font-weight:700;cursor:pointer}.grid-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.full{grid-column:span 3}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:70px;height:22px;padding:0 8px;border-radius:11px;font-size:10px;font-weight:700;line-height:1;text-align:center;white-space:nowrap;background:#e8eff5;color:#37546c}.status-finalizado,.status-pago{background:#d8f1e8;color:#19674e}.status-em_execucao{background:#d9ecfa;color:#17618d}.status-aguardando_aprovacao,.status-solicitado{background:#fff0cb;color:#805c00}.status-reprovado{background:#f9dddd;color:#953a3a}.flash,.error{padding:12px;border-radius:7px;margin-bottom:16px;background:#d9f1e8;color:#19674e}.error{background:#f9dddd;color:#953a3a}.mobile-header,.mobile-nav{display:none}.service-list{display:grid;gap:14px;margin-top:20px}.service-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.service-top{display:flex;justify-content:space-between;gap:16px}.service-top h2{margin:5px 0}.service-top p{margin:4px 0;color:#6b7b8c}.eyebrow{color:var(--blue);font-size:12px;font-weight:bold;text-transform:uppercase}.progress{display:flex;gap:4px;margin:22px 0 6px}.progress i{height:6px;background:#dbe4ea;border-radius:8px;flex:1}.progress i.active{background:var(--blue)}.step-labels{display:flex;justify-content:space-between;color:#7a8996;font-size:11px}.service-action{display:flex;gap:8px;margin-top:20px}.service-action input{flex:1}.secondary{background:#63788a}.empty{padding:30px;text-align:center;background:#fff;border:1px dashed #b9c7d2;border-radius:10px;color:#728292}
@media(max-width:700px){body{background:#f4f7fa;padding-bottom:77px}aside{display:none}main{padding:15px;max-width:none}.mobile-header{height:48px;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.mobile-header .brand{color:var(--navy);font-size:21px}.mobile-header span{font-size:12px;color:#627587;background:#e5edf4;padding:6px 9px;border-radius:20px}.mobile-nav{position:fixed;display:flex;justify-content:space-around;align-items:center;bottom:0;left:0;right:0;height:68px;background:#fff;border-top:1px solid var(--line);z-index:4}.mobile-nav a{display:grid;justify-items:center;gap:3px;color:#426179;text-decoration:none;font-size:18px;font-weight:bold}.mobile-nav span{font-size:10px;font-weight:normal}.page-title h1,h1{font-size:24px}.stats{gap:10px;margin:18px 0;grid-template-columns:repeat(2,1fr)}.stats article{padding:14px}.stats b{font-size:20px}.panel{padding:15px}.grid-form{grid-template-columns:1fr;gap:11px}.full{grid-column:span 1}.grid-form button{width:100%;height:46px}.service-card{padding:15px}.service-top h2{font-size:18px}.service-top p{font-size:13px}.step-labels{font-size:9px}.service-action{display:grid;grid-template-columns:1fr}.service-action input,.service-action button{min-height:43px}.login-card{width:calc(100vw - 32px);padding:28px}.badge{min-width:62px;height:20px;font-size:9px;padding:0 6px}}
.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-top:22px}.house-card{display:block;color:inherit;text-decoration:none}.roof{width:82%;height:48px;background:linear-gradient(135deg,#1c5b85,#3094c9);clip-path:polygon(50% 0,100% 100%,0 100%);margin:0 auto -2px}.house-body{min-height:190px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 4px 13px #16354b0d}.house-body h2{margin:12px 0 7px}.house-body p{color:#687c8e;font-size:13px}.house-stats{display:flex;gap:10px;margin-top:22px}.house-stats span{flex:1;text-align:center;background:#f1f6fa;padding:8px;border-radius:8px;font-size:12px;color:#587084}.house-stats b{display:block;color:var(--navy);font-size:18px}.modal-backdrop{position:fixed;inset:0;background:#0c243b80;z-index:10;display:grid;place-items:center;padding:20px}.property-modal{position:relative;width:min(720px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:28px}.close{position:absolute;right:16px;top:12px;font-size:28px;text-decoration:none;color:#587084}@media(max-width:700px){.property-grid{grid-template-columns:1fr;gap:14px}.property-modal{padding:22px 16px}.house-body{min-height:160px}}
.dash-hero{display:flex;justify-content:space-between;align-items:end;background:linear-gradient(120deg,#142942,#2479b6);color:#fff;padding:30px;border-radius:16px}.dash-hero h1{margin:5px 0}.dash-hero p{margin:0;color:#c5e3f4}.dash-hero a{background:#fff;color:#174b71;padding:10px 14px;border-radius:8px;text-decoration:none;font-weight:bold}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.metric-grid article,.dash-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.metric-grid span,.metric-grid small,.work-row small{display:block;color:#708193}.metric-grid b{display:block;color:var(--navy);font-size:24px;margin:10px 0}.dashboard-columns{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.work-row{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.work-row .badge{margin-left:auto}.work-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;background:#e5f2fa;color:#267aad;font-size:21px}.emphasis{background:#eef7fc}.quick-actions{display:flex;gap:8px}.quick-actions a{background:var(--navy);color:#fff;text-decoration:none;padding:9px;border-radius:7px}@media(max-width:700px){.dash-hero{padding:20px;align-items:start;flex-direction:column;gap:14px}.metric-grid{grid-template-columns:repeat(2,1fr);gap:10px}.metric-grid article{padding:14px}.metric-grid b{font-size:19px}.dashboard-columns{grid-template-columns:1fr}.dash-panel{padding:16px}}
.service-link{color:var(--navy);text-decoration:none}.back{display:inline-block;color:var(--blue);text-decoration:none;margin-bottom:16px}.detail-head{background:#fff;border-radius:14px;padding:24px;border:1px solid var(--line)}.detail-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-top:18px}.timeline{padding:13px 0;border-bottom:1px solid var(--line)}.timeline b,.timeline span{display:block}.timeline span{font-size:12px;color:#748496;margin-top:3px}.timeline p{margin:7px 0 0}.photo-grid{display:grid;gap:8px}.photo-grid span{padding:9px;background:#eef5f9;border-radius:6px;font-size:12px}@media(max-width:700px){.detail-grid{grid-template-columns:1fr}.detail-head{padding:18px}}
.photo-grid{grid-template-columns:repeat(2,1fr)}.photo-grid img{width:100%;height:140px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.gallery-image{cursor:zoom-in}.photo-grid img{transition:transform .2s}.photo-grid img:hover{transform:scale(1.03)}#lightbox{display:none;position:fixed;inset:0;background:#071522e8;z-index:99;align-items:center;justify-content:center;padding:35px}#lightbox.open{display:flex}#lightbox img{max-width:90vw;max-height:85vh;border-radius:8px}#lightbox button{position:absolute;background:#fff;color:#142942;border-radius:50%;width:42px;height:42px;font-size:28px;padding:0}#lightbox button:first-child{top:18px;right:20px}.gallery-prev{left:18px}.gallery-next{right:18px}
.note-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.note-form textarea{width:100%;min-height:105px;resize:vertical}.note-form button{height:44px;white-space:nowrap;padding:0 18px}@media(max-width:700px){.note-form{grid-template-columns:1fr}.note-form button{width:100%}}
.bell{font-size:19px;text-align:center}.notification{display:block;padding:15px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}.notification span{display:block;font-size:12px;color:#718497;margin-top:5px}
.bell{position:fixed!important;top:22px;right:28px;z-index:20;display:grid!important;place-items:center;width:44px;height:44px;padding:0!important;border-radius:14px!important;background:#fff!important;color:#17344e!important;box-shadow:0 8px 24px #17344e22;border:1px solid #e0eaf1}.bell:hover{transform:translateY(-1px);background:#fff!important}.bell span{font-size:22px;line-height:1}.bell i{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;padding:2px 5px;border-radius:10px;background:#e64d55;color:#fff;font-size:10px;font-style:normal;text-align:center}@media(max-width:700px){.bell{top:10px;right:16px;width:40px;height:40px;border-radius:12px}.bell span{font-size:20px}}
.bell svg,.mobile-bell svg{width:20px;height:20px;fill:none;stroke:#183b58;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mobile-bell{display:none}@media(max-width:700px){.mobile-bell{position:fixed;display:grid;place-items:center;top:10px;right:16px;z-index:21;width:40px;height:40px;background:#fff;border:1px solid #e0eaf1;border-radius:12px;box-shadow:0 8px 24px #17344e22}.mobile-bell i{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;padding:2px 5px;border-radius:10px;background:#e64d55;color:#fff;font-size:10px;font-style:normal;text-align:center}.bell{display:none!important}}
@media(max-width:700px){.roof{width:100%;margin-bottom:-1px}.house-body{border-top-left-radius:4px;border-top-right-radius:4px}}
@media(max-width:700px){.not-home .mobile-bell{display:none}}
@media(max-width:700px){.not-home .mobile-bell{display:none}.not-home .mobile-bell:has(i){display:grid}.mobile-header{padding-right:54px}.mobile-header>span{white-space:nowrap}}
.house-card{overflow:visible}.roof{display:block;width:100%!important;height:54px;margin:0 0 -1px!important;clip-path:polygon(50% 0,100% 100%,0 100%)}.house-body{position:relative;margin:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}@media(max-width:700px){.roof{height:48px}}
.login-card form{display:grid;gap:18px;margin-top:26px}.login-card label{gap:8px}.login-card input{height:45px}.login-card button{height:48px;margin-top:6px}.login-card h1{margin-top:18px}.login-card p{line-height:1.5;margin:0;color:#647487}@media(max-width:700px){.login-card form{gap:16px;margin-top:22px}}
.clickable-service{cursor:pointer}.clickable-service:hover{border-color:#83badd;box-shadow:0 5px 16px #16354b12}
.purchase-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.purchase-forms .panel{margin:0}.purchase-forms form{display:grid;gap:13px;margin-top:18px}.purchase-forms label{gap:7px}.purchase-forms button{justify-self:start;min-height:43px}.purchase-forms .grid-form{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-forms .grid-form .full{grid-column:span 2}@media(max-width:700px){.purchase-forms{grid-template-columns:1fr;gap:12px}.purchase-forms .grid-form{grid-template-columns:1fr}.purchase-forms .grid-form .full{grid-column:span 1}.purchase-forms button{justify-self:stretch;width:100%}.panel:has(table){padding:12px 0;overflow:hidden}.panel:has(table)>h2{padding:0 14px}.panel:has(table) table{display:block;overflow-x:auto;white-space:nowrap;padding:0 14px}.panel:has(table) th,.panel:has(table) td{padding:11px 10px}.panel:has(table) td:nth-child(2){white-space:normal;min-width:180px}}
@media(max-width:700px){.panel:has(table) table{display:table;width:100%;white-space:normal}.panel:has(table) th:nth-child(4),.panel:has(table) td:nth-child(4){display:none}.panel:has(table) th:nth-child(2),.panel:has(table) td:nth-child(2){min-width:0}.panel:has(table) th,.panel:has(table) td{font-size:11px;padding:9px 5px}.panel:has(table) td small{font-size:10px}}
.purchase-forms,.purchase-forms details,.purchase-forms form,.purchase-forms label,.purchase-forms input,.purchase-forms select{min-width:0}.purchase-forms details{overflow:hidden}@media(max-width:700px){.purchase-forms{width:100%;overflow:hidden}.purchase-forms .panel{width:100%}.purchase-forms input,.purchase-forms select{max-width:100%;width:100%}}
.purchase-forms,.purchase-forms details,.purchase-forms form,.purchase-forms label,.purchase-forms input,.purchase-forms select{min-width:0}.purchase-forms details{overflow:hidden}@media(max-width:700px){.purchase-forms{width:100%;overflow:hidden}.purchase-forms .panel{width:100%}.purchase-forms input,.purchase-forms select{max-width:100%;width:100%}}
.password-card{max-width:500px}.password-card form{display:grid;gap:15px}.password-card button{justify-self:start;margin-top:6px}
.mobile-user{display:none}@media(max-width:700px){.mobile-user{position:fixed;display:grid;place-items:center;top:10px;right:64px;z-index:21;width:40px;height:40px;border-radius:12px;background:#fff;border:1px solid #e0eaf1;box-shadow:0 8px 24px #17344e22;color:#183b58;text-decoration:none;font-size:21px}}
@media(max-width:700px){.mobile-header{padding-right:110px}.mobile-header>span{max-width:100%;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:700px){.not-home .mobile-bell{display:grid}}
.purchase-row{cursor:pointer}.purchase-row:hover{background:#f0f7fb}
.purchase-receipt{margin:18px 0}.purchase-receipt img{max-width:100%;max-height:360px;object-fit:contain;border:1px solid var(--line);border-radius:10px;cursor:zoom-in}
.app-footer{text-align:center;color:#718497;font-size:12px;padding:26px 0 8px}.app-footer a{color:#2479b6;text-decoration:none;font-weight:bold}.brand:before{content:"";display:inline-block;width:18px;height:18px;margin-right:6px;vertical-align:-3px;background:url("assets/obra360-logo.svg") left center/70px auto no-repeat}@media(max-width:700px){.app-footer{padding-bottom:78px}}
main:not(.auth){min-height:100vh;display:flex;flex-direction:column}.app-footer{margin-top:auto}.brand:before{background-image:url("obra360-logo.svg")}@media(max-width:700px){main:not(.auth){min-height:100vh}.app-footer{margin-top:auto}}
.brand{font-size:0!important;display:inline-block;width:150px;height:38px;white-space:nowrap}.brand span{display:none}.brand:before{display:block!important;width:150px!important;height:38px!important;margin:0!important;vertical-align:0!important;background:url("obra360-logo.svg") center/contain no-repeat!important}@media(max-width:700px){.mobile-header .brand{width:130px;height:34px}.mobile-header .brand:before{width:130px!important;height:34px!important}}
aside{background:#f6f3ee!important;color:#18344d!important;box-shadow:4px 0 18px #17344e12;z-index:2}.brand{font-size:25px!important;width:auto!important;height:auto!important;color:#18344d!important;display:inline!important}.brand span{display:inline!important;color:#2479b6!important}.brand:before{display:none!important}aside small{color:#718497!important}aside nav a,aside .logout{color:#35536b!important}aside nav a:hover{background:#e6eef3!important}.mobile-header .brand{font-size:23px!important;width:auto!important;height:auto!important}.mobile-header .brand span{display:inline!important}@media(max-width:700px){.mobile-header .brand{color:#18344d!important}}
aside .brand{display:block!important;width:150px!important;height:40px!important;font-size:0!important}.brand span{display:none!important}aside .brand:before{content:""!important;display:block!important;width:150px!important;height:40px!important;background:url("/assets/obra360-logo.svg") center/contain no-repeat!important}.mobile-header .brand{display:block!important;width:130px!important;height:34px!important;font-size:0!important}.mobile-header .brand:before{content:""!important;display:block!important;width:130px!important;height:34px!important;background:url("/assets/obra360-logo.svg") center/contain no-repeat!important}@media(max-width:700px){.mobile-header .brand span{display:none!important}}
aside .brand:before{background-image:url("/assets/obra360-logo.png")!important;width:150px!important;height:52px!important;background-size:contain!important}.mobile-header .brand:before{background-image:url("/assets/obra360-logo.png")!important;width:130px!important;height:42px!important;background-size:contain!important}.mobile-header .brand{height:42px!important}
@media(max-width:700px){.mobile-header .brand{width:48px!important;height:42px!important;overflow:hidden}.mobile-header .brand:before{width:150px!important;height:42px!important;background-size:150px auto!important;background-position:left center!important}}
.currency-input{text-align:right;font-variant-numeric:tabular-nums}
.share-btn{margin-top:14px;background:#eff6fb!important;color:#17618d!important;border:1px solid #cfe2ef!important;font-size:12px;padding:8px 11px}
.copy-toast{position:fixed;bottom:86px;left:50%;transform:translateX(-50%);z-index:100;background:#183b58;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 8px 20px #0003;font-size:13px}
