@import "tailwindcss";

:root {
  --navy: #092539;
  --navy-deep: #061b2b;
  --navy-soft: #12384f;
  --gold: #c5a15c;
  --gold-light: #e2c98c;
  --ivory: #f7f5ef;
  --sand: #eee9df;
  --ink: #162b38;
  --muted: #6e7a80;
  --line: rgba(9, 37, 57, .14);
  --serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --sans: "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }

.site-shell { min-height: 100vh; overflow: hidden; }
.site-header { position: absolute; z-index: 50; top: 0; left: 0; right: 0; height: 104px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 36px; padding: 0 4.5vw; color: white; border-bottom: 1px solid rgba(255,255,255,.2); }
.header-dark { position: relative; color: var(--navy); background: var(--ivory); border-color: var(--line); }
.header-brand-button { z-index: 51; justify-self: center; }
.brand { display: inline-flex; width: max-content; flex-direction: row; align-items: center; gap: 11px; color: white; line-height: 1; }
.brand-dark { color: var(--navy); }
.brand-mark-frame { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 42px; flex: 0 0 auto; }
.brand-mark { width: 100%; height: 100%; object-fit: contain; }
.brand-dark .brand-mark-frame { padding: 3px; border-radius: 6px; background: var(--navy); }
.brand-words { display: inline-flex; flex-direction: column; align-items: center; }
.brand-name { font-family: var(--serif); font-size: 25px; letter-spacing: .28em; margin-right: -.28em; }
.brand-sub { margin-top: 9px; font-size: 7px; letter-spacing: .55em; margin-right: -.55em; }
.main-nav { position: fixed; z-index: 70; inset: 0 auto 0 0; display: flex; width: min(390px,90vw); flex-direction: column; align-items: stretch; gap: 0; padding: 0 34px 34px; color: white; background: linear-gradient(155deg,#0c3046 0%,#061c2b 76%); box-shadow: 22px 0 70px rgba(2,15,24,.28); transform: translateX(-106%); transition: transform .34s cubic-bezier(.22,.8,.28,1); overflow-y: auto; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.main-nav.nav-open { transform: translateX(0); }
.drawer-header { display: flex; min-height: 104px; align-items: center; justify-content: space-between; margin-bottom: 22px; border-bottom: 1px solid rgba(255,255,255,.14); }
.drawer-header > span { display: flex; flex-direction: column; gap: 4px; }
.drawer-header small { color: var(--gold-light); font-size: 8px; letter-spacing: .22em; }
.drawer-header strong { font-family: var(--serif); font-size: 30px; font-weight: 400; letter-spacing: .02em; text-transform: none; }
.drawer-header button { display: grid; width: 42px; height: 42px; place-items: center; padding: 0; color: white; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; background: transparent; cursor: pointer; font-size: 25px; font-weight: 200; line-height: 1; }
.main-nav > .preview-nav-button { width: 100%; padding: 17px 4px; color: rgba(255,255,255,.88); border: 0; border-bottom: 1px solid rgba(255,255,255,.1); background: none; cursor: pointer; text-align: left; transition: color .2s ease,padding-left .2s ease; }
.main-nav > .preview-nav-button:hover,.main-nav > .preview-nav-button.active { padding-left: 10px; color: var(--gold-light); }
.drawer-private { display: grid; gap: 0; margin-top: auto; padding-top: 28px; }
.drawer-private > span { margin-bottom: 8px; color: rgba(255,255,255,.45); font-size: 8px; letter-spacing: .24em; }
.drawer-private .preview-nav-button { width: 100%; padding: 14px 4px; color: var(--gold-light); border: 0; border-top: 1px solid rgba(255,255,255,.1); background: none; text-align: left; cursor: pointer; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.mobile-auth-link { display: block; }
.mobile-nav-languages { display: none; }
.menu-backdrop { position: fixed; z-index: 65; inset: 0; padding: 0; border: 0; background: rgba(1,13,21,.48); opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.preview-header.menu-open .menu-backdrop { opacity: 1; pointer-events: auto; }
body.navigation-open { overflow: hidden; }
.header-actions { z-index: 51; justify-self: end; display: flex; align-items: center; }
.language-switcher { position: relative; display: flex; }
.main-nav .mobile-nav-languages { display: none; }
.language-trigger { display: grid; width: 46px; height: 46px; place-items: center; padding: 0; color: inherit; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; background: rgba(5,25,40,.16); box-shadow: 0 8px 24px rgba(0,0,0,.08); cursor: pointer; font-size: 19px; transition: border-color .2s ease,background .2s ease,transform .2s ease; }
.language-trigger:hover,.language-menu.open .language-trigger { border-color: var(--gold-light); background: rgba(5,25,40,.42); transform: translateY(-1px); }
.header-dark .language-trigger,.preview-header.inner .language-trigger { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.06); }
.language-options { position: absolute; top: calc(100% + 12px); right: 0; display: grid; min-width: 176px; padding: 8px; border: 1px solid rgba(197,161,92,.28); border-radius: 14px; background: rgba(255,255,255,.98); box-shadow: 0 20px 50px rgba(5,25,40,.24); opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity .2s ease,transform .2s ease; }
.language-menu.open .language-options { opacity: 1; pointer-events: auto; transform: translateY(0); }
.language-options button { display: grid; grid-template-columns: 29px 1fr; align-items: center; gap: 8px; padding: 10px 11px; color: var(--navy); border: 0; border-radius: 9px; background: transparent; cursor: pointer; text-align: left; }
.language-options button:hover,.language-options button.selected { background: #f3eee4; }
.language-options button > span { font-size: 18px; }
.language-options button > strong { font-size: 10px; font-weight: 600; letter-spacing: .08em; }
.owner-link { display: flex; align-items: center; gap: 10px; padding: 11px 15px; border: 1px solid rgba(255,255,255,.5); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; transition: .25s ease; }
.admin-link { font-size: 9px; letter-spacing: .14em; text-transform: uppercase; opacity: .72; }
.admin-link:hover { color: var(--gold-light); opacity: 1; }
.header-dark .owner-link { border-color: rgba(9,37,57,.32); }
.owner-link:hover { border-color: var(--gold); background: rgba(197,161,92,.08); }
.owner-dot { width: 8px; height: 8px; border: 1px solid currentColor; border-radius: 50%; }
.menu-button { z-index: 51; display: block; justify-self: start; border: 0; background: none; color: inherit; padding: 10px 10px 10px 0; cursor: pointer; }
.menu-button span { display: block; width: 27px; height: 1px; margin: 7px 0; background: currentColor; transition: width .2s ease; }
.menu-button span:last-child { width: 19px; }
.menu-button:hover span:last-child { width: 27px; }

.hero { position: relative; min-height: 780px; height: 100svh; max-height: 980px; background-size: cover; background-position: center; color: white; display: flex; align-items: center; padding: 145px 7.5vw 70px; }
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 25%; background: linear-gradient(transparent, rgba(5,25,40,.24)); pointer-events: none; }
.hero-content { position: relative; z-index: 2; max-width: 720px; }
.eyebrow { margin: 0 0 21px; color: #957638; font-size: 10px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; }
.eyebrow.light { color: var(--gold-light); }
.hero h1 { margin: 0; width: max-content; font-family: var(--serif); font-size: clamp(58px, 7.5vw, 112px); line-height: .85; font-weight: 400; letter-spacing: .19em; text-shadow: 0 2px 26px rgba(0,0,0,.22); }
.hero h1 span { display: block; margin-top: 24px; font-family: var(--sans); font-size: .11em; font-weight: 500; letter-spacing: .73em; padding-left: .22em; }
.gold-line { width: 80px; height: 1px; background: var(--gold-light); margin: 36px 0 29px; }
.hero h2 { margin: 0; font-family: var(--serif); font-size: clamp(27px, 3vw, 42px); line-height: 1.2; font-weight: 400; font-style: italic; }
.hero-copy { max-width: 570px; margin: 19px 0 31px; color: rgba(255,255,255,.82); font-size: 15px; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.home-social-actions { position: fixed; z-index: 55; right: 24px; bottom: 24px; display: flex; flex-direction: column; gap: 9px; }
.home-social-button { display: flex; align-items: center; gap: 10px; min-width: 142px; padding: 10px 15px 10px 10px; color: var(--navy); border: 1px solid rgba(9,37,57,.12); border-radius: 999px; background: rgba(255,255,255,.96); box-shadow: 0 10px 30px rgba(5,25,40,.18); cursor: pointer; font: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.home-social-button:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(5,25,40,.24); }
.home-social-button > span { display: grid; place-items: center; width: 31px; height: 31px; color: white; border-radius: 50%; font-size: 8px; font-weight: 700; letter-spacing: .05em; }
.home-social-button > strong { font-size: 9px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.home-social-button.whatsapp > span { background: #24885f; }
.home-social-button.instagram > span { background: linear-gradient(135deg,#7443ad,#d24e72 55%,#e9a44b); }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 0 27px; border: 1px solid transparent; cursor: pointer; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; transition: transform .2s ease, background .2s ease, border .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-gold { background: var(--gold); color: #fff; border-color: var(--gold); }
.button-gold:hover { background: #ae8842; border-color: #ae8842; }
.button-ghost { color: white; border-color: rgba(255,255,255,.62); }
.button-ghost:hover { border-color: white; background: rgba(255,255,255,.08); }
.button-navy { width: 100%; color: white; background: var(--navy); border-color: var(--navy); }
.dark-text { color: var(--navy-deep); }
.scroll-cue { position: absolute; z-index: 3; right: 5vw; bottom: 42px; display: flex; align-items: center; gap: 18px; font-size: 8px; letter-spacing: .2em; text-transform: uppercase; transform: rotate(90deg); transform-origin: right bottom; }
.scroll-cue i { width: 55px; height: 1px; background: rgba(255,255,255,.65); }

.section { padding: 120px 7.5vw; }
.section-heading { display: grid; grid-template-columns: minmax(170px, .45fr) 1.4fr; gap: 35px; align-items: start; }
.section-heading h2, .zones-title h2, .process-section h2, .pricing-section h2 { max-width: 890px; margin: -8px 0 0; font-family: var(--serif); font-weight: 400; font-size: clamp(38px, 5vw, 65px); line-height: 1.08; color: var(--navy); }
.section-heading.centered { display: block; max-width: 850px; margin: 0 auto 64px; text-align: center; }
.section-heading.centered h2 { margin: 0 auto; }
.intro-section { background: var(--ivory); }
.intro-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 55px; width: 64%; margin: 58px 0 0 auto; color: #4b5b64; font-family: var(--serif); font-size: 19px; line-height: 1.85; }
.intro-copy p { margin: 0; }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 90px; padding-top: 38px; border-top: 1px solid var(--line); }
.stats div { display: flex; flex-direction: column; align-items: center; padding: 0 20px; border-right: 1px solid var(--line); text-align: center; }
.stats div:last-child { border-right: 0; }
.stats strong { font-family: var(--serif); font-size: 42px; font-weight: 400; color: var(--navy); }
.stats span { color: var(--muted); font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }

.services-section { background: #fff; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { position: relative; min-height: 330px; padding: 40px 38px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .25s ease; }
.service-card:hover { background: var(--ivory); }
.card-number { position: absolute; top: 35px; right: 35px; color: #a3aaa9; font-size: 9px; letter-spacing: .18em; }
.service-mark { width: 32px; height: 32px; margin: 8px 0 62px; border: 1px solid var(--gold); transform: rotate(45deg); }
.service-mark::after { content: ""; display: block; width: 14px; height: 14px; margin: 8px; background: rgba(197,161,92,.18); }
.service-card h3 { margin: 0 0 16px; font-family: var(--serif); font-weight: 400; font-size: 26px; color: var(--navy); }
.service-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.service-card-featured { grid-column: 1 / -1; display: grid; grid-template-columns: 120px minmax(0,720px); align-items: center; gap: clamp(35px,7vw,110px); min-height: 250px; padding: 45px clamp(38px,7vw,92px); background: linear-gradient(120deg,#f6f0e5,#fffdf8); }
.service-card-featured .service-mark { margin: 0; justify-self: center; transform: rotate(45deg) scale(1.35); }
.service-card-featured h3 { font-size: clamp(31px,4vw,46px); }
.service-card-featured p { max-width: 760px; font-family: var(--serif); font-size: 17px; line-height: 1.75; }

.why-section { display: grid; grid-template-columns: 48% 52%; min-height: 760px; background: var(--navy); color: white; }
.why-image { position: relative; min-height: 650px; background-size: cover; background-position: center; }
.why-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,37,57,.02), rgba(9,37,57,.28)); }
.image-caption { position: absolute; z-index: 1; left: 34px; bottom: 30px; font-size: 8px; letter-spacing: .2em; text-transform: uppercase; }
.why-content { align-self: center; padding: 80px 9vw 80px 7vw; }
.why-content h2, .yacht-content h2, .contact-intro h2 { margin: 0 0 28px; color: white; font-family: var(--serif); font-weight: 400; font-size: clamp(40px, 4.5vw, 64px); line-height: 1.08; }
.why-lead { color: rgba(255,255,255,.7); font-family: var(--serif); font-size: 17px; line-height: 1.75; }
.why-list { margin-top: 45px; }
.why-list > div { display: grid; grid-template-columns: 42px 1fr; gap: 18px; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.15); }
.why-list > div > span { padding-top: 5px; color: var(--gold-light); font-size: 9px; }
.why-list h3 { margin: 0 0 4px; font-family: var(--serif); font-size: 21px; font-weight: 400; }
.why-list p { margin: 0; color: rgba(255,255,255,.58); font-size: 12px; }

.testimonials-section { background: #fffdf8; }
.testimonials-heading { display: grid; max-width: 820px; margin: 0 auto 62px; text-align: center; }
.testimonials-heading h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: clamp(42px,5vw,68px); font-weight: 400; line-height: 1.06; }
.testimonials-heading > p:not(.eyebrow) { max-width: 610px; margin: 24px auto 0; color: var(--muted); font-family: var(--serif); font-size: 17px; line-height: 1.75; }
.testimonial-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.testimonial-card { display: flex; min-height: 330px; flex-direction: column; padding: 31px 28px 27px; border: 1px solid rgba(9,37,57,.11); background: white; box-shadow: 0 14px 44px rgba(9,37,57,.055); }
.testimonial-card:nth-child(2n) { margin-top: 24px; }
.testimonial-stars { color: #b88b3e; font-size: 11px; letter-spacing: .2em; }
.testimonial-card blockquote { margin: 32px 0 36px; color: #334853; font-family: var(--serif); font-size: 17px; line-height: 1.72; }
.testimonial-card footer { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 12px; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line); }
.testimonial-card footer > span { display: grid; width: 42px; height: 42px; place-items: center; color: var(--navy); border: 1px solid rgba(197,161,92,.48); border-radius: 50%; background: #f6f0e5; font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.testimonial-card footer div { display: flex; min-width: 0; flex-direction: column; }
.testimonial-card footer strong { color: var(--navy); font-size: 11px; font-weight: 600; letter-spacing: .07em; }
.testimonial-card footer small { margin-top: 3px; color: var(--muted); font-size: 8px; letter-spacing: .05em; }
.testimonials-draft-note { margin: 42px auto 0; color: #8a7350; font-size: 9px; letter-spacing: .07em; text-align: center; }
.testimonial-add-button { width: max-content; margin: 30px auto 0; }
.review-modal-backdrop { position: fixed; z-index: 200; inset: 0; display: none; place-items: center; padding: 16px; background: rgba(5,22,34,.72); backdrop-filter: blur(8px); }
.review-modal-backdrop.visible { display: grid; }
.review-modal { position: relative; width: min(760px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; padding: clamp(30px,5vw,56px); background: #fffdf8; box-shadow: 0 30px 90px rgba(3,20,31,.3); }
.review-modal-close { position: absolute; top: 15px; right: 17px; display: grid; width: 38px; height: 38px; place-items: center; padding: 0; color: var(--navy); border: 1px solid var(--line); border-radius: 50%; background: white; cursor: pointer; font-size: 24px; line-height: 1; }
.review-modal h2 { max-width: 590px; margin: 5px 0 14px; color: var(--navy); font-family: var(--serif); font-size: clamp(34px,5vw,52px); font-weight: 400; line-height: 1.08; }
.review-modal-intro { margin: 0 0 28px; color: var(--muted); font-family: var(--serif); font-size: 16px; line-height: 1.65; }
.review-modal form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; }
.review-modal form > label:not(.review-consent):not(.review-honeypot) { display: grid; gap: 8px; }
.review-modal label > span { color: var(--muted); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.review-modal input,.review-modal select,.review-modal textarea { width: 100%; min-height: 48px; padding: 12px 13px; color: var(--navy); border: 1px solid var(--line); border-radius: 0; background: white; font: inherit; outline: none; }
.review-modal textarea { min-height: 130px; resize: vertical; line-height: 1.55; }
.review-modal input:focus,.review-modal select:focus,.review-modal textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(197,161,92,.12); }
.review-modal .full-field { grid-column: 1 / -1; }
.review-consent { display: grid; grid-template-columns: 21px 1fr; align-items: start; gap: 10px; cursor: pointer; }
.review-consent input { width: 20px; height: 20px; min-height: 0; padding: 0; accent-color: var(--navy); }
.review-consent span { padding-top: 3px; line-height: 1.5; text-transform: none !important; }
.review-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.review-form-message { min-height: 20px; margin: 0; color: #356448; font-size: 11px; line-height: 1.5; }
.review-form-message.error { color: #a34f45; }
.review-modal-actions { display: flex; justify-content: flex-end; gap: 11px; }
.review-modal-actions > button:first-child { min-height: 46px; padding: 0 20px; color: var(--navy); border: 1px solid var(--line); background: white; cursor: pointer; }
.review-modal-actions .button { width: auto; }

.zones-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; background: var(--sand); }
.zones-title p:not(.eyebrow) { max-width: 530px; margin: 35px 0 26px; color: #5f6a70; font-family: var(--serif); font-size: 18px; line-height: 1.75; }
.zones-title small { display: block; max-width: 500px; padding-top: 23px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; letter-spacing: .07em; }
.zone-list { display: flex; flex-direction: column; justify-content: center; }
.zone-list span { padding: 16px 0; font-family: var(--serif); font-size: clamp(33px, 4vw, 53px); font-weight: 400; letter-spacing: .06em; color: var(--navy); transition: color .2s, padding .2s; }
.zone-list span:hover { color: #9b7533; padding-left: 10px; }
.zone-list i { width: 100%; height: 1px; background: var(--line); }

.process-section { background: #fff; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 75px; }
.process-grid article { padding: 0 35px 0 0; }
.process-number { display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; margin-bottom: 45px; border: 1px solid var(--gold); border-radius: 50%; color: #957638; font-family: var(--serif); }
.process-grid article:not(:last-child) .process-number::after { content: ""; position: absolute; left: 45px; width: calc((85vw - 140px)/4 - 45px); height: 1px; background: var(--line); }
.process-grid article { position: relative; }
.process-grid h3 { margin: 0 0 13px; font-family: var(--serif); font-size: 25px; font-weight: 400; color: var(--navy); }
.process-grid p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }

.yacht-section { display: grid; grid-template-columns: 45% 55%; min-height: 660px; background: var(--navy-deep); }
.yacht-content { align-self: center; padding: 90px 7vw; color: white; }
.yacht-content p:not(.eyebrow) { max-width: 580px; color: rgba(255,255,255,.65); font-family: var(--serif); font-size: 18px; line-height: 1.8; }
.text-link { display: inline-flex; align-items: center; gap: 25px; margin-top: 28px; padding-bottom: 7px; border-bottom: 1px solid currentColor; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.light-link { color: var(--gold-light); }
.yacht-image { min-height: 600px; background-size: cover; background-position: center; }

.pricing-section { display: grid; grid-template-columns: 1fr 1fr; gap: 10vw; align-items: center; background: var(--sand); }
.pricing-section > p { margin: 0; padding: 38px; border: 1px solid var(--line); color: #526169; font-family: var(--serif); font-size: 17px; line-height: 1.8; }

.contact-section { display: grid; grid-template-columns: 42% 58%; background: var(--navy); color: white; }
.contact-intro { padding: 110px 7vw; background: var(--navy-deep); }
.contact-intro > p:not(.eyebrow) { margin: 0 0 45px; color: rgba(255,255,255,.66); font-family: var(--serif); font-size: 17px; }
.contact-detail { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.13); }
.contact-detail span { color: var(--gold-light); font-size: 8px; }
.contact-detail p { margin: 0; font-size: 12px; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-content: center; padding: 95px 7vw; }
.contact-form label, .login-panel form > label, .booking-card label { display: flex; flex-direction: column; }
.contact-form label span, .login-panel label > span, .booking-card label > span { margin-bottom: 8px; color: rgba(255,255,255,.54); font-size: 8px; letter-spacing: .17em; text-transform: uppercase; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 9px 0; color: white; border: 0; border-bottom: 1px solid rgba(255,255,255,.28); border-radius: 0; background: transparent; outline: none; }
.contact-form select option { color: var(--ink); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--gold-light); }
.full-field { grid-column: 1 / -1; }
.contact-form .button { width: max-content; margin-top: 10px; }
.form-success { grid-column: 1/-1; color: var(--gold-light); font-size: 12px; }

.site-footer { padding: 65px 7.5vw 25px; color: white; background: #041520; }
.footer-top { display: grid; grid-template-columns: .8fr 1fr 1fr; gap: 60px; align-items: center; padding-bottom: 50px; border-bottom: 1px solid rgba(255,255,255,.12); }
.footer-top > p { max-width: 390px; color: rgba(255,255,255,.56); font-family: var(--serif); }
.footer-contact { justify-self: end; display: flex; flex-direction: column; align-items: flex-end; font-size: 11px; letter-spacing: .08em; }
.footer-bottom { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; padding-top: 24px; color: rgba(255,255,255,.4); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.footer-bottom > div { justify-self: center; display: flex; gap: 24px; }
.footer-bottom .footer-languages { justify-self: end; }

/* Residence collection */
.inner-page { min-height: 70vh; }
.inner-hero { padding: 95px 7.5vw 80px; color: white; background: var(--navy); text-align: center; }
.inner-hero h1 { max-width: 1000px; margin: 0 auto; font-family: var(--serif); font-size: clamp(46px, 6vw, 76px); font-weight: 400; line-height: 1.08; }
.inner-hero > p:last-child { max-width: 670px; margin: 28px auto 0; color: rgba(255,255,255,.65); font-family: var(--serif); font-size: 18px; }
.collection-section { background: var(--ivory); }
.filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-bottom: 58px; }
.filters button { padding: 11px 22px; border: 1px solid var(--line); background: transparent; color: var(--muted); cursor: pointer; font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.filters button.active { color: white; background: var(--navy); border-color: var(--navy); }
.residence-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 66px 35px; }
.residence-card:last-child { grid-column: 1 / -1; width: calc(50% - 18px); margin: auto; }
.residence-image { position: relative; display: block; aspect-ratio: 1.35; overflow: hidden; background: var(--sand); }
.residence-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.residence-image:hover img { transform: scale(1.035); }
.residence-tag { position: absolute; top: 18px; left: 18px; padding: 8px 12px; color: white; background: rgba(6,27,43,.78); backdrop-filter: blur(8px); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.residence-info { display: flex; justify-content: space-between; gap: 20px; padding: 25px 0 19px; border-bottom: 1px solid var(--line); }
.residence-title p { margin: 0 0 4px; color: #957638; font-size: 9px; letter-spacing: .17em; text-transform: uppercase; }
.residence-title h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 30px; font-weight: 400; }
.residence-price { text-align: right; }
.residence-price small { display: block; color: var(--muted); font-size: 8px; text-transform: uppercase; }
.residence-price strong { color: var(--navy); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.residence-price span { color: var(--muted); font-size: 10px; }
.residence-meta { display: flex; align-items: center; gap: 17px; padding-top: 14px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.residence-meta > span + span::before { content: "·"; margin-right: 17px; color: var(--gold); }
.residence-meta a { margin-left: auto; color: var(--navy); font-weight: 600; letter-spacing: .08em; }
.residence-stay-policy { margin-top: 15px; padding: 15px 17px; border-left: 2px solid var(--gold); background: #f2eee3; }
.policy-times { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.policy-times > span { display: flex; flex-direction: column; gap: 3px; color: var(--muted); font-size: 8px; letter-spacing: .04em; }
.policy-times b { color: var(--navy); font-family: var(--serif); font-size: 18px; font-weight: 400; }
.residence-stay-policy p { margin: 12px 0 0; padding-top: 10px; color: #69767b; border-top: 1px solid rgba(9,37,57,.1); font-size: 8px; line-height: 1.5; }
.residence-stay-policy button { padding: 0; color: #21704f; border: 0; background: none; cursor: pointer; font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.detail-stay-policy { margin: 0 0 7px; padding: 0 0 42px; border-bottom: 1px solid var(--line); }
.detail-stay-policy .residence-stay-policy { margin-top: 0; padding: 21px 24px; }
.detail-stay-policy .policy-times b { font-size: 22px; }
.detail-stay-policy .residence-stay-policy p { font-size: 10px; }
.direct-banner { padding: 100px 7.5vw; color: white; background: var(--navy); text-align: center; }
.direct-banner h2 { margin: 0; font-family: var(--serif); font-size: clamp(40px,5vw,65px); font-weight: 400; }
.direct-banner > p:not(.eyebrow) { max-width: 650px; margin: 20px auto 30px; color: rgba(255,255,255,.65); }

/* Residence detail */
.page-detail .site-header { color: white; }
.detail-hero { min-height: 660px; padding: 150px 7.5vw 62px; display: flex; align-items: flex-end; color: white; background-size: cover; background-position: center; }
.detail-hero h1 { margin: 4px 0 0; font-family: var(--serif); font-size: clamp(53px,7vw,86px); font-weight: 400; line-height: 1; }
.detail-hero p:last-child { margin: 15px 0 0; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; }
.back-link { display: block; margin-bottom: 60px; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 7vw; align-items: start; background: var(--ivory); }
.detail-heading { display: flex; justify-content: space-between; gap: 30px; padding-bottom: 37px; border-bottom: 1px solid var(--line); }
.detail-heading h2 { margin: 0; font-family: var(--serif); font-size: 45px; font-weight: 400; color: var(--navy); }
.detail-meta { display: flex; align-items: center; gap: 16px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.detail-meta span + span::before { content: "·"; margin-right: 16px; color: var(--gold); }
.detail-description, .included { padding: 42px 0; border-bottom: 1px solid var(--line); }
.detail-description h3, .included h3 { margin: 0 0 18px; font-family: var(--serif); font-size: 27px; font-weight: 400; color: var(--navy); }
.detail-description p { max-width: 740px; color: #586870; font-family: var(--serif); font-size: 18px; line-height: 1.8; }
.included > div { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.included span { color: #506068; font-size: 12px; }
.included i { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; margin-right: 11px; border: 1px solid var(--gold); border-radius: 50%; color: #957638; font-size: 9px; font-style: normal; }
.detail-gallery { display: grid; grid-template-columns: 1.35fr 1fr; gap: 15px; margin-top: 45px; }
.detail-gallery img { width: 100%; height: 330px; object-fit: cover; }
.booking-card { position: sticky; top: 35px; padding: 32px; background: white; border-top: 3px solid var(--gold); box-shadow: 0 20px 60px rgba(6,27,43,.10); }
.booking-price { margin: 0 0 5px; color: var(--navy); }
.booking-price strong { font-family: var(--serif); font-size: 33px; font-weight: 400; }
.booking-price span { color: var(--muted); font-size: 11px; }
.booking-card h3 { margin: 0 0 24px; color: var(--navy); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.booking-card form { display: flex; flex-direction: column; gap: 16px; }
.booking-card label > span { color: var(--muted); }
.booking-card input, .booking-card select { width: 100%; padding: 11px; color: var(--ink); border: 1px solid var(--line); background: var(--ivory); }
.date-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.booking-lines { margin: 10px 0; padding-top: 16px; border-top: 1px solid var(--line); }
.booking-lines p { display: flex; justify-content: space-between; margin: 7px 0; color: var(--muted); font-size: 11px; }
.booking-lines .booking-total { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--navy); font-size: 15px; }
.booking-card form > small { text-align: center; color: var(--muted); font-size: 9px; }
.booking-date-error { min-height: 14px; margin: -3px 0 7px; color: #a34f45; font-size: 8px; }
.booking-card button:disabled { cursor: not-allowed; opacity: .45; }
.booking-success { margin: 0; padding: 13px; color: #2a6147; background: #edf6f0; font-size: 10px; line-height: 1.5; }
.deposit-notice { margin-top: 34px; padding: 22px 24px; border-left: 2px solid var(--gold); background: #f2ecdf; }
.deposit-notice strong { color: var(--navy); font-family: var(--serif); font-size: 20px; font-weight: 400; }
.deposit-notice p { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }

/* Payment */
.page-payment .site-header { color: white; }
.page-deposit .site-header { color: white; }
.payment-page { min-height: 100vh; display: grid; grid-template-columns: 42% 58%; background: var(--ivory); }
.payment-intro { display: flex; flex-direction: column; justify-content: center; padding: 160px 7vw 100px; color: white; background: var(--navy-deep); }
.payment-intro h1 { margin: 0 0 25px; font-family: var(--serif); font-size: clamp(48px, 5.8vw, 78px); font-weight: 400; line-height: 1.04; }
.payment-intro > p:not(.eyebrow) { max-width: 560px; color: rgba(255,255,255,.66); font-family: var(--serif); font-size: 18px; }
.deposit-policy { max-width: 580px; margin-top: 32px; padding: 22px; border: 1px solid rgba(226,201,140,.38); }
.deposit-policy strong { color: var(--gold-light); font-family: var(--serif); font-size: 20px; font-weight: 400; }
.deposit-policy p { margin: 8px 0 0; color: rgba(255,255,255,.62); font-size: 11px; line-height: 1.7; }
.payment-panel { display: flex; align-items: center; justify-content: center; padding: 150px 7vw 90px; }
.payment-inner { width: 100%; max-width: 590px; }
.payment-summary { margin-bottom: 35px; padding: 28px; border-left: 2px solid var(--gold); background: var(--sand); }
.payment-summary .eyebrow { margin-bottom: 8px; }
.payment-summary h2 { margin: 0 0 20px; color: var(--navy); font-family: var(--serif); font-size: 29px; font-weight: 400; }
.payment-summary > div { display: flex; justify-content: space-between; gap: 20px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.payment-summary strong { color: var(--navy); font-family: var(--serif); font-size: 22px; font-weight: 400; }
.payment-panel form { display: flex; flex-direction: column; gap: 18px; }
.payment-panel label { display: flex; flex-direction: column; }
.payment-panel label span { margin-bottom: 7px; color: var(--muted); font-size: 8px; letter-spacing: .16em; text-transform: uppercase; }
.payment-panel input { width: 100%; padding: 14px; color: var(--ink); border: 1px solid var(--line); background: white; outline: none; }
.payment-panel input:focus { border-color: var(--gold); }
.payment-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.payment-panel form > small { color: var(--muted); text-align: center; font-size: 9px; }
.payment-success { margin: 0; padding: 14px; color: #2a6147; background: #e8f3ec; font-size: 11px; text-align: center; }

/* Owner login and dashboard */
.page-owner { background: #eef0ec; }
.owner-login-page { display: grid; grid-template-columns: 50% 50%; min-height: calc(100vh - 104px); }
.owner-login-image { display: flex; align-items: flex-end; padding: 8vw 7vw; color: white; background-size: cover; background-position: center; }
.owner-login-image h1 { margin: 0; font-family: var(--serif); font-size: clamp(55px,7vw,90px); font-weight: 400; letter-spacing: .18em; line-height: 1; }
.owner-login-image div > p:last-child { margin: 17px 0 0; font-family: var(--serif); font-size: 23px; font-style: italic; }
.login-panel { display: flex; align-items: center; padding: 70px 9vw; background: var(--ivory); }
.login-inner { width: 100%; max-width: 520px; }
.login-inner h2 { margin: 0 0 22px; font-family: var(--serif); font-size: clamp(37px,4vw,55px); font-weight: 400; line-height: 1.08; color: var(--navy); }
.login-inner > p:not(.eyebrow) { color: var(--muted); }
.login-panel form { display: flex; flex-direction: column; gap: 20px; margin-top: 36px; }
.login-panel label > span { color: var(--muted); }
.login-panel input[type="email"], .login-panel input[type="password"] { padding: 14px; border: 1px solid var(--line); background: #fff; }
.login-options { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 10px; }
.login-options label { display: flex; align-items: center; gap: 7px; }
.demo-box { margin-top: 30px; padding: 21px; border-left: 2px solid var(--gold); background: var(--sand); }
.demo-box .eyebrow { margin-bottom: 8px; }
.demo-box > p:not(.eyebrow) { margin: 0 0 10px; color: var(--muted); font-size: 11px; }
.demo-box button { padding: 0; border: 0; background: none; color: var(--navy); cursor: pointer; font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

.owner-dashboard { max-width: 1540px; margin: auto; padding: 55px 5vw 90px; background: #eef0ec; }
.dashboard-top { display: flex; justify-content: space-between; gap: 30px; margin-bottom: 40px; }
.dashboard-top h1 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 43px; font-weight: 400; }
.dashboard-top p:last-child { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.dashboard-actions { display: flex; align-items: center; gap: 12px; }
.dashboard-actions select, .dashboard-actions button { padding: 11px 14px; border: 1px solid var(--line); background: #fff; color: var(--navy); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-actions button { cursor: pointer; }
.kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.kpi-grid article { min-height: 145px; padding: 24px; background: white; border-top: 2px solid transparent; }
.kpi-grid article:first-child { border-color: var(--gold); }
.kpi-grid span { display: block; color: var(--muted); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.kpi-grid strong { display: block; margin: 12px 0 3px; color: var(--navy); font-family: var(--serif); font-size: 35px; font-weight: 400; }
.kpi-grid small { color: var(--muted); font-size: 9px; }
.kpi-grid .positive { color: #488263; }
.dashboard-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 16px; margin-top: 16px; }
.dashboard-grid > section { padding: 27px; background: white; }
.panel-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 28px; }
.panel-title h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.panel-title > strong { color: var(--navy); font-family: var(--serif); font-size: 25px; font-weight: 400; }
.panel-title > a { color: #8b6b30; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.bar-chart { height: 225px; display: grid; grid-template-columns: repeat(12,1fr); gap: 9px; align-items: end; padding-top: 20px; border-bottom: 1px solid var(--line); }
.bar-chart > div { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 7px; }
.bar-chart > div > span { width: 100%; max-width: 24px; background: #d9dedc; }
.bar-chart .highlight > span { background: var(--gold); }
.bar-chart small { color: var(--muted); font-size: 8px; }
.stay-row { display: grid; grid-template-columns: 48px 1fr auto; gap: 15px; align-items: center; padding: 14px 0; border-top: 1px solid var(--line); }
.stay-row[role="button"] { cursor: pointer; transition: background .2s ease, transform .2s ease; }
.stay-row[role="button"]:hover, .stay-row[role="button"]:focus { background: rgba(226,201,140,.12); transform: translateX(3px); outline: none; }
.date-box { padding: 5px; border: 1px solid var(--line); text-align: center; }
.date-box strong { display: block; color: var(--navy); font-family: var(--serif); font-size: 20px; font-weight: 400; line-height: 1; }
.date-box span { color: var(--muted); font-size: 7px; }
.stay-row h3, .operation-row h3, .documents-card h3 { margin: 0; color: var(--navy); font-size: 11px; font-weight: 500; }
.stay-row p, .operation-row p, .documents-card p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
.status { padding: 5px 7px; font-size: 7px; text-transform: uppercase; }
.confirmed { color: #356448; background: #eaf3ed; }
.direct { color: #846627; background: #f5efdf; }
.operation-row { display: grid; grid-template-columns: 34px 1fr auto; gap: 13px; align-items: center; padding: 17px 0; border-top: 1px solid var(--line); }
.op-icon { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; color: #8b6b30; background: var(--sand); border-radius: 50%; font-size: 10px; }
.operation-row > strong { color: var(--muted); font-size: 9px; font-weight: 500; }
.documents-card a { display: grid; grid-template-columns: 40px 1fr auto; gap: 13px; align-items: center; padding: 14px 0; border-top: 1px solid var(--line); }
.doc-icon { display: flex; align-items: center; justify-content: center; width: 37px; height: 42px; color: var(--navy); background: var(--sand); font-size: 7px; font-weight: 700; }
.documents-card a > span:last-child { color: #8b6b30; font-size: 8px; text-transform: uppercase; }

/* Administration */
.admin-login-page { min-height: calc(100vh - 104px); display: grid; grid-template-columns: 47% 53%; }
.admin-login-intro { display: flex; flex-direction: column; justify-content: center; padding: 90px 8vw; color: white; background: var(--navy-deep); }
.admin-login-intro > img { width: 105px; height: 112px; object-fit: contain; margin-bottom: 35px; }
.admin-login-intro h1 { margin: 0 0 25px; max-width: 650px; font-family: var(--serif); font-size: clamp(48px, 5vw, 72px); font-weight: 400; line-height: 1.05; }
.admin-login-intro > p:last-child { max-width: 530px; color: rgba(255,255,255,.62); font-family: var(--serif); font-size: 18px; }
.admin-dashboard { min-height: calc(100vh - 104px); display: grid; grid-template-columns: 240px minmax(0,1fr); background: #edf0ed; }
.admin-sidebar { display: flex; flex-direction: column; min-height: calc(100vh - 104px); padding: 30px 19px 24px; color: white; background: var(--navy-deep); }
.admin-sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 0 10px 28px; border-bottom: 1px solid rgba(255,255,255,.12); }
.admin-sidebar-brand img { width: 39px; height: 43px; object-fit: contain; }
.admin-sidebar-brand div { display: flex; flex-direction: column; }
.admin-sidebar-brand strong { font-family: var(--serif); font-size: 18px; letter-spacing: .14em; font-weight: 400; }
.admin-sidebar-brand span { margin-top: 4px; color: var(--gold-light); font-size: 7px; letter-spacing: .16em; text-transform: uppercase; }
.admin-sidebar nav { display: flex; flex-direction: column; gap: 4px; margin-top: 28px; }
.admin-sidebar nav button, .admin-logout { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 13px; color: rgba(255,255,255,.64); border: 0; background: none; cursor: pointer; text-align: left; font-size: 10px; letter-spacing: .06em; }
.admin-sidebar nav button span { width: 18px; color: var(--gold-light); text-align: center; }
.admin-sidebar nav button.active, .admin-sidebar nav button:hover { color: white; background: rgba(255,255,255,.08); }
.admin-logout { margin-top: auto; border-top: 1px solid rgba(255,255,255,.12); color: var(--gold-light); }
.admin-main { min-width: 0; padding: 45px 4vw 80px; }
.admin-top { display: flex; justify-content: space-between; gap: 30px; align-items: center; margin-bottom: 30px; }
.admin-top h1 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: clamp(34px,4vw,52px); font-weight: 400; line-height: 1.08; }
.admin-create { width: auto; white-space: nowrap; }
.admin-notice { display: grid; grid-template-columns: 28px 1fr auto; gap: 12px; align-items: center; margin-bottom: 18px; padding: 13px 17px; color: #2d6447; background: #e5f2e9; border: 1px solid #c7e1cf; font-size: 11px; }
.admin-notice p { margin: 0; }
.admin-notice button { border: 0; background: none; color: inherit; cursor: pointer; font-size: 18px; }
.admin-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.admin-kpis article { min-height: 135px; padding: 22px; background: white; border-top: 2px solid transparent; }
.admin-kpis article:first-child { border-color: var(--gold); }
.admin-kpis article > span { color: var(--muted); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.admin-kpis strong { display: block; margin: 11px 0 3px; color: var(--navy); font-family: var(--serif); font-size: 33px; font-weight: 400; }
.admin-kpis small { color: #4f7f63; font-size: 8px; }
.admin-clients { margin-top: 16px; padding: 28px; background: white; }
.admin-panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; margin-bottom: 24px; }
.admin-panel-heading h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 27px; font-weight: 400; }
.admin-panel-heading p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.admin-panel-heading button { padding: 9px 13px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); cursor: pointer; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.admin-panel-heading .panel-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.client-table { width: 100%; overflow-x: auto; }
.client-table-head, .client-row { min-width: 770px; display: grid; grid-template-columns: 1.55fr 1.1fr .55fr .8fr 40px; gap: 20px; align-items: center; }
.client-table-head { padding: 10px 12px; color: var(--muted); background: #f3f4f1; font-size: 7px; letter-spacing: .12em; text-transform: uppercase; }
.client-row { padding: 15px 12px; border-bottom: 1px solid var(--line); color: #4f5f67; font-size: 10px; }
.client-row > div:first-child { display: flex; align-items: center; gap: 11px; }
.client-row > div:first-child > div { display: flex; flex-direction: column; }
.client-row strong { color: var(--navy); font-size: 11px; font-weight: 500; }
.client-row small { color: var(--muted); font-size: 8px; }
.client-avatar { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: 0 0 auto; color: #8b6b30; background: var(--sand); border-radius: 50%; font-family: var(--serif); font-size: 12px; }
.client-status { width: max-content; padding: 5px 8px; font-size: 7px; text-transform: uppercase; }
.client-status.active { color: #2f6647; background: #e7f2ea; }
.client-status.invited { color: #8a672b; background: #f4eedf; }
.client-row > button { border: 0; background: none; color: var(--muted); cursor: pointer; letter-spacing: .08em; }
.admin-modal-backdrop { position: fixed; z-index: 100; inset: 0; display: flex; align-items: center; justify-content: center; padding: 22px; background: rgba(3,17,27,.7); backdrop-filter: blur(4px); }
.admin-modal { position: relative; width: min(720px,100%); max-height: 92vh; overflow-y: auto; padding: 42px; background: var(--ivory); box-shadow: 0 30px 100px rgba(0,0,0,.3); }
.modal-close { position: absolute; top: 18px; right: 20px; border: 0; background: none; color: var(--navy); cursor: pointer; font-size: 25px; }
.admin-modal h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 38px; font-weight: 400; }
.admin-modal > p:not(.eyebrow) { margin: 8px 0 28px; color: var(--muted); font-size: 11px; }
.admin-modal form { display: grid; grid-template-columns: 1fr 1fr; gap: 19px; }
.admin-modal label { display: flex; flex-direction: column; }
.admin-modal label > span { margin-bottom: 7px; color: var(--muted); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.admin-modal input, .admin-modal select { width: 100%; padding: 12px; color: var(--ink); border: 1px solid var(--line); background: white; }
.admin-modal .full-field { grid-column: 1/-1; }
.modal-actions { grid-column: 1/-1; display: flex; justify-content: flex-end; gap: 10px; margin-top: 10px; }
.modal-actions > button:first-child { padding: 0 20px; color: var(--muted); border: 1px solid var(--line); background: transparent; cursor: pointer; font-size: 9px; text-transform: uppercase; }
.modal-actions .button { width: auto; }
.admin-dynamic-panel { margin-top: 16px; padding: 28px; background: white; }
.admin-property-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 17px; }
.admin-property-card { overflow: hidden; border: 1px solid var(--line); background: var(--ivory); }
.admin-property-card > img { width: 100%; height: 170px; object-fit: cover; }
.admin-property-card > div { padding: 17px; }
.admin-property-card > div > span { color: #3d7755; font-size: 7px; letter-spacing: .12em; text-transform: uppercase; }
.admin-property-card h3 { margin: 5px 0 3px; color: var(--navy); font-family: var(--serif); font-size: 21px; font-weight: 400; }
.admin-property-card p { margin: 0 0 15px; color: var(--muted); font-size: 9px; }
.admin-property-card button { margin: 4px 6px 0 0; padding: 8px 10px; color: var(--navy); border: 1px solid var(--line); background: white; cursor: pointer; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.admin-property-card button:hover { border-color: var(--gold); }
.admin-simple-list { border-top: 1px solid var(--line); }
.admin-simple-list > div, .admin-simple-list > button { display: grid; width: 100%; grid-template-columns: .65fr 1.4fr .6fr; gap: 20px; align-items: center; padding: 18px 5px; border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; }
.admin-simple-list > div:hover, .admin-simple-list > button:hover, .admin-simple-list > button:focus { background: var(--ivory); outline: none; }
.admin-simple-list strong { color: var(--navy); font-size: 10px; font-weight: 500; }
.admin-simple-list span { color: var(--muted); font-size: 10px; }
.admin-simple-list em { justify-self: end; width: max-content; padding: 5px 8px; color: #846627; background: #f5efdf; font-size: 7px; font-style: normal; text-transform: uppercase; }
.booking-calendar-workspace { min-width: 0; margin-top: 16px; }
.today-workspace { display: grid; gap: 17px; min-width: 0; margin-top: 16px; }
.today-hero { display: flex; justify-content: space-between; align-items: center; gap: 35px; padding: 34px; color: white; background: linear-gradient(120deg,#092539,#174552); }
.today-hero .eyebrow { margin-top: 11px; color: var(--gold); }
.today-hero h2 { margin: 4px 0 7px; font-family: var(--serif); font-size: 38px; font-weight: 400; }
.today-hero p:not(.eyebrow) { max-width: 650px; margin: 0; color: rgba(255,255,255,.72); font-size: 11px; line-height: 1.55; }
.today-hero > time { flex: 0 0 auto; max-width: 220px; color: #e8d7aa; font-family: var(--serif); font-size: 21px; line-height: 1.25; text-align: right; text-transform: capitalize; }
.today-demo-badge { display: inline-flex; padding: 6px 9px; color: #fff4d4; border: 1px solid rgba(226,201,140,.38); background: rgba(226,201,140,.1); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.today-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--line); }
.today-kpis > button { display: grid; min-height: 112px; padding: 19px; color: var(--navy); border: 0; background: white; cursor: pointer; grid-template-columns: 38px 1fr; gap: 12px; align-items: center; text-align: left; }
.today-kpis > button:hover { background: #fbfaf6; }.today-kpis > button.warning { box-shadow: inset 0 3px #b66f46; }
.today-kpis > button > span { display: grid; place-items: center; width: 36px; height: 36px; color: #806123; border-radius: 50%; background: #f5eedc; font-size: 15px; }
.today-kpis small,.today-kpis strong { display: block; }.today-kpis small { min-height: 25px; color: var(--muted); font-size: 9px; line-height: 1.35; text-transform: uppercase; }.today-kpis strong { margin-top: 4px; font-family: var(--serif); font-size: 29px; font-weight: 400; }
.today-main-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); gap: 17px; align-items: start; }
.today-priorities,.today-agenda,.today-upcoming { padding: 26px; background: white; }
.today-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 18px; }
.today-section-heading h3 { margin: 4px 0 0; color: var(--navy); font-family: var(--serif); font-size: 27px; font-weight: 400; }
.today-section-heading > strong { display: grid; place-items: center; width: 32px; height: 32px; color: white; border-radius: 50%; background: #a56546; font-size: 11px; }
.today-section-heading > button { padding: 8px 10px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); cursor: pointer; font-size: 8px; text-transform: uppercase; }
.today-priority-list { display: grid; gap: 8px; }
.today-priority-list article { display: grid; padding: 14px; border: 1px solid var(--line); border-left: 3px solid #c89b3c; background: var(--ivory); grid-template-columns: 34px minmax(0,1fr) auto; gap: 12px; align-items: center; }
.today-priority-list article.maintenance { border-left-color: #a85547; }.today-priority-list article.cleaning { border-left-color: #4f8066; }.today-priority-list article.stock { border-left-color: #806b9a; }
.today-priority-list article > span { display: grid; place-items: center; width: 32px; height: 32px; color: var(--navy); border-radius: 50%; background: white; font-size: 13px; }
.today-priority-list h4 { margin: 0; color: var(--navy); font-size: 11px; }.today-priority-list p { margin: 4px 0; color: #576d70; font-size: 9px; }.today-priority-list small { color: var(--muted); font-size: 8px; }
.today-priority-list button { padding: 8px 9px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.today-empty { display: grid; gap: 5px; padding: 25px; color: #3d7359; border: 1px dashed #bad1c2; background: #eef6f1; text-align: center; }.today-empty strong { font-size: 11px; }.today-empty span { font-size: 9px; }
.today-timeline { display: grid; }
.today-timeline article { display: grid; min-height: 72px; padding: 13px 0; border-bottom: 1px solid var(--line); grid-template-columns: 48px 12px minmax(0,1fr); gap: 10px; align-items: start; }
.today-timeline time { color: var(--navy); font-size: 10px; }.today-timeline article > span { width: 9px; height: 9px; margin-top: 2px; border: 2px solid white; border-radius: 50%; background: #9a7738; box-shadow: 0 0 0 1px #9a7738; }.today-timeline article > span.maintenance { background: #a85547; box-shadow: 0 0 0 1px #a85547; }.today-timeline article > span.arrival { background: #4f8066; box-shadow: 0 0 0 1px #4f8066; }
.today-timeline strong,.today-timeline small { display: block; }.today-timeline strong { color: var(--navy); font-size: 10px; line-height: 1.35; }.today-timeline small { margin-top: 5px; color: var(--muted); font-size: 8px; }
.today-upcoming-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.today-upcoming-grid > button { display: grid; min-width: 0; padding: 15px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); cursor: pointer; grid-template-columns: auto minmax(0,1fr) 28px; gap: 13px; align-items: center; text-align: left; }
.today-upcoming-grid time { padding-right: 13px; border-right: 1px solid var(--line); }.today-upcoming-grid time strong,.today-upcoming-grid time small,.today-upcoming-grid > button > span strong,.today-upcoming-grid > button > span small { display: block; }.today-upcoming-grid time strong { font-size: 10px; text-transform: capitalize; }.today-upcoming-grid time small { margin-top: 4px; color: var(--muted); font-size: 7px; }.today-upcoming-grid > button > span strong { font-size: 10px; }.today-upcoming-grid > button > span small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.35; }.today-upcoming-grid em { display: grid; place-items: center; width: 27px; height: 27px; color: #376d52; border-radius: 50%; background: #e5f0e9; font-style: normal; }.today-upcoming-grid em.departure { color: #8b5b2e; background: #f7ead9; }
.calendar-toolbar { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; padding: 30px; background: white; }
.calendar-toolbar h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 34px; font-weight: 400; }
.calendar-toolbar p:not(.eyebrow) { max-width: 610px; margin: 6px 0 0; color: var(--muted); font-size: 10px; }
.calendar-controls { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: flex-end; gap: 9px; }
.calendar-controls label { display: grid; gap: 5px; }
.calendar-controls label > span { color: var(--muted); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.calendar-controls select, .calendar-controls button { min-height: 38px; padding: 8px 11px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); cursor: pointer; font-size: 9px; }
.calendar-month-nav { display: grid; grid-template-columns: 38px minmax(150px,1fr) 38px; align-items: center; border: 1px solid var(--line); background: white; }
.calendar-month-nav button { min-height: 38px; border: 0; background: white; font-size: 16px; }
.calendar-month-nav strong { padding: 0 12px; color: var(--navy); font-family: var(--serif); font-size: 16px; font-weight: 400; text-align: center; text-transform: capitalize; }
.calendar-today { border-color: var(--gold) !important; background: #faf6eb !important; }
.calendar-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 1px; background: var(--line); }
.calendar-summary article { padding: 18px 22px; background: white; }
.calendar-summary span { display: block; color: var(--muted); font-size: 7px; letter-spacing: .09em; text-transform: uppercase; }
.calendar-summary strong { display: block; margin-top: 6px; color: var(--navy); font-family: var(--serif); font-size: 28px; font-weight: 400; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 18px; padding: 13px 18px; background: #f8f9f7; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.calendar-legend span { font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.calendar-legend .arrival { color: #2e7658; }.calendar-legend .stay { color: #75602b; }.calendar-legend .departure { color: #3e6580; }.calendar-legend .cleaning { color: #9a5f4c; }
.calendar-shell { width: 100%; min-width: 0; overflow-x: auto; background: white; overscroll-behavior-inline: contain; }
.calendar-weekdays, .calendar-grid { min-width: 840px; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.calendar-weekdays { color: var(--muted); border-bottom: 1px solid var(--line); background: #f4f5f2; }
.calendar-weekdays span { padding: 9px 11px; font-size: 7px; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.calendar-day { min-width: 0; min-height: 125px; padding: 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.outside { background: #f8f8f5; opacity: .58; }
.calendar-day > time { display: grid; place-items: center; width: 24px; height: 24px; margin-bottom: 5px; color: var(--muted); font-size: 8px; }
.calendar-day.today > time { color: white; border-radius: 50%; background: var(--navy); }
.calendar-day-events { display: grid; gap: 4px; }
.calendar-event, .calendar-cleaning { width: 100%; min-width: 0; padding: 5px 6px; overflow: hidden; border: 0; border-left: 3px solid; background: #f5f2e8; cursor: pointer; text-align: left; }
.calendar-event span { display: block; opacity: .7; font-size: 6px; letter-spacing: .05em; text-transform: uppercase; }
.calendar-event strong { display: block; overflow: hidden; color: inherit; font-size: 7px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event.arrival { color: #2d654b; border-color: #4d8265; background: #e7f1ea; }
.calendar-event.stay { color: #705b29; border-color: #b39048; background: #f6f0df; }
.calendar-event.departure { color: #365b72; border-color: #5f8298; background: #e9f0f4; }
.calendar-cleaning { color: #8a4e3d; border-color: #b96e59; background: #faece7; font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-upcoming { margin-top: 17px; padding: 27px; background: white; }
.calendar-empty { margin: 0; padding: 30px; color: var(--muted); text-align: center; }
.calendar-booking-detail { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin: 24px 0; }
.calendar-booking-detail > div { display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--line); background: white; }
.calendar-booking-detail span { color: var(--muted); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.calendar-booking-detail strong { margin-top: 5px; color: var(--navy); font-family: var(--serif); font-size: 18px; font-weight: 400; }
.calendar-booking-detail small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.admin-settings-grid { display: grid; gap: 12px; }
.admin-settings-grid label { display: flex; justify-content: space-between; align-items: center; padding: 16px; color: var(--navy); border: 1px solid var(--line); font-size: 10px; }
.admin-settings-grid input { width: 18px; height: 18px; accent-color: var(--gold); }
.admin-settings-grid .button { width: max-content; margin-top: 10px; }
.admin-editor-copy { color: var(--muted); font-size: 11px; }
.admin-editor-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 24px; }
.admin-editor-fields label { display: flex; flex-direction: column; }
.admin-editor-fields label > span { margin-bottom: 7px; color: var(--muted); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.admin-editor-fields input, .admin-editor-fields select, .admin-editor-fields textarea { width: 100%; padding: 12px; color: var(--ink); border: 1px solid var(--line); background: white; }
.admin-editor-fields .wide { grid-column: 1/-1; }
.photo-dropzone { grid-column: 1/-1; padding: 35px 20px; border: 1px dashed var(--gold); background: #faf7ef; color: var(--muted); text-align: center; }
.photo-dropzone input { margin-top: 12px; border: 0; background: transparent; }
.property-admin-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 22px; }
.property-admin-summary span { display: flex; align-items: baseline; gap: 10px; padding: 14px 16px; color: var(--muted); border: 1px solid var(--line); background: var(--ivory); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.property-admin-summary strong { color: var(--navy); font-family: var(--serif); font-size: 26px; font-weight: 400; }
.admin-property-visual { position: relative; }
.admin-property-visual > img { display: block; width: 100%; height: 170px; object-fit: cover; }
.property-gallery-count { position: absolute; right: 10px; bottom: 10px; padding: 6px 8px; color: white; background: rgba(5,25,40,.8); font-size: 8px; }
.property-state.draft { color: #846627 !important; }
.property-card-facts { display: flex; flex-wrap: wrap; gap: 6px; margin: -5px 0 11px; }
.property-card-facts small { padding: 4px 6px; color: var(--muted); background: white; font-size: 7px; }
.admin-editor-modal { width: min(980px,100%); }
.editor-section-title { margin: 8px 0 -4px; padding: 13px 0 7px; color: var(--navy); border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 19px; font-weight: 400; }
.pricing-checkbox { flex-direction: row !important; justify-content: space-between; align-items: center; padding: 12px; border: 1px solid var(--line); background: white; }
.pricing-checkbox > span { margin: 0 !important; }
.pricing-checkbox input { width: 19px; height: 19px; accent-color: var(--gold); }
.property-photo-manager { margin-top: 8px; padding: 20px; border: 1px solid var(--line); background: white; }
.photo-manager-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.photo-manager-heading h3 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 23px; font-weight: 400; }
.photo-manager-heading p { max-width: 550px; margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.photo-upload-button { display: inline-flex !important; align-items: center; justify-content: center; min-height: 38px; padding: 0 13px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.photo-upload-button input { display: none; }
.property-gallery-editor { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 18px; }
.property-gallery-editor article { position: relative; overflow: hidden; border: 1px solid var(--line); background: var(--ivory); }
.property-gallery-editor img { display: block; width: 100%; height: 135px; object-fit: cover; }
.property-gallery-editor article > span { position: absolute; top: 7px; left: 7px; padding: 4px 6px; color: white; background: rgba(5,25,40,.82); font-size: 6px; letter-spacing: .08em; text-transform: uppercase; }
.property-gallery-editor article > div { display: flex; flex-wrap: wrap; gap: 4px; padding: 7px; }
.property-gallery-editor button { padding: 5px 6px; color: var(--navy); border: 1px solid var(--line); background: white; cursor: pointer; font-size: 6px; text-transform: uppercase; }
.property-gallery-editor button.danger { color: #8f3939; }
.pending-photo-preview { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.pending-photo-preview img { width: 75px; height: 60px; object-fit: cover; border: 2px solid var(--gold); }
.pending-photo-preview p { margin: 0; color: var(--navy); font-size: 8px; }
.property-photo-manager > small { display: block; margin-top: 12px; color: var(--muted); font-size: 7px; }
.property-modal-actions { align-items: center; }
.delete-property-button { margin-right: auto; color: #8f3939 !important; border-color: rgba(143,57,57,.3) !important; }
.empty-properties { grid-column: 1/-1; padding: 70px 20px; border: 1px solid var(--line); text-align: center; }
.empty-properties h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 34px; font-weight: 400; }
.empty-properties p { color: var(--muted); }

.pricing-workspace { margin-top: 16px; }
.pricing-hero { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 34px; color: white; background: linear-gradient(120deg,#092539,#123c4e); }
.pricing-hero .eyebrow { color: var(--gold); }
.demo-data-badge { display: inline-block; margin-bottom: 12px; padding: 5px 8px; color: #f2d891; border: 1px solid rgba(226,201,140,.45); background: rgba(226,201,140,.08); font-size: 6px; letter-spacing: .12em; text-transform: uppercase; }
.pricing-hero h2 { margin: 3px 0 7px; font-family: var(--serif); font-size: 36px; font-weight: 400; }
.pricing-hero p:not(.eyebrow) { max-width: 650px; margin: 0; color: rgba(255,255,255,.7); font-size: 10px; }
.pricing-hero .button { flex: 0 0 auto; }
.pricing-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 1px; background: var(--line); }
.pricing-summary article { padding: 20px; background: white; }
.pricing-summary span { display: block; color: var(--muted); font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }
.pricing-summary strong { display: block; margin: 7px 0 3px; color: var(--navy); font-family: var(--serif); font-size: 27px; font-weight: 400; }
.pricing-summary .analysis-date { font-family: var(--sans); font-size: 17px; }
.pricing-summary small { color: #57726f; font-size: 7px; }
.pricing-map-layout { display: grid; grid-template-columns: minmax(0,1.75fr) minmax(260px,.65fr); min-height: 535px; margin-top: 17px; background: white; }
.pricing-map { position: relative; min-height: 535px; overflow: hidden; background-color: #bcdfe2; background-image: linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px); background-size: 32px 32px; }
.leaflet-map-canvas { position: absolute; inset: 0; width: 100%; height: 100%; background: #c8e4e6; }
.fallback-pricing-map { overflow: hidden; background: linear-gradient(160deg,#e7e2cf 0 48%,#b9dfe3 48.3% 100%); }
.fallback-pricing-map .fallback-coast { position: absolute; inset: 0; background: linear-gradient(150deg,rgba(255,255,255,.35),transparent 55%); clip-path: polygon(0 0,100% 0,100% 34%,86% 36%,73% 43%,61% 42%,50% 51%,37% 50%,25% 61%,12% 58%,0 69%); border-bottom: 2px solid rgba(9,37,57,.12); }
.fallback-map-title { position: absolute; z-index: 2; right: 4%; bottom: 7%; color: rgba(9,37,57,.38); font-family: var(--serif); font-size: 13px; letter-spacing: .12em; }
.fallback-pricing-map .map-marker { z-index: 5; }
.leaflet-map-canvas .leaflet-tile-pane { filter: saturate(.72) contrast(.95) brightness(1.04); }
.leaflet-map-canvas .leaflet-control-zoom a { color: var(--navy); border: 0; }
.leaflet-map-canvas .leaflet-control-attribution { color: #53666c; background: rgba(255,255,255,.86); font-size: 8px; }
.leaflet-price-div-icon { border: 0 !important; background: transparent !important; transition: opacity .18s ease; }
.leaflet-price-div-icon.decluttered { opacity: 1 !important; }
.leaflet-price-div-icon .map-marker { position: relative; left: auto !important; top: auto !important; width: 72px; height: 32px; transform: translate(var(--marker-shift-x,0),var(--marker-shift-y,0)); transition: transform .2s ease; }
.leaflet-price-div-icon .map-marker > span { min-width: 52px; }
.map-loading-note { position: absolute; z-index: 1001; top: 16px; left: 50%; display: flex; flex-direction: column; gap: 3px; transform: translateX(-50%); min-width: 280px; padding: 9px 13px; color: var(--navy); background: rgba(255,255,255,.94); box-shadow: 0 5px 18px rgba(9,37,57,.15); text-align: center; transition: opacity .35s ease; pointer-events: none; }
.map-loading-note strong { font-size: 8px; letter-spacing: .12em; }.map-loading-note span { color: var(--muted); font-size: 7px; }.map-loading-note.loaded { opacity: 0; }
.map-coast { position: absolute; inset: 0; background: linear-gradient(135deg,#ede8d8,#d6d1bd); clip-path: polygon(0 0,100% 0,100% 31%,91% 30%,84% 37%,76% 33%,67% 43%,57% 39%,48% 50%,39% 46%,30% 57%,20% 53%,10% 66%,0 61%); box-shadow: 0 8px 25px rgba(9,37,57,.2); }
.map-sea-label { display: none; position: absolute; z-index: 1; right: 12%; bottom: 16%; color: rgba(9,37,57,.35); font-family: var(--serif); font-size: 16px; letter-spacing: .22em; }
.map-city { display: none; position: absolute; z-index: 2; color: rgba(9,37,57,.52); font-size: 7px; font-weight: 700; letter-spacing: .14em; }
.map-city.cannes { left: 9%; top: 58%; }.map-city.antibes { left: 28%; top: 49%; }.map-city.nice { left: 58%; top: 39%; }.map-city.monaco { left: 88%; top: 28%; }
.map-marker { position: absolute; z-index: 5; display: flex; flex-direction: column; align-items: center; transform: translate(-50%,-50%); padding: 0; border: 0; background: none; cursor: pointer; }
.map-marker > span { min-width: 47px; padding: 6px 8px; color: white; border-radius: 14px; background: #8e6f2b; box-shadow: 0 5px 14px rgba(9,37,57,.25); font-size: 8px; font-weight: 600; text-align: center; }
.map-marker.market > span { color: var(--navy); border: 1px solid rgba(9,37,57,.22); background: white; }
.map-marker > small { display: none; position: absolute; top: 31px; width: max-content; max-width: 150px; padding: 5px 7px; color: white; background: var(--navy); font-size: 7px; }
.map-marker:hover,.map-marker.selected { z-index: 9; }
.map-marker:hover > small,.map-marker.selected > small { display: block; }
.map-marker.selected > span { outline: 3px solid rgba(226,201,140,.55); transform: scale(1.1); }
.map-legend { position: absolute; z-index: 1000; left: 15px; bottom: 15px; display: flex; gap: 13px; padding: 9px 11px; background: rgba(255,255,255,.92); box-shadow: 0 4px 14px rgba(9,37,57,.12); }
.map-legend span { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 7px; text-transform: uppercase; }
.map-legend small { max-width: 190px; color: var(--muted); font-size: 7px; line-height: 1.35; }
.map-legend i { width: 9px; height: 9px; border-radius: 50%; background: #8e6f2b; }.map-legend i.market { border: 1px solid var(--navy); background: white; }
.pricing-inspector { padding: 28px; border-left: 1px solid var(--line); background: white; }
.inspector-type { display: inline-block; padding: 5px 7px; font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }
.inspector-type.own { color: #70571f; background: #f6efd9; }.inspector-type.market { color: #496269; background: #e8f0f1; }
.pricing-inspector h3 { margin: 14px 0 4px; color: var(--navy); font-family: var(--serif); font-size: 28px; font-weight: 400; }
.pricing-inspector > p { margin: 0; color: var(--muted); font-size: 9px; }
.inspector-price { margin: 24px 0 14px; padding: 18px; background: var(--ivory); }
.inspector-price span { display: block; color: var(--muted); font-size: 7px; text-transform: uppercase; }
.inspector-price strong { display: block; margin-top: 4px; color: var(--navy); font-family: var(--serif); font-size: 32px; font-weight: 400; }
.pricing-inspector dl { margin: 0 0 20px; }
.pricing-inspector dl > div { display: flex; justify-content: space-between; gap: 15px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.pricing-inspector dt { color: var(--muted); font-size: 8px; }.pricing-inspector dd { margin: 0; color: var(--navy); font-size: 9px; font-weight: 600; }
.pricing-inspector .button { width: 100%; }.inspector-edit { width: 100%; margin-top: 8px; padding: 10px; color: var(--navy); border: 1px solid var(--line); background: transparent; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.pricing-inspector > small { display: block; color: var(--muted); font-size: 7px; line-height: 1.6; }
.pricing-table-card { margin-top: 17px; padding: 28px; background: white; }
.pricing-table { overflow-x: auto; }
.pricing-table-head,.pricing-row { display: grid; grid-template-columns: 1.35fr .62fr .72fr .72fr 1.15fr .5fr .5fr .58fr; min-width: 1040px; gap: 12px; align-items: center; }
.pricing-table-head { padding: 0 10px 10px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: 7px; letter-spacing: .06em; text-transform: uppercase; }
.pricing-row { padding: 14px 10px; border-bottom: 1px solid var(--line); color: var(--navy); font-size: 9px; }
.pricing-row > div:first-child strong,.pricing-row > div:first-child small { display: block; }.pricing-row > div:first-child small { margin-top: 3px; color: var(--muted); font-size: 7px; }
.pricing-row .recommendation strong,.pricing-row .recommendation small { display: block; }.pricing-row .recommendation small { margin-top: 2px; font-size: 7px; }.pricing-row .recommendation.up small { color: #347052; }.pricing-row .recommendation.down small { color: #986349; }
.pricing-limit-cell { display: grid; gap: 3px; }
.pricing-limit-cell small { color: var(--muted); font-size: 7px; line-height: 1.3; }
.pricing-limit-cell button { width: max-content; margin-top: 4px; padding: 5px 7px; color: var(--navy); border: 1px solid var(--line); background: white; cursor: pointer; font-size: 7px; text-transform: uppercase; }
.pricing-limits-form label small { margin-top: 5px; color: var(--muted); font-size: 8px; }
.pricing-limit-error { min-height: 18px; margin: 0; color: #9a4545; font-size: 10px; }
.pricing-row > button { padding: 7px 8px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 7px; text-transform: uppercase; }
.mini-switch { position: relative; display: block; width: 34px; height: 19px; }
.mini-switch input { position: absolute; opacity: 0; }.mini-switch i { position: absolute; inset: 0; border-radius: 12px; background: #cbd1d2; cursor: pointer; transition: .2s; }.mini-switch i:after { content:""; position:absolute; top:3px; left:3px; width:13px; height:13px; border-radius:50%; background:white; transition:.2s; }.mini-switch input:checked+i { background:#8e6f2b; }.mini-switch input:checked+i:after { transform:translateX(15px); }
.algorithm-explainer { display: grid; grid-template-columns: .8fr 1.4fr; gap: 45px; margin-top: 17px; padding: 30px; color: white; background: var(--navy); }
.algorithm-explainer .eyebrow { color: var(--gold); }.algorithm-explainer h2 { margin: 4px 0 0; font-family: var(--serif); font-size: 29px; font-weight: 400; }.algorithm-explainer ol { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 25px; margin: 0; padding-left: 18px; color: rgba(255,255,255,.72); font-size: 9px; line-height: 1.6; }

.stock-workspace { display: grid; gap: 17px; margin-top: 16px; }
.stock-hero { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 34px; color: white; background: linear-gradient(120deg,#092539,#174552); }
.stock-hero .eyebrow { color: var(--gold); }
.stock-hero h2 { margin: 3px 0 7px; font-family: var(--serif); font-size: 38px; font-weight: 400; }
.stock-hero p:not(.eyebrow) { max-width: 650px; margin: 0; color: rgba(255,255,255,.72); font-size: 11px; line-height: 1.55; }
.stock-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); }
.stock-kpis article { padding: 20px; background: white; }
.stock-kpis article.warning { box-shadow: inset 3px 0 #b66f46; }
.stock-kpis span { display: block; color: var(--muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.stock-kpis strong { display: block; margin: 7px 0 3px; color: var(--navy); font-family: var(--serif); font-size: 27px; font-weight: 400; }
.stock-kpis small { color: #57726f; font-size: 9px; line-height: 1.35; }
.stock-laundry-panel { display: grid; gap: 18px; padding: 28px; border-top: 3px solid var(--gold); background: white; box-shadow: 0 8px 28px rgba(9,37,57,.05); }
.stock-laundry-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 28px; }
.stock-laundry-heading h3 { margin: 4px 0 7px; color: var(--navy); font-family: var(--serif); font-size: 29px; font-weight: 400; }
.stock-laundry-heading p:not(.eyebrow) { max-width: 720px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.stock-laundry-heading > strong { flex: 0 0 auto; padding: 9px 12px; color: #825f1f; border: 1px solid #e8d8b1; border-radius: 18px; background: #fbf5e8; font-size: 9px; font-weight: 600; text-transform: uppercase; }
.stock-laundry-batches { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.stock-laundry-batch { display: flex; min-width: 0; padding: 20px; border: 1px solid var(--line); background: var(--ivory); flex-direction: column; }
.stock-laundry-batch.pending { box-shadow: inset 3px 0 #c89b3c; }
.stock-laundry-batch-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.stock-laundry-batch-top > span { padding: 5px 8px; color: #765815; border-radius: 12px; background: #fff0c9; font-size: 8px; text-transform: uppercase; }
.stock-laundry-batch-top small { color: var(--muted); font-size: 8px; }
.stock-laundry-batch h4 { margin: 15px 0 5px; color: var(--navy); font-family: var(--serif); font-size: 23px; font-weight: 400; }
.stock-laundry-batch > p { margin: 0 0 13px; color: var(--muted); font-size: 9px; }
.stock-laundry-batch > p b { color: var(--navy); font-size: 13px; }
.stock-laundry-line-chips { display: flex; align-content: flex-start; gap: 6px; margin-bottom: 17px; flex: 1; flex-wrap: wrap; }
.stock-laundry-line-chips > span { padding: 6px 8px; color: #3e575d; border: 1px solid #dfe4df; border-radius: 3px; background: white; font-size: 8px; }
.stock-laundry-line-chips small { margin-left: 3px; color: var(--muted); font-size: 7px; }
.stock-laundry-batch > button { width: 100%; min-height: 39px; color: white; border: 0; background: var(--navy); cursor: pointer; font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.stock-laundry-empty { grid-column: 1/-1; padding: 22px; color: #3d7359; border: 1px dashed #bad1c2; background: #eef6f1; font-size: 10px; text-align: center; }
.stock-laundry-history { display: grid; gap: 0; padding-top: 4px; }
.stock-laundry-history > .eyebrow { margin-bottom: 6px; }
.stock-laundry-history article { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 18px; padding: 11px 0; border-top: 1px solid var(--line); }
.stock-laundry-history strong,.stock-laundry-history small { display: block; }
.stock-laundry-history strong { color: var(--navy); font-size: 10px; }
.stock-laundry-history small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.stock-laundry-history > article > span { font-size: 9px; }
.stock-laundry-history .good { color: #397253; }.stock-laundry-history .loss { color: #9a4f45; }
.laundry-inspection-form { display: grid; gap: 16px; margin-top: 22px; }
.laundry-inspection-head,.laundry-inspection-row { display: grid; grid-template-columns: minmax(170px,1.5fr) .55fr .7fr .7fr; gap: 12px; align-items: center; }
.laundry-inspection-head { padding: 0 10px 9px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: 8px; text-transform: uppercase; }
.laundry-inspection-head > span:not(:first-child) { text-align: center; }
.laundry-inspection-list { display: grid; gap: 7px; }
.laundry-inspection-row { padding: 10px; border: 1px solid var(--line); background: var(--ivory); }
.laundry-inspection-row > span strong,.laundry-inspection-row > span small { display: block; }
.laundry-inspection-row > span strong { color: var(--navy); font-size: 10px; }
.laundry-inspection-row > span small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.laundry-inspection-row > b { color: var(--navy); font-family: var(--serif); font-size: 20px; font-weight: 400; text-align: center; }
.laundry-inspection-row > b small { display: none; color: var(--muted); font-family: var(--sans); font-size: 7px; font-weight: 400; text-transform: uppercase; }
.laundry-inspection-row input { width: 100%; min-width: 66px; padding: 10px; color: #2d654c; border: 1px solid #a9c7b5; background: white; text-align: center; }
.laundry-inspection-row > em { padding: 10px; color: #91493f; border: 1px solid #e5c1ba; background: #fff4f1; font-size: 11px; font-style: normal; text-align: center; }
.laundry-inspection-note { margin: 0; padding: 12px; color: #576e70; border-left: 3px solid var(--gold); background: #faf6eb; font-size: 9px; line-height: 1.5; }
.stock-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 17px; align-items: start; }
.stock-card-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 17px; align-items: start; }
.stock-card-catalog { display: grid; gap: 17px; min-width: 0; }
.stock-card-category { padding: 26px; background: white; }
.stock-item-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.stock-item-card { position: relative; display: flex; min-width: 0; min-height: 238px; padding: 19px; border: 1px solid var(--line); background: var(--ivory); flex-direction: column; box-shadow: 0 4px 15px rgba(9,37,57,.025); }
.stock-item-card::before { content:""; position: absolute; inset: 0 auto 0 0; width: 3px; background: #6b947d; }
.stock-item-card.low::before { background: #c9894f; }.stock-item-card.out::before { background: #a84f4f; }
.stock-item-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; min-height: 49px; }
.stock-item-card-head > div { min-width: 0; }
.stock-item-card-head strong,.stock-item-card-head small { display: block; }
.stock-item-card-head strong { color: var(--navy); font-family: var(--serif); font-size: 20px; font-weight: 400; }
.stock-item-card-head small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.stock-item-card-head .stock-state { flex: 0 0 auto; }
.stock-item-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin: 15px 0; border: 1px solid var(--line); background: var(--line); }
.stock-item-metrics > span { display: flex; min-width: 0; min-height: 83px; padding: 10px 7px; align-items: center; justify-content: center; background: white; flex-direction: column; text-align: center; }
.stock-item-metrics small,.stock-item-metrics strong,.stock-item-metrics em { display: block; }
.stock-item-metrics small { min-height: 22px; color: var(--muted); font-size: 8px; line-height: 1.3; text-transform: uppercase; }
.stock-item-metrics strong { margin: 4px 0 2px; color: var(--navy); font-family: var(--serif); font-size: 23px; font-weight: 400; }
.stock-item-metrics em { color: #728083; font-size: 7px; font-style: normal; line-height: 1.3; }
.stock-item-card > button { width: 100%; min-height: 39px; margin-top: auto; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 8px; letter-spacing: .04em; text-transform: uppercase; }
.stock-catalog { display: grid; gap: 17px; min-width: 0; }
.stock-category { padding: 26px; background: white; }
.stock-category-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.stock-category-heading > span { display: grid; place-items: center; width: 38px; height: 38px; color: #7b6028; border-radius: 50%; background: #f5eedc; font-size: 17px; }
.stock-category-heading h3 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 27px; font-weight: 400; }
.stock-category-heading p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
.stock-table { overflow-x: auto; }
.stock-table-head,.stock-row { display: grid; grid-template-columns: 1.5fr .58fr .58fr .8fr .65fr .8fr; min-width: 780px; gap: 12px; align-items: center; }
.stock-table-head { padding: 0 10px 10px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
.stock-table-head > span:not(:first-child),.stock-row > span,.stock-row > button { text-align: center; }
.stock-row > span { justify-self: center; }
.stock-row > button { width: 100%; }
.stock-row { position: relative; padding: 13px 10px; color: var(--navy); border-bottom: 1px solid var(--line); font-size: 10px; }
.stock-row.low::before,.stock-row.out::before { content:""; position: absolute; inset: 5px auto 5px 0; width: 3px; background: #c9894f; }
.stock-row.out::before { background: #a84f4f; }
.stock-row > div:first-child strong,.stock-row > div:first-child small,.stock-quantity strong,.stock-quantity small,.stock-forecast strong,.stock-forecast small { display: block; }
.stock-row > div:first-child small,.stock-quantity small,.stock-forecast small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.stock-quantity strong { font-family: var(--serif); font-size: 21px; font-weight: 400; }
.stock-forecast strong { font-size: 12px; }
.stock-state { width: max-content; padding: 5px 7px; border-radius: 12px; color: #356c52; background: #e5f0e9; font-size: 8px; }
.stock-state.low { color: #8b5b2e; background: #f7ead9; }.stock-state.out { color: #8f3939; background: #f6e2e2; }
.stock-row > button { padding: 8px 9px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.stock-sidebar { display: grid; gap: 17px; }
.stock-purchase-card,.stock-rules-card,.stock-movements { padding: 23px; background: white; }
.stock-purchase-card h3,.stock-rules-card h3 { margin: 4px 0 16px; color: var(--navy); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.stock-purchase-card > div { display: grid; }
.stock-purchase-card > div button { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; color: var(--navy); border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; }
.stock-purchase-card button strong,.stock-purchase-card button small { display: block; }.stock-purchase-card button small { margin-top: 3px; color: var(--muted); font-size: 8px; }.stock-purchase-card button b { color: #9b5d35; }
.stock-rules-card > button { width: 100%; padding: 10px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); cursor: pointer; font-size: 8px; text-transform: uppercase; }
.stock-rules-detail { display: none; margin-top: 15px; color: var(--muted); font-size: 9px; line-height: 1.55; }.stock-rules-card.open .stock-rules-detail { display: block; }.stock-rules-detail ul { padding-left: 18px; }
.stock-movements { display: grid; gap: 4px; }
.stock-movements article { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.stock-movements article > span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: #3c7359; background: #e6f0ea; }.stock-movements article.out > span,.stock-movements article.manual-out > span { color: #8d5a38; background: #f6eadf; }
.stock-movements strong,.stock-movements small { display: block; }.stock-movements strong { color: var(--navy); font-size: 10px; }.stock-movements small { margin-top: 3px; color: var(--muted); font-size: 8px; }.stock-movements b { color: var(--navy); font-size: 11px; }
.stock-adjustment-form label small { margin-top: 5px; color: var(--muted); font-size: 8px; }

.cleaning-workspace { display: grid; gap: 17px; }
.cleaning-workspace > .admin-panel-heading { margin: 0; padding: 30px; background: white; }
.cleaning-workspace > .admin-panel-heading button { padding: 12px 16px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.cleaning-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); }
.cleaning-summary article { padding: 20px; background: white; }
.cleaning-summary span { display: block; color: var(--muted); font-size: 7px; letter-spacing: .09em; text-transform: uppercase; }
.cleaning-summary strong { display: block; margin-top: 7px; color: var(--navy); font-family: var(--serif); font-size: 29px; font-weight: 400; }
.cleaning-list { display: grid; gap: 10px; }
.cleaning-card { display: grid; grid-template-columns: 120px 1fr auto; gap: 20px; align-items: center; padding: 21px; border-left: 4px solid #b8c2c3; background: white; box-shadow: 0 5px 20px rgba(9,37,57,.04); }
.cleaning-card.status-in_progress { border-left-color: #c89b3c; }.cleaning-card.status-completed { border-left-color: #4d8265; }.cleaning-card.status-issue { border-left-color: #ae604e; }
.cleaning-date { display: flex; flex-direction: column; gap: 5px; color: var(--navy); }
.cleaning-date strong { font-family: var(--serif); font-size: 18px; font-weight: 400; }.cleaning-date span { color: var(--muted); font-size: 9px; }
.cleaning-card-main h3 { margin: 5px 0 3px; color: var(--navy); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.cleaning-card-main p { margin: 0; color: var(--muted); font-size: 9px; }.cleaning-card-main small { display: block; margin-top: 7px; color: #6c7b80; font-size: 7px; }
.cleaning-status { display: inline-block; padding: 4px 7px; color: #59696d; background: #edf0ef; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.status-in_progress .cleaning-status { color: #765815; background: #fff4d9; }.status-completed .cleaning-status { color: #356048; background: #e6f1e9; }.status-issue .cleaning-status { color: #8b4336; background: #fae9e5; }
.cleaning-card-actions { display: flex; flex-direction: column; gap: 6px; min-width: 155px; }
.cleaning-card-actions button { padding: 9px 10px; color: var(--navy); border: 1px solid var(--line); background: white; cursor: pointer; font-size: 7px; text-transform: uppercase; }.cleaning-card-actions button:first-child { color: white; border-color: var(--navy); background: var(--navy); }
.cleaning-form-section { padding: 20px; border: 1px solid var(--line); background: white; }
.cleaning-form-section .editor-section-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; padding: 0; border: 0; }.cleaning-form-section .editor-section-title span { color: var(--muted); font-size: 9px; }
.cleaning-checklist { display: grid; gap: 8px; }
.cleaning-checklist label { display: grid !important; grid-template-columns: 22px 1fr; gap: 10px !important; align-items: center; min-height: 38px; padding: 8px 10px; border: 1px solid var(--line); background: var(--ivory); cursor: pointer; }
.cleaning-checklist input { width: 17px !important; height: 17px; accent-color: #8e6f2b; }
.cleaning-checklist span { color: var(--navy) !important; font-size: 9px !important; letter-spacing: 0 !important; text-transform: none !important; }
.linen-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }.linen-grid label { gap: 6px !important; }
.cleaning-photo-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-top: 14px; }
.cleaning-photo-grid figure { position: relative; aspect-ratio: 1.15; margin: 0; overflow: hidden; background: #e7eceb; }.cleaning-photo-grid img { width: 100%; height: 100%; object-fit: cover; }.cleaning-photo-grid figure > button { position: absolute; top: 5px; right: 5px; width: 24px; height: 24px; color: white; border: 0; border-radius: 50%; background: rgba(9,37,57,.76); cursor: pointer; }.cleaning-photo-grid figure > span { position: absolute; right: 7px; bottom: 5px; color: white; }
.cleaning-photo-count { margin: 10px 0 0; color: var(--muted); font-size: 8px; }
.damage-field textarea { border-color: rgba(174,96,78,.35) !important; background: #fffaf8 !important; }
.cleaning-actions { flex-wrap: wrap; }.cleaning-actions > button { width: auto !important; }
.cleaning-mobile-modal { width: min(560px,100%); }.cleaning-mobile-modal .admin-editor-fields { grid-template-columns: 1fr; }.cleaning-mobile-modal .full-field { grid-column: auto; }.cleaning-mobile-modal .cleaning-actions { position: sticky; z-index: 5; bottom: -25px; padding: 14px; background: rgba(255,255,255,.96); box-shadow: 0 -7px 20px rgba(9,37,57,.08); }
.owner-cleaning-card { margin-top: 22px; padding: 27px; background: white; }
.owner-cleaning-intro { margin: -7px 0 20px; color: var(--muted); font-size: 9px; }
.owner-cleaning-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }.owner-cleaning-grid > article { padding: 16px; border: 1px solid var(--line); }.owner-cleaning-grid article > div:first-child { display: flex; gap: 10px; align-items: center; }.owner-cleaning-grid article > div:first-child > span { display: grid; place-items: center; width: 28px; height: 28px; color: white; border-radius: 50%; background: #4d8265; }.owner-cleaning-grid h3 { margin: 0 0 3px; color: var(--navy); font-family: var(--serif); font-size: 17px; font-weight: 400; }.owner-cleaning-grid p { margin: 0; color: var(--muted); font-size: 8px; }.owner-cleaning-grid article > strong { display: block; margin-top: 12px; color: #3e6b51; font-size: 8px; text-transform: uppercase; }
.owner-cleaning-photos { display: grid !important; grid-template-columns: repeat(4,1fr); gap: 4px !important; margin-top: 10px; }.owner-cleaning-photos img { width: 100%; aspect-ratio: 1; object-fit: cover; }.owner-damage { margin-top: 10px !important; padding: 8px; color: #8b4336 !important; background: #fae9e5; }
.owner-cleaning-duration { display: flex !important; justify-content: space-between; align-items: center; margin-top: 12px; padding: 10px 12px; background: var(--ivory); }
.owner-cleaning-duration span { color: var(--muted); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.owner-cleaning-duration strong { color: #8d743c; font-family: var(--serif); font-size: 18px; font-weight: 400; }
.owner-report-button { width: 100%; margin-top: 12px; padding: 10px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
.owner-report-times { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin: 24px 0; }
.owner-report-times article { padding: 15px; background: var(--ivory); }
.owner-report-times article.highlight { color: white; background: var(--navy); }
.owner-report-times span { display: block; color: var(--muted); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.owner-report-times .highlight span { color: rgba(255,255,255,.58); }
.owner-report-times strong { display: block; margin-top: 7px; color: var(--navy); font-family: var(--serif); font-size: 23px; font-weight: 400; }
.owner-report-times .highlight strong { color: var(--gold-light); }
.owner-report-photos { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
.owner-report-photos > p { color: var(--muted); font-size: 9px; }
.owner-report-photos > div:last-child { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 14px; }
.owner-report-photos figure { aspect-ratio: 1.15; margin: 0; overflow: hidden; background: var(--ivory); }
.owner-report-photos img { width: 100%; height: 100%; object-fit: cover; }

.cleaner-portal { min-height: 100vh; color: var(--navy); background: #eef1ed; }
.cleaner-login { width: min(520px,calc(100% - 30px)); margin: auto; padding: 75px 0; }
.cleaner-brand { display: flex; gap: 11px; align-items: center; }.cleaner-brand img { width: 37px; height: 42px; object-fit: contain; }.cleaner-brand div { display: flex; flex-direction: column; }.cleaner-brand strong { font-family: var(--serif); font-size: 18px; letter-spacing: .18em; }.cleaner-brand span { margin-top: 2px; color: #8d743c; font-size: 6px; letter-spacing: .25em; }
.cleaner-login > .eyebrow { margin-top: 65px; }.cleaner-login h1 { margin: 7px 0 17px; font-family: var(--serif); font-size: clamp(42px,8vw,67px); font-weight: 400; line-height: 1.03; }.cleaner-login > p:not(.eyebrow) { color: var(--muted); font-family: var(--serif); font-size: 17px; line-height: 1.7; }
.cleaner-login form { display: grid; gap: 15px; margin-top: 28px; padding: 28px; background: white; box-shadow: 0 18px 60px rgba(9,37,57,.1); }.cleaner-login form label { display: grid; gap: 7px; }.cleaner-login form label span { color: var(--muted); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }.cleaner-login input { min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); background: var(--ivory); }.cleaner-login-error { margin: 0; color: #a34f45; font-size: 9px; }.cleaner-login > small { display: block; margin-top: 15px; color: var(--muted); font-size: 8px; text-align: center; }
.cleaner-dashboard { display: none; max-width: 760px; min-height: 100vh; margin: auto; padding-bottom: 105px; background: #f4f5f1; box-shadow: 0 0 70px rgba(9,37,57,.12); }.cleaner-dashboard.active { display: block; }
.cleaner-topbar { display: flex; justify-content: space-between; align-items: center; padding: 17px 22px; background: white; }.cleaner-topbar button { color: var(--muted); border: 0; background: none; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.cleaner-task-hero { padding: 42px 25px 33px; color: white; background: linear-gradient(125deg,#092539,#174457); }.cleaner-task-status { display: inline-block; padding: 5px 8px; color: #f0d58f; border: 1px solid rgba(226,201,140,.5); font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }.cleaner-task-hero > p { margin: 18px 0 3px; color: rgba(255,255,255,.67); font-size: 9px; }.cleaner-task-hero h1 { margin: 0; font-family: var(--serif); font-size: 39px; font-weight: 400; }.cleaner-task-hero h1 + p { margin-top: 7px; }.cleaner-task-hero > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }.cleaner-task-hero > div span { padding: 7px 9px; color: rgba(255,255,255,.8); background: rgba(255,255,255,.08); font-size: 8px; }
.cleaner-task-form { display: grid; gap: 12px; padding: 16px; }
.cleaner-section { padding: 21px; background: white; }.cleaner-section-heading { display: flex; justify-content: space-between; gap: 12px; align-items: center; }.cleaner-section-heading > div { display: flex; gap: 10px; align-items: center; }.cleaner-section-heading > div > span { display: grid; place-items: center; width: 26px; height: 26px; color: #8d743c; border: 1px solid #dbc785; border-radius: 50%; font-size: 8px; }.cleaner-section-heading h2 { margin: 0; font-family: var(--serif); font-size: 22px; font-weight: 400; }.cleaner-section-heading > strong { color: #8d743c; font-size: 9px; }.cleaner-section > p { color: var(--muted); font-size: 10px; line-height: 1.65; }
.cleaner-linen { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 16px; }.cleaner-linen > span { display: flex; flex-direction: column; padding: 12px; color: var(--navy); background: var(--ivory); font-family: var(--serif); font-size: 24px; }.cleaner-linen small { margin-top: 4px; color: var(--muted); font-family: var(--sans); font-size: 7px; text-transform: uppercase; }
.cleaner-checklist { display: grid; gap: 8px; margin-top: 16px; }.cleaner-checklist label { display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: center; min-height: 48px; padding: 10px 12px; border: 1px solid var(--line); background: var(--ivory); cursor: pointer; }.cleaner-checklist input { width: 19px; height: 19px; accent-color: #4d8265; }.cleaner-checklist span { font-size: 10px; line-height: 1.4; }
.cleaner-camera-button { padding: 9px 11px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 7px; text-transform: uppercase; }.cleaner-camera-button input { display: none; }
.cleaner-photo-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-top: 15px; }.cleaner-photo-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; background: #e5e9e8; }
.cleaner-section textarea { width: 100%; margin-top: 15px; padding: 12px; border: 1px solid var(--line); background: #fffaf8; resize: vertical; }
.cleaner-time-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-top: 17px; }.cleaner-time-grid label,.cleaner-duration { display: flex; flex-direction: column; gap: 6px; padding: 11px; background: var(--ivory); }.cleaner-time-grid label > span,.cleaner-duration > span { color: var(--muted); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }.cleaner-time-grid input { width: 100%; min-height: 36px; padding: 6px; color: var(--navy); border: 1px solid var(--line); background: white; }.cleaner-duration strong { margin-top: 6px; color: #8d743c; font-family: var(--serif); font-size: 18px; font-weight: 400; }
.cleaner-sticky-actions { position: sticky; z-index: 10; bottom: 8px; display: grid; gap: 8px; padding: 10px; background: rgba(255,255,255,.96); box-shadow: 0 8px 30px rgba(9,37,57,.18); }.cleaner-sticky-actions .button { width: 100%; min-height: 52px; }.cleaner-complete-message { padding: 16px; color: #356048; background: #e6f1e9; text-align: center; font-size: 10px; text-transform: uppercase; }
.cleaner-empty { padding: 80px 25px; text-align: center; }.cleaner-empty h1 { font-family: var(--serif); font-size: 40px; font-weight: 400; }
.team-link-field { display: grid; gap: 7px; margin: 22px 0; }.team-link-field span { color: var(--muted); font-size: 8px; text-transform: uppercase; }.team-link-field input { width: 100%; padding: 13px; border: 1px solid var(--line); background: var(--ivory); font-size: 9px; }
.deposit-message-field { margin-bottom: 14px; }.deposit-message-field textarea { width: 100%; min-height: 190px; padding: 14px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); font: 10px/1.65 var(--sans); resize: vertical; }
.cleaning-time-audit > div:last-of-type { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }.cleaning-time-audit > div:last-of-type span { display: flex; flex-direction: column; gap: 4px; padding: 10px; color: var(--muted); background: var(--ivory); font-size: 7px; text-transform: uppercase; }.cleaning-time-audit b { color: var(--navy); font-size: 11px; }

.registration-entry { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.registration-entry > span { color: var(--muted); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.registration-entry button { padding: 10px 12px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
.registration-entry .inbox-link { grid-column: 1/-1; color: var(--muted); border-color: var(--line); background: white; }
.login-error,.registration-error { margin: 0; color: #a34f45; font-size: 9px; }
.client-registration-shell { display: none; min-height: calc(100vh - 90px); padding: 90px 22px; background: linear-gradient(135deg,#f7f3e8,#eef4f2); }
.client-registration-shell.active { display: block; }
.registration-card { width: min(760px,100%); margin: auto; padding: 48px; background: white; box-shadow: 0 25px 80px rgba(9,37,57,.12); }
.registration-card > h1 { margin: 4px 0 10px; color: var(--navy); font-family: var(--serif); font-size: clamp(36px,5vw,56px); font-weight: 400; }
.registration-card > p:not(.eyebrow) { max-width: 630px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.registration-back { margin-bottom: 25px; padding: 0; color: var(--muted); border: 0; background: none; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.registration-card > form { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; margin-top: 30px; }
.registration-card form label { display: flex; flex-direction: column; gap: 7px; color: var(--muted); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.registration-card form input,.registration-card form select { width: 100%; padding: 13px; color: var(--navy); border: 1px solid var(--line); background: white; }
.registration-card form .registration-error,.registration-card form .button { grid-column: 1/-1; }
.demo-inbox { margin-top: 30px; overflow: hidden; border: 1px solid var(--line); background: #f5f7f7; }
.inbox-toolbar { display: flex; justify-content: space-between; gap: 20px; padding: 13px 17px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: 8px; text-transform: uppercase; }
.email-envelope { margin: 18px; background: white; box-shadow: 0 8px 30px rgba(9,37,57,.08); }
.email-envelope > dl { margin: 0; padding: 15px 20px; border-bottom: 1px solid var(--line); }
.email-envelope > dl div { display: grid; grid-template-columns: 55px 1fr; gap: 10px; padding: 3px 0; }
.email-envelope dt { color: var(--muted); font-size: 8px; }.email-envelope dd { margin: 0; color: var(--navy); font-size: 9px; }
.email-brand { display: flex; flex-direction: column; align-items: center; padding: 35px 20px 16px; color: var(--navy); }
.email-brand img { width: 62px; height: 62px; object-fit: contain; }.email-brand strong { margin-top: 9px; font-size: 18px; letter-spacing: .22em; }.email-brand span { font-size: 7px; letter-spacing: .3em; }
.email-body { max-width: 520px; margin: auto; padding: 18px 30px 45px; text-align: center; }
.email-body h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 31px; font-weight: 400; }.email-body p { margin: 12px 0 24px; color: var(--muted); font-size: 10px; line-height: 1.7; }.email-body small { display: block; margin-top: 12px; color: var(--muted); font-size: 7px; }
.registration-success { text-align: center; }.success-seal { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 22px; color: white; border-radius: 50%; background: #43755a; font-size: 28px; }.registration-success .button { display: inline-flex; margin-top: 18px; }.registration-secondary { display: block; margin: 14px auto 0; padding: 8px; color: var(--muted); border: 0; background: none; cursor: pointer; font-size: 8px; text-transform: uppercase; }

/* Identifiants propriétaires */
#adminDashboard .client-table-head, #adminDashboard .client-row { min-width: 900px; grid-template-columns: 1.55fr 1.1fr .55fr .8fr 145px; }
#adminDashboard .client-row > button[data-client-email] { width: 100%; padding: 8px 10px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; font-size: 9px; line-height: 1.25; text-align: center; text-transform: uppercase; }
.credential-password-field > span { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.credential-password-field > span button { padding: 4px 7px; color: #80652e; border: 1px solid #d9c27f; background: #fffaf0; cursor: pointer; font-size: 8px; text-transform: uppercase; }
.credential-password-field input { border-color: var(--gold) !important; background: #fffdf8 !important; font-weight: 600; letter-spacing: .04em; }
.admin-client-error { margin: -5px 0 0; color: #a34f45; font-size: 10px; line-height: 1.5; }
.owner-credentials-modal { width: min(850px,100%); }
.owner-credential-inbox { margin-top: 24px; }
.owner-credential-body { max-width: 620px; }
.credential-box { display: grid; gap: 8px; margin: 22px 0; text-align: left; }
.credential-box > span { display: grid; grid-template-columns: 145px 1fr; gap: 14px; align-items: center; padding: 13px 15px; border: 1px solid var(--line); background: var(--ivory); }
.credential-box small { margin: 0 !important; color: var(--muted); font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.credential-box strong { overflow-wrap: anywhere; color: var(--navy); font-size: 13px; font-weight: 600; }
.owner-credential-body > small { max-width: 520px; margin: 16px auto 0; line-height: 1.55; }

/* Finances */
.finance-workspace, .maintenance-workspace { display: grid; gap: 17px; min-width: 0; margin-top: 16px; }
.finance-hero, .maintenance-hero { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding: 32px; color: white; background: linear-gradient(120deg,#092539,#174457); }
.finance-hero .eyebrow, .maintenance-hero .eyebrow { color: var(--gold-light); }
.finance-hero h2, .maintenance-hero h2 { margin: 4px 0 7px; font-family: var(--serif); font-size: 37px; font-weight: 400; }
.finance-hero p:not(.eyebrow), .maintenance-hero p:not(.eyebrow) { max-width: 650px; margin: 0; color: rgba(255,255,255,.68); font-size: 10px; }
.finance-controls { display: flex; gap: 9px; flex: 0 0 auto; }
.finance-controls label, .maintenance-filter label { display: grid; gap: 6px; }
.finance-controls label > span, .maintenance-filter label > span { color: rgba(255,255,255,.62); font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }
.finance-controls select, .maintenance-filter select { min-width: 170px; min-height: 42px; padding: 8px 11px; color: var(--navy); border: 1px solid rgba(255,255,255,.3); background: white; font-size: 9px; }
.finance-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); }
.finance-kpis article { padding: 21px; background: white; }
.finance-kpis article > span, .maintenance-kpis article > span { display: block; color: var(--muted); font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }
.finance-kpis strong, .maintenance-kpis strong { display: block; margin: 8px 0 3px; color: var(--navy); font-family: var(--serif); font-size: 29px; font-weight: 400; }
.finance-kpis small { color: var(--muted); font-size: 7px; }
.finance-kpis .finance-net { color: white; background: var(--navy); }
.finance-kpis .finance-net span, .finance-kpis .finance-net small { color: rgba(255,255,255,.6); }
.finance-kpis .finance-net strong { color: var(--gold-light); }
.finance-ledger { min-width: 0; padding: 28px; background: white; }
.finance-table { width: 100%; overflow-x: auto; border-top: 1px solid var(--line); }
.finance-table-head, .finance-table > button { display: grid; min-width: 1000px; grid-template-columns: .58fr 1.25fr 1.2fr .72fr .72fr .65fr .76fr 1fr; gap: 14px; align-items: center; }
.finance-table-head { padding: 10px 8px; color: var(--muted); background: #f3f4f1; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.finance-table > button { width: 100%; padding: 15px 8px; color: var(--muted); border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; font-size: 9px; }
.finance-table > button:hover { background: var(--ivory); }
.finance-table > button span { min-width: 0; }
.finance-table > button strong, .finance-table > button small { display: block; }
.finance-table > button strong { overflow: hidden; color: var(--navy); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.finance-table > button small { margin-top: 3px; color: var(--muted); font-size: 7px; }
.finance-table > button em { color: #8b6726; font-style: normal; font-weight: 600; }
.finance-minus { color: #995b4c; }.finance-positive { color: #2f6a4a; font-weight: 600; }
.finance-empty { padding: 35px; color: var(--muted); text-align: center; }
.deposit-accounting-note { display: grid; grid-template-columns: 30px 1fr; gap: 12px; align-items: center; padding: 16px 19px; color: #735b25; border: 1px solid #eadcaf; background: #faf6e9; }
.deposit-accounting-note > span { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #d2b864; border-radius: 50%; }
.deposit-accounting-note p { margin: 0; font-size: 9px; line-height: 1.5; }.deposit-accounting-note strong { display: block; color: var(--navy); }
.statement-summary { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin: 24px 0; }
.statement-summary article { padding: 16px; border: 1px solid var(--line); background: white; }
.statement-summary span { display: block; color: var(--muted); font-size: 7px; text-transform: uppercase; }.statement-summary strong { display: block; margin-top: 6px; color: var(--navy); font-family: var(--serif); font-size: 22px; font-weight: 400; }
.statement-summary .highlight { color: white; background: var(--navy); }.statement-summary .highlight span { color: rgba(255,255,255,.6); }.statement-summary .highlight strong { color: var(--gold-light); }
.statement-lines { border-top: 1px solid var(--line); }.statement-lines > div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 3px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 9px; }.statement-lines strong { color: var(--navy); }

/* Maintenance */
.maintenance-hero .button { width: auto; flex: 0 0 auto; }
.maintenance-kpis { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; background: var(--line); }
.maintenance-kpis article { padding: 19px 20px; background: white; }
.maintenance-filter { display: flex; justify-content: flex-end; padding: 14px 18px; background: white; }
.maintenance-filter label > span { color: var(--muted); }
.maintenance-filter select { border-color: var(--line); background: var(--ivory); }
.maintenance-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.maintenance-card { min-width: 0; padding: 22px; border: 0; border-left: 4px solid #b8c2c3; background: white; box-shadow: 0 5px 20px rgba(9,37,57,.04); cursor: pointer; text-align: left; }
.maintenance-card.priority-high { border-left-color: #c27b4b; }.maintenance-card.priority-urgent { border-left-color: #ab4f45; }.maintenance-card.priority-low { border-left-color: #64866d; }
.maintenance-card-top { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.maintenance-priority, .maintenance-status { padding: 5px 7px; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.maintenance-priority { color: #8a5a3b; background: #f8eee7; }.priority-urgent .maintenance-priority { color: #8b3731; background: #fae7e5; }.priority-low .maintenance-priority { color: #356048; background: #e6f1e9; }
.maintenance-status { color: #5a696d; background: #edf0ef; }.maintenance-status.status-in_progress { color: #7a5b18; background: #fff2d6; }.maintenance-status.status-resolved { color: #356048; background: #e6f1e9; }
.maintenance-card h3 { margin: 17px 0 4px; color: var(--navy); font-family: var(--serif); font-size: 25px; font-weight: 400; }
.maintenance-card > p { margin: 0; color: var(--muted); font-size: 9px; }
.maintenance-card-facts { display: grid; grid-template-columns: 1.2fr 1fr .7fr; gap: 8px; margin-top: 18px; }
.maintenance-card-facts > span { min-width: 0; padding: 10px; background: var(--ivory); }
.maintenance-card-facts small, .maintenance-card-facts strong { display: block; }
.maintenance-card-facts small { color: var(--muted); font-size: 6px; letter-spacing: .06em; text-transform: uppercase; }
.maintenance-card-facts strong { margin-top: 5px; overflow: hidden; color: var(--navy); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.maintenance-empty { grid-column: 1/-1; padding: 55px; color: var(--muted); background: white; text-align: center; }
.delete-maintenance { margin-right: auto; color: #8f3939 !important; border-color: rgba(143,57,57,.3) !important; }

/* Personnel */
.personnel-workspace { display: grid; gap: 17px; min-width: 0; margin-top: 16px; }
.personnel-hero { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding: 32px; color: white; background: linear-gradient(120deg,#092539,#174457); }
.personnel-hero .eyebrow { color: var(--gold-light); }
.personnel-hero h2 { margin: 4px 0 7px; font-family: var(--serif); font-size: 37px; font-weight: 400; }
.personnel-hero p:not(.eyebrow) { max-width: 670px; margin: 0; color: rgba(255,255,255,.7); font-size: 11px; line-height: 1.55; }
.personnel-hero .button { width: auto; flex: 0 0 auto; }
.personnel-filters { display: flex; align-items: flex-end; gap: 12px; padding: 18px 22px; background: white; }
.personnel-filters label { display: grid; gap: 6px; }
.personnel-filters label > span { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.personnel-filters select { min-width: 210px; min-height: 42px; padding: 8px 11px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); font-size: 11px; }
.personnel-filters > strong { margin-left: auto; padding: 12px 16px; color: #8c6d2f; font-family: var(--serif); font-size: 18px; font-weight: 400; text-transform: capitalize; }
.personnel-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); }
.personnel-kpis article { padding: 21px; background: white; }
.personnel-kpis article > span { display: block; color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.personnel-kpis strong { display: block; margin-top: 8px; color: var(--navy); font-family: var(--serif); font-size: 29px; font-weight: 400; }
.personnel-kpis .pay { color: white; background: var(--navy); }.personnel-kpis .pay span { color: rgba(255,255,255,.62); }.personnel-kpis .pay strong { color: var(--gold-light); }
.personnel-calculation-note { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: center; padding: 14px 18px; color: #665424; border: 1px solid #e4d39b; background: #fbf7eb; }
.personnel-calculation-note > span { display: grid; place-items: center; width: 31px; height: 31px; color: white; border-radius: 50%; background: #9a7938; font-weight: 700; }
.personnel-calculation-note p { margin: 0; font-size: 11px; }
.personnel-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.personnel-card { min-width: 0; padding: 22px; border-top: 3px solid var(--gold); background: white; box-shadow: 0 5px 20px rgba(9,37,57,.04); }
.personnel-card.inactive { opacity: .62; filter: grayscale(.35); }
.personnel-card-head { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 12px; align-items: center; }
.personnel-avatar { display: grid; place-items: center; width: 44px; height: 44px; color: #795f28; border-radius: 50%; background: var(--sand); font-family: var(--serif); font-size: 17px; }
.personnel-card-head h3 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.personnel-card-head p { margin: 3px 0 0; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.personnel-active-state { padding: 5px 8px; color: #356048; background: #e6f1e9; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.inactive .personnel-active-state { color: #6d7375; background: #eceeed; }
.personnel-card-totals { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.personnel-card-totals > span { padding: 13px; background: var(--ivory); }
.personnel-card-totals small, .personnel-card-totals strong { display: block; }
.personnel-card-totals small { color: var(--muted); font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.personnel-card-totals strong { margin-top: 6px; color: var(--navy); font-family: var(--serif); font-size: 22px; font-weight: 400; }
.personnel-rate { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-top: 10px; padding: 11px 13px; border: 1px solid var(--line); }
.personnel-rate > span:first-child { color: var(--muted); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.personnel-rate > span:last-child { display: flex; align-items: center; gap: 7px; color: var(--navy); }
.personnel-rate input { width: 90px; padding: 8px; color: var(--navy); border: 1px solid var(--gold); background: #fffdf8; font-size: 13px; font-weight: 600; text-align: right; }
.personnel-rate b { font-size: 11px; }
.personnel-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 10px; }
.personnel-card-actions button { min-height: 39px; padding: 8px; color: var(--navy); border: 1px solid var(--line); background: white; cursor: pointer; font-size: 10px; text-transform: uppercase; }
.personnel-card-actions button:first-child { color: white; border-color: var(--navy); background: var(--navy); }
.personnel-ledger { min-width: 0; padding: 28px; background: white; }
.personnel-table { width: 100%; overflow-x: auto; border-top: 1px solid var(--line); }
.personnel-table-head, .personnel-table > div { display: grid; min-width: 940px; grid-template-columns: .7fr 1.15fr 1.3fr .58fr .58fr .8fr .8fr .8fr; gap: 14px; align-items: center; }
.personnel-table-head { padding: 10px 8px; color: var(--muted); background: #f3f4f1; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.personnel-table > div { padding: 15px 8px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: 11px; }
.personnel-table strong, .personnel-table small { display: block; }.personnel-table strong { color: var(--navy); font-size: 11px; }.personnel-table small { margin-top: 3px; font-size: 9px; }
.personnel-pay { color: #2f6a4a; font-weight: 700; }
.personnel-empty { padding: 40px; color: var(--muted); text-align: center; }
.personnel-detail-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin: 24px 0; }
.personnel-detail-summary article { padding: 16px; border: 1px solid var(--line); background: white; }
.personnel-detail-summary span { display: block; color: var(--muted); font-size: 10px; text-transform: uppercase; }.personnel-detail-summary strong { display: block; margin-top: 6px; color: var(--navy); font-family: var(--serif); font-size: 22px; font-weight: 400; }
.personnel-detail-summary .highlight { color: white; background: var(--navy); }.personnel-detail-summary .highlight span { color: rgba(255,255,255,.6); }.personnel-detail-summary .highlight strong { color: var(--gold-light); }
.personnel-detail-list { border-top: 1px solid var(--line); }.personnel-detail-list > div { display: grid; grid-template-columns: .9fr 1.35fr .75fr 1fr; gap: 12px; padding: 13px 4px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: 10px; }.personnel-detail-list strong { color: var(--navy); text-align: right; }
.personnel-chart-card { min-width: 0; padding: 28px; background: white; }
.personnel-chart-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; }
.personnel-chart-heading h2, .personnel-chart-heading h3 { margin: 3px 0 5px; color: var(--navy); font-family: var(--serif); font-size: 29px; font-weight: 400; }
.personnel-chart-heading h3 { font-size: 25px; }
.personnel-chart-heading p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.personnel-chart-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px; padding-top: 7px; }
.personnel-chart-legend span { font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }.personnel-chart-legend .hours { color: #9a7738; }.personnel-chart-legend .pay { color: #2f6a58; }
.personnel-canvas-wrap { width: 100%; min-width: 0; margin-top: 22px; overflow: hidden; }
.personnel-canvas-wrap canvas { display: block; width: 100%; max-width: 100%; }
.personnel-chart-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 13px; }
.personnel-chart-summary article { padding: 13px 15px; border: 1px solid var(--line); background: var(--ivory); }
.personnel-chart-summary span { display: block; color: var(--muted); font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.personnel-chart-summary strong { display: block; margin-top: 5px; color: var(--navy); font-family: var(--serif); font-size: 18px; font-weight: 400; text-transform: capitalize; }
.personnel-chart-source { display: block; margin-top: 12px; color: var(--muted); font-size: 9px; }
.personnel-profile-chart { margin: 18px 0 22px; padding: 20px; border: 1px solid var(--line); }

/* Lisibilité renforcée dans les espaces privés */
#ownerDashboard .dashboard-actions select,
#ownerDashboard .dashboard-actions button { font-size: 11px; }
#ownerDashboard .kpi-grid span,
#ownerDashboard .kpi-grid small { font-size: 11px; line-height: 1.45; }
#ownerDashboard .panel-title > a,
#ownerDashboard .bar-chart small,
#ownerDashboard .date-box span { font-size: 10px; }
#ownerDashboard .stay-row h3,
#ownerDashboard .operation-row h3,
#ownerDashboard .documents-card h3 { font-size: 13px; }
#ownerDashboard .stay-row p,
#ownerDashboard .operation-row p,
#ownerDashboard .documents-card p,
#ownerDashboard .operation-row > strong { font-size: 11px; line-height: 1.5; }
#ownerDashboard .status { font-size: 9px; }
#ownerDashboard .documents-card a > span:last-child { font-size: 10px; }
#ownerDashboard .owner-cleaning-intro,
#ownerDashboard .owner-cleaning-grid p,
#ownerDashboard .owner-report-photos > p { font-size: 11px; line-height: 1.55; }
#ownerDashboard .owner-cleaning-grid article > strong,
#ownerDashboard .owner-cleaning-duration span,
#ownerDashboard .owner-report-times span { font-size: 10px; }
#ownerDashboard .owner-report-button { font-size: 10px; }

#adminDashboard .admin-sidebar-brand span { font-size: 9px; }
#adminDashboard .admin-sidebar nav button,
#adminDashboard .admin-logout { font-size: 12px; }
#adminDashboard .admin-kpis article > span,
#adminDashboard .admin-kpis small,
#adminDashboard .property-admin-summary span,
#adminDashboard .pricing-summary span,
#adminDashboard .pricing-summary small,
#adminDashboard .cleaning-summary span,
#adminDashboard .finance-kpis article > span,
#adminDashboard .finance-kpis small,
#adminDashboard .maintenance-kpis article > span { font-size: 10px; line-height: 1.45; }
#adminDashboard .admin-panel-heading p,
#adminDashboard .admin-property-card p,
#adminDashboard .photo-manager-heading p,
#adminDashboard .pricing-inspector > p,
#adminDashboard .algorithm-explainer ol,
#adminDashboard .cleaning-card-main p,
#adminDashboard .cleaning-card-main small,
#adminDashboard .finance-hero p:not(.eyebrow),
#adminDashboard .maintenance-hero p:not(.eyebrow),
#adminDashboard .deposit-accounting-note p,
#adminDashboard .maintenance-card > p { font-size: 11px; line-height: 1.55; }
#adminDashboard .admin-panel-heading button,
#adminDashboard .admin-property-card button,
#adminDashboard .modal-actions > button:first-child,
#adminDashboard .photo-upload-button,
#adminDashboard .property-gallery-editor button,
#adminDashboard .pricing-row > button,
#adminDashboard .pricing-inspector .inspector-edit,
#adminDashboard .cleaning-workspace > .admin-panel-heading button,
#adminDashboard .cleaning-card-actions button { font-size: 9px; }
#adminDashboard .client-table-head,
#adminDashboard .pricing-table-head,
#adminDashboard .finance-table-head { font-size: 9px; }
#adminDashboard .client-row { font-size: 11px; }
#adminDashboard .client-row strong { font-size: 12px; }
#adminDashboard .client-row small,
#adminDashboard .client-status,
#adminDashboard .admin-simple-list em { font-size: 10px; }
#adminDashboard .admin-modal label > span,
#adminDashboard .admin-editor-fields label > span,
#adminDashboard .calendar-controls label > span,
#adminDashboard .finance-controls label > span,
#adminDashboard .maintenance-filter label > span { font-size: 10px; }
#adminDashboard .admin-modal input,
#adminDashboard .admin-modal select,
#adminDashboard .admin-editor-fields input,
#adminDashboard .admin-editor-fields select,
#adminDashboard .admin-editor-fields textarea,
#adminDashboard .calendar-controls select,
#adminDashboard .calendar-controls button,
#adminDashboard .finance-controls select,
#adminDashboard .maintenance-filter select { font-size: 11px; }
#adminDashboard .admin-property-card > div > span,
#adminDashboard .property-gallery-count,
#adminDashboard .property-card-facts small,
#adminDashboard .property-gallery-editor article > span,
#adminDashboard .pending-photo-preview p,
#adminDashboard .property-photo-manager > small,
#adminDashboard .demo-data-badge { font-size: 9px; }
#adminDashboard .calendar-summary span,
#adminDashboard .calendar-legend span,
#adminDashboard .calendar-weekdays span,
#adminDashboard .calendar-booking-detail span { font-size: 9px; }
#adminDashboard .calendar-day > time,
#adminDashboard .calendar-booking-detail small { font-size: 10px; }
#adminDashboard .calendar-event span,
#adminDashboard .calendar-cleaning { font-size: 8px; }
#adminDashboard .calendar-event strong { font-size: 9px; }
#adminDashboard .map-loading-note strong,
#adminDashboard .map-loading-note span,
#adminDashboard .map-legend span,
#adminDashboard .inspector-type,
#adminDashboard .inspector-price span,
#adminDashboard .pricing-inspector dt,
#adminDashboard .pricing-inspector dd,
#adminDashboard .pricing-inspector > small,
#adminDashboard .pricing-row > div:first-child small,
#adminDashboard .pricing-row .recommendation small { font-size: 9px; }
#adminDashboard .pricing-row { font-size: 11px; }
#adminDashboard .cleaning-date span,
#adminDashboard .cleaning-status,
#adminDashboard .cleaning-form-section .editor-section-title span,
#adminDashboard .cleaning-checklist span,
#adminDashboard .cleaning-photo-count { font-size: 10px !important; }
#adminDashboard .finance-table > button,
#adminDashboard .finance-table > button small,
#adminDashboard .statement-summary span,
#adminDashboard .statement-lines > div,
#adminDashboard .maintenance-priority,
#adminDashboard .maintenance-status,
#adminDashboard .maintenance-card-facts small,
#adminDashboard .maintenance-card-facts strong { font-size: 10px; }

@media (max-width: 1180px) {
  .site-header { gap: 20px; padding-inline: 3vw; }
  .owner-link { padding-inline: 10px; }
  .testimonial-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .intro-copy { width: 78%; }
  .why-section { grid-template-columns: 42% 58%; }
  .detail-layout { grid-template-columns: minmax(0,1fr) 340px; gap: 4vw; }
}

@media (max-width: 920px) {
  .site-header { height: 86px; }
  .main-nav { width: min(370px,92vw); padding-inline: 26px; }
  .drawer-header { min-height: 86px; }
  .header-actions { position: static; justify-self: end; }
  .language-trigger { width: 43px; height: 43px; font-size: 18px; }
  .hero { min-height: 720px; }
  .section { padding: 90px 6vw; }
  .section-heading { grid-template-columns: 1fr; gap: 10px; }
  .intro-copy { width: 100%; grid-template-columns: 1fr; gap: 20px; margin-top: 40px; }
  .service-grid { grid-template-columns: repeat(2,1fr); }
  .why-section, .yacht-section { grid-template-columns: 1fr; }
  .why-image, .yacht-image { min-height: 520px; }
  .zones-section { grid-template-columns: 1fr; gap: 55px; }
  .process-grid { grid-template-columns: 1fr 1fr; gap: 50px 20px; }
  .process-grid article:not(:last-child) .process-number::after { display: none; }
  .pricing-section { grid-template-columns: 1fr; gap: 45px; }
  .contact-section { grid-template-columns: 1fr; }
  .contact-intro, .contact-form { padding: 75px 7vw; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-top > p { display: none; }
  .detail-layout { grid-template-columns: 1fr; }
  .booking-card { position: relative; top: auto; max-width: 520px; width: 100%; margin: auto; }
  .owner-login-page { grid-template-columns: 42% 58%; }
  .admin-login-page { grid-template-columns: 42% 58%; }
  .admin-dashboard { grid-template-columns: 190px minmax(0,1fr); }
  .admin-kpis { grid-template-columns: 1fr 1fr; }
  .admin-property-grid { grid-template-columns: 1fr 1fr; }
  .calendar-toolbar { flex-direction: column; }
  .today-kpis { grid-template-columns: 1fr 1fr; }
  .today-main-grid { grid-template-columns: 1fr; }
  .today-upcoming-grid { grid-template-columns: 1fr; }
  .calendar-controls { width: 100%; justify-content: flex-start; }
  .calendar-summary { grid-template-columns: 1fr 1fr; }
  .finance-hero { align-items: flex-start; flex-direction: column; }
  .finance-controls { width: 100%; flex-wrap: wrap; }
  .finance-kpis { grid-template-columns: 1fr 1fr; }
  .personnel-kpis { grid-template-columns: 1fr 1fr; }
  .personnel-grid { grid-template-columns: 1fr; }
  .maintenance-kpis { grid-template-columns: repeat(3,1fr); }
  .maintenance-list { grid-template-columns: 1fr; }
  .pricing-summary { grid-template-columns: 1fr 1fr; }
  .pricing-map-layout { grid-template-columns: 1fr; }
  .pricing-inspector { border-top: 1px solid var(--line); border-left: 0; }
  .stock-kpis { grid-template-columns: 1fr 1fr; }
  .stock-laundry-batches { grid-template-columns: 1fr; }
  .stock-layout { grid-template-columns: 1fr; }
  .stock-card-layout { grid-template-columns: 1fr; }
  .stock-item-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stock-sidebar { grid-template-columns: 1fr 1fr; }
  .stock-movements { grid-column: 1/-1; }
  .payment-page { grid-template-columns: 1fr; }
  .payment-intro { min-height: 520px; padding: 150px 7vw 75px; }
  .payment-panel { padding: 75px 7vw; }
  .login-panel { padding: 55px 6vw; }
  .kpi-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  .site-header { padding: 0 20px; }
  .brand-name { font-size: 21px; }
  .brand-sub { font-size: 6px; }
  .brand-mark-frame { width: 31px; height: 35px; }
  .language-trigger { width: 41px; height: 41px; }
  .language-options { right: -4px; min-width: 166px; }
  .hero { min-height: 700px; align-items: flex-end; padding: 135px 24px 90px; background-position: 58% center; }
  .hero h1 { font-size: 54px; }
  .hero h1 span { margin-top: 18px; font-size: 8px; letter-spacing: .52em; }
  .hero h2 { font-size: 29px; }
  .hero-copy { font-size: 13px; }
  .hero-buttons { flex-direction: column; align-items: stretch; }
  .home-social-actions { right: 14px; bottom: 14px; }
  .home-social-button { min-width: 0; padding: 8px; }
  .home-social-button > strong { display: none; }
  .home-social-button > span { width: 35px; height: 35px; }
  .button { width: 100%; }
  .scroll-cue { display: none; }
  .section { padding: 75px 22px; }
  .section-heading h2, .zones-title h2, .process-section h2, .pricing-section h2 { font-size: 39px; }
  .stats { grid-template-columns: 1fr; gap: 25px; margin-top: 60px; }
  .stats div { padding-bottom: 25px; border-right: 0; border-bottom: 1px solid var(--line); }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 290px; padding: 32px; }
  .service-card-featured { grid-template-columns: 80px 1fr; min-height: 240px; }
  .testimonials-heading { margin-bottom: 42px; }
  .testimonial-grid { grid-template-columns: 1fr; }
  .testimonial-card,.testimonial-card:nth-child(2n) { min-height: 0; margin-top: 0; padding: 28px 24px; }
  .testimonial-card blockquote { margin-block: 26px 30px; }
  .review-modal form { grid-template-columns: 1fr; }
  .review-modal .full-field { grid-column: auto; }
  .review-modal-actions { align-items: stretch; flex-direction: column-reverse; }
  .review-modal-actions .button { width: 100%; }
  .why-image, .yacht-image { min-height: 390px; }
  .why-content, .yacht-content { padding: 70px 25px; }
  .process-grid { grid-template-columns: 1fr; }
  .pricing-section > p { padding: 25px; }
  .contact-intro, .contact-form { padding: 70px 25px; }
  .contact-form { grid-template-columns: 1fr; }
  .contact-form .full-field { grid-column: auto; }
  .contact-form .button { width: 100%; }
  .site-footer { padding: 55px 24px 25px; }
  .footer-top { grid-template-columns: 1fr; gap: 30px; }
  .footer-contact { justify-self: start; align-items: flex-start; }
  .footer-bottom { grid-template-columns: 1fr; gap: 16px; }
  .footer-bottom > div, .footer-bottom .footer-languages { justify-self: start; }
  .inner-hero { padding: 70px 22px 60px; }
  .inner-hero h1 { font-size: 42px; }
  .residence-grid { grid-template-columns: 1fr; gap: 55px; }
  .residence-card:last-child { grid-column: auto; width: 100%; }
  .residence-info { align-items: flex-end; }
  .residence-title h2 { font-size: 25px; }
  .residence-meta { flex-wrap: wrap; }
  .residence-meta a { width: 100%; margin: 5px 0 0; }
  .policy-times { grid-template-columns: 1fr; gap: 10px; }
  .detail-hero { min-height: 580px; padding: 130px 22px 45px; }
  .detail-hero h1 { font-size: 52px; }
  .back-link { margin-bottom: 95px; }
  .detail-heading { flex-direction: column; }
  .detail-heading h2 { font-size: 37px; }
  .detail-gallery { grid-template-columns: 1fr; }
  .detail-gallery img { height: 270px; }
  .included > div { grid-template-columns: 1fr; }
  .booking-card { padding: 25px 20px; }
  .owner-login-page { grid-template-columns: 1fr; }
  .admin-login-page { grid-template-columns: 1fr; }
  .admin-login-intro { min-height: 430px; padding: 130px 24px 60px; }
  .admin-dashboard { grid-template-columns: 1fr; }
  .admin-sidebar { min-width: 0; min-height: auto; padding: 17px 12px; }
  .admin-sidebar-brand { justify-content: center; padding-bottom: 16px; }
  .admin-sidebar nav { width: 100%; flex-direction: row; margin-top: 14px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; }
  .admin-sidebar nav::-webkit-scrollbar { display: none; }
  .admin-sidebar nav button { width: max-content; white-space: nowrap; }
  .admin-logout { display: none; }
  .admin-main { width: 100%; min-width: 0; padding: 32px 14px 65px; overflow: hidden; }
  .admin-top { width: 100%; align-items: center; flex-direction: column; text-align: center; }
  .admin-top > div { width: 100%; }
  .admin-top h1 { max-width: 330px; margin-inline: auto; font-size: 38px; overflow-wrap: anywhere; }
  .admin-top .eyebrow { text-align: center; }
  .today-hero { align-items: center; flex-direction: column; padding: 27px 18px; text-align: center; }
  .today-hero > time { max-width: none; text-align: center; }
  .today-kpis { grid-template-columns: 1fr; }
  .today-kpis > button { min-height: 94px; }
  .today-priorities,.today-agenda,.today-upcoming { padding: 21px 14px; }
  .today-section-heading { align-items: center; flex-direction: column; text-align: center; }
  .today-section-heading > button { width: 100%; min-height: 42px; }
  .today-priority-list article { grid-template-columns: 34px minmax(0,1fr); }
  .today-priority-list article > button { grid-column: 1/-1; min-height: 40px; }
  .today-upcoming-grid > button { grid-template-columns: 1fr 28px; }
  .today-upcoming-grid time { grid-column: 1/-1; padding: 0 0 10px; border-right: 0; border-bottom: 1px solid var(--line); }
  .admin-create { width: 100%; }
  .admin-kpis { grid-template-columns: 1fr; }
  .admin-kpis article { text-align: center; }
  .calendar-toolbar { align-items: center; padding: 24px 16px; text-align: center; }
  .calendar-toolbar h2 { font-size: 30px; }
  .calendar-controls { display: grid; grid-template-columns: 1fr; justify-content: stretch; }
  .calendar-controls label, .calendar-controls select, .calendar-month-nav, .calendar-today { width: 100%; }
  .calendar-summary { grid-template-columns: 1fr 1fr; }
  .calendar-summary article { padding: 15px 10px; text-align: center; }
  .calendar-summary strong { font-size: 23px; }
  .calendar-legend { justify-content: center; gap: 10px 14px; }
  .calendar-shell { border: 1px solid var(--line); }
  .calendar-weekdays, .calendar-grid { min-width: 760px; }
  .calendar-day { min-height: 112px; }
  .calendar-upcoming { padding: 20px 14px; }
  .calendar-booking-detail { grid-template-columns: 1fr; }
  .admin-clients, .admin-dynamic-panel { width: 100%; min-width: 0; padding: 20px 14px; }
  .admin-dynamic-wrap, .today-workspace, .pricing-workspace, .cleaning-workspace, .personnel-workspace, .finance-workspace, .maintenance-workspace { width: 100%; min-width: 0; }
  .finance-hero, .maintenance-hero, .personnel-hero { align-items: center; flex-direction: column; padding: 25px 16px; text-align: center; }
  .finance-controls { display: grid; grid-template-columns: 1fr; width: 100%; }
  .finance-controls label, .finance-controls select { width: 100%; }
  .finance-kpis, .maintenance-kpis { grid-template-columns: 1fr; }
  .personnel-kpis { grid-template-columns: 1fr; }
  .finance-kpis article, .maintenance-kpis article { text-align: center; }
  .personnel-kpis article { text-align: center; }
  .finance-ledger { padding: 20px 14px; }
  .finance-table { margin-inline: 0; }
  .deposit-accounting-note { align-items: flex-start; text-align: left; }
  .maintenance-hero .button { width: 100%; }
  .personnel-hero .button { width: 100%; }
  .personnel-filters { align-items: stretch; flex-direction: column; }
  .personnel-filters label, .personnel-filters select { width: 100%; }
  .personnel-filters > strong { margin: 0; text-align: center; }
  .personnel-card { padding: 18px 15px; }
  .personnel-card-head { grid-template-columns: 44px minmax(0,1fr); }
  .personnel-active-state { grid-column: 1/-1; justify-self: center; }
  .personnel-card-head h3, .personnel-card-head p { text-align: left; }
  .personnel-card-totals { grid-template-columns: 1fr; text-align: center; }
  .personnel-rate { align-items: stretch; flex-direction: column; text-align: center; }
  .personnel-rate > span:last-child { justify-content: center; }
  .personnel-card-actions { grid-template-columns: 1fr; }
  .personnel-ledger { padding: 20px 14px; }
  .personnel-detail-summary { grid-template-columns: 1fr; }
  .personnel-detail-list > div { grid-template-columns: 1fr; text-align: center; }
  .personnel-detail-list strong { text-align: center; }
  .personnel-chart-card { padding: 20px 12px; }
  .personnel-chart-heading { align-items: center; flex-direction: column; text-align: center; }
  .personnel-chart-legend { width: 100%; justify-content: center; }
  .personnel-canvas-wrap { overflow-x: auto; }
  .personnel-canvas-wrap canvas { min-width: 560px; }
  .personnel-chart-summary { grid-template-columns: 1fr; text-align: center; }
  .personnel-profile-chart { padding: 16px 8px; }
  .maintenance-filter { justify-content: stretch; }
  .maintenance-filter label, .maintenance-filter select { width: 100%; }
  .maintenance-card { padding: 18px 15px; }
  .maintenance-card h3 { text-align: center; }
  .maintenance-card > p { text-align: center; }
  .maintenance-card-facts { grid-template-columns: 1fr; }
  .maintenance-card-facts > span { text-align: center; }
  .statement-summary { grid-template-columns: 1fr; }
  .admin-panel-heading { width: 100%; align-items: center; flex-direction: column; text-align: center; }
  .admin-panel-heading > div { width: 100%; }
  .admin-panel-heading .panel-actions { width: 100%; justify-content: center; }
  .admin-panel-heading button { width: 100%; min-height: 44px; }
  .admin-modal-backdrop { align-items: flex-start; padding: 10px; overflow-y: auto; }
  .admin-modal { width: 100%; max-width: 100%; margin: auto; padding: 35px 18px 25px; overflow-x: hidden; }
  .admin-modal h2, .admin-modal > p, .admin-modal > .eyebrow { text-align: center; }
  .admin-modal form { grid-template-columns: 1fr; }
  .admin-modal .full-field, .modal-actions { grid-column: auto; }
  .modal-actions { flex-direction: column-reverse; }
  .modal-actions > button { min-height: 48px; width: 100% !important; }
  .admin-property-grid, .admin-editor-fields { grid-template-columns: 1fr; }
  .admin-property-card, .admin-property-card > div { width: 100%; min-width: 0; }
  .admin-property-card > div { text-align: center; }
  .property-card-facts { justify-content: center; }
  .property-admin-summary, .pricing-summary { grid-template-columns: 1fr; }
  .property-admin-summary span, .pricing-summary article { justify-content: center; text-align: center; }
  .stock-hero { align-items: stretch; flex-direction: column; padding: 26px 18px; text-align: center; }
  .stock-hero p { margin-inline: auto !important; }
  .stock-kpis { grid-template-columns: 1fr; }
  .stock-kpis article { text-align: center; }
  .stock-laundry-panel { padding: 22px 14px; }
  .stock-laundry-heading { align-items: center; flex-direction: column; text-align: center; }
  .stock-laundry-heading > strong { align-self: center; }
  .stock-laundry-history article { grid-template-columns: 1fr; gap: 5px; padding: 14px 8px; text-align: center; }
  .laundry-inspection-head { display: none; }
  .laundry-inspection-row { grid-template-columns: 1fr 1fr 1fr; gap: 9px; text-align: center; }
  .laundry-inspection-row > span { grid-column: 1/-1; }
  .laundry-inspection-row > b small { display: block; margin-bottom: 4px; }
  .stock-layout,.stock-sidebar { grid-template-columns: 1fr; }
  .stock-card-layout,.stock-item-grid { grid-template-columns: 1fr; }
  .stock-card-category { padding: 20px 14px; }
  .stock-item-card { min-height: 0; padding: 17px 14px; }
  .stock-item-card-head { align-items: center; flex-direction: column; text-align: center; }
  .stock-item-card-head .stock-state { align-self: center; }
  .stock-item-metrics { width: 100%; }
  .stock-category { padding: 20px 14px; }
  .stock-category-heading { justify-content: center; text-align: left; }
  .stock-table { overflow: visible; }
  .stock-table-head { display: none; }
  .stock-row { min-width: 0; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; padding: 17px; border: 1px solid var(--line); background: var(--ivory); text-align: center; }
  .stock-row > div:first-child,.stock-row > button { grid-column: 1/-1; }
  .stock-state { justify-self: center; }
  .stock-row > button { min-height: 42px; }
  .stock-sidebar { width: 100%; }
  .stock-movements { grid-column: auto; }
  .cleaning-summary, .owner-cleaning-grid { grid-template-columns: 1fr; }
  .owner-report-times, .owner-report-photos > div:last-child { grid-template-columns: 1fr; }
  .cleaning-card { grid-template-columns: 1fr; gap: 12px; }
  .cleaning-card-actions { width: 100%; }
  .linen-grid { grid-template-columns: 1fr; }
  .cleaning-photo-grid { grid-template-columns: 1fr 1fr; }
  .cleaning-actions > button { width: 100% !important; }
  .cleaner-time-grid { grid-template-columns: 1fr 1fr; }
  .cleaning-time-audit > div:last-of-type { grid-template-columns: 1fr 1fr; }
  .property-gallery-editor { grid-template-columns: 1fr 1fr; }
  .photo-manager-heading,.pricing-hero { align-items: stretch; flex-direction: column; }
  .pricing-hero { padding: 26px 18px; text-align: center; }
  .pricing-hero p { margin-inline: auto !important; }
  .pricing-map { min-height: 430px; }
  .map-loading-note { width: calc(100% - 30px); min-width: 0; }
  .map-legend { left: 50%; width: max-content; max-width: calc(100% - 20px); transform: translateX(-50%); }
  .pricing-inspector { padding: 22px 18px; text-align: center; }
  .pricing-inspector dl > div { text-align: left; }
  .pricing-table-card { padding: 22px 14px; }
  .pricing-table { width: 100%; overflow: visible; }
  .pricing-table-head { display: none; }
  .pricing-row { min-width: 0; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; padding: 17px; border: 1px solid var(--line); background: var(--ivory); text-align: center; }
  .pricing-row > div:first-child, .pricing-row > button, .pricing-limit-cell { grid-column: 1/-1; }
  .pricing-limit-cell { justify-items: center; padding: 10px; border: 1px solid var(--line); background: white; }
  .pricing-row .mini-switch { justify-self: center; }
  .pricing-row > button { min-height: 42px; }
  .algorithm-explainer { grid-template-columns: 1fr; gap: 20px; }
  .algorithm-explainer { padding: 26px 20px; text-align: center; }
  .algorithm-explainer ol { grid-template-columns: 1fr; }
  .client-registration-shell { padding: 45px 12px; }
  .registration-card { padding: 30px 18px; }
  .registration-card > form { grid-template-columns: 1fr; }
  .registration-card form .registration-error,.registration-card form .button { grid-column: auto; }
  .registration-entry { grid-template-columns: 1fr; }
  .registration-entry .inbox-link { grid-column: auto; }
  .email-envelope { margin: 8px; }
  .email-body { padding: 15px 16px 35px; }
  .admin-editor-fields .wide, .photo-dropzone { grid-column: auto; }
  .photo-dropzone { padding: 26px 12px; }
  .photo-dropzone input, .property-photo-manager input { max-width: 100%; }
  .admin-simple-list > div, .admin-simple-list > button { grid-template-columns: 1fr; gap: 5px; }
  .admin-simple-list > div, .admin-simple-list > button { text-align: center; }
  .admin-simple-list em { justify-self: start; }
  .admin-simple-list em { justify-self: center; }
  .admin-settings-grid label { gap: 14px; text-align: left; }
  .admin-settings-grid .button { width: 100%; }
  .client-table { overflow: visible; }
  .client-table-head { display: none; }
  .client-row { position: relative; min-width: 0; grid-template-columns: 1fr; gap: 7px; margin-bottom: 10px; padding: 16px; border: 1px solid var(--line); background: var(--ivory); text-align: center; }
  #adminDashboard .client-row { min-width: 0; grid-template-columns: 1fr; }
  .client-row > div:first-child { justify-content: center; padding-inline: 30px; }
  .client-row > span { justify-self: center; }
  .client-row > button { position: absolute; top: 13px; right: 13px; padding: 5px; }
  #adminDashboard .client-row > button[data-client-email] { position: static; width: 100%; margin-top: 8px; padding: 11px; }
  .credential-password-field > span { flex-wrap: wrap; justify-content: center; }
  .credential-box > span { grid-template-columns: 1fr; gap: 5px; text-align: center; }
  .owner-credentials-modal .email-envelope { margin: 10px 0; }
  .owner-credentials-modal .email-body { padding-inline: 15px; }
  .owner-login-image { min-height: 320px; padding: 50px 24px; }
  .owner-dashboard { padding: 24px 14px 65px; }
  .dashboard-top { align-items: flex-start; flex-direction: column; gap: 18px; }
  .dashboard-actions { width: 100%; justify-content: space-between; }
  .kpi-grid { grid-template-columns: 1fr; }
  .owner-cleaning-card { padding: 20px 14px; }
  .owner-login-image h1 { font-size: 48px; }
  .login-panel { padding: 65px 24px; }
  .dashboard-top { flex-direction: column; }
  .dashboard-actions { align-items: stretch; }
  .kpi-grid { grid-template-columns: 1fr; }
  .owner-dashboard { padding: 40px 16px 70px; }
  .dashboard-grid > section { padding: 20px; overflow: hidden; }
  .bar-chart { gap: 4px; }
  .stay-row, .operation-row { grid-template-columns: 43px 1fr; }
  .stay-row .status, .operation-row > strong { grid-column: 2; justify-self: start; }
  .documents-card a { grid-template-columns: 38px 1fr; }
  .documents-card a > span:last-child { grid-column: 2; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Portail propriétaire complet et sécurité administrateur */
.owner-section-nav { position: sticky; z-index: 20; top: 0; display: flex; gap: 5px; margin: 24px 0 18px; padding: 8px; overflow-x: auto; border: 1px solid var(--line); background: rgba(247,245,239,.96); box-shadow: 0 8px 25px rgba(9,37,57,.06); backdrop-filter: blur(14px); scrollbar-width: thin; }
.owner-section-nav button { flex: 0 0 auto; min-height: 42px; padding: 9px 14px; color: var(--muted); border: 0; background: transparent; cursor: pointer; font-size: 10px; letter-spacing: .055em; text-transform: uppercase; }
.owner-section-nav button.active { color: white; background: var(--navy); }
.owner-feature-panel { display: none; min-width: 0; }
.owner-feature-panel.active { display: block; }
.owner-workspace { display: grid; gap: 16px; min-width: 0; }
.owner-feature-hero { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 30px; color: white; background: linear-gradient(125deg,#092539,#174457); }
.owner-feature-hero .eyebrow { color: var(--gold-light); }
.owner-feature-hero h2 { margin: 5px 0 7px; color: white; font-family: var(--serif); font-size: clamp(28px,4vw,42px); font-weight: 400; }
.owner-feature-hero p:not(.eyebrow) { max-width: 680px; margin: 0; color: rgba(255,255,255,.7); font-size: 11px; line-height: 1.6; }
.owner-feature-hero .button { flex: 0 0 auto; width: auto; }
.owner-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--line); }
.owner-summary-grid article { padding: 20px; background: white; }
.owner-summary-grid span,.owner-summary-grid small { display: block; color: var(--muted); font-size: 10px; line-height: 1.45; }
.owner-summary-grid span { letter-spacing: .07em; text-transform: uppercase; }
.owner-summary-grid strong { display: block; margin: 8px 0 4px; color: var(--navy); font-family: var(--serif); font-size: 28px; font-weight: 400; }
.owner-statement-card,.owner-calendar-card,.owner-maintenance-list,.owner-documents-workspace,.owner-request-workspace,.owner-notification-workspace { padding: 25px; background: white; box-shadow: 0 6px 22px rgba(9,37,57,.04); }
.owner-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 20px; }
.owner-section-heading h3 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 27px; font-weight: 400; }
.owner-section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.owner-section-heading .button { width: auto; }
.owner-finance-table { display: grid; border: 1px solid var(--line); }
.owner-finance-row { display: grid; grid-template-columns: 1.6fr .65fr .8fr; gap: 14px; align-items: center; min-height: 50px; padding: 10px 15px; border-bottom: 1px solid var(--line); font-size: 11px; }
.owner-finance-row:last-child { border-bottom: 0; }
.owner-finance-row.header { color: var(--muted); background: var(--ivory); font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.owner-finance-row > span:nth-child(n+2) { text-align: right; }
.owner-finance-row.total { color: white; background: var(--navy); }
.owner-finance-row.total strong { color: var(--gold-light); font-size: 16px; }
.owner-payment-note { display: flex; justify-content: space-between; gap: 15px; margin-top: 14px; padding: 14px 16px; color: #356048; background: #e6f1e9; font-size: 11px; }
.owner-calendar-legend { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 15px; }
.owner-calendar-legend span { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; }
.owner-calendar-legend i { width: 9px; height: 9px; border-radius: 50%; background: #4d8265; }
.owner-calendar-legend .available { background: #dfe5e2; }.owner-calendar-legend .cleaning { background: #d0b870; }.owner-calendar-legend .maintenance { background: #bd735c; }.owner-calendar-legend .blocked { background: #8b9398; }
.owner-calendar-weekdays,.owner-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; }
.owner-calendar-weekdays span { padding: 6px; color: var(--muted); font-size: 8px; text-align: center; text-transform: uppercase; }
.owner-calendar-day { position: relative; min-height: 82px; padding: 8px; color: var(--navy); border: 1px solid var(--line); background: white; text-align: left; }
button.owner-calendar-day { cursor: pointer; }.owner-calendar-day.empty { background: var(--ivory); }
.owner-calendar-day > strong { display: block; font-size: 11px; }.owner-calendar-day > small { display: block; margin-top: 7px; color: var(--muted); font-size: 7px; line-height: 1.35; }
.owner-calendar-day.booked { color: white; border-color: #4d8265; background: #4d8265; }.owner-calendar-day.booked small { color: rgba(255,255,255,.78); }
.owner-calendar-day.cleaning { border-color: #d0b870; box-shadow: inset 0 -5px 0 #d0b870; }.owner-calendar-day.maintenance { border-color: #bd735c; box-shadow: inset 0 -5px 0 #bd735c; }
.owner-calendar-detail { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 16px; }
.owner-calendar-detail div { padding: 13px; background: var(--ivory); }.owner-calendar-detail span { display: block; color: var(--muted); font-size: 8px; text-transform: uppercase; }.owner-calendar-detail strong { display: block; margin-top: 6px; color: var(--navy); font-size: 11px; }
.owner-maintenance-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.owner-maintenance-item { padding: 20px; border: 1px solid var(--line); border-left: 4px solid #d0b870; background: white; }
.owner-maintenance-item.approved { border-left-color: #4d8265; }.owner-maintenance-item-top { display: flex; justify-content: space-between; gap: 10px; }
.owner-maintenance-item-top span { padding: 5px 7px; color: #805f1d; background: #fff2d6; font-size: 8px; text-transform: uppercase; }.owner-maintenance-item.approved .owner-maintenance-item-top span { color: #356048; background: #e6f1e9; }
.owner-maintenance-item h4 { margin: 16px 0 5px; color: var(--navy); font-family: var(--serif); font-size: 23px; font-weight: 400; }.owner-maintenance-item p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.owner-maintenance-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin: 16px 0; }.owner-maintenance-facts span { padding: 9px; background: var(--ivory); }.owner-maintenance-facts small,.owner-maintenance-facts strong { display: block; }.owner-maintenance-facts small { color: var(--muted); font-size: 7px; text-transform: uppercase; }.owner-maintenance-facts strong { margin-top: 5px; color: var(--navy); font-size: 10px; }
.owner-maintenance-item button { width: 100%; min-height: 40px; color: var(--navy); border: 1px solid var(--gold); background: #faf6eb; cursor: pointer; font-size: 9px; text-transform: uppercase; }
.owner-documents-grid { display: grid; gap: 8px; }
.owner-document-row { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 13px; border: 1px solid var(--line); }
.owner-document-icon { display: grid; place-items: center; width: 40px; height: 42px; color: white; background: var(--navy); font-size: 8px; font-weight: 700; }
.owner-document-row h4 { margin: 0; overflow: hidden; color: var(--navy); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.owner-document-row p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }.owner-document-row a { padding: 8px 10px; color: var(--navy); border: 1px solid var(--gold); font-size: 9px; text-decoration: none; }
.owner-upload-note { margin: 14px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.owner-request-layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 16px; }
.owner-request-form { display: grid; gap: 12px; padding: 22px; background: var(--ivory); }.owner-request-form label { display: grid; gap: 6px; }.owner-request-form label span { color: var(--muted); font-size: 9px; text-transform: uppercase; }.owner-request-form input,.owner-request-form select,.owner-request-form textarea { width: 100%; min-height: 44px; padding: 10px 11px; border: 1px solid var(--line); background: white; }.owner-request-form textarea { min-height: 105px; resize: vertical; }
.owner-request-list { display: grid; gap: 8px; align-content: start; }.owner-request-item { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 15px; border: 1px solid var(--line); }.owner-request-item h4 { margin: 0; color: var(--navy); font-size: 12px; }.owner-request-item p { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }.owner-request-item span { align-self: start; padding: 5px 7px; color: #805f1d; background: #fff2d6; font-size: 8px; text-transform: uppercase; }
.owner-notification-list { display: grid; gap: 1px; background: var(--line); }.owner-notification-list label { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 17px; background: white; cursor: pointer; }.owner-notification-list strong { display: block; color: var(--navy); font-size: 12px; }.owner-notification-list small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }.owner-notification-list input { width: 21px; height: 21px; accent-color: #4d8265; }
.owner-performance-control { min-height: 36px; padding: 6px 8px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); font-size: 9px; }
.admin-security-workspace { display: grid; gap: 16px; }
.admin-security-hero { padding: 28px; color: white; background: linear-gradient(125deg,#092539,#174457); }.admin-security-hero h2 { margin: 5px 0 7px; font-family: var(--serif); font-size: 36px; font-weight: 400; }.admin-security-hero p:not(.eyebrow) { max-width: 680px; color: rgba(255,255,255,.7); font-size: 10px; line-height: 1.6; }
.admin-security-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 15px; }.admin-password-card,.admin-preference-card { padding: 24px; background: white; }.admin-password-card h3,.admin-preference-card h3 { margin: 0 0 6px; color: var(--navy); font-family: var(--serif); font-size: 27px; font-weight: 400; }.admin-password-card > p,.admin-preference-card > p { margin: 0 0 18px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.admin-password-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.admin-password-form label { display: grid; gap: 6px; }.admin-password-form label:first-child,.admin-password-form .password-actions,.admin-password-form .admin-password-message { grid-column: 1/-1; }.admin-password-form span { color: var(--muted); font-size: 8px; text-transform: uppercase; }.admin-password-form input { min-height: 44px; padding: 9px 11px; border: 1px solid var(--line); background: var(--ivory); }.password-actions { display: flex; justify-content: space-between; gap: 10px; }.password-actions button { width: auto; }.admin-password-message { min-height: 18px; margin: 0; color: #356048; font-size: 10px; }.admin-password-message.error { color: #a34f45; }
.admin-login-error { display: none; margin: 10px 0 0; padding: 10px; color: #a34f45; background: #fae9e5; font-size: 10px; }.admin-login-error.visible { display: block; }

@media (max-width: 900px) {
  .owner-summary-grid { grid-template-columns: repeat(2,1fr); }
  .owner-maintenance-grid,.owner-request-layout,.admin-security-grid { grid-template-columns: 1fr; }
  .owner-calendar-day { min-height: 72px; }
}

@media (max-width: 600px) {
  .service-card-featured { display: block; min-height: 0; }
  .service-card-featured .service-mark { margin: 8px 0 46px; justify-self: auto; transform: rotate(45deg); }
  .owner-section-nav { margin-inline: -2px; }
  .owner-section-nav button { min-height: 44px; padding-inline: 12px; }
  .owner-feature-hero { align-items: stretch; flex-direction: column; padding: 23px 18px; text-align: center; }
  .owner-feature-hero .button { width: 100%; }
  .owner-summary-grid { grid-template-columns: 1fr; }
  .owner-statement-card,.owner-calendar-card,.owner-maintenance-list,.owner-documents-workspace,.owner-request-workspace,.owner-notification-workspace { padding: 18px 13px; }
  .owner-section-heading { align-items: stretch; flex-direction: column; text-align: center; }.owner-section-heading .button { width: 100%; }
  .owner-finance-row { grid-template-columns: 1fr auto; }.owner-finance-row > span:nth-child(2) { display: none; }.owner-finance-row.header { display: none; }
  .owner-calendar-weekdays { display: none; }.owner-calendar-grid { grid-template-columns: repeat(2,1fr); }.owner-calendar-day.empty { display: none; }.owner-calendar-day { min-height: 75px; }
  .owner-calendar-detail { grid-template-columns: 1fr 1fr; }
  .owner-maintenance-grid { grid-template-columns: 1fr; }.owner-maintenance-facts { grid-template-columns: 1fr; }
  .owner-document-row { grid-template-columns: 38px minmax(0,1fr); }.owner-document-icon { width: 36px; }.owner-document-row a { grid-column: 2; text-align: center; }
  .owner-request-layout { grid-template-columns: 1fr; }
  .admin-password-form { grid-template-columns: 1fr; }.admin-password-form label:first-child,.admin-password-form .password-actions,.admin-password-form .admin-password-message { grid-column: auto; }.password-actions { align-items: stretch; flex-direction: column; }.password-actions button { width: 100%; }
}

/* Leggibilità rinforzata esclusivamente nell’area proprietario */
#ownerDashboard .owner-section-nav button { font-size: 11.5px; line-height: 1.35; }
#ownerDashboard .dashboard-top > div > p,
#ownerDashboard .dashboard-actions select,
#ownerDashboard .dashboard-actions button { font-size: 12px; line-height: 1.5; }
#ownerDashboard .kpi-grid span,
#ownerDashboard .kpi-grid small { font-size: 12px; line-height: 1.5; }
#ownerDashboard .panel-title h2 { font-size: 25px; }
#ownerDashboard .panel-title > a,
#ownerDashboard .bar-chart small,
#ownerDashboard .date-box span { font-size: 11px; }
#ownerDashboard .stay-row h3,
#ownerDashboard .operation-row h3,
#ownerDashboard .documents-card h3 { font-size: 14px; }
#ownerDashboard .stay-row p,
#ownerDashboard .operation-row p,
#ownerDashboard .documents-card p,
#ownerDashboard .operation-row > strong { font-size: 12px; line-height: 1.55; }
#ownerDashboard .status,
#ownerDashboard .documents-card a > span:last-child { font-size: 10.5px; }
#ownerDashboard .owner-cleaning-intro,
#ownerDashboard .owner-cleaning-grid p,
#ownerDashboard .owner-report-photos > p { font-size: 12px; line-height: 1.6; }
#ownerDashboard .owner-cleaning-grid article > strong,
#ownerDashboard .owner-cleaning-duration span,
#ownerDashboard .owner-report-times span,
#ownerDashboard .owner-report-button { font-size: 11px; }
#ownerDashboard .owner-feature-hero p:not(.eyebrow) { font-size: 13px; line-height: 1.65; }
#ownerDashboard .owner-summary-grid span,
#ownerDashboard .owner-summary-grid small { font-size: 11.5px; line-height: 1.5; }
#ownerDashboard .owner-section-heading p { font-size: 12px; line-height: 1.5; }
#ownerDashboard .owner-finance-row { font-size: 12.5px; line-height: 1.45; }
#ownerDashboard .owner-finance-row.header { font-size: 10.5px; }
#ownerDashboard .owner-payment-note { font-size: 12px; line-height: 1.5; }
#ownerDashboard .owner-calendar-legend span { font-size: 11px; }
#ownerDashboard .owner-calendar-weekdays span { font-size: 10px; }
#ownerDashboard .owner-calendar-day > strong { font-size: 13px; }
#ownerDashboard .owner-calendar-day > small { font-size: 10px; line-height: 1.45; }
#ownerDashboard .owner-calendar-detail span { font-size: 9.5px; }
#ownerDashboard .owner-calendar-detail strong { font-size: 12px; line-height: 1.45; }
#ownerDashboard .owner-maintenance-item-top span { font-size: 9.5px; }
#ownerDashboard .owner-maintenance-item p { font-size: 11.5px; line-height: 1.65; }
#ownerDashboard .owner-maintenance-facts small { font-size: 9px; }
#ownerDashboard .owner-maintenance-facts strong { font-size: 11.5px; line-height: 1.45; }
#ownerDashboard .owner-maintenance-item button { font-size: 10.5px; }
#ownerDashboard .owner-document-row h4 { font-size: 13.5px; }
#ownerDashboard .owner-document-row p { font-size: 11px; line-height: 1.5; }
#ownerDashboard .owner-document-row a { font-size: 10.5px; }
#ownerDashboard .owner-upload-note { font-size: 11px; line-height: 1.6; }
#ownerDashboard .owner-request-form label span { font-size: 10.5px; }
#ownerDashboard .owner-request-form input,
#ownerDashboard .owner-request-form select,
#ownerDashboard .owner-request-form textarea { font-size: 12px; }
#ownerDashboard .owner-request-item h4 { font-size: 13px; }
#ownerDashboard .owner-request-item p { font-size: 11px; line-height: 1.55; }
#ownerDashboard .owner-request-item span { font-size: 9.5px; }
#ownerDashboard .owner-notification-list strong { font-size: 13px; }
#ownerDashboard .owner-notification-list small { font-size: 11px; line-height: 1.5; }
#ownerDashboard .owner-performance-control { font-size: 10.5px; }

@media (max-width: 600px) {
  #ownerDashboard .owner-section-nav button { font-size: 11px; }
  #ownerDashboard .owner-feature-hero p:not(.eyebrow) { font-size: 12.5px; }
  #ownerDashboard .owner-calendar-grid { grid-template-columns: 1fr 1fr; }
}

/* Assistant privé des voyageurs */
.guest-assistant-page { min-height: 100vh; color: var(--ink); background: #e9eeec; }
.guest-assistant-header { display: flex; min-height: 88px; align-items: center; justify-content: space-between; padding: 14px clamp(20px,5vw,72px); color: white; background: var(--navy-deep); border-bottom: 1px solid rgba(255,255,255,.12); }
.guest-assistant-brand { display: flex; align-items: center; gap: 13px; padding: 0; color: white; border: 0; background: none; cursor: pointer; text-align: left; }
.guest-assistant-brand img { width: 40px; height: 48px; object-fit: contain; }
.guest-assistant-brand span { display: flex; flex-direction: column; gap: 4px; }
.guest-assistant-brand strong { font-family: var(--serif); font-size: 20px; font-weight: 400; letter-spacing: .18em; }
.guest-assistant-brand small { color: var(--gold-light); font-size: 7px; letter-spacing: .2em; }
.guest-language-switcher { display: flex; gap: 6px; }
.guest-language-switcher button { width: 42px; height: 38px; color: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.16); background: transparent; cursor: pointer; font-size: 9px; letter-spacing: .08em; }
.guest-language-switcher button.active { color: var(--navy); border-color: var(--gold-light); background: var(--gold-light); }
.guest-assistant-layout { display: grid; grid-template-columns: minmax(310px,.8fr) minmax(0,1.45fr); min-height: calc(100vh - 88px); }
.guest-property-panel { display: flex; flex-direction: column; padding: clamp(45px,7vw,95px) clamp(30px,6vw,82px); color: white; background: radial-gradient(circle at 90% 8%,rgba(197,161,92,.22),transparent 32%),linear-gradient(145deg,#0a2d42,#061d2d); }
.guest-property-panel h1 { max-width: 520px; margin: 9px 0 12px; font-family: var(--serif); font-size: clamp(44px,5vw,72px); font-weight: 400; line-height: 1.02; }
.guest-property-panel > p:not(.eyebrow) { margin: 0; color: rgba(255,255,255,.65); font-family: var(--serif); font-size: 18px; }
.guest-stay-status { display: flex; align-items: center; gap: 9px; width: max-content; margin-top: 26px; padding: 9px 12px; color: #d9f0e2; border: 1px solid rgba(111,180,137,.3); background: rgba(54,114,78,.22); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.guest-stay-status i,.guest-chat-heading small i { width: 7px; height: 7px; border-radius: 50%; background: #68b184; box-shadow: 0 0 0 4px rgba(104,177,132,.12); }
.guest-help-card { margin-top: auto; padding: 23px; border: 1px solid rgba(226,201,140,.28); background: rgba(255,255,255,.045); }
.guest-help-card strong { display: block; color: var(--gold-light); font-family: var(--serif); font-size: 20px; font-weight: 400; }
.guest-help-card p { margin: 9px 0 16px; color: rgba(255,255,255,.58); font-size: 11px; line-height: 1.6; }
.guest-help-card a { color: white; font-size: 13px; letter-spacing: .08em; }
.guest-help-card button { margin-left: 12px; padding: 8px 12px; color: white; border: 1px solid rgba(255,255,255,.25); background: transparent; cursor: pointer; font-size: 9px; text-transform: uppercase; }
.guest-chat-panel { display: grid; grid-template-rows: auto minmax(250px,1fr) auto auto; width: 100%; max-width: 920px; min-width: 0; margin: 0 auto; padding: clamp(22px,4vw,54px); }
.guest-chat-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 22px; border-bottom: 1px solid rgba(9,37,57,.1); }
.guest-chat-heading > div { display: flex; align-items: center; gap: 13px; }
.guest-bot-orb { display: grid; width: 48px; height: 48px; place-items: center; color: var(--navy); border: 1px solid rgba(197,161,92,.48); border-radius: 50%; background: #f4ead8; font-family: var(--serif); font-size: 22px; }
.guest-chat-heading strong { display: block; color: var(--navy); font-family: var(--serif); font-size: 20px; font-weight: 400; }
.guest-chat-heading small { display: flex; align-items: center; gap: 7px; margin-top: 4px; color: var(--muted); font-size: 9px; }
.guest-chat-heading button { padding: 9px 12px; color: var(--muted); border: 1px solid rgba(9,37,57,.1); background: rgba(255,255,255,.6); cursor: pointer; font-size: 9px; text-transform: uppercase; }
.guest-chat-messages { display: flex; min-height: 300px; max-height: 52vh; flex-direction: column; gap: 14px; overflow-y: auto; padding: 28px 4px; scroll-behavior: smooth; }
.guest-message { display: flex; max-width: 78%; align-items: flex-start; gap: 10px; }
.guest-message > span { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; color: var(--navy); border: 1px solid rgba(197,161,92,.38); border-radius: 50%; background: #f5ecdc; font-family: var(--serif); }
.guest-message p { margin: 0; padding: 14px 16px; color: #334853; border: 1px solid rgba(9,37,57,.08); background: white; font-family: var(--serif); font-size: 16px; line-height: 1.6; box-shadow: 0 8px 25px rgba(9,37,57,.045); white-space: pre-line; }
.guest-message.guest { align-self: flex-end; }
.guest-message.guest p { color: white; border-color: var(--navy); background: var(--navy); }
.guest-message.escalated p,.guest-message.error p { border-left: 3px solid #b66f58; background: #fff8f4; }
.guest-message.thinking p { color: var(--muted); font-style: italic; }
.guest-escalation-button { align-self: flex-start; margin-left: 40px; padding: 11px 15px; color: #fff; border: 0; background: #24885f; cursor: pointer; font-size: 10px; letter-spacing: .06em; }
.guest-chat-loading { display: grid; min-height: 260px; place-items: center; align-content: center; gap: 14px; color: var(--navy); font-size: 9px; letter-spacing: .2em; }
.guest-chat-loading i { width: 36px; height: 36px; border: 2px solid rgba(9,37,57,.12); border-top-color: var(--gold); border-radius: 50%; animation: guest-spin .8s linear infinite; }
@keyframes guest-spin { to { transform: rotate(360deg); } }
.guest-quick-topics { display: flex; gap: 8px; overflow-x: auto; padding: 3px 0 15px; }
.guest-quick-topics button { flex: 0 0 auto; min-height: 36px; padding: 8px 12px; color: var(--navy); border: 1px solid rgba(9,37,57,.12); border-radius: 999px; background: rgba(255,255,255,.72); cursor: pointer; font-size: 9px; }
.guest-quick-topics button:hover { border-color: var(--gold); background: white; }
.guest-chat-form { padding-top: 17px; border-top: 1px solid rgba(9,37,57,.1); }
.guest-chat-form > label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.guest-chat-form > div { display: grid; grid-template-columns: 1fr 52px; background: white; box-shadow: 0 12px 35px rgba(9,37,57,.07); }
.guest-chat-form input { min-width: 0; min-height: 54px; padding: 14px 16px; color: var(--navy); border: 1px solid rgba(9,37,57,.12); border-right: 0; outline: 0; font: inherit; }
.guest-chat-form input:focus { border-color: var(--gold); }
.guest-chat-form button { color: white; border: 0; background: var(--navy); cursor: pointer; font-size: 20px; }
.guest-chat-form > small { display: block; margin-top: 8px; color: var(--muted); font-size: 8px; text-align: center; }

/* Configuration de l’assistant dans l’administration */
.guest-assistant-admin { display: grid; gap: 16px; }
.guest-assistant-admin-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding: 34px; color: white; background: radial-gradient(circle at 85% 10%,rgba(197,161,92,.25),transparent 30%),linear-gradient(120deg,#092539,#174457); }
.guest-assistant-admin-hero h2 { margin: 8px 0 9px; font-family: var(--serif); font-size: 38px; font-weight: 400; }
.guest-assistant-admin-hero p:not(.eyebrow) { max-width: 720px; margin: 0; color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.65; }
.guest-assistant-admin-actions { display: flex; flex: 0 0 auto; gap: 9px; }
.guest-assistant-admin-actions > button { min-height: 45px; padding: 0 16px; color: white; border: 1px solid rgba(255,255,255,.25); background: transparent; cursor: pointer; font-size: 9px; text-transform: uppercase; }
.guest-assistant-admin-actions .button { width: auto; color: var(--navy); border-color: var(--gold); }
.guest-assistant-admin-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.guest-assistant-admin-kpis article { padding: 20px; background: white; border-top: 2px solid transparent; }
.guest-assistant-admin-kpis article:first-child { border-color: var(--gold); }
.guest-assistant-admin-kpis span,.guest-assistant-admin-kpis small { display: block; color: var(--muted); font-size: 9px; }
.guest-assistant-admin-kpis span { letter-spacing: .07em; text-transform: uppercase; }
.guest-assistant-admin-kpis strong { display: block; margin: 10px 0 5px; color: var(--navy); font-family: var(--serif); font-size: 30px; font-weight: 400; }
.guest-guide-workspace { padding: 25px; background: white; }
.guest-guide-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.guest-guide-toolbar label { display: grid; min-width: min(430px,100%); gap: 6px; }
.guest-guide-toolbar label span { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.guest-guide-toolbar select { min-height: 43px; padding: 9px 11px; color: var(--navy); border: 1px solid var(--line); background: var(--ivory); }
.guest-guide-toolbar > div { display: flex; gap: 8px; }
.guest-guide-toolbar button,.guest-guide-empty button { min-height: 42px; padding: 9px 14px; color: var(--navy); border: 1px solid var(--line); background: white; cursor: pointer; font-size: 9px; text-transform: uppercase; }
.guest-guide-list { display: grid; gap: 8px; }
.guest-guide-list > article { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 15px; padding: 18px; border: 1px solid var(--line); }
.guest-guide-index { display: grid; width: 38px; height: 38px; place-items: center; color: #9a7638; border: 1px solid rgba(197,161,92,.35); background: var(--sand); font-size: 9px; }
.guest-guide-list article > div:nth-child(2) > span { color: #9a7638; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.guest-guide-list h3 { margin: 4px 0 5px; color: var(--navy); font-family: var(--serif); font-size: 20px; font-weight: 400; }
.guest-guide-list p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.guest-guide-list small { display: block; margin-top: 7px; color: #518164; font-size: 8px; }
.guest-guide-card-actions { display: grid; justify-items: end; gap: 9px; }
.guest-guide-card-actions em { padding: 5px 8px; color: #356448; background: #eaf3ed; font-size: 8px; font-style: normal; text-transform: uppercase; }
.guest-guide-card-actions em.off { color: #8b665b; background: #f5e9e5; }
.guest-guide-card-actions button { padding: 7px 10px; color: var(--navy); border: 1px solid var(--line); background: white; cursor: pointer; font-size: 9px; }
.guest-guide-empty { padding: 45px 20px; color: var(--muted); border: 1px dashed var(--line); text-align: center; }
.guest-guide-empty strong { display: block; color: var(--navy); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.guest-guide-empty p { margin: 7px 0 17px; }
.guest-assistant-how { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); }
.guest-assistant-how > div { padding: 22px; background: white; }
.guest-assistant-how span { color: var(--gold); font-size: 9px; }
.guest-assistant-how strong { display: block; margin-top: 11px; color: var(--navy); font-family: var(--serif); font-size: 19px; font-weight: 400; }
.guest-assistant-how p { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.guest-guide-editor textarea { min-height: 105px; resize: vertical; }
.guest-guide-active { display: flex !important; align-items: center; justify-content: space-between; padding: 12px; border: 1px solid var(--line); }
.guest-guide-active input { width: 20px !important; min-height: 20px !important; }
.guest-link-security { display: flex; align-items: center; gap: 12px; padding: 15px; color: #356448; background: #eaf3ed; }
.guest-link-security > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: white; }
.guest-link-security p { margin: 0; }
.guest-link-security strong,.guest-link-security small { display: block; }
.guest-link-security small { margin-top: 3px; color: #5d7867; font-size: 9px; }
.guest-link-ready { display: grid; grid-template-columns: 42px 1fr; gap: 3px 12px; align-items: center; margin: 20px 0; padding: 16px; background: #eaf3ed; }
.guest-link-ready > span { grid-row: 1/3; display: grid; width: 40px; height: 40px; place-items: center; color: #356448; border-radius: 50%; background: white; }
.guest-link-ready strong { color: var(--navy); }
.guest-link-ready small { color: var(--muted); }
.guest-link-message textarea { min-height: 230px; line-height: 1.55; }

@media (max-width: 900px) {
  .guest-assistant-layout { grid-template-columns: 1fr; }
  .guest-property-panel { min-height: 410px; }
  .guest-help-card { margin-top: 35px; }
  .guest-chat-messages { max-height: none; }
  .guest-assistant-admin-hero { align-items: stretch; flex-direction: column; }
  .guest-assistant-admin-kpis { grid-template-columns: 1fr 1fr; }
  .guest-guide-toolbar { align-items: stretch; flex-direction: column; }
  .guest-guide-toolbar label { min-width: 0; }
}

@media (max-width: 600px) {
  .guest-assistant-header { min-height: 76px; padding-inline: 15px; }
  .guest-assistant-brand img { width: 33px; height: 40px; }
  .guest-assistant-brand strong { font-size: 16px; }
  .guest-language-switcher button { width: 35px; height: 34px; }
  .guest-property-panel { min-height: 360px; padding: 44px 23px 28px; }
  .guest-property-panel h1 { font-size: 45px; }
  .guest-help-card button { margin: 10px 0 0; }
  .guest-chat-panel { padding: 20px 14px 27px; }
  .guest-chat-heading { align-items: flex-start; }
  .guest-chat-heading button { padding: 8px; }
  .guest-chat-messages { min-height: 330px; padding-block: 22px; }
  .guest-message { max-width: 92%; }
  .guest-message p { padding: 12px 13px; font-size: 15px; }
  .guest-chat-form > div { grid-template-columns: 1fr 48px; }
  .guest-assistant-admin-hero { padding: 24px 18px; text-align: center; }
  .guest-assistant-admin-hero h2 { font-size: 31px; }
  .guest-assistant-admin-actions { flex-direction: column; }
  .guest-assistant-admin-actions .button { width: 100%; }
  .guest-assistant-admin-kpis { grid-template-columns: 1fr; }
  .guest-guide-workspace { padding: 16px 12px; }
  .guest-guide-toolbar > div { flex-direction: column; }
  .guest-guide-list > article { grid-template-columns: 34px minmax(0,1fr); padding: 14px 11px; }
  .guest-guide-index { width: 32px; height: 32px; }
  .guest-guide-card-actions { grid-column: 2; grid-template-columns: auto auto; align-items: center; justify-content: start; }
  .guest-assistant-how { grid-template-columns: 1fr; }
}
