@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--navy:#10243e;--navy2:#173a5e;--orange:#f28c28;--orange2:#dc7411;--blue:#2783d5;--green:#25a66a;--purple:#7457c6;--bg:#f3f6f9;--text:#24364b;--muted:#718096;--line:#dce4eb;--white:#fff;--danger:#b63838}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}input,select,textarea,button{font:inherit}h1,h2,p{margin-top:0}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:var(--navy);color:#d7e2ec;display:flex;flex-direction:column;z-index:20}.brand{height:84px;display:flex;align-items:center;gap:12px;padding:18px 22px;background:#0b1d32}.brand-symbol,.brand-mark,.hero-logo{display:grid;place-items:center;background:var(--orange);color:#fff;font-weight:800;border-radius:9px;transform:rotate(-3deg)}.brand-symbol{width:42px;height:42px}.brand strong{display:block;color:#fff;font-size:19px}.brand small{display:block;color:#90a6ba;font-size:10px;margin-top:3px}.sidebar nav{padding:22px 12px;flex:1}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:8px;margin:4px 0;font-weight:600}.sidebar nav a span{font-size:19px}.sidebar nav a:hover,.sidebar nav a.active{background:#234765;color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 var(--orange)}.nav-caption{font-size:10px;color:#6f8ba4;margin:25px 14px 8px;font-weight:700}.sidebar-foot{padding:18px 26px;color:#7390aa}.app{margin-left:245px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;justify-content:space-between}.topbar>div:first-of-type{margin-right:auto}.topbar strong{display:block}.topbar small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.menu-toggle{display:none}.user{display:flex;align-items:center;gap:10px}.user>a{font-size:22px;color:var(--muted);margin-left:15px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e6edf4;color:var(--navy);font-weight:800}.content{padding:32px;flex:1}.app footer{text-align:center;padding:22px;color:#8998a8;font-size:11px}.welcome,.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.welcome{background:linear-gradient(110deg,var(--navy),var(--navy2));color:#fff;border-radius:14px;padding:30px 34px}.welcome h1,.page-head h1{font-size:27px;margin-bottom:7px}.welcome p,.page-head p,.panel-head p{color:var(--muted);margin-bottom:0}.welcome p{color:#b8c9d8}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:800;color:var(--orange);display:block;margin-bottom:9px}.btn{display:inline-flex;border:0;border-radius:8px;padding:11px 18px;font-weight:700;cursor:pointer;align-items:center;justify-content:center}.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange2)}.btn-light{background:#fff;border:1px solid var(--line)}.btn-block{width:100%}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;align-items:center;gap:15px}.stat>span{width:46px;height:46px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:18px;font-weight:800}.stat.blue>span{background:var(--blue)}.stat.green>span{background:var(--green)}.stat.orange>span{background:var(--orange)}.stat.purple>span{background:var(--purple)}.stat small{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.5px}.stat strong{display:block;font-size:23px;margin-top:6px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:24px;overflow:hidden}.panel-head{padding:20px 23px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head h2{font-size:17px;margin-bottom:5px}.panel-head>a,.link-action{color:var(--blue);font-weight:700}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;background:#f8fafc;color:#6e7c8b;font-size:10px;letter-spacing:.5px;padding:13px 17px}td{padding:15px 17px;border-top:1px solid #edf1f4;vertical-align:middle}.cell-sub{display:block;color:var(--muted);margin-top:4px}.badge{display:inline-block;background:#eaf1f7;color:#46627b;padding:5px 9px;border-radius:99px;font-size:10px;font-weight:700;text-transform:uppercase}.empty{text-align:center;color:var(--muted);padding:42px}.form-panel{padding:25px;overflow:visible}.form-section{padding-bottom:23px;margin-bottom:23px;border-bottom:1px solid var(--line)}.form-section h2{font-size:15px;color:var(--navy)}.grid{display:grid;gap:17px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.span-2{grid-column:span 2}label{display:block;color:#4c6073;font-size:12px;font-weight:700;margin-bottom:16px}input,select,textarea{width:100%;border:1px solid #cad5df;border-radius:7px;padding:11px 12px;background:#fff;color:var(--text);margin-top:7px}input:focus,select:focus,textarea:focus{outline:2px solid #f28c2830;border-color:var(--orange)}textarea{resize:vertical}.form-actions{text-align:right}.alert{border-radius:8px;padding:13px 16px;margin-bottom:18px}.alert-success{background:#e3f7ed;color:#176b47}.alert-danger{background:#fde8e8;color:var(--danger)}.auth-page{min-height:100vh;background:#eaf0f5;display:grid;place-items:center;padding:25px}.login-shell{width:min(970px,100%);min-height:590px;display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 20px 55px #0c253836}.login-hero{background:linear-gradient(150deg,#0e263f,#173e60);color:#fff;padding:45px;display:flex;flex-direction:column;justify-content:space-between}.hero-logo{width:61px;height:61px;font-size:20px}.login-hero h1{font-size:37px;line-height:1.18}.login-hero h1 em{color:var(--orange);font-style:normal}.login-hero p{color:#bfd0de;line-height:1.7}.login-hero>small{color:#819db4}.login-form{padding:60px;display:grid;align-items:center}.login-form h2{font-size:29px;margin-bottom:7px}.login-form>div>p{color:var(--muted);margin-bottom:30px}.install-card{width:min(760px,100%);background:#fff;border-radius:16px;padding:35px;box-shadow:0 18px 50px #17304b20}.brand-mark{width:54px;height:54px;margin-bottom:18px}.install-card h2{font-size:15px;margin:25px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.update-box{display:flex;gap:20px;align-items:center;margin-bottom:22px}.update-icon{width:60px;height:60px;border-radius:50%;background:#fff1e3;color:var(--orange);display:grid;place-items:center;font-size:30px}.security-note{margin-top:22px;padding:14px;background:#f4f8fb;border-left:3px solid var(--blue);color:#5b6f82}
@media(max-width:980px){.stat-grid{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}.sidebar{transform:translateX(-100%);transition:.2s}.menu-open .sidebar{transform:translateX(0)}.app{margin-left:0}.menu-toggle{display:block;border:0;background:none;font-size:24px;margin-right:15px}.login-shell{grid-template-columns:1fr}.login-hero{min-height:330px}.login-form{padding:40px}}
@media(max-width:650px){.content{padding:18px}.topbar{padding:0 18px}.user>span:not(.avatar){display:none}.welcome,.page-head{align-items:flex-start;gap:18px;flex-direction:column}.stat-grid,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.span-2{grid-column:span 1}.login-hero,.login-form{padding:30px}.login-hero h1{font-size:29px}}
.site-footer{display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px;text-align:left!important;padding:22px 32px!important;border-top:1px solid var(--line);background:#fff;color:#687b8d!important;line-height:1.7}.site-footer>div:last-child{text-align:right}.footer-brand{display:flex;align-items:center;gap:10px;color:var(--navy)}.footer-brand .brand-symbol{width:36px;height:36px}.heart{color:#e54848}.auth-wrap{width:min(1100px,100%)}.auth-footer{margin-top:22px;border-radius:12px}.color-control{display:grid;grid-template-columns:70px 1fr;gap:10px}.color-control input[type=color]{height:44px;padding:4px;cursor:pointer}.color-control input{margin-top:7px}.help-text{color:var(--muted)}.invite-inline{display:flex;gap:8px;min-width:310px}.invite-inline input{margin:0}.invite-inline .btn{white-space:nowrap}.badge-success{background:#dff5e9;color:#167147}.badge-warning{background:#fff0d6;color:#9a5c00}
@media(max-width:760px){.site-footer{grid-template-columns:1fr;text-align:center!important}.site-footer>div:last-child{text-align:center}.footer-brand{justify-content:center}}
.user{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px}.user-menu-trigger:hover{background:#f2f5f8}.user-dropdown{display:none;position:absolute;right:36px;top:55px;width:180px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 30px #10243e22;padding:7px;z-index:30}.user:hover .user-dropdown,.user:focus-within .user-dropdown{display:block}.user-dropdown a{display:block;padding:10px 12px;border-radius:6px;font-weight:600}.user-dropdown a:hover{background:#f2f5f8;color:var(--orange)}.logout-icon{font-size:22px;color:var(--muted);margin-left:10px}.avatar-photo{object-fit:cover}.user-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.user-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.user-card-top,.profile-summary{display:flex;align-items:center;gap:14px}.user-card-top h2,.profile-summary h2{font-size:16px;margin:0 0 4px}.user-card-top p,.profile-summary p{color:var(--muted);margin:0;font-size:12px}.user-card-photo{width:55px;height:55px;border-radius:50%;object-fit:cover;flex:none}.user-initial{display:grid;place-items:center;background:#e7eef5;color:var(--navy);font-weight:800;font-size:20px}.status-dot{width:10px;height:10px;border-radius:50%;margin-left:auto}.status-dot.online{background:#27ae6f}.status-dot.offline{background:#abb7c3}.user-card-info{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0;padding:15px 0;border-block:1px solid var(--line)}.user-card-info small{display:block;color:var(--muted);font-size:8px;font-weight:800}.user-card-info strong{display:block;font-size:11px;margin-top:5px}.user-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-card-actions .invite-inline{min-width:0;flex:1}.profile-summary{margin-bottom:25px}.profile-photo-large{width:92px;height:92px;border-radius:50%;object-fit:cover;font-size:30px}.photo-upload{display:inline-flex;margin:10px 0 0;background:#eef3f7;padding:7px 11px;border-radius:6px;cursor:pointer}.photo-upload input{display:none}.check-row{display:flex;align-items:center;gap:8px}.check-row input{width:auto;margin:0}
@media(max-width:1150px){.user-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.user-cards{grid-template-columns:1fr}.user-card-info{grid-template-columns:1fr}.user-dropdown{right:10px}}

/* Gestão de Obras 1.4.1 — área pública */
.public-page{margin:0;background:#f4f6f3;color:#17231d;font-family:Inter,Arial,sans-serif}.public-header{min-height:76px;padding:12px max(5%,calc((100% - 1240px)/2));background:var(--navy);display:flex;align-items:center;justify-content:space-between;color:#fff}.public-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}.public-brand .brand-symbol,.public-footer-brand .brand-symbol{width:45px;height:45px;display:grid;place-items:center;border:2px solid var(--orange);border-radius:50%;font-weight:800}.public-brand strong,.public-brand small{display:block}.public-brand small{font-size:11px;opacity:.75;margin-top:3px}.public-header nav{display:flex;align-items:center;gap:25px}.public-header nav a{color:#fff;text-decoration:none;font-weight:700}.public-login-link{border:1px solid #ffffff70;border-radius:8px;padding:10px 16px}.public-main{max-width:1240px;margin:auto;padding:55px 28px}.public-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:60px;align-items:center}.public-hero>div:first-child>small,.public-feature small,.legal-page header small{color:var(--orange);font-weight:800;letter-spacing:1.4px}.public-hero h1{font-family:Georgia,serif;font-size:58px;line-height:1.05;max-width:730px;margin:14px 0 22px}.public-hero>div:first-child>p{max-width:720px;color:#607068;font-size:19px;line-height:1.75}.public-cta{display:inline-block;margin-top:12px;padding:14px 22px;background:var(--orange);color:#fff;text-decoration:none;border-radius:8px;font-weight:800}.public-steps{background:var(--navy);color:#fff;border-radius:18px;padding:32px;box-shadow:0 20px 45px #10243e22}.public-steps span{display:block;color:var(--orange);font-weight:800;margin-top:12px}.public-steps h2{font-family:Georgia,serif;margin:3px 0 7px}.public-steps p{color:#dce5e0;margin:0 0 18px}.public-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:65px}.public-info-grid article{background:#fff;border-radius:14px;padding:26px;box-shadow:0 12px 30px #10243e0c}.public-info-grid h2,.public-feature h2,.legal-page h1,.legal-page h2{font-family:Georgia,serif}.public-info-grid p{line-height:1.7}.public-feature{margin-top:35px;background:#fff;border-left:5px solid var(--orange);border-radius:12px;padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:40px}.public-feature h2{font-size:30px;margin:8px 0}.public-feature p,.public-feature li{line-height:1.7}.public-footer{background:var(--navy);color:#dce5e0;padding:28px max(5%,calc((100% - 1240px)/2));display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:25px;font-size:12px;line-height:1.7}.public-footer>div:nth-child(2){display:flex;justify-content:center;align-items:center;gap:10px}.public-footer>div:last-child{text-align:right}.public-footer a{color:#fff}.legal-page{max-width:900px;margin:auto;background:#fff;border-radius:16px;padding:42px;box-shadow:0 15px 40px #10243e10}.legal-page header{border-bottom:1px solid #dfe6e2;padding-bottom:20px;margin-bottom:28px}.legal-page h1{font-size:42px;margin:8px 0}.legal-page h2{font-size:23px;margin-top:30px}.legal-page p{font-size:16px;line-height:1.8}.legal-contact{margin-top:35px;background:#f2f5f2;border-left:4px solid var(--orange);padding:20px;border-radius:8px;line-height:1.7}@media(max-width:800px){.public-header{align-items:flex-start;gap:18px}.public-brand small{display:none}.public-main{padding:35px 18px}.public-hero,.public-feature{grid-template-columns:1fr}.public-hero{gap:35px}.public-hero h1{font-size:42px}.public-info-grid,.public-footer{grid-template-columns:1fr}.public-footer{text-align:center}.public-footer>div:last-child{text-align:center}.legal-page{padding:25px}.legal-page h1{font-size:34px}}
