:root{
  --ink:#0a2342;--muted:#65768c;--line:#e5edf6;--bg:#f5f8fc;--card:#fff;--blue:#0877ff;--blue2:#0aa4ff;--navy:#0b1e33;--navy2:#102b49;--green:#08ad67;--amber:#ff9f0a;--red:#ef4444;--purple:#7c3aed;--shadow:0 12px 35px rgba(20,54,88,.08);--radius:16px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.4}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.muted{color:var(--muted)}.mobile-only{display:none}.desktop-only{display:inline-flex}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:10px;padding:.78rem 1rem;font-weight:750;transition:.2s;background:#fff;min-height:44px}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--blue),#006be9);color:#fff;box-shadow:0 8px 18px rgba(8,119,255,.18)}.btn.whatsapp{background:#08b667;color:#fff}.btn.outline,.btn.ghost{border-color:#bfd6f3;background:#fff;color:#0b60bf}.btn.small{padding:.55rem .9rem;min-height:38px}.btn.wide{width:100%}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:.72rem;color:var(--blue);margin:0 0 .35rem}.notice{padding:1rem 1.1rem;border-radius:12px;margin:0 0 1rem}.notice.error{background:#fff0f0;color:#b42318}.notice.success{background:#ecfdf3;color:#087443}.brand,.public-brand{display:flex;align-items:center;gap:.65rem}.brand img,.public-brand img{width:48px;height:48px;object-fit:contain}.brand span,.public-brand strong{font-size:1.45rem}.brand b,.public-brand span{color:var(--blue)}
/* auth */
.auth-body{min-height:100dvh;background:linear-gradient(135deg,#07182b,#0e3155);display:grid;place-items:center;padding:24px}.auth-shell{width:min(980px,100%);min-height:590px;background:#fff;border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.25);display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden}.brand-panel{background:radial-gradient(circle at 25% 20%,#123d68,#07192b 70%);color:#fff;padding:52px;display:flex;flex-direction:column;justify-content:center}.brand-panel .brand{margin-bottom:64px}.brand-panel .brand img{background:#fff;border-radius:14px;padding:3px}.brand-panel h1{font-size:clamp(2.2rem,4vw,4rem);line-height:1.02;margin-bottom:18px}.brand-panel p{font-size:1.12rem;color:#c9daeb}.login-card{padding:52px;display:grid;place-items:center}.login-inner{width:min(360px,100%)}.login-inner h2{font-size:2rem;margin-bottom:6px}.login-inner>p{color:var(--muted);margin-bottom:28px}.mobile-logo{display:none}.stack-form{display:grid;gap:14px}.stack-form label{display:grid;gap:6px;font-size:.83rem;font-weight:700}.stack-form input,.stack-form select,.stack-form textarea,.grid-form input{width:100%;border:1px solid #cfdeed;background:#fff;border-radius:9px;padding:.75rem .8rem;outline:0}.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.grid-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,119,255,.1)}
/* onboarding */
.plain-body{min-height:100dvh;background:linear-gradient(145deg,#eef6ff,#f9fbfd);padding:30px}.onboarding-wrap{min-height:calc(100dvh - 60px);display:grid;place-items:center}.onboarding-card{width:min(760px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.onboarding-card .brand{margin-bottom:28px}.onboarding-card h1{font-size:2rem;margin-bottom:8px}.onboarding-card>p{color:var(--muted)}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.grid-form label{display:grid;gap:6px;font-weight:700;font-size:.84rem}.grid-form small{font-weight:500;color:var(--muted)}.span-2{grid-column:1/-1}
/* app layout */
.app-shell{min-height:100dvh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;background:linear-gradient(180deg,#0c2138,#081727);padding:22px 12px;color:#c9d5e3;display:flex;flex-direction:column;z-index:30}.sidebar-brand{display:flex;align-items:center;gap:9px;padding:0 10px 22px;color:#fff;font-size:1.22rem;font-weight:850}.sidebar-brand .brand-w{width:38px;height:38px;background:#fff;border-radius:10px;display:grid;place-items:center;overflow:hidden}.sidebar-brand img{width:100%;height:100%;object-fit:contain}.sidebar-brand small{display:block;color:#26a4ff;font-size:.7rem;font-weight:750}.sidebar nav{display:grid;gap:3px;overflow:auto;padding-right:2px}.nav-item{display:flex;gap:11px;align-items:center;padding:10px 12px;border-radius:8px;font-size:.88rem}.nav-item>span{width:20px;text-align:center}.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}.nav-item.active{background:linear-gradient(90deg,#164f80,#1a4166);color:#1db1ff;border-left:3px solid #11a6ff}.sidebar-foot{margin-top:auto;background:#0f2a46;border-radius:12px;padding:14px;display:grid;color:#fff}.sidebar-foot small{color:#9fb5ca}.main-area{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 26px;position:sticky;top:0;z-index:20}.menu-button{display:none;border:0;background:none;font-size:1.4rem}.search-box{margin-right:auto;display:flex;align-items:center;gap:9px;background:#f3f7fb;border:1px solid #dce7f2;border-radius:9px;padding:0 12px;width:min(420px,46vw)}.search-box input{border:0;background:transparent;outline:0;height:38px;width:100%;font-size:.82rem}.top-actions{display:flex;align-items:center;gap:12px}.icon-button{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f6f9fc}.user-chip{display:flex;align-items:center;gap:9px}.user-chip .avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#dcedff;color:#065fb9;font-weight:850}.user-chip span:last-child{display:grid}.user-chip small{font-size:.68rem;color:var(--muted)}.logout{font-size:.8rem;color:var(--muted)}.page-content{padding:26px;max-width:1460px;margin:auto}.mobile-bottom{display:none}
.dash-hero,.module-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.dash-hero h1,.module-head h1{font-size:clamp(1.7rem,2.4vw,2.35rem);margin-bottom:3px}.dash-hero p:last-child,.module-head p:last-child{color:var(--muted);margin:0}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.metric{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;display:flex;gap:14px;min-width:0}.metric-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;font-weight:900}.metric-icon.blue{background:#e8f3ff;color:#0877ff}.metric-icon.green{background:#e5f8ef;color:#08a560}.metric-icon.amber{background:#fff3db;color:#e79000}.metric>div{display:grid;min-width:0}.metric strong{font-size:1.18rem}.metric small{color:#52647b}.metric span,.metric a{font-size:.72rem;color:#667a91}.metric a{color:var(--blue)}.dashboard-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:15px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 3px 12px rgba(15,58,92,.025)}.panel.span-2{grid-column:span 2}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #edf2f7;padding-bottom:11px;margin-bottom:5px}.panel-head h2{font-size:1rem;margin:0}.panel-head>a,.panel-head>span{font-size:.74rem;color:var(--blue)}.agenda-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid #eef3f8}.agenda-row:last-child{border:0}.agenda-row time{font-weight:850}.agenda-row div{display:grid;min-width:0}.agenda-row small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{font-size:.68rem;padding:5px 8px;border-radius:999px;background:#eef4fa}.status.confirmada{background:#ddf7eb;color:#07734a}.status.a_confirmar,.status.pendente{background:#fff1dc;color:#b36b00}.alert-row,.stock-row,.list-line{display:flex;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid #eef3f8}.alert-row:last-child,.stock-row:last-child,.list-line:last-child{border:0}.alert-row>div,.stock-row>div{display:grid;min-width:0}.alert-row small,.stock-row small{color:var(--muted)}.dot,.stock-dot{width:10px;height:10px;border-radius:50%;background:#93a4b7;flex:0 0 auto}.dot.p3,.stock-dot.low{background:#ef4444}.dot.p2{background:#f59e0b}.dot.p1,.stock-dot.ok{background:#0aaa68}.stock-row>b{margin-left:auto;font-size:.8rem}.bar-chart{height:100px;display:flex;align-items:flex-end;gap:5px;padding:14px 4px 7px;border-bottom:1px solid #edf2f7}.bar-chart span{flex:1;background:linear-gradient(#85c8ff,#278eff);border-radius:3px 3px 0 0;min-width:5px}.finance-lines p{display:flex;align-items:center;gap:7px;margin:9px 0;font-size:.82rem}.finance-lines b{margin-left:auto}.finance-lines i{width:8px;height:8px;border-radius:50%}.blue-dot{background:#1688ff}.red-dot{background:#ef4444}.green-dot{background:#06a766}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:10px}.quick-grid a{min-height:75px;border:1px solid #e5eef7;border-radius:12px;display:grid;place-items:center;text-align:center;color:var(--blue);font-weight:900;font-size:1.25rem}.quick-grid small{display:block;color:#314861;font-size:.68rem;font-weight:650}.empty{padding:24px;text-align:center;color:var(--muted)}.empty.tall{min-height:260px;display:grid;place-items:center}.table-panel{padding:0;overflow:hidden}.table-scroll{overflow:auto}.table-panel table{width:100%;border-collapse:collapse;min-width:740px}.table-panel th,.table-panel td{text-align:left;padding:13px 14px;border-bottom:1px solid #edf2f7;font-size:.8rem}.table-panel th{background:#f8fbfe;color:#52657b;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}.crud-dialog{width:min(620px,calc(100vw - 24px));border:0;border-radius:18px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.28)}.crud-dialog::backdrop{background:rgba(5,19,34,.55);backdrop-filter:blur(4px)}.crud-dialog form{padding:22px}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{margin:0}.dialog-head button{border:0;background:none;font-size:1.7rem}.crud-dialog details{border:1px solid var(--line);padding:10px 12px;border-radius:10px}.crud-dialog details summary{font-weight:750;cursor:pointer}.crud-dialog details[open]{display:grid;gap:12px}.address-fields{display:grid;grid-template-columns:130px minmax(0,1fr) 100px;gap:10px}.address-fields .grow{grid-column:span 1}.agenda-layout{display:grid;grid-template-columns:400px 1fr;gap:24px;padding-top:8px}
/* calendars */
.calendar-box{min-width:0}.calendar-top{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;text-align:center;margin-bottom:10px}.calendar-top button{border:0;background:#f2f7fc;border-radius:8px;height:34px}.week-row,.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.week-row span{text-align:center;font-size:.68rem;color:var(--muted);padding:4px}.days-grid>span,.days-grid button{aspect-ratio:1/1;border:0;background:#fff;border-radius:8px}.days-grid button:hover{background:#e9f4ff}.days-grid button.selected{background:var(--blue);color:#fff;font-weight:800}
/* public profile */
.public-body{background:#eef3f8}.public-site{--tenant-primary:#0877ff;min-height:100dvh}.public-header{height:68px;background:#fff;border-bottom:1px solid #dfe9f3;display:flex;align-items:center;gap:24px;padding:0 max(22px,calc((100vw - 1460px)/2));position:sticky;top:0;z-index:40}.public-brand img{width:42px;height:42px}.public-brand strong{font-size:1.26rem;white-space:nowrap}.public-header nav{display:flex;gap:22px;font-size:.76rem;margin-right:auto}.public-header nav a:hover{color:var(--tenant-primary)}.public-main{max-width:1460px;margin:0 auto;padding:14px 22px 30px}.profile-hero{background:#fff;border:1px solid #dbe7f2;border-radius:16px;overflow:hidden;box-shadow:0 8px 22px rgba(11,43,73,.05)}.cover{height:215px;background:linear-gradient(115deg,#123852 0%,#0b5d79 42%,#1a7f95 65%,#0b263e 100%);position:relative;background-size:cover;background-position:center}.cover:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 23% 75%,rgba(53,186,204,.45),transparent 28%),radial-gradient(circle at 70% 15%,rgba(0,160,225,.25),transparent 24%)}.cover-shade{position:absolute;inset:0;background:linear-gradient(90deg,transparent 42%,rgba(5,24,40,.65))}.cover-copy{position:absolute;right:34px;top:50%;transform:translateY(-50%);width:min(330px,38%);color:#fff}.cover-copy h2{font-size:1.45rem;line-height:1.15;margin-bottom:25px}.cover-copy>div{display:flex;gap:13px;font-size:.72rem}.profile-strip{min-height:112px;padding:14px 22px 16px 180px;display:flex;align-items:center;gap:20px;position:relative}.profile-id{display:flex;align-items:center;gap:16px;min-width:0}.profile-photo{position:absolute;left:24px;bottom:18px;width:134px;height:134px;border-radius:20px;background:linear-gradient(145deg,#d9ecff,#bcd5ec);border:5px solid #fff;box-shadow:0 8px 22px rgba(9,37,65,.15);overflow:hidden;display:grid;place-items:center}.profile-photo img{width:100%;height:100%;object-fit:cover}.profile-photo span{font-size:3rem;font-weight:900;color:#0c68c8}.verified{display:inline-flex;background:#e2f8ec;color:#087544;border-radius:999px;padding:3px 7px;font-size:.66rem;font-weight:750}.profile-id h1{margin:3px 0 0;font-size:1.65rem}.check{color:#0b83ff;font-size:1rem}.profile-id p{margin:0;color:#24517b}.rating{font-size:.78rem;margin-top:4px;color:#475e76}.rating:first-letter{color:#f5a000}.hero-actions{margin-left:auto;display:flex;gap:9px}.service-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.service-cards article{background:#fff;border:1px solid #dfe9f3;border-radius:13px;padding:15px;display:flex;align-items:center;gap:11px;min-width:0}.service-icon{width:42px;height:42px;border-radius:50%;background:#edf6ff;color:var(--tenant-primary);display:grid;place-items:center;font-weight:900}.service-cards article div{display:grid;min-width:0}.service-cards small{color:#63778c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-grid{display:grid;grid-template-columns:1.15fr 1.05fr .65fr;gap:11px}.public-column{display:grid;align-content:start;gap:11px}.public-side{display:grid;align-content:start;gap:11px}.public-card{background:#fff;border:1px solid #dfe9f3;border-radius:13px;padding:16px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.card-title h2{font-size:1rem;margin:0}.card-title span{font-size:.68rem;color:var(--muted)}.card-title a{font-size:.7rem;color:var(--tenant-primary)}.about-card p{font-size:.82rem;color:#445b72;margin:0;line-height:1.55}.public-calendar-wrap{display:grid;grid-template-columns:1fr .85fr;gap:16px}.slots-panel{border-left:1px solid #e5edf5;padding-left:16px}.slots-panel h3{font-size:.88rem;margin-bottom:3px}.slots-panel p{font-size:.7rem;color:var(--muted)}.slots{display:grid;grid-template-columns:1fr 1fr;gap:8px}.slots button{border:1px solid #b9d8f9;background:#f7fbff;color:#0a6fcf;border-radius:8px;padding:8px;font-size:.74rem}.slots button:hover{background:#e9f5ff}.public-request-form{gap:10px}.public-request-form .two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.public-request-form label{font-size:.7rem}.public-request-form input,.public-request-form select,.public-request-form textarea{padding:.68rem .72rem;font-size:.8rem}.privacy{text-align:center;color:var(--muted);font-size:.66rem}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.portfolio-grid figure{margin:0;position:relative;border-radius:8px;overflow:hidden;aspect-ratio:1.6/1;background:#d9e8f4}.portfolio-grid img{width:100%;height:100%;object-fit:cover}.portfolio-grid figcaption{position:absolute;left:5px;bottom:5px;background:#fff;border-radius:5px;padding:2px 5px;font-size:.62rem}.portfolio-placeholder{aspect-ratio:1.6/1;background:linear-gradient(145deg,#d8f0f6,#8dcde2);border-radius:8px;display:flex;align-items:flex-end;padding:7px;font-size:.65rem;font-weight:800}.review{display:flex;gap:10px}.review-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#0b7dff;color:#fff;font-weight:800;flex:0 0 auto}.review strong{font-size:.8rem}.stars{color:#ffa400;font-size:.75rem}.review p{font-size:.72rem;color:#536b82;margin:4px 0 0}.area-card p{font-size:.78rem;color:#4d657c}.area-map{height:145px;background:linear-gradient(135deg,#d4f0df,#cbe7fa);border-radius:10px;display:grid;place-items:center;align-content:center;position:relative;overflow:hidden}.area-map:before,.area-map:after{content:"";position:absolute;width:180%;height:1px;background:#fff8;transform:rotate(-18deg)}.area-map:after{transform:rotate(25deg)}.area-map span{font-size:1.7rem;color:var(--tenant-primary);z-index:1}.area-map strong{z-index:1}.area-stats{display:grid;grid-template-columns:1fr 1fr;margin-top:12px;gap:8px}.area-stats div{display:grid}.area-stats b{font-size:1.1rem}.area-stats small{font-size:.63rem;color:var(--muted)}.links-card a{display:flex;align-items:center;gap:10px;border-top:1px solid #edf2f7;padding:10px 0}.links-card a:first-of-type{border-top:0}.links-card a>span{font-size:1.25rem}.links-card a>div{display:grid;flex:1}.links-card a strong{font-size:.76rem}.links-card a small{font-size:.63rem;color:var(--muted)}.public-footer{max-width:1460px;margin:0 auto;padding:20px 22px 30px;display:flex;align-items:center;gap:30px}.public-footer p{margin:0;color:#35516c}.public-footer>div{display:flex;margin-left:auto;gap:22px;font-size:.75rem;color:#284663}.mobile-cta{display:none}.success-page{min-height:100dvh;display:grid;place-items:center;padding:20px}.success-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;width:min(560px,100%);padding:34px;text-align:center}.success-card .public-brand{justify-content:center;margin-bottom:25px}.success-icon{width:72px;height:72px;border-radius:50%;background:#def7ea;color:#07985c;display:grid;place-items:center;margin:0 auto 16px;font-size:2rem;font-weight:900}.success-card p{color:var(--muted)}.success-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
@media (max-width:1180px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr 1fr}.panel.span-2{grid-column:span 2}.public-grid{grid-template-columns:1fr 1fr}.public-side{grid-column:1/-1;grid-template-columns:1fr 1fr}.service-cards{grid-template-columns:repeat(2,1fr)}.public-footer>div{display:none}.agenda-layout{grid-template-columns:340px 1fr}}
@media (max-width:860px){
  .desktop-only{display:none!important}.mobile-only{display:inline-flex}.auth-body{padding:0}.auth-shell{min-height:100dvh;border-radius:0;grid-template-columns:1fr}.brand-panel{display:none}.login-card{padding:28px}.mobile-logo{display:flex;align-items:center;gap:8px;margin-bottom:38px}.mobile-logo img{width:50px}.mobile-logo strong{font-size:1.4rem}.mobile-logo span{color:var(--blue)}
  .app-shell{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(310px,86vw);transform:translateX(-105%);transition:.24s;box-shadow:15px 0 45px rgba(0,0,0,.25)}body.menu-open .sidebar{transform:translateX(0)}body.menu-open:after{content:"";position:fixed;inset:0;background:rgba(5,18,32,.45);z-index:25}.topbar{height:64px;padding:0 14px;background:linear-gradient(135deg,#0b1f35,#123f6c);color:#fff;border:0}.menu-button{display:block;color:#fff}.search-box{display:none}.top-actions{margin-left:auto}.top-actions .icon-button{background:rgba(255,255,255,.1)}.user-chip small,.logout{color:#cfe0f1}.page-content{padding:16px 14px calc(92px + var(--safe-b))}.mobile-bottom{position:fixed;left:0;right:0;bottom:0;z-index:22;height:calc(68px + var(--safe-b));padding:7px 14px var(--safe-b);background:#fff;border-top:1px solid #dbe7f2;display:grid;grid-template-columns:1fr 1fr 64px 1fr 1fr;align-items:center}.mobile-bottom a,.mobile-bottom button{display:grid;place-items:center;gap:2px;border:0;background:none;color:#0b2b4a;font-size:1.15rem}.mobile-bottom small{font-size:.6rem}.mobile-bottom .fab{width:52px;height:52px;border-radius:50%;background:var(--blue);color:#fff;font-size:2rem;margin:-24px auto 0;box-shadow:0 8px 20px rgba(8,119,255,.32)}.dash-hero{align-items:flex-start}.dash-hero .btn{display:none}.metrics-grid{gap:9px}.metric{padding:13px;gap:10px}.metric-icon{width:36px;height:36px}.metric strong{font-size:1rem}.dashboard-grid{grid-template-columns:1fr}.panel.span-2{grid-column:auto}.dashboard-grid .panel:nth-of-type(4),.dashboard-grid .panel:nth-of-type(5){display:none}.module-head{align-items:center}.agenda-layout{grid-template-columns:1fr}.address-fields{grid-template-columns:1fr 1fr}.address-fields .grow{grid-column:1/-1}
  .public-header{height:60px;padding:0 14px}.public-header nav{display:none}.public-header.menu-open nav{display:block}.public-header .public-brand img{width:36px;height:36px}.public-header .public-brand strong{font-size:1.04rem}.public-menu{margin-left:auto;border:0;background:none;font-size:1.35rem;color:#123352}.public-main{padding:0 0 calc(84px + var(--safe-b))}.profile-hero{border-radius:0;border-left:0;border-right:0}.cover{height:150px}.cover-shade{background:linear-gradient(90deg,rgba(5,24,40,.1),rgba(5,24,40,.5))}.cover-copy{left:18px;right:auto;width:70%;top:auto;bottom:18px;transform:none}.cover-copy h2{font-size:1rem;margin-bottom:10px}.cover-copy>div{font-size:.58rem;gap:8px}.profile-strip{padding:16px;display:block}.profile-id{align-items:flex-start}.profile-photo{position:static;width:82px;height:82px;border-radius:14px;border-width:3px;flex:0 0 auto}.profile-id h1{font-size:1.25rem}.verified{font-size:.56rem}.profile-id p,.rating{font-size:.7rem}.hero-actions{margin-top:13px;display:grid;grid-template-columns:1.25fr 1fr .75fr;gap:5px}.hero-actions .btn{font-size:.7rem;padding:.64rem .4rem;min-height:40px}.service-cards{margin:9px 10px;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.service-cards article{display:grid;text-align:center;justify-items:center;padding:10px 4px;gap:5px}.service-cards article div{width:100%}.service-icon{width:34px;height:34px}.service-cards strong{font-size:.62rem}.service-cards small{display:none}.public-grid{display:flex;flex-direction:column;gap:9px;padding:0 10px}.public-column,.public-side{display:contents}.about-card{order:1}.public-column:first-child>article:nth-child(2){order:3}.portfolio-card{order:5}.request-card{order:4}.public-column:nth-child(2)>article:nth-child(2){order:6}.area-card{order:7}.links-card{order:8}.public-card{padding:14px}.card-title h2{font-size:.9rem}.about-card p{font-size:.75rem}.public-calendar-wrap{grid-template-columns:1fr}.slots-panel{border-left:0;border-top:1px solid #e5edf5;padding-left:0;padding-top:12px}.week-row,.days-grid{gap:4px}.days-grid button{font-size:.72rem}.slots{grid-template-columns:repeat(4,1fr);gap:5px}.slots button{padding:7px 3px}.public-request-form .two-cols{grid-template-columns:1fr}.public-side{grid-template-columns:1fr}.public-footer{display:none}.mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:35;background:#fff;border-top:1px solid #dce7f1;padding:8px 10px calc(8px + var(--safe-b));display:grid;grid-template-columns:1.25fr 1fr;gap:7px}.mobile-cta .btn{min-height:44px;font-size:.76rem}.portfolio-grid{gap:5px}.area-map{height:120px}.onboarding-card{padding:22px}.grid-form{grid-template-columns:1fr}.span-2{grid-column:auto}.plain-body{padding:12px}
}
@media (max-width:520px){.metrics-grid{grid-template-columns:1fr 1fr}.metric{min-height:92px}.metric-icon{display:none}.quick-grid{grid-template-columns:repeat(3,1fr)}.user-chip span:last-child{display:none}.logout{display:none}.agenda-row{grid-template-columns:48px minmax(0,1fr)}.agenda-row .status{grid-column:2}.module-head h1{font-size:1.6rem}.module-head .btn{padding:.65rem .8rem}.service-cards{overflow-x:auto;grid-template-columns:repeat(4,88px);scroll-snap-type:x mandatory}.service-cards article{scroll-snap-align:start}.address-fields{grid-template-columns:1fr}.slots{grid-template-columns:repeat(4,1fr)}.public-request-form .address-fields{grid-template-columns:1fr 1fr}.public-request-form .address-fields .grow{grid-column:1/-1}}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-grid .panel h2{font-size:1rem}.settings-save{grid-column:1/-1;display:flex;justify-content:flex-end}.settings-grid input[type=file]{padding:.55rem;background:#f8fbfe}.settings-grid input[type=color]{height:48px;padding:4px}.settings-grid .address-fields{grid-template-columns:120px 1fr 90px}
@media(max-width:860px){.settings-grid{grid-template-columns:1fr}.settings-save{grid-column:auto}.settings-grid .address-fields{grid-template-columns:1fr 1fr}.settings-grid .address-fields .grow{grid-column:1/-1}}
.request-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.request-item{display:grid;gap:12px}.request-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.request-top h2{font-size:1.05rem;margin:0}.request-top p,.request-notes{font-size:.8rem;color:var(--muted);margin:4px 0 0}.request-actions{display:flex;gap:8px;flex-wrap:wrap}.request-actions .btn{font-size:.72rem}
@media(max-width:860px){.request-board{grid-template-columns:1fr}.request-actions{display:grid;grid-template-columns:1fr 1fr}.request-actions .btn:last-child{grid-column:1/-1}}

/* v0.1.9 — Perfil público: navegação mobile */
.public-mobile-login{display:none}
@media (max-width:860px){
  .public-header{position:sticky;top:0;overflow:visible}
  .public-header nav{
    display:none;
    position:absolute;
    top:calc(100% + 1px);
    left:10px;
    right:10px;
    z-index:70;
    margin:0;
    padding:9px;
    background:#fff;
    border:1px solid #dfe9f3;
    border-radius:0 0 14px 14px;
    box-shadow:0 18px 34px rgba(8,35,64,.18);
    flex-direction:column;
    gap:2px;
  }
  .public-header.menu-open nav{display:flex}
  .public-header nav a{
    display:flex;
    align-items:center;
    min-height:46px;
    padding:11px 13px;
    border-radius:9px;
    font-size:.9rem;
    font-weight:700;
    color:#163a5d;
  }
  .public-header nav a:active,.public-header nav a:hover{background:#f1f7fd;color:var(--tenant-primary)}
  .public-header nav .public-mobile-login{
    display:flex;
    justify-content:center;
    margin-top:6px;
    color:#fff;
    background:var(--tenant-primary);
  }
  .public-header nav .public-mobile-login:hover,.public-header nav .public-mobile-login:active{
    color:#fff;
    filter:brightness(.96);
    background:var(--tenant-primary)
  }
  .public-menu{
    display:inline-grid!important;
    place-items:center;
    width:44px;
    height:44px;
    padding:0;
    border-radius:10px;
    line-height:1;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  .public-menu:active{background:#eef5fb}
}

/* v0.2.0 — menu público mobile nativo (não depende de JS externo para abrir) */
.public-mobile-nav{display:none;position:relative;margin-left:auto}
.public-mobile-nav summary{list-style:none;-webkit-tap-highlight-color:transparent}
.public-mobile-nav summary::-webkit-details-marker{display:none}
.public-mobile-nav .hamb-close{display:none}
@media (max-width:860px){
  .public-header{overflow:visible!important}
  .public-header .public-desktop-nav{display:none!important}
  .public-mobile-nav.mobile-only{display:block!important}
  .public-mobile-nav summary{
    width:46px;height:46px;border:0;border-radius:11px;background:#fff;color:#123352;
    display:grid;place-items:center;font-size:1.55rem;font-weight:700;cursor:pointer
  }
  .public-mobile-nav[open] summary{background:#eef5fb}
  .public-mobile-nav[open] .hamb-open{display:none}
  .public-mobile-nav[open] .hamb-close{display:inline}
  .public-mobile-menu{
    position:absolute;right:0;top:calc(100% + 8px);z-index:9999;width:min(290px,calc(100vw - 28px));
    padding:10px;background:#fff;border:1px solid #dbe7f2;border-radius:14px;
    box-shadow:0 20px 45px rgba(8,35,64,.22);display:grid;gap:3px
  }
  .public-mobile-menu a{
    display:flex;align-items:center;min-height:48px;padding:11px 14px;border-radius:10px;
    color:#163a5d;font-size:.92rem;font-weight:750
  }
  .public-mobile-menu a:hover,.public-mobile-menu a:active{background:#f1f7fd;color:var(--tenant-primary)}
  .public-mobile-menu .public-mobile-login{
    margin-top:6px;justify-content:center;background:var(--tenant-primary);color:#fff!important
  }
}


/* v0.2.1 — botão + central: painel de ações rápidas */
.quick-actions-dialog{border:0;padding:0;background:transparent;width:min(560px,calc(100vw - 24px));max-width:none;color:var(--ink)}
.quick-actions-dialog::backdrop{background:rgba(5,20,36,.55);backdrop-filter:blur(3px)}
.quick-sheet{background:#fff;border-radius:22px;padding:18px;box-shadow:0 28px 80px rgba(4,29,55,.28)}
.quick-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.quick-sheet-head>div{display:grid;gap:2px}.quick-sheet-head strong{font-size:1.12rem}.quick-sheet-head small{color:var(--muted);font-size:.78rem}
.quick-close{width:40px;height:40px;border:0;border-radius:50%;background:#eef5fb;color:#173957;font-size:1.55rem;display:grid;place-items:center}
.quick-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.quick-sheet-grid a{min-height:94px;border:1px solid #e2ebf4;border-radius:14px;padding:12px 8px;display:grid;place-items:center;align-content:center;gap:7px;text-align:center;background:#fff}
.quick-sheet-grid a:active,.quick-sheet-grid a:hover{background:#f2f8ff;border-color:#bcd9f7}
.quick-sheet-grid a span{width:39px;height:39px;border-radius:12px;background:#eaf4ff;color:var(--blue);display:grid;place-items:center;font-size:1.25rem;font-weight:900}
.quick-sheet-grid a b{font-size:.72rem;line-height:1.2}
@media(max-width:860px){
  .quick-actions-dialog{width:100%;max-width:none;margin:auto 0 0 0;align-self:end}
  .quick-sheet{border-radius:22px 22px 0 0;padding:17px 16px calc(18px + var(--safe-b))}
  .quick-sheet-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .quick-sheet-grid a{min-height:88px}
  .mobile-bottom .fab:active{transform:scale(.96)}
}
@media(max-width:390px){.quick-sheet-grid{gap:7px}.quick-sheet-grid a{min-height:84px;padding:9px 5px}.quick-sheet-grid a b{font-size:.66rem}}

/* v0.2.3 — Portfólio + assinatura Wakko Informática */
.developer-credit{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;line-height:1.25;text-decoration:none;opacity:.88;transition:.2s}.developer-credit:hover{opacity:1;text-decoration:underline}.sidebar-foot .developer-credit{margin-top:7px;color:#c5d8eb}.auth-credit{margin-top:auto;color:#d8e7f5}.public-footer{flex-wrap:wrap}.public-footer .public-credit{flex:0 0 100%;justify-content:center;color:#35516c;margin-top:4px;padding-top:12px;border-top:1px solid #dce7f1}
.portfolio-admin-panel{padding:16px}.portfolio-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-top:12px}.portfolio-admin-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 5px 18px rgba(15,58,92,.04)}.portfolio-admin-image{position:relative;aspect-ratio:16/10;background:#e9f2f8;overflow:hidden}.portfolio-admin-image img{width:100%;height:100%;object-fit:cover}.portfolio-visibility{position:absolute;top:10px;right:10px;border-radius:999px;padding:5px 9px;font-size:.66rem;font-weight:800;background:#eef3f8;color:#51677e}.portfolio-visibility.is-public{background:#dcf8e9;color:#087247}.portfolio-visibility.is-private{background:#fff0dc;color:#a85f00}.portfolio-edit-form{display:grid;gap:10px;padding:14px}.portfolio-edit-form label{display:grid;gap:5px;font-size:.72rem;font-weight:750}.portfolio-edit-form input[type=text],.portfolio-edit-form input:not([type]),.portfolio-edit-form input[type=number],.portfolio-edit-form input[type=file]{width:100%;border:1px solid #d8e5f1;border-radius:9px;padding:.68rem;background:#fff}.portfolio-form-row{display:grid;grid-template-columns:105px 1fr;gap:12px;align-items:end}.portfolio-check{display:flex!important;align-items:center!important;grid-template-columns:none!important;gap:8px!important;min-height:42px;font-weight:700!important}.portfolio-check input{width:auto!important}.portfolio-actions{display:flex;justify-content:flex-end}.portfolio-remove-form{padding:0 14px 14px;display:flex;justify-content:flex-end}.portfolio-remove-form .btn{color:#b42318;border-color:#f0b9b5}.portfolio-admin-card small{color:var(--muted);font-weight:500}
@media(max-width:1180px){.portfolio-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.portfolio-admin-grid{grid-template-columns:1fr}.portfolio-form-row{grid-template-columns:90px 1fr}.public-footer{display:flex!important;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:18px 14px calc(96px + var(--safe-b))}.public-footer>.public-brand,.public-footer>p,.public-footer>div{display:none!important}.public-footer .public-credit{display:inline-flex!important;flex:auto;border-top:0;margin:0;padding:0;color:#50677d;font-size:.7rem}.module-head{align-items:flex-start}.module-head>.btn{flex:0 0 auto}}
@media(max-width:520px){.portfolio-form-row{grid-template-columns:1fr}.portfolio-check{min-height:auto}.portfolio-admin-panel{padding:10px}}


/* v0.2.5 — capa pública responsiva sem corte no smartphone */
.cover{overflow:hidden}
.cover-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
@media (max-width:860px){
  .cover.cover-has-image{
    height:auto!important;
    min-height:0;
    background:#0d2037;
  }
  .cover.cover-has-image .cover-image{
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
    object-position:center;
  }
  .cover.cover-has-image .cover-shade{
    background:linear-gradient(180deg,rgba(5,24,40,.04) 18%,rgba(5,24,40,.12) 58%,rgba(5,24,40,.56) 100%);
  }
  .cover.cover-has-image .cover-copy{
    left:16px;
    right:16px;
    width:auto;
    bottom:14px;
  }
  .cover.cover-has-image .cover-copy h2{
    max-width:92%;
    text-shadow:0 2px 8px rgba(0,0,0,.48);
  }
  .cover.cover-has-image .cover-copy>div{
    flex-wrap:wrap;
    text-shadow:0 1px 5px rgba(0,0,0,.48);
  }
}

/* v0.2.6 — Portfólio público com fotos limpas + galeria/lightbox */
.portfolio-card .card-title{margin-bottom:10px}
.portfolio-view-all{border:0;background:transparent;color:var(--tenant-primary);font-size:.7rem;padding:4px 0;cursor:pointer;font-weight:700}
.portfolio-grid figure{margin:0;position:relative;border-radius:9px;overflow:hidden;aspect-ratio:1.6/1;background:#d9e8f4}
.portfolio-thumb{border:0;padding:0;margin:0;width:100%;height:100%;display:block;background:transparent;cursor:pointer;overflow:hidden}
.portfolio-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .22s ease,filter .22s ease}
.portfolio-thumb:hover img{transform:scale(1.025);filter:brightness(.97)}
.portfolio-grid figcaption{display:none!important}
.portfolio-gallery{border:0;padding:0;background:transparent;width:min(1180px,calc(100vw - 28px));max-width:none;color:#fff}
.portfolio-gallery::backdrop{background:rgba(2,10,20,.88);backdrop-filter:blur(5px)}
.portfolio-gallery-shell{background:#07182b;border:1px solid rgba(255,255,255,.12);border-radius:20px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.45)}
.portfolio-gallery-head{height:58px;padding:0 16px 0 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.1)}
.portfolio-gallery-head strong{font-size:.95rem}.portfolio-gallery-head>span{margin-left:auto;color:#b8cbe0;font-size:.78rem}
.portfolio-gallery-close{width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:1.7rem;display:grid;place-items:center}
.portfolio-gallery-stage{min-height:min(68vh,720px);display:grid;grid-template-columns:58px minmax(0,1fr) 58px;align-items:center;gap:10px;padding:14px}
.portfolio-gallery-media{min-width:0;display:grid;place-items:center;align-content:center;gap:12px;height:100%}
.portfolio-gallery-media img{display:block;max-width:100%;max-height:min(62vh,660px);width:auto;height:auto;object-fit:contain;border-radius:12px;background:#02101f}
.portfolio-gallery-media p{margin:0;max-width:850px;color:#e5edf6;font-size:.86rem;text-align:center;line-height:1.45;padding:0 14px}
.portfolio-gallery-nav{width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:2rem;display:grid;place-items:center;justify-self:center}
.portfolio-gallery-nav:hover,.portfolio-gallery-close:hover{background:rgba(255,255,255,.18)}
.portfolio-gallery-thumbs{display:flex;gap:8px;overflow-x:auto;padding:12px 14px 15px;border-top:1px solid rgba(255,255,255,.1);scrollbar-width:thin}
.portfolio-gallery-thumbs button{width:84px;height:58px;flex:0 0 auto;border:2px solid transparent;padding:0;border-radius:9px;overflow:hidden;background:#0b2038;opacity:.72}
.portfolio-gallery-thumbs button.active{border-color:#49a8ff;opacity:1}
.portfolio-gallery-thumbs img{width:100%;height:100%;object-fit:cover}
@media(max-width:700px){
  .portfolio-gallery{width:100%;margin:0;max-height:100dvh}
  .portfolio-gallery-shell{border-radius:0;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto}
  .portfolio-gallery-stage{min-height:0;grid-template-columns:42px minmax(0,1fr) 42px;padding:8px 4px}
  .portfolio-gallery-nav{width:38px;height:38px;font-size:1.7rem}
  .portfolio-gallery-media img{max-height:68dvh;border-radius:8px}
  .portfolio-gallery-media p{font-size:.78rem}
  .portfolio-gallery-thumbs{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .portfolio-gallery-thumbs button{width:70px;height:50px}
}

/* v0.2.7 — Galeria premium baseada no mockup aprovado */
html.gallery-open,html.gallery-open body{overflow:hidden!important;overscroll-behavior:none}
.portfolio-gallery{width:min(1240px,calc(100vw - 34px));max-width:none;border:0;padding:0;background:transparent;color:#fff;overflow:visible}
.portfolio-gallery::backdrop{background:rgba(4,13,24,.82);backdrop-filter:blur(10px) saturate(.8)}
.portfolio-gallery-shell{background:linear-gradient(145deg,#071b31,#061426 62%,#071c32);border:1px solid rgba(102,194,255,.28);border-radius:24px;overflow:hidden;box-shadow:0 34px 110px rgba(0,0,0,.52),0 0 0 1px rgba(255,255,255,.03) inset}
.portfolio-gallery-head{min-height:78px;height:auto;padding:12px 16px 12px 22px;display:flex;align-items:center;gap:16px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(15,52,86,.32),rgba(7,27,49,.06))}
.portfolio-gallery-identity{display:flex;align-items:center;gap:13px;min-width:0;margin-right:auto}
.portfolio-gallery-brandmark{width:52px;height:52px;flex:0 0 auto;background:#fff;border-radius:12px;padding:5px;display:grid;place-items:center;box-shadow:0 7px 20px rgba(0,0,0,.2)}
.portfolio-gallery-brandmark img{width:100%;height:100%;object-fit:contain;border-radius:8px}
.portfolio-gallery-identity>div{display:grid;gap:3px;min-width:0}.portfolio-gallery-identity strong{font-size:1.03rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-gallery-identity strong i{font-style:normal;color:var(--tenant-primary,#19b7ff);padding:0 4px}.portfolio-gallery-identity small{color:#b8cadb;font-size:.77rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:560px}
.portfolio-gallery-counter{margin-left:auto;color:#d8e6f3!important;font-size:.84rem!important;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.portfolio-gallery-close{width:48px;height:48px;flex:0 0 auto;border:1px solid rgba(120,200,255,.24);border-radius:50%;background:rgba(255,255,255,.07);color:#fff;font-size:2rem;line-height:1;display:grid;place-items:center;transition:.18s ease}
.portfolio-gallery-close:hover{background:rgba(36,158,229,.18);border-color:rgba(71,201,255,.55);transform:rotate(3deg)}
.portfolio-gallery-stage{min-height:0;display:grid;grid-template-columns:74px minmax(0,1fr) 74px;align-items:center;gap:10px;padding:14px 18px 8px}
.portfolio-gallery-media{min-width:0;display:grid;place-items:center;align-content:center;gap:10px}
.portfolio-gallery-photo-wrap{position:relative;display:grid;place-items:center;max-width:100%;border-radius:16px;overflow:hidden;background:#031020;box-shadow:0 18px 55px rgba(0,0,0,.28)}
.portfolio-gallery-photo{display:block;max-width:100%;max-height:min(64vh,720px);width:auto;height:auto;object-fit:contain;border-radius:16px}
.portfolio-gallery-watermark{position:absolute!important;right:20px!important;bottom:18px!important;width:clamp(70px,8.5vw,128px)!important;height:auto!important;max-height:72px!important;object-fit:contain!important;opacity:.16!important;filter:drop-shadow(0 2px 5px rgba(0,0,0,.35));pointer-events:none;user-select:none;z-index:3}
.portfolio-gallery-media p{margin:0;max-width:900px;padding:0 18px;color:#e7eef6;font-size:.88rem;line-height:1.45;text-align:center}
.portfolio-gallery-nav{width:54px;height:54px;border:1px solid rgba(98,196,255,.3);border-radius:50%;background:rgba(255,255,255,.07);color:#fff;font-size:2.35rem;display:grid;place-items:center;justify-self:center;transition:.18s ease}
.portfolio-gallery-nav:hover{background:color-mix(in srgb,var(--tenant-primary,#16b8ff) 22%,transparent);border-color:color-mix(in srgb,var(--tenant-primary,#16b8ff) 70%,#fff 15%);box-shadow:0 0 0 4px color-mix(in srgb,var(--tenant-primary,#16b8ff) 12%,transparent)}
.portfolio-gallery-thumbs-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;align-items:center;padding:10px 18px 16px}
.portfolio-gallery-thumbs{display:flex;gap:10px;overflow-x:auto;padding:4px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent;scroll-snap-type:x proximity;border:0}
.portfolio-gallery-thumbs button{width:106px;height:68px;flex:0 0 auto;border:2px solid transparent;padding:0;border-radius:11px;overflow:hidden;background:#0b2038;opacity:.78;scroll-snap-align:center;transition:.18s ease}
.portfolio-gallery-thumbs button:hover{opacity:1;transform:translateY(-1px)}
.portfolio-gallery-thumbs button.active{border-color:var(--tenant-primary,#22c7ff);opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--tenant-primary,#22c7ff) 18%,transparent)}
.portfolio-gallery-thumbs img{width:100%;height:100%;object-fit:cover}
.portfolio-gallery-mini-nav{width:40px;height:40px;border:1px solid rgba(255,255,255,.09);border-radius:50%;background:rgba(255,255,255,.055);color:#dce9f5;font-size:1.7rem;display:grid;place-items:center}
.portfolio-gallery-mini-nav:hover{background:rgba(255,255,255,.12)}
.portfolio-gallery-footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:center;gap:0;border-top:1px solid rgba(255,255,255,.1);padding:14px 20px;background:rgba(4,17,31,.5)}
.portfolio-gallery-footer>div{display:flex;align-items:center;gap:10px;padding:0 18px;border-right:1px solid rgba(255,255,255,.12)}
.portfolio-gallery-footer>div:first-child{padding-left:0}.portfolio-gallery-footer>div>span{color:var(--tenant-primary,#25c8ff);font-size:1.35rem;min-width:24px;text-align:center}.portfolio-gallery-footer p{display:grid;margin:0;gap:2px}.portfolio-gallery-footer b{font-size:.72rem;color:#eef5fb}.portfolio-gallery-footer small{font-size:.62rem;color:#9fb4c8}.portfolio-gallery-footer>a{font-size:.64rem;color:#a8bed1;margin-left:24px;white-space:nowrap}.portfolio-gallery-footer>a:hover{color:#fff;text-decoration:underline}
@media(max-width:900px){
  .portfolio-gallery{width:calc(100vw - 16px)}
  .portfolio-gallery-stage{grid-template-columns:54px minmax(0,1fr) 54px;padding-inline:7px}.portfolio-gallery-nav{width:44px;height:44px;font-size:2rem}
  .portfolio-gallery-footer{grid-template-columns:repeat(3,1fr)}.portfolio-gallery-footer>a{grid-column:1/-1;text-align:center;margin:12px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
}
@media(max-width:700px){
  .portfolio-gallery{width:100%;margin:0;max-height:100dvh}
  .portfolio-gallery-shell{border-radius:0;min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}
  .portfolio-gallery-head{min-height:68px;padding:9px 10px 9px 13px;gap:9px}.portfolio-gallery-brandmark{width:44px;height:44px;border-radius:10px}.portfolio-gallery-identity strong{font-size:.88rem}.portfolio-gallery-identity small{font-size:.64rem;max-width:46vw}.portfolio-gallery-counter{font-size:.72rem!important}.portfolio-gallery-close{width:42px;height:42px;font-size:1.7rem}
  .portfolio-gallery-stage{grid-template-columns:38px minmax(0,1fr) 38px;gap:2px;padding:7px 2px}.portfolio-gallery-nav{width:35px;height:35px;font-size:1.65rem}.portfolio-gallery-photo{max-height:62dvh;border-radius:10px}.portfolio-gallery-photo-wrap{border-radius:10px}.portfolio-gallery-watermark{right:10px!important;bottom:9px!important;width:68px!important;max-height:44px!important;opacity:.13!important}.portfolio-gallery-media p{font-size:.74rem;padding:0 10px;max-height:3.2em;overflow:auto}
  .portfolio-gallery-thumbs-row{grid-template-columns:32px minmax(0,1fr) 32px;gap:5px;padding:6px 8px 10px}.portfolio-gallery-mini-nav{width:30px;height:30px;font-size:1.3rem}.portfolio-gallery-thumbs{gap:7px;padding:3px}.portfolio-gallery-thumbs button{width:72px;height:50px;border-radius:8px}
  .portfolio-gallery-footer{display:none}
}
@media(max-width:430px){.portfolio-gallery-identity small{display:none}.portfolio-gallery-identity strong{max-width:44vw}.portfolio-gallery-stage{grid-template-columns:34px minmax(0,1fr) 34px}.portfolio-gallery-photo{max-height:66dvh}}
.portfolio-gallery-photo{transition:opacity .18s ease,transform .18s ease}.portfolio-gallery-photo.is-changing{opacity:.35;transform:scale(.992)}

/* v0.2.8 — Galeria premium: setas e legenda refinadas */
.portfolio-gallery-nav{
  position:relative;
  width:62px;
  height:62px;
  border:1px solid color-mix(in srgb,var(--tenant-primary,#16b8ff) 52%,#fff 8%);
  border-radius:999px;
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--tenant-primary,#16b8ff) 22%,rgba(255,255,255,.07)),
    rgba(255,255,255,.045));
  color:#fff;
  display:grid;
  place-items:center;
  justify-self:center;
  box-shadow:0 12px 34px rgba(0,0,0,.28),0 0 0 5px rgba(255,255,255,.025);
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
  overflow:hidden;
}
.portfolio-gallery-nav::before{
  content:"";
  position:absolute;
  inset:5px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.11);
  pointer-events:none;
}
.portfolio-gallery-nav span{
  position:relative;
  z-index:1;
  font-size:1.7rem;
  line-height:1;
  font-weight:500;
  transform:translateY(-1px);
}
.portfolio-gallery-nav.prev:hover{
  transform:translateX(-4px) scale(1.045);
}
.portfolio-gallery-nav.next:hover{
  transform:translateX(4px) scale(1.045);
}
.portfolio-gallery-nav:hover{
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--tenant-primary,#16b8ff) 54%,transparent),
    color-mix(in srgb,var(--tenant-primary,#16b8ff) 20%,rgba(255,255,255,.06)));
  border-color:color-mix(in srgb,var(--tenant-primary,#16b8ff) 80%,#fff 12%);
  box-shadow:0 14px 36px rgba(0,0,0,.34),0 0 0 6px color-mix(in srgb,var(--tenant-primary,#16b8ff) 12%,transparent),0 0 28px color-mix(in srgb,var(--tenant-primary,#16b8ff) 20%,transparent);
}
.portfolio-gallery-nav:focus-visible{
  outline:3px solid color-mix(in srgb,var(--tenant-primary,#16b8ff) 58%,#fff 26%);
  outline-offset:4px;
}

.portfolio-gallery-caption{
  width:min(900px,calc(100% - 22px));
  margin:2px auto 0;
  padding:12px 18px 13px 20px;
  border:1px solid rgba(255,255,255,.1);
  border-left:3px solid var(--tenant-primary,#21c6ff);
  border-radius:12px;
  background:linear-gradient(90deg,
    color-mix(in srgb,var(--tenant-primary,#21c6ff) 9%,rgba(255,255,255,.055)),
    rgba(255,255,255,.035));
  color:#edf5fb;
  font-size:.86rem;
  line-height:1.5;
  text-align:left;
  box-shadow:0 10px 28px rgba(0,0,0,.12);
}
.portfolio-gallery-caption::before{
  content:"Sobre este trabalho";
  display:block;
  margin-bottom:4px;
  color:color-mix(in srgb,var(--tenant-primary,#21c6ff) 72%,#fff 28%);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.portfolio-gallery-caption[hidden]{display:none!important}

@media(max-width:860px){
  .portfolio-gallery-nav{width:46px;height:46px;box-shadow:0 8px 24px rgba(0,0,0,.26)}
  .portfolio-gallery-nav span{font-size:1.35rem}
  .portfolio-gallery-caption{
    width:calc(100% - 10px);
    padding:10px 12px 11px 14px;
    border-radius:10px;
    font-size:.76rem;
    line-height:1.42;
    max-height:5.9em;
    overflow:auto;
  }
  .portfolio-gallery-caption::before{font-size:.57rem;margin-bottom:3px}
}
@media(max-width:430px){
  .portfolio-gallery-nav{width:40px;height:40px}
  .portfolio-gallery-nav span{font-size:1.15rem}
}

/* v0.3.0 — agenda com compromissos visíveis e indicadores por dia */
.agenda-panel-head{align-items:flex-start}.agenda-panel-head>div{display:grid;gap:4px}.agenda-panel-head>div>span{color:var(--muted);font-size:.75rem}.agenda-calendar-pro .days-grid button{position:relative;display:grid;place-items:center;align-content:center;gap:3px;overflow:visible;transition:.18s;border:1px solid transparent}.agenda-calendar-pro .days-grid button:hover{border-color:#c9ddf2;transform:translateY(-1px)}.agenda-calendar-pro .days-grid button.selected{box-shadow:0 7px 16px rgba(8,119,255,.22)}.agenda-calendar-pro .day-number{line-height:1}.day-markers{min-height:9px;display:flex;align-items:center;justify-content:center;gap:3px}.agenda-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:0 0 auto}.agenda-dot.confirmed{background:#0877ff}.agenda-dot.tentative{background:#f59e0b}.day-markers em{min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:#e8f3ff;color:#0b60bf;font-size:.55rem;line-height:15px;font-style:normal;font-weight:850}.days-grid button.selected .agenda-dot.confirmed{background:#fff}.days-grid button.selected .agenda-dot.tentative{background:#ffd38d}.days-grid button.selected .day-markers em{background:rgba(255,255,255,.18);color:#fff}.agenda-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:13px;color:var(--muted);font-size:.72rem}.agenda-legend span{display:flex;align-items:center;gap:6px}.agenda-day-panel{min-width:0}.agenda-day-panel h3{margin:3px 0 12px;font-size:1.08rem}.agenda-list{display:grid;gap:9px}.agenda-entry{border:1px solid #e4edf6;border-left:4px solid #0877ff;border-radius:14px;background:#fff;padding:12px 13px;display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:12px;align-items:center;box-shadow:0 4px 14px rgba(17,49,81,.035)}.agenda-entry.is-tentative{border-left-color:#f59e0b}.agenda-entry-time{font-weight:900;color:#153857;font-size:.88rem}.agenda-entry-main{display:grid;gap:3px;min-width:0}.agenda-entry-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.agenda-entry-title strong{font-size:.93rem}.agenda-kind{font-size:.59rem;text-transform:uppercase;letter-spacing:.05em;font-weight:850;padding:4px 7px;border-radius:999px;background:#eaf4ff;color:#076ac7}.is-tentative .agenda-kind{background:#fff3dc;color:#a85f00}.agenda-entry-main>b{font-size:.79rem;color:#314861}.agenda-entry-meta,.agenda-entry-notes{color:var(--muted);white-space:normal;overflow-wrap:anywhere}.agenda-entry-notes{font-style:italic}.agenda-entry-actions{display:grid;justify-items:end;gap:8px}.agenda-detail-btn{white-space:nowrap}.agenda-empty{min-height:160px;display:grid;place-items:center;align-content:center;gap:5px}.agenda-empty strong{color:#173957}.agenda-empty span{font-size:.78rem;color:var(--muted);text-align:center}.status.agendada,.status.confirmada,.status.em_execucao,.status.em_deslocamento{background:#ddf7eb;color:#07734a}.status.recebida,.status.negociacao,.status.proposta_enviada,.status.aguardando_aceite,.status.a_confirmar{background:#fff1dc;color:#a85f00}.status.concluida{background:#eef4fa;color:#53677f}
@media(max-width:860px){.agenda-panel-head{display:grid;gap:10px}.agenda-panel-head .btn{width:100%}.agenda-entry{grid-template-columns:64px minmax(0,1fr);align-items:start}.agenda-entry-actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center}.agenda-calendar-pro .days-grid button{min-height:42px}.agenda-legend{margin-bottom:8px}}
@media(max-width:430px){.agenda-entry{grid-template-columns:1fr;gap:7px}.agenda-entry-time{font-size:.8rem}.agenda-entry-actions{grid-column:auto;justify-content:space-between}.agenda-kind{font-size:.55rem}}


/* v0.3.1 — Agenda Central no padrão visual Stage + badges de atenção */
.nav-item{position:relative}.nav-icon{width:20px;display:inline-grid;place-items:center;flex:0 0 20px}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:.64rem;font-weight:900;line-height:20px;text-align:center;box-shadow:0 0 0 3px rgba(239,68,68,.11)}.nav-badge[data-nav-badge="agenda"]{background:#1688ff;box-shadow:0 0 0 3px rgba(22,136,255,.12)}.nav-badge[data-nav-badge="estoque"],.nav-badge[data-nav-badge="ferramentas"],.nav-badge[data-nav-badge="compras"]{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.13)}
.notification-bell{position:relative}.top-notification-badge{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:.58rem;font-weight:900;line-height:18px;text-align:center;border:2px solid #fff}.mobile-nav-with-badge{position:relative}.mobile-nav-badge{position:absolute;top:3px;right:22%;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font-size:.52rem;font-weight:900;line-height:17px;text-align:center;border:2px solid #fff}.mobile-nav-with-badge [data-mobile-badge="agenda"]{background:#1688ff}
.stage-agenda-card{background:#fff;border:1px solid #dfe8f3;border-radius:22px;padding:18px 18px 14px;box-shadow:0 9px 28px rgba(17,49,81,.055);margin-bottom:16px}.stage-agenda-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:12px}.stage-agenda-title{display:grid;gap:2px}.stage-agenda-title>span{color:#8aa0bd;font-size:.72rem;font-weight:900;letter-spacing:.14em}.stage-agenda-title h2{font-size:1.55rem;margin:0;color:#0a2342}.stage-agenda-controls{display:flex;gap:8px}.agenda-control{min-height:42px;padding:0 14px;border:1px solid #dce6f1;border-radius:11px;background:#fff;color:#102d4c;font-weight:750;box-shadow:0 4px 12px rgba(15,58,92,.04)}.agenda-control:hover{background:#f5f9fd;border-color:#bfd5ea}.agenda-control.today{background:#f7faff;color:#52657b}.stage-agenda-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.stage-agenda-legend span{display:inline-flex;align-items:center;gap:7px;border:1px solid #dfe7f1;background:#fff;border-radius:999px;padding:5px 10px;color:#50647b;font-size:.72rem;font-weight:750}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.closed{background:#20b987}.legend-dot.negotiation{background:#f3ad1d}.legend-dot.adjustment{background:#f05d72}.legend-dot.google{background:#4d8ff7}
.stage-calendar-scroll{overflow:auto;overscroll-behavior-inline:contain}.stage-calendar{min-width:760px}.stage-week-row,.stage-days-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.stage-week-row{margin-bottom:7px}.stage-week-row span{text-align:center;color:#53677f;font-size:.76rem;font-weight:800;padding:5px}.stage-day{position:relative;min-height:82px;border:1px solid transparent;border-radius:12px;background:#f5f8fc;color:#0d2846;padding:9px 8px;display:grid;align-content:start;justify-items:stretch;text-align:left;transition:.16s ease;overflow:hidden}.stage-day.empty-cell{background:transparent;border:0}.stage-day:not(.empty-cell):hover{border-color:#bcd3e9;transform:translateY(-1px);box-shadow:0 7px 16px rgba(22,64,103,.07)}.stage-day.selected{border:2px solid #1268e8;background:#f6f9ff;box-shadow:0 0 0 2px rgba(18,104,232,.06)}.stage-day.has-closed{background:#e7f8f2;border-color:#8edbc3}.stage-day.has-google:not(.has-closed){background:#e8f1ff;border-color:#9ec0f8}.stage-day.has-adjustment:not(.has-closed){background:#fff0f2;border-color:#f3b5bd}.stage-day.has-negotiation:not(.has-closed):not(.has-adjustment):not(.has-google){background:#fff8e7;border-color:#f3d79b}.stage-day-number{font-weight:900;font-size:.86rem;line-height:1;align-self:start}.stage-day-tags{margin-top:auto;display:grid;gap:4px;padding-top:8px}.calendar-tag{display:block;width:100%;border-radius:999px;padding:3px 7px;font-size:.57rem;font-weight:900;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-tag.closed{background:#c9f1e5;color:#087657}.calendar-tag.negotiation{background:#fff0c7;color:#905e00}.calendar-tag.adjustment{background:#ffdce2;color:#a52b40}.calendar-tag.google{background:#d8e7ff;color:#2868c5}.agenda-protection-note{margin-top:13px;border:1px solid #9ec1ff;background:#edf4ff;color:#4f6681;border-radius:12px;padding:9px 12px;font-size:.72rem;display:flex;align-items:flex-start;gap:8px}.agenda-protection-note b{color:#294d78}.agenda-detail-panel{margin-bottom:18px}.agenda-detail-panel .panel-head>div{display:grid;gap:3px}.agenda-detail-panel .panel-head span{font-size:.72rem;color:var(--muted)}.agenda-entry.is-closed{border-left-color:#20b987}.agenda-entry.is-negotiation{border-left-color:#f3ad1d}.agenda-entry.is-adjustment{border-left-color:#f05d72}.agenda-entry.is-google{border-left-color:#4d8ff7}.agenda-entry.is-negotiation .agenda-kind{background:#fff3dc;color:#a85f00}.agenda-entry.is-adjustment .agenda-kind{background:#ffe8ec;color:#b43b50}.agenda-entry.is-closed .agenda-kind{background:#e1f7ef;color:#087657}
@media(max-width:860px){.stage-agenda-card{border-radius:16px;padding:14px 12px}.stage-agenda-head{display:grid;gap:12px}.stage-agenda-controls{display:grid;grid-template-columns:1fr 1fr 1fr}.agenda-control{padding:0 8px;font-size:.72rem}.stage-calendar{min-width:680px}.stage-day{min-height:76px}.agenda-detail-panel .panel-head{display:grid;gap:10px}.agenda-detail-panel .panel-head .btn{width:100%}.mobile-nav-badge{right:18%}}
@media(max-width:520px){.stage-agenda-title h2{font-size:1.3rem}.stage-agenda-title>span{font-size:.64rem}.stage-agenda-legend{gap:6px}.stage-agenda-legend span{font-size:.63rem;padding:4px 7px}.stage-calendar{min-width:620px}.stage-day{min-height:70px;padding:7px 6px}.calendar-tag{font-size:.52rem;padding:3px 5px}.agenda-protection-note{font-size:.65rem}}

/* v0.3.2 — Agenda Wakko Serviços: identidade original + cores de status */
.agenda-services-panel{padding:18px}
.agenda-services-panel .agenda-panel-head{align-items:flex-start;margin-bottom:16px}
.agenda-services-panel .agenda-panel-head>div{display:grid;gap:3px}
.agenda-services-panel .agenda-panel-head>div>span{color:var(--muted);font-size:.78rem}
.agenda-services-layout{display:grid;grid-template-columns:minmax(440px,.95fr) minmax(0,1.35fr);gap:22px;align-items:start}
.agenda-calendar-column{min-width:0;background:#f9fbfe;border:1px solid #e3ebf4;border-radius:16px;padding:14px}
.agenda-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.agenda-calendar-toolbar>strong{font-size:1.06rem;color:#102d4c}
.agenda-calendar-toolbar-actions{display:flex;gap:7px;align-items:center}
.agenda-mini-control{height:38px;min-width:38px;padding:0 12px;border:1px solid #d9e6f2;border-radius:10px;background:#fff;color:#153b60;font-weight:800;box-shadow:0 3px 10px rgba(20,54,88,.04)}
.agenda-mini-control:hover{border-color:#9fc8f2;background:#f5faff}
.agenda-mini-control.today{font-size:.75rem;color:var(--blue)}
.service-week-row,.service-days-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.service-week-row{margin-bottom:7px}.service-week-row span{text-align:center;color:#6b7f95;font-size:.68rem;font-weight:800;padding:4px 0}
.service-day{position:relative;min-height:74px;border:1px solid #edf1f6;border-radius:12px;background:#fff;padding:8px 7px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:5px;color:#102d4c;text-align:left;transition:.16s;overflow:hidden}
.service-day.empty-cell{visibility:hidden}
.service-day:hover{transform:translateY(-1px);border-color:#bfd7ed;box-shadow:0 7px 16px rgba(17,49,81,.07)}
.service-day.selected{outline:2px solid var(--blue);outline-offset:1px;box-shadow:0 7px 18px rgba(8,119,255,.16)}
.service-day-number{font-weight:900;font-size:.86rem;line-height:1}
.service-day-tags{width:100%;display:grid;gap:3px;align-self:stretch}
.service-calendar-tag{display:block;width:100%;padding:3px 5px;border-radius:999px;font-size:.56rem;line-height:1.1;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.service-day.has-os{background:#e8f8f2;border-color:#9bdcc7}.service-calendar-tag.os{background:#c9f0e3;color:#08734d}
.service-day.has-negotiation{background:#fff8e8;border-color:#f4ce79}.service-calendar-tag.negotiation{background:#ffedbd;color:#9a5b00}
.service-day.has-attention{background:#fff0f2;border-color:#f3a3ad}.service-calendar-tag.attention{background:#ffd9de;color:#a52d3b}
.service-day.has-google{box-shadow:inset 0 0 0 1px #a8c8ff}.service-calendar-tag.google{background:#dce9ff;color:#245eb7}
.service-day.has-os.has-negotiation,.service-day.has-os.has-attention,.service-day.has-negotiation.has-attention{background:#fff;border-color:#d9e6f2}
.agenda-color-hint{margin:11px 2px 0;color:#74879a;font-size:.7rem}
.agenda-day-panel{min-width:0;background:#fff;border:1px solid #e3ebf4;border-radius:16px;padding:16px;min-height:360px}
.agenda-day-heading{border-bottom:1px solid #edf2f7;padding-bottom:10px;margin-bottom:9px}.agenda-day-heading h3{margin:0;font-size:1.08rem}.agenda-day-heading .eyebrow{margin-bottom:4px}
.agenda-entry{border-left-color:#0aa66a}.agenda-entry.is-negotiation{border-left-color:#f3a51b}.agenda-entry.is-adjustment{border-left-color:#ed5b6b}.agenda-entry.is-google{border-left-color:#4b8ff7}
@media(max-width:1180px){.agenda-services-layout{grid-template-columns:390px minmax(0,1fr)}}
@media(max-width:860px){.agenda-services-panel{padding:14px}.agenda-services-panel .agenda-panel-head{display:grid;gap:10px}.agenda-services-panel .agenda-panel-head .btn{width:100%}.agenda-services-layout{grid-template-columns:1fr}.agenda-calendar-column,.agenda-day-panel{border-radius:14px}.service-day{min-height:66px;padding:7px 5px}.service-week-row,.service-days-grid{gap:5px}.service-calendar-tag{font-size:.52rem}.agenda-color-hint{font-size:.66rem}}
@media(max-width:520px){.agenda-calendar-toolbar{align-items:flex-start}.agenda-calendar-toolbar>strong{font-size:.95rem}.agenda-mini-control{height:34px;min-width:34px;padding:0 9px}.service-day{min-height:58px;border-radius:10px}.service-day-number{font-size:.76rem}.service-calendar-tag{font-size:.48rem;padding:2px 4px}.agenda-day-panel{padding:13px}}

/* v0.3.3 — Agenda Serviços: legenda real + cores robustas por dia */
.agenda-services-legend{
  display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;
}
.agenda-services-legend span{
  display:inline-flex;align-items:center;gap:7px;
  padding:5px 9px;border:1px solid #dfe8f2;border-radius:999px;
  background:#fff;color:#53677f;font-size:.68rem;font-weight:800;
}
.agenda-services-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto}
.agenda-services-dot.os{background:#18b77d}
.agenda-services-dot.negotiation{background:#f0ab22}
.agenda-services-dot.attention{background:#ef5a70}
.agenda-services-dot.google{background:#4d8ff7}

/* As cores abaixo têm prioridade sobre o fundo neutro do calendário. */
.service-day.has-os:not(.has-negotiation):not(.has-attention):not(.has-google){
  background:#e8f8f2!important;border-color:#8fd8c0!important;
}
.service-day.has-negotiation:not(.has-os):not(.has-attention):not(.has-google){
  background:#fff8e7!important;border-color:#f1cf7d!important;
}
.service-day.has-attention:not(.has-os):not(.has-negotiation):not(.has-google){
  background:#fff0f2!important;border-color:#efa2ad!important;
}
.service-day.has-google:not(.has-os):not(.has-negotiation):not(.has-attention){
  background:#e9f1ff!important;border-color:#9ebff5!important;
}
/* Dia com mais de um tipo de movimentação: mantém as duas leituras visíveis. */
.service-day.has-os.has-negotiation:not(.has-attention){
  background:linear-gradient(135deg,#e8f8f2 0 50%,#fff8e7 50% 100%)!important;border-color:#b9d8b2!important;
}
.service-day.has-os.has-attention{
  background:linear-gradient(135deg,#e8f8f2 0 50%,#fff0f2 50% 100%)!important;border-color:#c7c3b5!important;
}
.service-day.has-negotiation.has-attention:not(.has-os){
  background:linear-gradient(135deg,#fff8e7 0 50%,#fff0f2 50% 100%)!important;border-color:#e8bd93!important;
}
.service-day.has-google.has-os,
.service-day.has-google.has-negotiation,
.service-day.has-google.has-attention{
  box-shadow:inset 0 0 0 2px #8cb7fa,0 7px 16px rgba(17,49,81,.04);
}
.service-day.selected{
  outline:2px solid var(--blue)!important;outline-offset:1px;
}
@media(max-width:520px){
  .agenda-services-legend{gap:5px}
  .agenda-services-legend span{font-size:.59rem;padding:4px 7px}
}

/* v0.3.4 — corrige truncamento dos textos do menu lateral após badges */
.sidebar .nav-item > .nav-icon{
  width:20px;
  flex:0 0 20px;
  text-align:center;
}
.sidebar .nav-item > .nav-label{
  width:auto;
  flex:1 1 auto;
  min-width:0;
  text-align:left;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sidebar .nav-item > .nav-badge{
  width:auto;
  flex:0 0 auto;
  margin-left:auto;
}

/* v0.3.5 — Central de Integrações */
.integrations-head{margin-bottom:18px}
.integration-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:16px}
.integration-summary-copy{max-width:700px}.integration-summary-copy strong{font-size:1.05rem}.integration-summary-copy p{margin:5px 0 0;color:var(--muted);font-size:.84rem}
.integration-summary-stats{display:flex;gap:10px}.integration-summary-stats span{min-width:92px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fbfe;display:grid;text-align:center}.integration-summary-stats b{font-size:1.15rem}.integration-summary-stats small{color:var(--muted);font-size:.68rem}
.integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.integration-card{display:flex;flex-direction:column;min-height:245px;position:relative;overflow:hidden}
.integration-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#cbd5e1}.integration-card.integration-active::before{background:#0aaa68}.integration-card.integration-preparing::before{background:#1688ff}.integration-card.integration-planned::before{background:#94a3b8}
.integration-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.integration-icon{width:46px;height:46px;border-radius:14px;background:#eef5fb;display:grid;place-items:center;font-size:1.45rem}.integration-card h2{font-size:1.02rem;margin:13px 0 4px}.integration-summary-text{font-weight:750;margin:0 0 8px;font-size:.83rem}.integration-detail{color:var(--muted);font-size:.78rem;margin:0;line-height:1.55}
.integration-status{font-size:.68rem;font-weight:800;padding:5px 9px;border-radius:999px;background:#eef2f6;color:#52657b}.integration-status.status-active{background:#ddf7eb;color:#08734b}.integration-status.status-preparing{background:#e7f2ff;color:#075fb9}.integration-status.status-planned{background:#f1f5f9;color:#64748b}
.integration-card-footer{margin-top:auto;padding-top:16px}.integration-action{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border-radius:9px;font-size:.72rem;font-weight:800;background:#f1f5f9;color:#64748b}.integration-action.action-active{background:#e4f8ee;color:#08734b}.integration-action.action-preparing{background:#e9f4ff;color:#075fb9}
.integrations-note{margin-top:16px}.integrations-note p{margin:5px 0 0;color:var(--muted);font-size:.8rem}
@media(max-width:900px){.integration-summary{align-items:flex-start;flex-direction:column}.integration-summary-stats{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.integration-summary-stats span{min-width:0}.integration-grid{grid-template-columns:1fr}}
@media(max-width:520px){.integration-summary-stats{gap:6px}.integration-summary-stats span{padding:9px 5px}.integration-card{min-height:0}.integration-grid{gap:10px}}

/* v0.3.6 — serviços por quantidade + sinal/parcelamento financeiro */
.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.field-help{display:block;color:var(--muted);font-size:.69rem;font-weight:550;line-height:1.35}.service-price-box{padding:13px;border:1px solid #dfe9f3;border-radius:12px;background:#f8fbfe}.service-price-box input[readonly]{background:#eef4f9;font-weight:850;color:#17324e}.payment-plan-fields{border:1px solid #dbe7f2;border-radius:13px;padding:14px;display:grid;gap:12px;background:#f8fbfe}.payment-plan-fields legend{padding:0 7px;font-size:.76rem;font-weight:850;color:#294762}.payment-plan-preview{padding:10px 12px;border-radius:10px;background:#eaf4ff;color:#075fae;font-size:.76rem;font-weight:750}.status.parcial{background:#e7f2ff;color:#075fb9}.status.vencido{background:#ffe7ea;color:#b4233b}.status.pago{background:#ddf7eb;color:#08734b}.payment-dialog{width:min(760px,calc(100vw - 24px))}.payment-dialog>.stack-form{padding:22px;max-height:min(82vh,760px);overflow:auto}.payment-dialog-summary{padding:11px 12px;border-radius:10px;background:#f4f8fc;color:#425c75;font-size:.78rem;font-weight:700}.installment-list{display:grid;gap:10px}.installment-item{border:1px solid #e0e9f2;border-radius:12px;padding:12px;background:#fff}.installment-item.status-vencido{border-color:#efb0ba;background:#fff8f9}.installment-item.status-parcial{border-color:#9fc9f4;background:#f8fbff}.installment-item.status-pago{border-color:#a8dcc7;background:#f8fdfb}.installment-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.installment-item-top>div{display:grid;gap:2px}.installment-item-top small,.installment-paid{color:var(--muted);font-size:.72rem}.installment-paid{margin-top:8px}.installment-pay-form{display:grid!important;grid-template-columns:minmax(120px,1fr) auto auto;gap:8px!important;padding:10px 0 0!important}.installment-pay-form input{min-width:0}.payment-progress-list{display:grid}.payment-progress-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 4px;border-bottom:1px solid #eef3f8;color:inherit}.payment-progress-row:last-child{border:0}.payment-progress-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.payment-progress-main strong{font-size:.85rem}.payment-progress-main small{flex-basis:100%;color:var(--muted);font-size:.72rem}.payment-progress-values{margin-left:auto;text-align:right;display:grid;flex:0 0 auto}.payment-progress-values b{font-size:.86rem}.payment-progress-values small{color:var(--muted);font-size:.68rem}
@media(max-width:700px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}.installment-pay-form{grid-template-columns:1fr 1fr}.installment-pay-form input{grid-column:1/-1}.payment-progress-row{align-items:flex-start}.payment-progress-main{display:grid;gap:4px}.payment-progress-values{min-width:96px}.payment-dialog>.stack-form{padding:16px}.table-panel table{min-width:860px}}

/* PWA */
.install-pwa{width:100%;margin:10px 0 6px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:inherit;border-radius:10px;padding:10px 12px;font:inherit;font-weight:700;cursor:pointer;text-align:left}
.install-pwa:hover{background:rgba(255,255,255,.14)}
@media(max-width:860px){.sidebar .install-pwa{min-height:44px}}

/* Financeiro agrupado por descrição — 2026-09-23 */
.finance-group-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;background:linear-gradient(135deg,#f8fbfe,#eef6ff)}
.finance-group-intro>div{display:grid;gap:3px}.finance-group-intro strong{font-size:.9rem;color:#17324e}.finance-group-intro small{color:var(--muted);font-size:.73rem;line-height:1.45}.finance-group-intro>span{flex:0 0 auto;border-radius:999px;background:#fff;border:1px solid #dce8f3;padding:7px 10px;color:#466079;font-size:.7rem;font-weight:800}
.finance-group-table{min-width:960px!important}.finance-group-row{cursor:pointer}.finance-group-row:hover{background:#f8fbff}.finance-group-row:focus{outline:2px solid #93c9ff;outline-offset:-2px}.finance-group-row td:nth-child(2) strong,.finance-group-row td:nth-child(2) small{display:block}.finance-group-row td:nth-child(2) small{margin-top:3px;color:var(--muted);font-size:.68rem}
.finance-group-mobile{display:none}.finance-kind{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:.66rem;font-weight:850;background:#eef4fa;color:#4a6178}.finance-kind.receita{background:#e5f8ef;color:#08734b}.finance-kind.despesa{background:#fff0f1;color:#b4233b}
.financial-group-dialog{width:min(780px,calc(100vw - 24px))}.financial-group-dialog-body{padding:22px;max-height:min(84dvh,780px);overflow:auto}.financial-group-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 12px;margin:12px 0;border-radius:11px;background:#f4f8fc;color:#425c75;font-size:.74rem}.financial-group-summary b{color:#17324e}.financial-group-summary span{padding-left:8px;border-left:1px solid #dbe5ef}.financial-group-entry-list{display:grid;gap:10px}.financial-group-entry{border:1px solid #e0e9f2;border-radius:13px;padding:12px;background:#fff}.financial-group-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.financial-group-entry-head>div:first-child{display:grid;gap:2px}.financial-group-entry-head small{color:var(--muted);font-size:.7rem}.financial-group-entry-value{display:flex;align-items:center;gap:8px}.financial-group-entry-value>strong{font-size:.88rem}.financial-group-entry-facts{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;padding-top:9px;border-top:1px solid #edf2f7;color:var(--muted);font-size:.7rem}.financial-group-entry-facts b{color:#29445f}.financial-group-entry-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.financial-group-entry-actions form{display:inline!important;margin:0!important;padding:0!important}
@media(max-width:860px){
  .finance-group-intro{align-items:flex-start;padding:13px;margin-bottom:10px}.finance-group-intro>span{padding:5px 8px}.finance-group-desktop{display:none}.finance-group-mobile{display:grid;gap:10px}.finance-group-card{background:#fff;border:1px solid #dfe8f1;border-radius:16px;padding:14px;box-shadow:0 3px 12px rgba(15,58,92,.035);cursor:pointer}.finance-group-card:focus{outline:2px solid #93c9ff}.finance-group-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.finance-group-card h2{margin:11px 0 8px;font-size:1.05rem;color:#18324d}.finance-group-total{display:flex;align-items:end;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f7}.finance-group-total small{color:var(--muted);font-size:.69rem}.finance-group-total strong{font-size:1.15rem;color:#102b47}.finance-group-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:10px 0}.finance-group-meta span{display:grid;gap:2px;min-width:0}.finance-group-meta b{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.finance-group-meta small{font-size:.62rem;color:var(--muted)}.finance-group-card>p{margin:0 0 10px;color:var(--muted);font-size:.67rem}.finance-group-open{width:100%}.financial-group-dialog-body{padding:15px}.financial-group-summary{display:grid;grid-template-columns:1fr 1fr;gap:6px}.financial-group-summary b{grid-column:1/-1}.financial-group-summary span{padding:0;border:0}.financial-group-entry-head{gap:8px}.financial-group-entry-value{display:grid;justify-items:end;gap:4px}.financial-group-entry-facts{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.financial-group-entry-actions{display:grid;grid-template-columns:1fr 1fr}.financial-group-entry-actions form{grid-column:1/-1}.financial-group-entry-actions form .btn{width:100%}
}


/* Financeiro agrupado — acabamento responsivo v2 / 2026-09-23 */
.finance-responsive-shell{min-width:0;max-width:100%;overflow-x:clip}
.financial-group-dialog{width:min(940px,calc(100vw - 40px));max-width:940px;border:0;border-radius:18px;padding:0;overflow:hidden}
.financial-group-dialog-body{box-sizing:border-box;width:100%;max-width:100%;padding:24px;max-height:min(86dvh,820px);overflow-y:auto;overflow-x:hidden}
.financial-group-dialog .dialog-head{position:sticky;top:-24px;z-index:3;background:#fff;padding:4px 0 12px;border-bottom:1px solid #edf2f7}
.financial-group-dialog .dialog-head h2{font-size:1.35rem;line-height:1.15;margin-top:3px}
.financial-group-dialog .dialog-head [data-close-financial-group]{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;cursor:pointer}
.financial-group-summary{display:grid!important;grid-template-columns:1.15fr repeat(3,minmax(0,1fr));gap:0!important;align-items:stretch!important;padding:0!important;margin:16px 0!important;border:1px solid #dfe8f1;border-radius:14px!important;background:#f8fbfe!important;overflow:hidden}
.financial-group-summary>*{display:grid;align-content:center;min-height:62px;padding:10px 14px!important;border:0!important;border-right:1px solid #e2ebf3!important}
.financial-group-summary>*:last-child{border-right:0!important}
.financial-group-summary b{font-size:.84rem;color:#17324e}
.financial-group-summary span{font-size:.76rem;color:#52657b}
.financial-group-entry-list{display:grid;gap:12px}
.financial-group-entry{box-sizing:border-box;min-width:0;border:1px solid #e0e9f2;border-radius:14px;padding:14px 16px;background:#fff;box-shadow:0 2px 10px rgba(15,58,92,.025)}
.financial-group-entry-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center!important;gap:16px!important}
.financial-group-entry-head>div:first-child{min-width:0;display:grid;gap:3px}
.financial-group-entry-head>div:first-child strong{font-size:.92rem;color:#17324e}
.financial-group-entry-head small{color:var(--muted);font-size:.72rem;white-space:normal;overflow-wrap:anywhere}
.financial-group-entry-value{display:flex!important;align-items:center;justify-content:flex-end;gap:10px!important;min-width:0}
.financial-group-entry-value>strong{font-size:1rem!important;white-space:nowrap;color:#102b47}
.financial-group-entry-facts{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px!important;margin-top:12px!important;padding-top:11px!important;border-top:1px solid #edf2f7!important;color:var(--muted);font-size:.72rem!important}
.financial-group-entry-facts span{min-width:0;display:grid;gap:2px}
.financial-group-entry-facts b{color:#29445f;font-size:.8rem;overflow-wrap:anywhere}
.financial-group-entry-actions{display:flex!important;align-items:center;gap:8px!important;flex-wrap:wrap;margin-top:12px!important}
.financial-group-entry-actions form{display:inline-flex!important;margin:0!important;padding:0!important}
.financial-group-entry-actions .btn{min-height:36px}

@media(max-width:900px){
  .finance-responsive-shell{width:100%;max-width:100%;overflow-x:hidden}
  .finance-responsive-shell .finance-group-desktop{display:none!important}
  .finance-responsive-shell .finance-group-mobile{display:grid!important;grid-template-columns:minmax(0,1fr);gap:10px;width:100%;max-width:100%;min-width:0;overflow:visible}
  .finance-responsive-shell .finance-group-card{box-sizing:border-box;width:100%;max-width:100%;min-width:0;overflow:hidden;padding:14px;border-radius:15px}
  .finance-responsive-shell .finance-group-card *{min-width:0}
  .finance-responsive-shell .finance-group-card-head{display:flex;flex-wrap:wrap;gap:7px}
  .finance-responsive-shell .finance-group-card h2{overflow-wrap:anywhere}
  .finance-responsive-shell .finance-group-total{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}
  .finance-responsive-shell .finance-group-total strong{white-space:nowrap}
  .finance-responsive-shell .finance-group-meta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .finance-responsive-shell .finance-group-meta span{box-sizing:border-box;min-width:0;padding:8px 9px;border-radius:10px;background:#f8fbfe}
  .finance-responsive-shell .finance-group-meta span:first-child{grid-column:1/-1}
  .finance-responsive-shell .finance-group-meta b{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}
  .finance-responsive-shell .finance-group-open{width:100%;max-width:100%}
  .finance-responsive-shell .table-scroll{max-width:100%;overflow-x:hidden!important}

  .financial-group-dialog{box-sizing:border-box;width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px);margin:auto;border-radius:16px!important}
  .financial-group-dialog-body{box-sizing:border-box;width:100%;max-width:100%;padding:14px!important;max-height:calc(100dvh - 16px)!important;overflow-y:auto!important;overflow-x:hidden!important}
  .financial-group-dialog .dialog-head{top:-14px;padding:4px 0 10px}
  .financial-group-dialog .dialog-head>div{min-width:0}
  .financial-group-dialog .dialog-head h2{font-size:1.2rem;overflow-wrap:anywhere}
  .financial-group-summary{grid-template-columns:1fr 1fr!important;margin:12px 0!important}
  .financial-group-summary>*{min-height:54px;padding:9px 10px!important;border-right:1px solid #e2ebf3!important;border-bottom:1px solid #e2ebf3!important}
  .financial-group-summary>*:nth-child(2n){border-right:0!important}
  .financial-group-summary>*:nth-last-child(-n+2){border-bottom:0!important}
  .financial-group-summary b{grid-column:auto!important}
  .financial-group-entry{width:100%;max-width:100%;min-width:0;padding:12px!important;overflow:hidden}
  .financial-group-entry-head{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
  .financial-group-entry-value{display:grid!important;justify-items:end;gap:4px!important}
  .financial-group-entry-value>strong{font-size:.92rem!important}
  .financial-group-entry-facts{grid-template-columns:1fr 1fr!important;gap:7px 10px!important}
  .financial-group-entry-facts span:last-child:nth-child(odd){grid-column:1/-1}
  .financial-group-entry-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .financial-group-entry-actions .btn{width:100%;min-width:0;padding-left:8px;padding-right:8px}
  .financial-group-entry-actions form{grid-column:1/-1!important;display:block!important;width:100%}
  .financial-group-entry-actions form .btn{width:100%}
}

@media(max-width:420px){
  .finance-group-intro{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px!important}
  .finance-group-intro small{overflow-wrap:anywhere}
  .financial-group-entry-head{grid-template-columns:1fr!important}
  .financial-group-entry-value{display:flex!important;justify-content:space-between!important;justify-items:stretch!important}
  .financial-group-entry-facts{grid-template-columns:1fr!important}
  .financial-group-entry-facts span:last-child:nth-child(odd){grid-column:auto}
  .financial-group-entry-actions{grid-template-columns:1fr!important}
  .financial-group-entry-actions form{grid-column:auto!important}
}
