:root{--ink:#242a24;--muted:#777d73;--gold:#b68a45;--line:#e5e7df;--paper:#f5f6f1;--dark:#191d19;--green:#47734d}*{box-sizing:border-box}body{margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #b68a45;outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-family:Georgia,serif;font-weight:400;font-size:38px;line-height:1.2}h2{font-size:20px;font-weight:600}h3{font-size:16px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2.5px;font-weight:600;color:var(--gold)}.muted{color:var(--muted)}.small{font-size:12px}.primary,.secondary,.danger{border:0;border-radius:9px;padding:13px 20px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px}.primary{background:var(--dark);color:#fff}.primary:hover{background:#303a2f}.secondary{border:1px solid var(--line);background:white;color:var(--ink)}.danger{background:#faeeee;color:#9c3d3d}.full{width:100%}.field{display:block;margin:17px 0}.field>span{display:block;font-size:12px;font-weight:600;margin-bottom:7px}.field input,.field select{width:100%;border:1px solid #daddd3;background:white;padding:13px 14px;border-radius:8px;outline:none;min-height:48px}.field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #b68a4515}.secret{display:flex;border:1px solid #daddd3;border-radius:8px;overflow:hidden;background:white}.secret input{border:0;min-width:0}.secret button{border:0;background:white;font-size:11px;padding:0 12px;color:var(--muted)}.note{font-size:12px;color:var(--muted);padding:14px 0}.error{background:#fff1ed;color:#983f28;padding:12px;border-radius:8px;font-size:13px;margin:12px 0}.success{background:#edf5e8;color:#3e643a;padding:14px;border-radius:8px;margin:12px 0}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:#191814;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:48px 64px;color:#f5eddd;overflow:hidden}.login-art:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at bottom left,#b68a4518,transparent 60%);pointer-events:none}.wordmark{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:2px;text-transform:uppercase}.wordmark img{width:38px;height:38px}.brand-image{width:100%;max-width:440px;align-self:center;border-radius:8px}.login-art h1{font-size:42px;max-width:380px}.login-art p{color:#b5b5a8;margin-top:16px;max-width:360px}.login-art footer{font-size:11px;letter-spacing:2px;margin-top:35px;color:#aaa58f}.login-side{display:flex;align-items:center;justify-content:center;padding:50px 30px;background:#fafbf7}.access{width:100%;max-width:390px}.access h1{font-size:34px;margin:12px 0}.tabs{display:flex;padding:5px;border-radius:10px;background:#eaece4;margin:28px 0 24px}.tabs button{flex:1;border:0;background:none;color:#68705f;padding:9px;border-radius:7px;font-size:13px}.tabs button.active{background:white;color:var(--ink);box-shadow:0 2px 4px #00000008}.privacy{font-size:11px;color:var(--muted);border-top:1px solid var(--line);margin-top:25px;padding-top:18px}.admin-link{display:block;text-align:center;font-size:12px;color:var(--muted);margin-top:25px}.shell{display:grid;grid-template-columns:242px 1fr;min-height:100vh}.sidebar{background:var(--dark);color:#c2c6bb;padding:28px 22px;display:flex;flex-direction:column;position:fixed;width:242px;height:100vh}.sidebar .brand-image{width:110px;margin:0 auto 6px}.sidebar .brand-name{text-align:center;letter-spacing:2px;font-size:10px;color:#b6ab91;margin-bottom:38px}.nav-label{font-size:10px;letter-spacing:1.8px;color:#7c8777;margin:14px 12px}.navbutton{width:100%;border:0;text-align:left;color:#b8c1b2;background:none;padding:13px 15px;border-radius:8px;margin:3px 0;font-size:13px;display:flex;gap:12px;align-items:center}.navbutton.active{background:#d8b16a18;color:#ead2a2}.nav-icon{font-size:18px}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff13;padding-top:20px}.avatar{width:34px;height:34px;border-radius:50%;background:#d8b16a24;color:#d8b16a;display:grid;place-items:center;flex-shrink:0}.profile{display:flex;gap:10px;align-items:center;font-size:12px}.profile small{display:block;color:#8d9887;font-size:10px}.logout{border:0;background:none;color:#9aa590;padding:14px 0 0;font-size:12px}.main{grid-column:2;min-width:0}.topbar{height:74px;background:#fcfdf9;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.topbar strong{color:var(--ink);font-weight:500}.pill{border:1px solid var(--line);padding:6px 11px;border-radius:20px;font-size:11px;display:inline-flex;align-items:center;gap:6px}.dot{width:6px;height:6px;border-radius:50%;background:#7a9466}.content{max-width:1460px;margin:auto;padding:36px 42px 48px}.page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px;gap:16px}.page-head h1{margin:8px 0 10px}.page-head p{color:var(--muted);font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.stat{border:1px solid var(--line);background:#fff;padding:19px 22px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.stat strong{font-size:24px;font-family:Georgia,serif;font-weight:400}.stat span{font-size:11px;color:var(--muted);display:block}.stat .symbol{background:#f2f2e9;color:var(--gold);border-radius:10px;width:39px;height:39px;display:grid;place-items:center;font-size:18px}.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.card-top{padding:23px 25px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-top p{font-size:12px;color:var(--muted);margin-top:4px}.calendar-body{padding:22px}.month-control{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.month-control h3{text-transform:capitalize;font-family:Georgia,serif;font-size:22px;font-weight:400}.arrow{width:33px;height:33px;border:1px solid var(--line);border-radius:7px;background:white}.month-arrows{display:flex;gap:7px}.week,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.week{margin-bottom:12px}.week span{text-align:center;font-size:10px;color:#89907f;text-transform:uppercase;letter-spacing:1px}.day{border:1px solid #eceee6;background:#fff;min-height:76px;border-radius:8px;text-align:left;padding:9px 10px;font-size:13px;display:flex;flex-direction:column;justify-content:space-between;position:relative;color:var(--ink)}.day small{font-size:8px;letter-spacing:.2px;color:#65815c}.day:hover:not(:disabled){border-color:#b68a45;background:#faf8f0}.day.occupied{background:#f2f2ee;color:#93958a;opacity:1}.day.occupied small{color:#959889}.day.past{color:#c8ccc1;opacity:.65;background:#fafbf8}.day.selected{background:var(--dark)!important;color:white;border-color:var(--dark)}.day.selected small{color:#e0c28b}.day.today:before{content:'';position:absolute;right:8px;top:12px;width:5px;height:5px;border-radius:50%;background:var(--gold)}.legend{display:flex;gap:19px;font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:18px;margin-top:20px;flex-wrap:wrap}.legend span{display:flex;gap:6px;align-items:center}.square{width:9px;height:9px;border:1px solid #d8ddcf;border-radius:2px}.square.busy{background:#e7e9e1}.square.chosen{background:var(--dark)}.reserve-head{background:#eeefe6;padding:24px}.reserve-head .eyebrow{margin-bottom:8px}.reserve-head h2{font-family:Georgia,serif;font-size:25px;font-weight:400}.reserve-head p{font-size:12px;color:var(--muted);margin-top:5px}.reserve-form{padding:6px 24px 24px}.date-display{border:1px dashed #c8cdbb;border-radius:9px;padding:16px;font-size:13px;background:#fafbf6;display:flex;gap:12px;align-items:center;margin-top:22px}.date-display b{display:block;font-size:15px}.date-display span{color:var(--muted);font-size:10px}.info-card{padding:20px 24px;font-size:12px;color:var(--muted);margin-top:18px;background:#eeefe6;border-radius:12px}.info-card strong{color:var(--ink);display:block;margin-bottom:7px}.section-foot{display:flex;justify-content:space-between;font-size:10px;color:#939887;margin-top:28px}.reservation-list{padding:0 24px}.reservation{padding:20px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px}.reservation:last-child{border-bottom:0}.date-box{width:55px;padding:8px;background:#f2f3ec;border-radius:8px;text-align:center;flex-shrink:0;font-size:10px;text-transform:uppercase}.date-box b{display:block;font-size:22px;font-family:Georgia,serif;font-weight:400}.reservation-details{flex:1}.reservation-details p{font-size:12px;color:var(--muted);margin-top:4px}.status{font-size:10px;color:#47734d;background:#edf4e9;border-radius:5px;padding:4px 8px}.empty{text-align:center;padding:45px 25px;color:var(--muted);font-size:13px}.empty .big{display:block;font-size:32px;color:#bbb9a7;margin-bottom:10px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.admin-item{border-bottom:1px solid var(--line);padding:20px 24px}.admin-item p{font-size:12px;color:var(--muted);margin:5px 0 12px}.actions{display:flex;gap:8px}.actions button{padding:9px 13px;font-size:12px}.admin-block{padding:0 24px 24px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#233420;color:#fff;padding:15px 22px;border-radius:10px;box-shadow:0 5px 30px #0002;z-index:10;max-width:90vw;display:none;font-size:13px}.loading{padding:80px;text-align:center}.mobile-brand{display:none}.reservation .secondary{padding:8px 10px;font-size:11px}
@media(min-width:1600px){.content{padding-top:50px}.day{min-height:94px}}@media(max-width:1180px){.booking-grid{grid-template-columns:1fr 280px;gap:16px}.content{padding:28px 24px}.sidebar{width:206px;padding:26px 16px}.shell{grid-template-columns:206px 1fr}.topbar{padding:0 24px}.day{min-height:64px;padding:7px}.day small{font-size:7px}.calendar-body{padding:18px}}@media(max-width:980px){.booking-grid{grid-template-columns:1fr}.booking-side{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info-card{margin:0;align-self:start}.login-art{padding:35px}.admin-grid{grid-template-columns:1fr}}@media(max-width:680px){.login{grid-template-columns:1fr}.login-art{display:none}.login-side{padding:35px 24px;min-height:100vh}.mobile-brand{display:block;width:75px;height:75px;border-radius:12px;margin-bottom:25px}.shell{display:block}.sidebar{position:static;width:auto;height:auto;padding:15px 20px;display:block}.sidebar .brand-image,.sidebar .brand-name,.sidebar .nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:6px}.navbutton{width:auto;font-size:12px;padding:10px}.main{display:block}.topbar{height:55px;padding:0 20px}.content{padding:26px 18px}.page-head{display:block}.page-head h1{font-size:32px}.page-head>.pill{display:none}.stats{gap:8px;margin-bottom:18px}.stat{padding:14px 12px}.stat .symbol{display:none}.stat span{font-size:9px}.stat strong{font-size:21px}.booking-side{display:block}.info-card{margin-top:16px}.card-top{padding:19px}.calendar-body{padding:14px}.week,.days{gap:4px}.day{min-height:62px;padding:7px 5px;font-size:12px}.day small{font-size:6px}.month-control h3{font-size:20px}.reservation-list{padding:0 15px}.reservation{gap:11px;flex-wrap:wrap}.reservation-details{min-width:120px}.section-foot{display:block}.section-foot span{display:block;margin:7px 0}h2{font-size:18px}}

.mobile-logout{display:none}@media(max-width:680px){.mobile-logout{display:inline-block;margin-left:12px;padding:0}}
.login-art .brand-image{width:min(100%,330px);max-height:34vh;object-fit:contain}.login-art h1{font-size:36px}.login-art footer{margin-top:24px}.login-art{gap:24px}
@media(max-width:680px){.sidebar:before{content:'RESIDENCIAL LIFE';display:block;color:#d8b16a;font-size:10px;letter-spacing:2px;margin:0 10px 10px}.stat strong{font-size:17px}.card-top>.pill{font-size:9px}.stat span{line-height:1.3;margin-bottom:6px}}
/* Entrada em cartão central, conforme referência aprovada em 29/10. */
.login.login-centered{display:flex;align-items:center;justify-content:center;min-height:100svh;padding:48px 24px;background:radial-gradient(ellipse at 8% 0%,#eee6cf 0%,transparent 44%),radial-gradient(ellipse at 100% 0%,#e3ebe7 0%,transparent 48%),linear-gradient(180deg,#f6f7f1,#fffcf7 70%,#fff)}
.login-centered .login-side{display:block;min-height:0;width:100%;max-width:530px;padding:0;background:transparent}
.login-centered .access{max-width:none;padding:38px 40px 28px;background:#fff;border:1px solid #e5e2d7;border-radius:28px;box-shadow:0 24px 70px #26352a12}
.access-brand{display:flex;align-items:center;gap:15px;margin-bottom:25px}.access-brand img{width:66px;height:66px;object-fit:contain;border-radius:12px;flex-shrink:0}.access-brand strong{display:block;font-size:23px;line-height:1.3;letter-spacing:-.6px;color:#30372d}.access-brand span{display:block;color:#918260;font-size:11px;letter-spacing:1.4px;font-weight:700;margin-top:5px}
.login-centered .access h1{font-family:inherit;font-size:35px;font-weight:750;letter-spacing:-1.4px;line-height:1.15;margin:0 0 12px;color:#293326}.login-centered .access>p{font-size:15px;line-height:1.65;color:#7a806f}.login-centered .tabs{margin:23px 0 21px;background:#f1f1eb}.login-centered .field{margin:19px 0}.login-centered .field>span{text-transform:uppercase;letter-spacing:.7px;font-size:11px;color:#6c715e}.login-centered .field input{min-height:54px;padding:15px 16px;border-color:#dfdfd2;border-radius:13px;font-size:16px}.login-centered .secret{border-color:#dfdfd2;border-radius:13px}.login-centered .secret input{border:0}.login-centered .secret button{padding:0 16px}.login-centered .primary{min-height:54px;border-radius:13px;background:linear-gradient(110deg,#a7803d,#c39c57);box-shadow:0 10px 22px #b18b4421;margin-top:4px;font-size:15px}.login-centered .primary:hover{background:linear-gradient(110deg,#957033,#b18a47)}.login-centered .privacy{font-size:10px;line-height:1.7;margin-top:22px;padding-top:16px;border-color:#efeee7}.login-centered .admin-link{margin-top:18px;font-size:11px;color:#8d8e80}
@media(max-width:600px){.login.login-centered{padding:24px 16px}.login-centered .access{padding:28px 24px 24px;border-radius:23px}.access-brand{gap:12px;margin-bottom:24px}.access-brand img{width:57px;height:57px}.access-brand strong{font-size:21px}.access-brand span{font-size:9px}.login-centered .access h1{font-size:30px}.login-centered .access>p{font-size:14px}.login-centered .field input{font-size:16px}}
