:root {
  --ink: #193328;
  --muted: #66756d;
  --paper: #f7f5ef;
  --card: #fffef9;
  --line: #dfe4dd;
  --brand: #315f4c;
  --brand-strong: #204735;
  --brand-soft: #dfeade;
  --accent: #d5a554;
  --danger: #9d3d32;
  --shadow: 0 24px 70px rgba(27, 60, 46, .11);
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
[data-theme="kundalini"] { --brand: #315b55; --brand-strong: #193f3a; --brand-soft: #dce9e4; --accent: #d59b4a; }
[data-theme="aura"] { --brand: #624c7b; --brand-strong: #46345e; --brand-soft: #eee7f3; --accent: #c59a57; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.public-header, .public-footer { width: min(1180px, calc(100% - 40px)); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; }
.public-header { min-height: 78px; border-bottom: 1px solid rgba(49,95,76,.14); }
.public-header nav { display: flex; gap: 24px; font-size: 14px; }
.public-header nav a:hover { color: var(--brand); }
.wordmark { font-family: Georgia, "Times New Roman", serif; font-size: 21px; font-weight: 700; letter-spacing: .01em; }
.public-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.hero { min-height: 600px; display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 56px; padding: 70px 0 100px; overflow: hidden; }
.hero-copy { position: relative; z-index: 1; }
.eyebrow { display: block; margin-bottom: 14px; color: var(--brand); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.025em; }
.hero h1 { max-width: 760px; margin: 0; font-size: clamp(54px, 7vw, 92px); line-height: .98; }
.hero p { max-width: 640px; margin: 28px 0 34px; color: var(--muted); font-size: 19px; line-height: 1.65; }
.primary-action { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--brand); color: #fff; font-weight: 750; box-shadow: 0 10px 24px rgba(49,95,76,.18); transition: transform .18s ease, background .18s ease; }
.primary-action:hover { transform: translateY(-2px); background: var(--brand-strong); }
.hero-orbit { position: relative; width: min(430px, 36vw); aspect-ratio: 1; justify-self: center; border: 1px solid rgba(49,95,76,.25); border-radius: 50%; animation: drift 14s ease-in-out infinite alternate; }
.hero-orbit::before, .hero-orbit::after { content: ""; position: absolute; border-radius: 50%; }
.hero-orbit::before { inset: 13%; border: 1px solid rgba(213,165,84,.55); }
.hero-orbit::after { inset: 31%; background: radial-gradient(circle at 35% 30%, #fff8df, var(--brand-soft)); box-shadow: var(--shadow); }
.hero-orbit span { position: absolute; width: 16px; height: 16px; border-radius: 50%; background: var(--accent); }
.hero-orbit span:nth-child(1) { top: 8%; left: 48%; }.hero-orbit span:nth-child(2) { right: 6%; bottom: 27%; }.hero-orbit span:nth-child(3) { left: 7%; bottom: 28%; background: var(--brand); }
@keyframes drift { to { transform: translateY(-14px) rotate(4deg); } }
.section-block { padding: 92px 0; border-top: 1px solid var(--line); }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 34px; }
.section-heading h2, .request-intro h2 { margin: 0; font-size: clamp(42px, 5vw, 66px); }
.center-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.center-card { padding: 30px; border: 1px solid var(--line); border-radius: 24px; background: var(--card); box-shadow: 0 12px 40px rgba(33,61,47,.05); }
.center-card.coming-soon { opacity: .76; }
.center-card-head { display: flex; justify-content: space-between; gap: 18px; }
.center-label { color: var(--brand); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.center-card h3 { margin: 8px 0 0; font-size: 31px; }
.soon-chip, .status-chip { height: fit-content; padding: 7px 11px; border-radius: 999px; background: var(--brand-soft); color: var(--brand-strong); font-size: 12px; font-weight: 800; }
.muted, .optional { color: var(--muted); }
.optional { font-size: 12px; font-weight: 400; }
.room-list { margin-top: 24px; border-top: 1px solid var(--line); }
.room-row { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.room-row strong, .room-row span { display: block; }.room-row strong { margin-bottom: 6px; }.room-row span { color: var(--muted); font-size: 13px; line-height: 1.45; }
.room-meta { text-align: right; }.room-meta b { display: block; margin-top: 7px; white-space: nowrap; color: var(--brand); }
.request-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 7vw, 100px); align-items: start; }
.request-intro { position: sticky; top: 28px; }.request-intro p { color: var(--muted); font-size: 17px; line-height: 1.65; }.steps { padding: 0; list-style: none; counter-reset: step; }.steps li { counter-increment: step; display: flex; gap: 14px; align-items: center; padding: 12px 0; }.steps li::before { content: counter(step); display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--brand-soft); color: var(--brand); font-weight: 800; }
.request-card, .conversation-card { padding: clamp(24px, 4vw, 42px); border: 1px solid var(--line); border-radius: 28px; background: var(--card); box-shadow: var(--shadow); }
form { display: grid; gap: 18px; }.form-grid { display: grid; gap: 14px; }.form-grid.two { grid-template-columns: repeat(2, 1fr); }.form-grid.three { grid-template-columns: 1.4fr 1fr 1fr; }
label { display: grid; gap: 8px; color: #526159; font-size: 13px; font-weight: 700; }
input, select, textarea { width: 100%; border: 1px solid #ccd5ce; border-radius: 12px; padding: 12px 14px; background: #fff; color: var(--ink); outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 12%, transparent); }
textarea { resize: vertical; }.check-row { display: flex; grid-template-columns: none; align-items: flex-start; gap: 10px; font-weight: 600; }.check-row input { width: 18px; height: 18px; margin-top: 1px; }.consent { font-size: 12px; color: var(--muted); }
.submit { width: 100%; }.validation { color: var(--danger); font-size: 14px; }.validation:empty { display: none; }
.availability { min-height: 48px; padding: 12px 14px; border-radius: 12px; background: var(--brand-soft); color: var(--brand-strong); font-size: 13px; line-height: 1.7; }.availability b { margin-left: 8px; white-space: nowrap; }
.public-footer { min-height: 100px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.dialog-page { display: grid; grid-template-columns: 360px 1fr; gap: 36px; padding: 64px 0 100px; align-items: start; }.dialog-summary { position: sticky; top: 28px; }.back-link { display: inline-block; margin-bottom: 28px; color: var(--muted); font-size: 14px; }.dialog-summary h1 { margin: 18px 0 24px; font-size: 42px; }.dialog-summary dl { display: grid; grid-template-columns: 88px 1fr; gap: 10px 16px; }.dialog-summary dt { color: var(--muted); }.dialog-summary dd { margin: 0; font-weight: 700; }.security-note, .closed-note { margin-top: 28px; padding: 14px; border-radius: 12px; background: var(--brand-soft); color: var(--brand-strong); font-size: 13px; line-height: 1.5; }
.conversation-head { display: flex; justify-content: space-between; gap: 20px; align-items: start; border-bottom: 1px solid var(--line); padding-bottom: 20px; }.conversation-head h2 { margin: 0; font-size: 30px; }.online-dot { color: var(--brand); font-size: 12px; font-weight: 800; }.online-dot::before { content:""; display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:50%; background:#57a371; }
.message-stream { min-height: 320px; max-height: 60vh; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 28px 2px; }.message-bubble { max-width: 78%; padding: 13px 15px 9px; border-radius: 16px; line-height: 1.52; white-space: pre-wrap; }.message-bubble.mine { align-self: flex-end; background: var(--brand); color: white; border-bottom-right-radius: 4px; }.message-bubble.admin { align-self: flex-start; background: #edf1ec; border-bottom-left-radius: 4px; }.message-bubble time { display: block; margin-top: 7px; font-size: 10px; opacity: .68; }.message-compose { grid-template-columns: 1fr auto; align-items: end; border-top: 1px solid var(--line); padding-top: 20px; }.message-compose .primary-action { min-width: 120px; }
.legal-page { max-width: 760px; min-height: 60vh; padding: 80px 0; }.legal-page h1 { font-size: 52px; }.legal-page p { color: var(--muted); line-height: 1.7; }

/* Admin */
.admin-body { background: #f3f5f2; }.admin-header { position: sticky; top: 0; z-index: 10; min-height: 64px; padding: 0 28px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: #193a2e; color: white; box-shadow: 0 8px 30px rgba(21,48,37,.18); }.admin-brand { font-family: Georgia, serif; font-size: 22px; }.admin-header nav { display: flex; align-items: center; gap: 18px; font-size: 13px; }.admin-header form { display: inline; }.link-button { border: 0; padding: 0; color: #d8e8df; background: transparent; }.admin-shell { width: min(1440px, calc(100% - 36px)); margin: 0 auto; padding: 32px 0 70px; }.admin-page-head { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:24px; }.admin-page-head h1 { margin:0; font-size:42px; }.admin-card { border:1px solid var(--line); border-radius:18px; background:white; box-shadow:0 10px 35px rgba(35,60,48,.06); }.admin-card-pad { padding:24px; }.admin-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.metric-card { padding:20px; border:1px solid var(--line); border-radius:16px; background:white; }.metric-card span { color:var(--muted); font-size:12px; }.metric-card b { display:block; margin-top:8px; font-size:30px; }.admin-table { width:100%; border-collapse:collapse; }.admin-table th,.admin-table td { padding:12px 14px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; font-size:13px; }.admin-table th { color:var(--muted); font-size:11px; letter-spacing:.06em; text-transform:uppercase; }.admin-table tr:last-child td { border-bottom:0; }.admin-action { display:inline-flex; padding:8px 12px; border:0; border-radius:9px; background:var(--brand); color:white; font-size:12px; font-weight:750; }.admin-secondary { background:#e9efea; color:var(--brand-strong); }.admin-danger { background:#f5e4e0; color:#8a3329; }.flash { margin-bottom:18px; padding:13px 15px; border-radius:12px; background:#e1efe4; color:#225d36; }.auth-shell { width:min(440px,calc(100% - 32px)); margin:8vh auto; }.auth-card { padding:30px; border:1px solid var(--line); border-radius:22px; background:white; box-shadow:var(--shadow); }.auth-card h1 { margin-top:0; font-size:38px; }
.error-flash { background:#f7e4df; color:#8a3329; }.filter-row { display:flex; gap:8px; overflow-x:auto; margin-bottom:16px; }.filter-row a { flex:none; padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:white; color:var(--muted); font-size:12px; }.filter-row a.active { border-color:var(--brand); background:var(--brand); color:white; }.request-admin-layout { display:grid; grid-template-columns:360px minmax(0,1fr); gap:18px; align-items:start; }.request-admin-list { overflow:hidden; }.request-admin-item { display:block; padding:16px 18px; border-bottom:1px solid var(--line); }.request-admin-item:hover,.request-admin-item.selected { background:#eef4ef; }.request-admin-item > div { display:flex; align-items:center; justify-content:space-between; gap:10px; }.request-admin-item > span { display:block; margin:7px 0; color:var(--muted); font-size:11px; }.request-admin-item > b { font-size:13px; }.status-pill { padding:4px 7px; border-radius:999px; background:#edf1ed; color:#506057; font-size:9px; text-transform:uppercase; }.status-hold { background:#fff0c9; color:#79550a; }.status-confirmed { background:#dceee0; color:#1e6434; }.status-new { background:#e0e9f4; color:#29547b; }.request-admin-detail { display:grid; gap:16px; min-width:0; }.request-summary-card { display:grid; grid-template-columns:minmax(180px,1fr) minmax(300px,1.7fr) auto; align-items:center; gap:24px; }.request-summary-card h2 { margin:4px 0; }.request-summary-card p { margin:0; color:var(--muted); font-size:12px; }.request-main-time { display:grid; gap:6px; }.request-main-time span { color:var(--muted); font-size:11px; text-transform:uppercase; }.request-main-time b { font-size:18px; }.request-main-time em { color:#7d641e; font-size:12px; }.action-panel h3 { margin-top:0; }.action-panel summary { cursor:pointer; }.action-panel summary + form { margin-top:20px; }.button-row,.table-actions { display:flex; flex-wrap:wrap; gap:8px; }.confirm-action { background:#2f7044; }.table-actions form { display:inline; }
.calendar-toolbar { display:grid; grid-template-columns:220px 220px 1fr; align-items:end; gap:16px; margin-bottom:18px; }.week-navigation { display:flex; align-items:center; justify-content:flex-end; gap:14px; }.calendar-week { display:grid; grid-template-columns:repeat(7,minmax(150px,1fr)); gap:10px; overflow-x:auto; padding-bottom:10px; }.calendar-day { min-width:150px; min-height:480px; overflow:hidden; border:1px solid var(--line); border-radius:15px; background:white; }.calendar-day > header { display:flex; align-items:center; justify-content:space-between; padding:12px; border-bottom:1px solid var(--line); background:#f7f8f6; text-transform:capitalize; }.calendar-day > header span { color:var(--muted); font-size:11px; }.calendar-events { display:grid; gap:8px; padding:9px; }.calendar-events > p { color:var(--muted); font-size:11px; text-align:center; }.calendar-event { position:relative; display:grid; gap:6px; padding:10px 16px 10px 10px; border-left:4px solid #477c5d; border-radius:10px; background:#e7f1e9; font-size:11px; }.calendar-event > div { display:flex; justify-content:space-between; gap:5px; }.calendar-event > div span,.calendar-event small { color:#58665d; }.calendar-event > a { color:#1e633b; font-weight:700; }.calendar-event.status-hold { border-color:#d1a137; background:#fff2cc; }.calendar-event.kind-classbusy { border-color:#52759a; background:#e8f0f8; }.calendar-event.kind-massage { border-color:#8a5c86; background:#f2e8f2; }.calendar-event.kind-maintenance { border-color:#8b6b68; background:#f2e9e7; }.calendar-event form { position:absolute; top:4px; right:4px; }.event-cancel { width:20px; height:20px; padding:0; border:0; border-radius:99px; background:rgba(255,255,255,.65); color:#76534e; }.admin-dialog { width:min(620px,calc(100% - 30px)); padding:0; border:0; border-radius:20px; box-shadow:0 25px 80px rgba(20,45,34,.3); }.admin-dialog::backdrop { background:rgba(18,35,28,.5); }.admin-dialog > form { padding:26px; }.admin-dialog header { display:flex; align-items:start; justify-content:space-between; }.admin-dialog h2 { margin:4px 0 10px; }.dialog-close { border:0; background:transparent; color:var(--muted); font-size:28px; }
.team-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:16px; }.team-card > header { display:flex; align-items:center; gap:14px; margin-bottom:20px; }.team-card h2 { margin:0 0 4px; font-size:19px; }.team-card header a { color:var(--muted); font-size:12px; }.team-avatar { display:grid; width:44px; height:44px; place-items:center; border-radius:50%; background:var(--brand); color:white; font-size:20px; font-weight:800; }.team-card fieldset,.admin-dialog fieldset { display:grid; gap:6px; padding:12px; border:1px solid var(--line); border-radius:12px; }.team-card legend,.admin-dialog legend { padding:0 5px; color:var(--muted); font-size:11px; }
.import-help h2 { margin-top:0; }.import-help li { margin:8px 0; line-height:1.5; }.tsv-input { min-height:260px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; white-space:pre; }

@media (max-width: 900px) {
  .hero { min-height:auto; grid-template-columns:1fr; padding:60px 0 80px; }.hero-orbit { width:300px; }.center-grid,.request-layout,.dialog-page,.request-admin-layout { grid-template-columns:1fr; }.request-intro,.dialog-summary { position:static; }.admin-grid { grid-template-columns:repeat(2,1fr); }.request-admin-list { max-height:340px; overflow-y:auto; }.request-summary-card { grid-template-columns:1fr auto; }.request-main-time { grid-column:1/-1; grid-row:2; }.calendar-toolbar { grid-template-columns:1fr 1fr; }.week-navigation { grid-column:1/-1; justify-content:space-between; }
}
@media (max-width: 620px) {
  .public-header,.public-footer,.public-shell { width:min(100% - 24px,1180px); }.public-header nav { display:none; }.hero { padding-top:42px; }.hero h1 { font-size:50px; }.hero-orbit { width:240px; }.section-block { padding:64px 0; }.center-card { padding:21px; }.room-row { grid-template-columns:1fr; }.room-meta { text-align:left; }.form-grid.two,.form-grid.three { grid-template-columns:1fr; }.request-card,.conversation-card { padding:20px; border-radius:20px; }.message-compose { grid-template-columns:1fr; }.message-bubble { max-width:90%; }.admin-header { align-items:flex-start; flex-direction:column; padding:14px 18px; }.admin-header nav { width:100%; overflow-x:auto; padding-bottom:2px; }.admin-shell { width:calc(100% - 20px); padding-top:20px; }.admin-page-head { align-items:flex-start; flex-direction:column; }.admin-grid { grid-template-columns:1fr; }.request-summary-card,.calendar-toolbar { grid-template-columns:1fr; }.request-main-time,.week-navigation { grid-column:auto; }.admin-table thead { display:none; }.admin-table tr,.admin-table td { display:block; }.admin-table tr { border-bottom:1px solid var(--line); padding:8px 0; }.admin-table td { border:0; padding:6px 12px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; }.hero-orbit { animation:none; }.primary-action { transition:none; } }
