/* Soft Touches · Interface v2
   Visual premium, mais luminoso e responsivo; separado da base para facilitar manutenção. */
:root{
  --st-night:#07141e;--st-ocean:#102b38;--st-teal:#2a5760;
  --st-ink:#0e202b;--st-panel:#142c39;--st-line:#39515c;
  --st-cream:#f8f0df;--st-gold:#e0ba74;--st-gold-light:#f6dcaa;
  --st-muted:#b1c3ca;--st-sage:#a4d7c1;
}
html{color-scheme:dark}
body{
  background:radial-gradient(ellipse at 90% -8%,rgba(69,124,123,.19),transparent 37%),
             radial-gradient(circle at 0% 55%,rgba(23,73,93,.18),transparent 37%),
             var(--st-night);
  color:var(--st-cream);
}
.app-shell{max-width:1230px;padding:0 28px 100px}
main{min-height:45vh}
h1,h2,h3{letter-spacing:-.03em}
h1{font-size:clamp(34px,4vw,56px)}
h2{font-size:clamp(22px,2.2vw,30px)}
p{line-height:1.65}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{
  outline:3px solid var(--st-gold-light);outline-offset:3px;
}
:focus:not(:focus-visible){outline:none}
.skip-link{position:fixed;top:-80px;left:14px;z-index:100;padding:14px;background:#f7d99c;color:#07141e;border-radius:12px}
.skip-link:focus{top:12px}
.topbar{height:88px;margin-bottom:26px;border-bottom:1px solid rgba(174,202,208,.15)}
.brand{gap:12px}
.brand-mark{background:linear-gradient(145deg,#294450,#0c1d28);position:relative;border-color:#b3935d;color:#f4dcae;box-shadow:0 5px 25px #020d16b5;width:48px;height:48px}
.brand-spark{position:absolute;font-family:Georgia,serif;font-size:13px;letter-spacing:0;top:-6px;right:-5px;color:#efcd8a}
.brand-name{font-size:21px;color:#fff7e7}
.brand-sub{color:#d8bc83}
.account-chip{display:flex;align-items:center;gap:9px;border-color:#4b6570;background:rgba(28,54,67,.9);transition:background .2s,transform .2s}
.account-chip:hover{background:#29485a;transform:translateY(-1px)}
.account-icon{font-size:17px;color:#edcd93}
.chip-arrow{color:#b2c6ca}
.eyebrow{font-size:11px;letter-spacing:.17em;color:#ebc685}
.muted,.muted-sm{color:var(--st-muted)}
.hero{
  min-height:392px;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(205px,.6fr);
  align-items:center;padding:clamp(28px,4vw,58px);isolation:isolate;
  border-radius:30px;border:1px solid rgba(220,190,131,.38);
  background:radial-gradient(circle at 82% 18%,rgba(233,188,101,.23),transparent 25%),
             radial-gradient(ellipse at 58% 98%,rgba(77,160,156,.22),transparent 49%),
             linear-gradient(115deg,#183744 0%,#132833 48%,#0c1c29 100%);
  box-shadow:0 24px 56px rgba(2,11,19,.3);
}
.hero:after{content:'';width:300px;height:300px;border:1px solid rgba(236,211,161,.11);border-radius:50%;right:4%;top:7%;opacity:1;transform:rotate(-12deg)}
.hero-content{max-width:800px}
.hero-overline{display:inline-flex;align-items:center;gap:9px;color:#ffdea2;font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700}
.hero-dot{width:7px;height:7px;background:#c7e7c4;border-radius:50%;box-shadow:0 0 0 5px rgba(150,220,194,.12)}
.hero h1{max-width:830px;line-height:1.13;margin:18px 0 17px;font-weight:720;color:#fff9ee}
.hero-highlight{color:#efd09a;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:normal}
.hero p{max-width:590px;color:#d3e2e5;font-size:15px}
.hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:23px}
.hero-secondary{border-color:#789198!important;background:rgba(10,28,39,.44)!important}
.hero-secondary:hover{background:rgba(54,92,100,.6)!important}
.hero-trust{display:flex;gap:17px;flex-wrap:wrap;font-size:12px;color:#c5dcd7;margin-top:27px}
.hero-decoration{justify-self:center;display:flex;flex-direction:column;align-items:center;gap:19px;position:relative;z-index:1}
.hero-ring{display:grid;place-items:center;width:192px;height:192px;border-radius:50%;
 background:radial-gradient(circle at 35% 20%,#6b716b,#243e45 45%,#122835 70%);
 border:1px solid rgba(240,212,153,.7);box-shadow:0 0 0 18px rgba(225,196,143,.07),0 0 0 33px rgba(225,196,143,.04),inset 0 0 70px #111e29,0 15px 55px #061018b8}
.hero-ring span{font-family:Georgia,serif;font-size:65px;letter-spacing:-12px;color:#f6dca3;margin-right:12px;text-shadow:0 8px 30px #010b15}
.hero-deco-caption{font-size:9px;letter-spacing:.13em;color:#e4c994;white-space:nowrap}
.btn{background:linear-gradient(130deg,#f0d097,#d6ab61);color:#11232c;border:1px solid #f0d5a6;border-radius:14px;min-height:48px;box-shadow:0 4px 15px rgba(1,11,18,.12);transition:transform .18s,filter .18s,background .18s}
.btn:hover{background:linear-gradient(130deg,#f8e0b6,#e8c280);transform:translateY(-1px)}
.btn.secondary{background:#203947;color:#f6f3e9;border:1px solid #506b78}
.btn.secondary:hover{background:#315465}
.btn.ghost{background:rgba(230,199,140,.06);color:#f6d7a0;border:1px solid #ae8e59}
.btn:disabled{opacity:.48;transform:none;box-shadow:none}
.quick-section{margin-top:-2px}
.quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.quick-link{color:#f8f2e6;display:flex;align-items:center;text-align:left;gap:13px;min-width:0;padding:17px;
 background:linear-gradient(145deg,#18333f,#102430);border:1px solid #395561;border-radius:17px;
 transition:transform .18s,border-color .18s,background .18s}
.quick-link:hover,.unit-mini:hover{transform:translateY(-2px);border-color:#b59865;background:#214251}
.quick-icon{flex:none;display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:#284d56;color:#f4d296;font-size:23px}
.quick-link strong,.unit-mini strong{display:block;font-size:14px;color:#fff6e8}
.quick-link small,.unit-mini small{display:block;font-size:12px;color:#a9bdc6;margin-top:3px}
.quick-arrow{margin-left:auto;color:#d4bc8c;font-size:17px}
.section{margin-top:44px}
.section-header{margin-bottom:19px}
.section-header h2{margin-top:4px}
.section-header p{margin:7px 0 0}
.card-action{color:#edcc91;border-radius:8px;min-height:36px;padding:8px 6px;font-weight:700}
.card-action:hover{text-decoration:underline;color:#ffe2ac}
.grid{gap:17px}
.tile,.panel{background:linear-gradient(150deg,#1a3240,#122532);border:1px solid #354e5a;border-radius:21px}
.tile{padding:23px;min-width:0;box-shadow:0 10px 32px rgba(0,6,14,.16)}
.tile:hover{border-color:#c2a271;box-shadow:0 15px 37px rgba(0,7,16,.28)}
.service-tile{display:flex;flex-direction:column;min-height:263px}
.service-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.service-tile .tile-art{width:55px;height:55px;border-radius:17px;background:linear-gradient(145deg,#30555b,#1d3845);border-color:#4f7276;margin-bottom:16px;font-size:27px}
.service-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#d2c19c;border:1px solid #5e635a;padding:6px 9px;border-radius:99px}
.service-tile h3{font-size:19px;line-height:1.25;margin-bottom:4px}
.service-tile p{line-height:1.55;min-height:auto;margin:6px 0 15px;color:#b7c8ce}
.service-tile .service-details{margin-top:auto}
.service-tile .tile-footer{border-top:1px solid #38505d;padding-top:14px;margin-top:auto}
.price{display:flex;flex-direction:column;color:#f3d39a;font-size:17px}
.price small{font-size:10px;color:#a5bec3;font-weight:500;letter-spacing:.04em}
.vip-banner{padding:30px 34px;border-radius:25px;margin-top:35px;background:
 radial-gradient(circle at 90% 32%,rgba(247,192,89,.2),transparent 34%),
 linear-gradient(125deg,#32423e,#142938 68%,#192e36);border-color:#958256;box-shadow:0 16px 42px #03101975}
.vip-banner h2{font-family:Georgia,serif;font-style:italic;font-weight:normal;font-size:30px;color:#ffe2ac}
.vip-banner .muted{color:#d8e2dc}
.vip-crown{font-size:65px;opacity:.67;text-shadow:0 10px 30px #090f16}
.unit-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.unit-mini{display:flex;align-items:center;gap:12px;text-align:left;min-width:0;border:1px solid #3b5662;border-radius:15px;background:#152d3b;padding:15px;color:#f7efe1;transition:transform .18s,border-color .18s}
.unit-mini-pin{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:#274653;color:#d9ba7c;font-size:22px}
.unit-mini small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:340px}
.help-strip{display:flex;align-items:center;gap:16px;padding:19px 22px;border:1px solid #43646a;border-radius:18px;background:linear-gradient(110deg,#193c40,#142a38);margin-top:24px}
.help-strip-symbol{font-family:Georgia,serif;font-size:31px;color:#edd394}
.help-strip strong{font-size:15px}
.help-strip p{margin:3px 0 0;color:#bdd0cb;font-size:12px}
.help-strip .btn{margin-left:auto;flex:none}
.admin-quick-link{display:flex;align-items:center;gap:15px;border-radius:17px;background:#262f32;border:1px solid #8e7553;padding:16px;margin-top:23px}
.admin-quick-link strong,.admin-quick-link small{display:block}
.admin-quick-link small{margin-top:4px;color:#bfd0cf;font-size:12px}
.admin-quick-icon{font-size:30px;color:#f4d199}
.admin-quick-link .btn{margin-left:auto;flex:none}
.upcoming-card{display:flex;align-items:center;gap:17px;border:1px solid #48726b;background:#172f35;padding:20px 22px;border-radius:17px}
.upcoming-card strong{font-size:16px}
.upcoming-card p{margin:5px 0}
.upcoming-icon{display:grid;place-items:center;background:#28524f;color:#b9e7d4;border-radius:15px;width:45px;height:45px;font-size:24px}
.upcoming-card .pill{margin-left:auto}
.page-title{margin:3px 0 28px}
.page-title h1{margin:9px 0 8px}
.page-title p{font-size:15px}
.unit-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.unit-card{min-width:0;padding:25px;background:linear-gradient(155deg,#193846,#132733);border:1px solid #395562;border-radius:21px;box-shadow:0 10px 30px #030b1340}
.unit-card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}
.unit-number{color:#ddc38a;font-size:15px;font-weight:700}
.unit-tag{font-size:11px;letter-spacing:.06em;color:#aacec3;border:1px solid #537268;border-radius:50px;padding:6px 10px}
.unit-card h2{margin-bottom:7px;font-size:23px}
.unit-card p{font-size:13px;margin-bottom:21px}
.unit-card-actions{display:flex;gap:9px;flex-wrap:wrap}
.unit-notice{margin:0 0 22px}
.unit-notice div{margin-top:9px}
.unit-notice details{margin-top:9px}
.unit-notice a{color:#ffe1a6}
.booking-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:22px}
.booking-steps span{display:flex;align-items:center;gap:8px;font-size:12px;color:#a9bdc5;white-space:nowrap}
.booking-steps b{display:grid;place-items:center;flex:none;height:27px;width:27px;border-radius:50%;border:1px solid #506575;background:#1c3441;color:#b5c7cb;font-size:12px}
.booking-steps .done b{border-color:#c0a06d;background:#624e32;color:#ffe5b2}
.booking-steps .done{color:#efd4a3}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(255px,.75fr);align-items:start;gap:18px}
.booking-main,.booking-summary{max-width:none;padding:25px}
.booking-step-heading{display:flex;align-items:center;gap:15px}
.booking-step-heading h2{font-size:21px}
.booking-step-heading p{margin:5px 0 0}
.step-counter{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid #786e55;border-radius:14px;background:#323e3d;color:#f0d39f;font-weight:800}
.booking-divider{height:1px;background:#38525d;margin:8px 0}
.text-left{text-align:left}
.time-section{border-radius:15px;background:#0d2430;padding:17px;border:1px solid #2f4a57}
.time-section h3{font-size:15px}
.time-section p{margin:5px 0 14px}
.slot-placeholder{display:flex;gap:9px;align-items:center;color:#a8bec6;font-size:13px;background:#142d39;border-radius:11px;padding:14px}
.slots{gap:10px}
.slot{min-width:77px;border-radius:12px;background:#1c3945;font-weight:650}
.slot.selected{background:#74603e;border-color:#e7c689;color:#fff9e9;box-shadow:0 0 0 2px #d3b67642}
.vip-check{padding:13px;border:1px solid #746541;border-radius:12px;background:#39362b}
.booking-summary{position:sticky;top:16px}
.booking-summary h2{font-size:22px;color:#f9e1b3}
.summary-row{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;border-bottom:1px solid #39505c;padding:10px 0;font-size:13px}
.summary-row span{color:#adbec8}
.summary-row strong{text-align:right;color:#f7ede0;max-width:60%}
.summary-total strong{color:#efca86;font-size:16px}
.booking-summary .form-note{font-size:12px}
.booking-summary .checkline{line-height:1.55}
.loading-layout{display:flex;flex-direction:column;gap:18px;padding:18px 0}
.loading-header{height:230px;max-width:100%;border-radius:26px}
.loading-content{height:130px;border-radius:20px}
.loading-content.smaller{height:85px;width:70%}
.shimmer{background:linear-gradient(100deg,#1a3543 8%,#2c4b57 25%,#1a3543 43%);background-size:200% 100%;animation:st-shimmer 1.6s linear infinite}
@keyframes st-shimmer{to{background-position-x:-200%}}
.loading-spinner{width:15px;height:15px;border:2px solid #506977;border-top-color:#e2c182;border-radius:100%;animation:st-spin 1s linear infinite}
@keyframes st-spin{to{transform:rotate(360deg)}}
.connection-status{padding:11px 15px;border:1px solid #9a7a44;background:#3c3424;color:#ffe0a9;border-radius:12px;font-size:13px;margin-bottom:16px}
.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}
.stat-card{display:flex;flex-direction:column;gap:5px;padding:19px;background:linear-gradient(145deg,#1c3744,#142a36);border:1px solid #385866;border-radius:17px}
.stat-icon{color:#dfbf84;font-size:23px}
.stat-value{font-size:31px;line-height:1.1;font-weight:800;color:#f1d092}
.stat-card strong{font-size:12px;line-height:1.35}
.stat-card small{font-size:11px;color:#acc1c8}
.admin-tabs{gap:8px;margin:0 0 19px}
.admin-tabs button{min-height:41px;border-radius:11px;background:#1c3442;color:#c8d6da}
.admin-tabs button.active{background:#776039;border-color:#c7a26a;color:#fff0d2}
.empty{border:1px dashed #476573;background:#102632;color:#b1c9d0}
.flash{box-shadow:0 12px 35px #020b14a6}
.footer{margin:55px 0 20px;color:#a5bbc0;line-height:1.7}
.footer a{color:#e1c08b}
.bottom-nav{background:rgba(8,22,33,.91);border-top:1px solid #405763;box-shadow:0 -8px 35px #030a14b6}
.nav-inner{max-width:620px}
.nav-item{font-size:11px;gap:6px;min-height:64px;transition:color .18s,background .18s}
.nav-icon{font-size:22px}
.nav-item.active{color:#f1d098;background:linear-gradient(180deg,rgba(230,188,113,.08),transparent)}
@media(min-width:1100px){
  .bottom-nav{left:50%;right:auto;transform:translateX(-50%);bottom:16px;max-width:650px;width:calc(100% - 48px);border-radius:18px;border:1px solid #51606a;overflow:hidden;padding-bottom:0}
  .app-shell{padding-bottom:125px}
}
@media(max-width:950px){
  .hero{grid-template-columns:minmax(0,1fr) 180px;min-height:342px}
  .hero-ring{width:136px;height:136px}
  .hero-ring span{font-size:50px}
  .booking-layout{grid-template-columns:minmax(0,1fr)}
  .booking-summary{position:static}
  .admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .app-shell{padding:0 16px calc(105px + env(safe-area-inset-bottom))}
  .topbar{height:74px;margin-bottom:17px}
  .hero{display:block;padding:29px 22px;border-radius:23px;min-height:auto}
  .hero-decoration{display:none}
  .hero:after{opacity:.7;right:-130px;top:-80px}
  .hero h1{font-size:clamp(31px,7.5vw,41px)}
  .hero p{font-size:14px}
  .hero-trust{gap:10px;margin-top:18px}
  .quick-actions{gap:8px}
  .quick-link{padding:12px;gap:6px;flex-direction:column;align-items:flex-start;border-radius:14px}
  .quick-icon{width:36px;height:36px;font-size:20px;border-radius:10px}
  .quick-link strong{font-size:12px;line-height:1.2}
  .quick-link small{font-size:10px;line-height:1.3}
  .quick-arrow{display:none}
  .section{margin-top:36px}
  .tile{padding:17px}
  .unit-highlights{grid-template-columns:1fr}
  .unit-mini small{max-width:65vw}
  .unit-directory{grid-template-columns:1fr}
  .vip-banner{padding:23px}
  .vip-banner h2{font-size:25px}
  .vip-crown{font-size:40px}
  .help-strip{flex-wrap:wrap;gap:12px}
  .help-strip .btn{margin-left:0}
  .admin-quick-link{flex-wrap:wrap}
  .admin-quick-link .btn{margin-left:0}
  .page-title h1{font-size:34px}
  .booking-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .booking-steps span{flex-direction:column;gap:4px;text-align:center;font-size:10px;white-space:normal}
  .booking-main,.booking-summary{padding:19px}
  .nav-item{min-height:66px}
}
@media(max-width:520px){
  .brand-name{font-size:16px}
  .brand-sub{font-size:8px}
  .brand-mark{width:39px;height:39px;font-size:18px}
  .account-chip{padding:8px 10px;font-size:11px}
  .account-chip .chip-arrow{display:none}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn{width:100%}
  .hero-trust{flex-direction:column;gap:6px}
  .grid{grid-template-columns:1fr}
  .service-tile{min-height:unset}
  .service-tile .tile-footer{margin-top:15px}
  .section-header{gap:10px}
  .section-header h2{font-size:22px}
  .section-header .card-action{font-size:12px}
  .booking-step-heading h2{font-size:19px}
  .admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .stat-card{padding:14px}
  .stat-value{font-size:26px}
  .stat-card strong{font-size:11px}
  .admin-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:7px}
  .admin-tabs button{white-space:nowrap}
  .upcoming-card{flex-wrap:wrap}
  .upcoming-card .pill{margin-left:0}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
