/* Active Pro 2.0 public discovery. The visual layer is scoped to .ap2-shell. */
@font-face {
  font-family: "Inter Local";
  src: url("../fonts/InterVariable.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 100 900;
}

.ap2-shell {
  --ap2-bg: #f7f9fb; --ap2-panel: rgba(255,255,255,.88); --ap2-ink: #18212b; --ap2-muted: #6c7886;
  --ap2-line: rgba(92,119,142,.18); --ap2-pink: #c83688; --ap2-pink-bright: #d64291;
  --ap2-blue: #38BDF8; --ap2-blue-hover: #0EA5E9; --ap2-cyan: #7DD3FC;
  --ap2-blue-soft: #F0F9FF; --ap2-cyan-soft: #E0F2FE; --ap2-blue-border: #BAE6FD;
  --ap2-blue-text: #075985; --ap2-success: #166534; --ap2-success-soft: #F0FDF4;
  --ap2-success-border: #BBF7D0; --ap2-danger: #b74357;
  --ap2-shadow: 0 24px 70px rgba(65,86,110,.10); --ap2-soft-shadow: 0 18px 54px rgba(65,86,110,.08);
  --ap2-radius-sm: 10px; --ap2-radius-md: 16px; --ap2-radius-lg: 22px; --ap2-radius-xl: 28px;
  background: radial-gradient(circle at 12% 6%,rgba(179,214,229,.42),transparent 24rem),radial-gradient(circle at 88% 10%,rgba(216,66,145,.13),transparent 20rem),linear-gradient(180deg,#fff 0%,#f7f9fb 42%,#eef3f7 100%);
  color: var(--ap2-ink); font-family: "Inter Local","Avenir Next","Segoe UI",system-ui,sans-serif; font-size: 17px; font-weight:400; line-height: 1.48; margin: 0; min-height: 100vh;
}
.ap2-shell *, .ap2-shell *::before, .ap2-shell *::after { box-sizing: border-box; }
.ap2-shell a { color: inherit; }
.ap2-shell button,.ap2-shell input,.ap2-shell select { font: inherit; }
.ap2-shell textarea { font: inherit; }
.ap2-shell strong { font-weight:600; }
.ap2-shell button,.ap2-shell a,.ap2-shell input,.ap2-shell select,.ap2-shell summary { -webkit-tap-highlight-color: rgba(200,54,136,.14); touch-action: manipulation; }
.ap2-shell :focus-visible { outline: 3px solid rgba(200,54,136,.55); outline-offset: 3px; }
.ap2-shell [hidden] { display: none !important; }
.ap2-page-shell { min-height: 100vh; overflow-x: hidden; position: relative; }
.ap2-page-shell::before { background-image: linear-gradient(rgba(78,107,132,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(78,107,132,.04) 1px,transparent 1px); background-size: 72px 72px; content: ""; inset: 0; mask-image: linear-gradient(180deg,rgba(0,0,0,.62),transparent 72%); pointer-events: none; position: fixed; z-index: 0; }
.ap2-skip-link { background:#fff; border:1px solid rgba(56,189,248,.25); border-radius:999px; box-shadow:var(--ap2-soft-shadow); left:16px; min-height:44px; padding:8px 16px; position:absolute; top:-72px; z-index:10; }
.ap2-skip-link:focus { top:12px; }
.ap2-header,.ap2-main { position:relative; z-index:1; }
.ap2-header { margin:0 auto; max-width:1320px; padding:8px 16px 18px; }
.ap2-header__inner { align-items:center; display:grid; gap:12px; grid-template-columns:minmax(0,1fr) auto; min-height:66px; }
.ap2-header__back { grid-column:1; grid-row:1; min-width:0; }
.ap2-brand { align-items:center; display:inline-flex; gap:11px; grid-column:1; grid-row:1; justify-self:center; min-height:62px; min-width:0; text-decoration:none; }
.ap2-brand img { filter:drop-shadow(0 12px 22px rgba(210,78,174,.2)); height:62px; object-fit:contain; width:92px; }
.ap2-brand__copy { display:grid; gap:2px; min-width:0; }
.ap2-brand__copy strong { display:block; font-size:16px; font-weight:600; letter-spacing:-.04em; line-height:1; white-space:nowrap; }
.ap2-brand__tagline { color:#7e318d; display:none; font-size:10px; font-weight:650; letter-spacing:.065em; line-height:1.2; text-transform:uppercase; white-space:nowrap; }
.ap2-brand__copy small { color:var(--ap2-muted); display:none; font-size:11px; letter-spacing:.018em; line-height:1.2; margin:0; white-space:nowrap; }
.ap2-header__actions { grid-column:2; grid-row:1; justify-self:end; }
.ap2-header-account-actions { align-items:center; display:flex; gap:8px; }
.ap2-header-account-actions form { margin:0; }
.ap2-header-logout { background:var(--ap2-pink-soft); border-color:rgba(173,73,97,.22); color:#9b4058; }
.ap2-workspace-switcher { align-items:center; color:var(--ap2-muted); display:inline-flex; font-size:14px; gap:6px; margin-right:8px; }
.ap2-workspace-switcher select { background:rgba(255,255,255,.78); border:1px solid rgba(162,187,204,.42); border-radius:16px; color:var(--ap2-ink); font:inherit; font-weight:500; min-height:44px; padding:0 28px 0 12px; }
.ap2-workspace-switcher button { clip:rect(0 0 0 0); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.ap2-workspace-choice { max-width:900px; }
.ap2-workspace-choice__heading { max-width:680px; }
.ap2-workspace-choice__grid { border-bottom:1px solid var(--ap2-line); border-top:1px solid var(--ap2-line); display:grid; margin-top:32px; }
.ap2-workspace-choice__item { align-content:start; background:transparent; border:0; display:grid; gap:20px; min-width:0; padding:28px 0; text-align:left; }
.ap2-workspace-choice__item + .ap2-workspace-choice__item { border-top:1px solid var(--ap2-line); }
.ap2-workspace-choice__index { color:var(--ap2-pink); font-size:42px; font-variant-numeric:tabular-nums; font-weight:600; letter-spacing:-.06em; line-height:1; }
.ap2-workspace-choice__item p { color:var(--ap2-muted); margin:8px 0 0; }
.ap2-workspace-choice__item .ap2-button { justify-self:start; }
.ap2-dashboard-compatibility__actions { align-items:flex-start; border-top:1px solid var(--ap2-line); display:flex; flex-direction:column; gap:14px; margin-top:30px; padding-top:24px; }
.ap2-dashboard-compatibility__actions .ap2-text-link { min-height:44px; padding:10px 0; }
.ap2-header-action,.ap2-back-link { align-items:center; color:var(--ap2-blue-text); display:inline-flex; font-size:15px; font-weight:500; min-height:44px; text-decoration:none; }
.ap2-back-link { justify-content:center; min-width:44px; }
.ap2-header-action { background:rgba(255,255,255,.78); border:1px solid rgba(162,187,204,.42); border-radius:999px; box-shadow:0 10px 30px rgba(31,35,37,.05); padding:0 17px; transition:background 260ms cubic-bezier(.32,.72,0,1),border-color 260ms cubic-bezier(.32,.72,0,1),box-shadow 260ms cubic-bezier(.32,.72,0,1),color 260ms cubic-bezier(.32,.72,0,1),transform 260ms cubic-bezier(.32,.72,0,1); }
.ap2-header-action:hover { background:var(--ap2-pink); border-color:var(--ap2-pink); box-shadow:0 13px 28px rgba(200,54,136,.24); color:#fff; transform:translateY(-1px); }
.ap2-public-nav { display:none; }
.ap2-context-surface { align-self:start; background:linear-gradient(135deg,#075985,#0369A1); border-radius:var(--ap2-radius-lg); color:#fff; display:grid; gap:7px; margin:24px 0; max-inline-size:100%; min-inline-size:0; padding:20px; }
.ap2-context-surface strong { font-size:18px; font-weight:600; }
.ap2-context-surface span { opacity:.9; }
.ap2-context-surface .ap2-text-link { color:#fff; font-weight:500; text-decoration:underline; text-underline-offset:3px; }
[data-admin-room-archive-actions] form { display:grid; gap:12px; margin-top:14px; }
[data-admin-room-archive-actions] .ap2-check-row { align-items:flex-start; display:flex; gap:8px; line-height:1.4; max-inline-size:100%; }
[data-admin-room-archive-actions] .ap2-check-row input { flex:0 0 auto; margin-top:4px; }
.ap2-calculator-results-more { border-top:1px solid rgba(255,255,255,.24); margin-top:8px; padding-top:12px; }
.ap2-calculator-results-more summary { cursor:pointer; font-weight:500; }
.ap2-calculator-results-more dl { display:grid; gap:10px; margin:14px 0 0; }
.ap2-calculator-results-more dl > div { display:flex; gap:16px; justify-content:space-between; }
.ap2-calculator-results-more dt { opacity:.82; }
.ap2-calculator-results-more dd { margin:0; text-align:right; }
.ap2-calculator-results-more dd strong { font-size:inherit; font-weight:600; }
.ap2-secondary-action { margin:18px 0 0; text-align:center; }
.ap2-secondary-action a { color:var(--ap2-blue-text); font-weight:600; }
.ap2-detail-list { border-top:1px solid var(--ap2-line); display:grid; margin:28px 0; }
.ap2-detail-list div { border-bottom:1px solid var(--ap2-line); display:grid; gap:4px; padding:14px 0; }
.ap2-detail-list dt { color:var(--ap2-muted); font-size:14px; font-weight:500; }
.ap2-detail-list dd { font-weight:500; margin:0; }
.ap2-user-subscription { align-items:center; display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.ap2-user-subscription__label { color:var(--ap2-blue-text); font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.ap2-status-pill { align-items:center; border:1px solid transparent; border-radius:999px; display:inline-flex; font-size:13px; font-weight:600; line-height:1.2; max-width:100%; min-height:30px; overflow-wrap:anywhere; padding:5px 10px; }
.ap2-status-pill--confirmed { background:var(--ap2-success-soft); border-color:var(--ap2-success-border); color:var(--ap2-success); }
.ap2-status-pill--pending { background:rgba(182,125,88,.13); border-color:rgba(182,125,88,.23); color:#8a5a3b; }
.ap2-status-pill--cancelled { background:rgba(183,67,87,.12); border-color:rgba(183,67,87,.2); color:#9d3449; }
.ap2-status-pill--refunded { background:rgba(124,113,164,.13); border-color:rgba(124,113,164,.22); color:#665287; }
.ap2-status-pill--draft { background:rgba(108,120,134,.12); border-color:rgba(108,120,134,.2); color:var(--ap2-muted); }
.ap2-detail-note { color:var(--ap2-muted); display:block; font-size:14px; font-weight:400; line-height:1.45; margin-top:6px; }
.ap2-inline-edit { display:grid; gap:10px; max-width:420px; }
.ap2-inline-edit .ap2-field { font-size:14px; }
.ap2-inline-edit .ap2-field input,.ap2-inline-edit .ap2-field select { min-height:48px; }
.ap2-sr-only { height:1px; margin:-1px; overflow:hidden; position:absolute; width:1px; clip:rect(0,0,0,0); }
.ap2-action-stack { display:grid; gap:10px; max-width:680px; width:100%; }
.ap2-detail-disclosure { border-top:1px solid var(--ap2-line); margin-top:28px; padding-top:16px; }
.ap2-detail-disclosure summary { color:var(--ap2-blue-text); cursor:pointer; font-weight:500; }
.ap2-field textarea { border:1px solid var(--ap2-line); border-radius:var(--ap2-radius-md); min-height:100px; padding:13px 14px; resize:vertical; width:100%; }
.ap2-main { min-height:calc(100vh - 84px); padding-bottom:32px; }
.ap2-pwa-status { align-items:center; background:rgba(36,54,69,.96); border:1px solid rgba(255,255,255,.2); border-radius:var(--ap2-radius-md); box-shadow:var(--ap2-soft-shadow); color:#fff; display:flex; flex-wrap:wrap; gap:10px 14px; margin:0 auto 14px; max-width:1040px; padding:12px 16px; width:calc(100% - 24px); }
.ap2-pwa-status button,.ap2-pwa-update button { background:#fff; border:0; border-radius:999px; color:var(--ap2-blue-text); cursor:pointer; font:inherit; font-size:14px; font-weight:600; min-height:38px; padding:0 14px; }
.ap2-pwa-update { align-items:center; background:var(--ap2-blue-text); border:1px solid rgba(255,255,255,.22); border-radius:var(--ap2-radius-md); bottom:max(16px,env(safe-area-inset-bottom)); box-shadow:0 18px 48px rgba(31,35,37,.24); color:#fff; display:flex; gap:12px; left:50%; max-width:calc(100% - 24px); padding:12px 14px; position:fixed; transform:translateX(-50%); width:max-content; z-index:30; }
.ap2-page { background:var(--ap2-panel); border:1px solid rgba(162,187,204,.32); border-radius:var(--ap2-radius-xl); box-shadow:var(--ap2-shadow); margin:0 12px; max-inline-size:calc(100% - 24px); max-width:1040px; min-inline-size:0; padding:32px 20px 40px; width:calc(100% - 24px); }
.ap2-home { max-width:1040px; }
.ap2-page--narrow { max-width:700px; }
.ap2-eyebrow { color:var(--ap2-pink); font-size:14px; font-weight:600; letter-spacing:.08em; margin:0 0 8px; text-transform:uppercase; }
.ap2-shell h1,.ap2-shell h2 { color:var(--ap2-ink); letter-spacing:-.045em; margin:0; text-wrap:balance; }
.ap2-shell h1 { font-weight:600; }
.ap2-shell h2 { font-weight:500; }
.ap2-shell h1 { font-size:32px; line-height:1.12; }
.ap2-shell h2 { font-size:22px; line-height:1.2; }
.ap2-lead { color:var(--ap2-muted); font-size:17px; line-height:1.48; margin:16px 0 0; max-width:39rem; }
.ap2-supporting { color:var(--ap2-muted); font-size:15px; line-height:1.45; margin:9px 0 0; }
.ap2-home__intro,.ap2-page-heading { margin-bottom:28px; }
.ap2-home__intro,.ap2-home .ap2-search-form,.ap2-home__secondary { max-width:none; width:100%; }
.ap2-home .ap2-lead { max-width:none; }
.ap2-home .ap2-search-form .ap2-button,.ap2-home__secondary .ap2-button { justify-self:stretch; width:100%; }
.ap2-search-form,.ap2-time-controls { display:grid; gap:16px; }
.ap2-search-form { max-width:680px; min-width:0; width:100%; }
.ap2-search-form > label { color:var(--ap2-ink); font-size:16px; font-weight:500; }
.ap2-search-form > input:not([type="hidden"]),.ap2-search-form > select,.ap2-search-form > textarea { background:#fff; border:1px solid rgba(92,119,142,.24); border-radius:20px; box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 7px 20px rgba(65,86,110,.035); color:var(--ap2-ink); font:inherit; min-height:54px; padding:12px 16px; width:100%; }
.ap2-search-form > input:focus,.ap2-search-form > select:focus,.ap2-search-form > textarea:focus { border-color:var(--ap2-pink); box-shadow:0 0 0 3px rgba(200,54,136,.13); outline:0; }
.ap2-field-group { display:grid; gap:16px; }
.ap2-shell .ap2-field-group > input:not([type="checkbox"]):not([type="radio"]),.ap2-shell .ap2-field-group > select,.ap2-shell .ap2-field-group > textarea { background:#fff; border:1px solid var(--ap2-line); border-radius:16px; box-sizing:border-box; color:var(--ap2-ink); font:inherit; min-height:52px; padding:12px 14px; width:100%; }
.ap2-shell .ap2-field-group > input[type="file"] { padding:8px; }
.ap2-shell .ap2-field-group > input[type="file"]::file-selector-button { background:var(--ap2-blue-soft); border:0; border-radius:10px; color:var(--ap2-blue-text); cursor:pointer; font:inherit; font-weight:500; margin-right:10px; min-height:34px; padding:0 12px; }
.ap2-shell .ap2-field-group > textarea { min-height:104px; resize:vertical; }
.ap2-shell .ap2-field-group > input:focus,.ap2-shell .ap2-field-group > select:focus,.ap2-shell .ap2-field-group > textarea:focus { border-color:var(--ap2-pink); box-shadow:0 0 0 3px rgba(200,54,136,.13); outline:0; }
.ap2-field { color:var(--ap2-ink); display:grid; font-size:15px; font-weight:500; gap:8px; max-inline-size:100%; min-inline-size:0; width:100%; }
.ap2-field input:not([type="checkbox"]):not([type="radio"]),.ap2-field select { background:rgba(255,255,255,.92); border:1px solid rgba(92,119,142,.22); border-radius:20px; box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 7px 20px rgba(65,86,110,.035); color:var(--ap2-ink); min-height:54px; padding:0 16px; transition:border-color 260ms cubic-bezier(.32,.72,0,1),box-shadow 260ms cubic-bezier(.32,.72,0,1),transform 260ms cubic-bezier(.32,.72,0,1); width:100%; }
.ap2-field input[type="search"] { -webkit-appearance:none; appearance:none; }
.ap2-field:has(input[type="checkbox"]),.ap2-field:has(input[type="radio"]) { align-items:center; display:flex; gap:9px; }
.ap2-field input[type="checkbox"],.ap2-field input[type="radio"] { accent-color:var(--ap2-pink); flex:0 0 auto; height:20px; margin:0; padding:0; width:20px; }
.ap2-field input::placeholder { color:var(--ap2-muted); opacity:1; }
.ap2-field input:focus,.ap2-field select:focus { border-color:rgba(200,54,136,.72); box-shadow:0 0 0 4px rgba(216,66,145,.12); outline:0; }
.ap2-choice-group { border:0; margin:0; padding:0; }
.ap2-choice-group legend { font-size:15px; font-weight:500; margin-bottom:8px; padding:0; }
.ap2-choice-group__options { display:grid; gap:8px; }
.ap2-choice-group__options label { align-items:center; background:rgba(255,255,255,.74); border:1px solid rgba(92,119,142,.18); border-radius:var(--ap2-radius-md); display:flex; gap:10px; min-height:52px; padding:0 14px; }
.ap2-choice-group__options input { accent-color:var(--ap2-pink); height:20px; width:20px; }
.ap2-field--conditional { margin-top:12px; }
.ap2-button { align-items:center; border:1px solid transparent; border-radius:999px; cursor:pointer; display:inline-flex; font-size:16px; font-weight:500; justify-content:center; max-inline-size:100%; min-height:52px; min-inline-size:0; overflow-wrap:anywhere; padding:0 22px; text-align:center; text-decoration:none; transition:box-shadow 320ms cubic-bezier(.32,.72,0,1),transform 320ms cubic-bezier(.32,.72,0,1),background 320ms cubic-bezier(.32,.72,0,1); }
.ap2-button--primary { font-weight:600; }
.ap2-button:hover { transform:translateY(-1px); }
.ap2-button:active { transform:translateY(0) scale(.985); }
@media (hover:none), (pointer:coarse), (prefers-reduced-motion:reduce) {
  .ap2-button:hover { transform:none; }
}
.ap2-button--primary { background:var(--ap2-blue-text); box-shadow:0 15px 34px rgba(56,189,248,.24); color:#fff !important; }
.ap2-button--secondary { background:rgba(255,255,255,.86); border-color:rgba(162,187,204,.42); box-shadow:0 10px 30px rgba(31,35,37,.045); color:var(--ap2-blue-text) !important; }
.ap2-button--wide,.ap2-button--card { width:100%; }
.ap2-button.is-pending { cursor:wait; opacity:.72; }
.ap2-loading { color:var(--ap2-muted); font-size:15px; margin:0; }
.ap2-home__secondary { border-top:1px solid var(--ap2-line); display:grid; gap:24px; margin-top:40px; padding-top:24px; }
.ap2-home__secondary .ap2-button { justify-self:start; }
.ap2-trust-list { background:linear-gradient(135deg,rgba(241,247,249,.9),rgba(255,249,253,.84)); border:1px solid rgba(92,119,142,.14); border-radius:var(--ap2-radius-lg); color:var(--ap2-muted); font-size:15px; padding:4px; }
.ap2-trust-copy { align-items:stretch; display:grid; gap:0; margin:0; }
.ap2-trust-copy span { display:block; line-height:1.48; padding:14px 16px; }
.ap2-trust-copy span + span { border-top:1px solid rgba(92,119,142,.13); }

/* Text enters softly only after JavaScript confirms that motion is allowed.
   The reveal is transform/opacity-only, so it never reflows a page. */
.ap2-motion-ready [data-ap2-reveal] { opacity:0; transform:translate3d(0,18px,0); transition:opacity 680ms cubic-bezier(.22,.8,.24,1),transform 760ms cubic-bezier(.22,.8,.24,1); transition-delay:var(--ap2-reveal-delay,0ms); will-change:transform,opacity; }
.ap2-motion-ready [data-ap2-reveal].is-ap2-revealed { opacity:1; transform:translate3d(0,0,0); }
@media (prefers-reduced-motion:reduce) { .ap2-motion-ready [data-ap2-reveal] { opacity:1; transform:none; transition:none; will-change:auto; } }
.ap2-alert,.ap2-empty-state,.ap2-selected-time { background:rgba(255,255,255,.84); border:1px solid rgba(162,187,204,.28); border-radius:var(--ap2-radius-lg); box-shadow:var(--ap2-soft-shadow); padding:24px; }
.ap2-alert--error { border-left:4px solid var(--ap2-danger); }
.ap2-empty-state { display:grid; gap:16px; }
.ap2-empty-state p { margin:0; }
.ap2-empty-state .ap2-button,.ap2-selected-time .ap2-button { justify-self:start; }
.ap2-filter-control { border-bottom:1px solid var(--ap2-line); margin-bottom:24px; padding-bottom:16px; }
.ap2-filter-control summary,.ap2-more-times summary { color:var(--ap2-blue-text); cursor:pointer; font-size:16px; font-weight:500; min-height:44px; padding-top:8px; }
.ap2-filter-control__form { background:rgba(239,246,255,.62); border:1px solid rgba(56,189,248,.15); border-radius:var(--ap2-radius-lg); display:grid; gap:14px; margin-top:14px; padding:16px; }
.ap2-filter-control__form .ap2-button { justify-self:start; }
.ap2-page-heading--with-action { align-items:flex-start; display:flex; flex-wrap:wrap; gap:18px; justify-content:space-between; }
.ap2-page-heading--with-action .ap2-button { flex:0 0 auto; }
.ap2-catalog-filters { align-items:start; }
.ap2-filter-section { border:0; border-top:1px solid rgba(92,119,142,.16); display:grid; gap:12px; margin:2px 0 0; min-width:0; padding:16px 0 0; }
.ap2-filter-section legend { color:var(--ap2-ink); font-size:15px; font-weight:600; padding:0 8px 0 0; }
.ap2-filter-options { display:grid; gap:16px; }
.ap2-filter-option-group { display:grid; gap:4px; min-width:0; }
.ap2-filter-option-group strong { color:var(--ap2-muted); font-size:13px; letter-spacing:.02em; margin-bottom:3px; }
.ap2-filter-option-group label,.ap2-filter-checks label { align-items:center; cursor:pointer; display:flex; gap:9px; min-height:44px; padding:6px 0; }
.ap2-filter-option-group input,.ap2-filter-checks input { flex:0 0 auto; height:20px; width:20px; }
.ap2-filter-pair,.ap2-filter-price-grid { display:grid; gap:12px; grid-template-columns:minmax(0,1fr); }
.ap2-filter-checks { display:flex; flex-wrap:wrap; gap:4px 24px; }
.ap2-filter-actions { align-items:center; display:flex; flex-wrap:wrap; gap:12px; }
.ap2-booking-filter__actions { align-items:center; display:flex; flex-wrap:wrap; gap:14px; }
.ap2-booking-filter__actions .ap2-text-link { min-height:44px; padding:10px 0; }
.ap2-owner-booking-filter { grid-template-columns:minmax(0,1fr); }
.ap2-booking-date-group { margin-top:24px; }
.ap2-booking-date-heading { align-items:baseline; border-bottom:1px solid var(--ap2-line); display:flex; justify-content:space-between; padding:0 0 10px; }
.ap2-booking-date-heading time { color:var(--ap2-ink); font-size:20px; font-variant-numeric:tabular-nums; font-weight:500; letter-spacing:-.025em; }
.ap2-booking-date-heading span { color:var(--ap2-muted); font-size:14px; font-variant-numeric:tabular-nums; }
.ap2-booking-export { margin:0 0 26px; }
.ap2-room-list { display:grid; gap:18px; }
.ap2-room-card { background:rgba(255,255,255,.9); border:1px solid rgba(162,187,204,.30); border-radius:var(--ap2-radius-lg); box-shadow:var(--ap2-soft-shadow); display:grid; gap:16px; max-inline-size:100%; min-inline-size:0; overflow:hidden; padding:14px; width:100%; }
.ap2-room-card__media-wrap { min-width:0; position:relative; }
.ap2-room-card__media { aspect-ratio:3/2; background:#e8f0f2; border-radius:var(--ap2-radius-md); display:block; object-fit:cover; width:100%; }
.ap2-room-card__media--fallback { align-items:center; background:linear-gradient(145deg,rgba(224,242,254,.78),rgba(253,238,247,.72)); color:var(--ap2-blue-text); display:flex; font-size:15px; justify-content:center; padding:16px; text-align:center; }
.ap2-room-card__badges { align-items:center; display:flex; gap:8px; left:10px; position:absolute; right:10px; top:10px; }
.ap2-room-card__badges form { margin-left:auto; }
.ap2-room-rating,.ap2-room-favorite { align-items:center; background:rgba(255,255,255,.96); border:1px solid rgba(92,119,142,.20); border-radius:999px; box-shadow:0 4px 18px rgba(36,54,69,.10); color:var(--ap2-blue-text); display:inline-flex; font-weight:600; justify-content:center; min-height:44px; min-width:44px; padding:8px 12px; }
button.ap2-room-favorite { cursor:pointer; font:inherit; }
.ap2-room-favorite.is-active { color:var(--ap2-pink); }
.ap2-room-card__body { display:grid; gap:8px; max-inline-size:100%; min-width:0; overflow-wrap:anywhere; }
.ap2-room-card__eyebrow { color:var(--ap2-muted); font-size:13px; font-weight:600; letter-spacing:.04em; margin:0; text-transform:uppercase; }
.ap2-room-card h2 { font-size:20px; line-height:1.24; }
.ap2-room-card__location,.ap2-room-card__attribute { color:var(--ap2-muted); font-size:15px; margin:0; }
.ap2-room-card__description { color:var(--ap2-ink); font-size:15px; line-height:1.5; margin:0; }
.ap2-room-card__price { font-size:21px; font-weight:600; margin:2px 0 0; }
.ap2-room-card__rental-format,.ap2-room-card__rental-terms,.ap2-room-card__equipment { color:var(--ap2-muted); font-size:14px; line-height:1.5; margin:0; }
.ap2-room-card__availability { color:var(--ap2-blue-text); font-size:16px; font-weight:500; margin:0; }
.ap2-room-card__details { border-top:1px solid var(--ap2-line); margin-top:4px; padding-top:6px; }
.ap2-room-card__details summary { color:var(--ap2-blue-text); cursor:pointer; min-height:44px; padding:10px 0; }
.ap2-room-card__details p { color:var(--ap2-muted); font-size:14px; margin:4px 0 8px; }
.ap2-room-card .ap2-button { margin-top:8px; }

/* Public equipment-rental marketplace: a peer catalogue, never a Room card. */
.ap2-equipment-list { display:grid; gap:18px; }
.ap2-equipment-card { background:rgba(255,255,255,.9); border:1px solid rgba(162,187,204,.30); border-radius:var(--ap2-radius-lg); box-shadow:var(--ap2-soft-shadow); display:grid; gap:16px; max-inline-size:100%; min-inline-size:0; overflow:hidden; padding:14px; width:100%; }
.ap2-equipment-card__media-wrap { min-width:0; }
.ap2-equipment-card__media { aspect-ratio:3/2; background:#e8f0f2; border-radius:var(--ap2-radius-md); display:block; object-fit:cover; width:100%; }
.ap2-equipment-card__media--fallback { align-items:center; background:linear-gradient(145deg,rgba(224,242,254,.78),rgba(253,238,247,.72)); color:var(--ap2-blue-text); display:flex; font-size:15px; justify-content:center; padding:16px; text-align:center; }
.ap2-equipment-card__body { display:grid; gap:8px; max-inline-size:100%; min-width:0; overflow-wrap:anywhere; }
.ap2-equipment-card__eyebrow { color:var(--ap2-muted); font-size:13px; font-weight:600; letter-spacing:.04em; margin:0; text-transform:uppercase; }
.ap2-equipment-card h2 { font-size:20px; line-height:1.24; }
.ap2-equipment-card__identity,.ap2-equipment-card__city { color:var(--ap2-muted); font-size:15px; margin:0; }
.ap2-equipment-card__rates { display:flex; flex-wrap:wrap; gap:8px; }
.ap2-equipment-card__rates > span { background:rgba(224,242,254,.76); border:1px solid rgba(56,189,248,.18); border-radius:12px; color:var(--ap2-blue-text); display:grid; font-size:16px; font-weight:650; gap:2px; padding:8px 10px; }
.ap2-equipment-card__rates small { color:var(--ap2-muted); font-size:12px; font-weight:500; }
.ap2-equipment-card__chips { display:flex; flex-wrap:wrap; gap:7px; }
.ap2-equipment-card__chips span { background:rgba(253,238,247,.78); border:1px solid rgba(217,70,139,.18); border-radius:999px; color:var(--ap2-ink); font-size:13px; padding:5px 9px; }
.ap2-equipment-card .ap2-button { margin-top:8px; }
.ap2-equipment-empty-actions { display:flex; flex-wrap:wrap; gap:10px; }
.ap2-equipment-supply { color:var(--ap2-muted); font-size:14px; margin:20px 0 0; }
.ap2-equipment-supply a { color:var(--ap2-blue-text); font-weight:600; }
.ap2-equipment-detail { display:grid; gap:20px; }
.ap2-equipment-detail__header { background:linear-gradient(135deg,rgba(239,246,255,.92),rgba(253,238,247,.86)); border:1px solid rgba(162,187,204,.28); border-radius:var(--ap2-radius-lg); padding:24px; }
.ap2-equipment-detail__header h1 { margin:4px 0 8px; }
.ap2-equipment-detail__identity,.ap2-equipment-detail__city { color:var(--ap2-muted); margin:4px 0 0; }
.ap2-equipment-detail__gallery { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.ap2-equipment-detail__gallery img { aspect-ratio:3/2; border-radius:var(--ap2-radius-lg); display:block; inline-size:100%; object-fit:cover; }
.ap2-equipment-detail__grid { display:grid; gap:16px; }
.ap2-equipment-detail__section { display:grid; gap:12px; }
.ap2-equipment-detail__section h2,.ap2-equipment-detail__section p { margin:0; }
.ap2-equipment-detail__rates { display:grid; gap:10px; }
.ap2-equipment-detail__rates p { display:flex; flex-wrap:wrap; gap:8px; }
.ap2-equipment-detail__rates strong { color:var(--ap2-blue-text); font-size:18px; }
.ap2-equipment-detail__rates span,.ap2-equipment-detail__list span { color:var(--ap2-muted); }
.ap2-equipment-detail__list { display:grid; gap:12px; list-style:none; margin:0; padding:0; }
.ap2-equipment-detail__list li { display:grid; gap:3px; }
.ap2-equipment-detail .ap2-inline-alert { display:grid; gap:4px; }
.ap2-equipment-request { margin-top:20px; max-width:760px; }
.ap2-equipment-request fieldset { border:0; padding:0; margin:0; display:flex; gap:16px; flex-wrap:wrap; }
.ap2-equipment-request legend { font-weight:700; margin-bottom:8px; }
.ap2-equipment-request__period { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ap2-equipment-request textarea { width:100%; }
.ap2-equipment-request__summary { background:rgba(224,242,254,.62); border:1px solid rgba(56,189,248,.18); border-radius:var(--ap2-radius-md); color:var(--ap2-blue-text); display:block; font-weight:650; padding:12px 14px; }
@media (max-width:719px) { .ap2-equipment-request__period { grid-template-columns:1fr; } }
@media (min-width:720px) {
  .ap2-equipment-card { align-items:stretch; grid-template-columns:310px minmax(0,1fr); padding:16px; }
  .ap2-equipment-card__media { height:100%; min-height:220px; }
  .ap2-equipment-card__body .ap2-button { justify-self:start; width:auto; }
  .ap2-equipment-detail__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.ap2-seo-breadcrumbs { color:var(--ap2-muted); font-size:14px; margin:0 0 16px; min-width:0; }
.ap2-seo-breadcrumbs ol { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
.ap2-seo-breadcrumbs li { min-width:0; overflow-wrap:anywhere; }
.ap2-seo-breadcrumbs li+li::before { color:var(--ap2-muted); content:"/"; margin-right:8px; }
.ap2-seo-breadcrumbs a,.ap2-room-detail__related a { color:var(--ap2-blue-text); text-decoration:underline; text-underline-offset:3px; }
.ap2-seo-intro,.ap2-seo-guide { background:rgba(255,255,255,.76); border:1px solid rgba(162,187,204,.30); border-radius:var(--ap2-radius-lg); margin:0 0 22px; padding:20px; }
.ap2-seo-intro p,.ap2-seo-guide p { color:var(--ap2-muted); line-height:1.65; margin:0; max-width:820px; }
.ap2-seo-guide { margin:30px 0 0; }
.ap2-seo-guide h2 { margin:0 0 12px; }
.ap2-seo-guide ul { color:var(--ap2-muted); display:grid; gap:8px; line-height:1.55; margin:14px 0 0; padding-left:22px; }
.ap2-seo-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.ap2-room-detail__related { display:flex; flex-wrap:wrap; gap:16px; min-width:0; }
.ap2-room-detail { display:grid; gap:22px; min-inline-size:0; }
.ap2-specialist-list { display:grid; gap:18px; margin-top:24px; }
.ap2-specialist-search { display:grid; gap:12px; min-width:0; }
.ap2-specialist-search__primary { align-items:end; display:grid; gap:14px; min-width:0; }
.ap2-specialist-filter-panel { background:rgba(239,246,255,.62); border:1px solid rgba(56,189,248,.15); border-radius:var(--ap2-radius-lg); display:grid; gap:14px; margin-top:14px; padding:16px; }
.ap2-specialist-price-filter { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.ap2-multiselect { background:rgba(255,255,255,.72); border:1px solid rgba(92,119,142,.16); border-radius:var(--ap2-radius-md); min-width:0; }
.ap2-multiselect > summary { color:var(--ap2-blue-text); cursor:pointer; font-weight:500; min-height:48px; padding:13px 14px; }
.ap2-multiselect__menu { border-top:1px solid rgba(92,119,142,.14); display:grid; gap:16px; padding:14px; }
.ap2-multiselect fieldset { border:0; display:grid; gap:8px; margin:0; min-width:0; padding:0; }
.ap2-multiselect legend { color:var(--ap2-muted); font-size:13px; font-weight:600; margin-bottom:8px; padding:0; text-transform:uppercase; }
.ap2-multiselect label { align-items:center; display:flex; gap:10px; min-height:42px; }
.ap2-multiselect input { accent-color:var(--ap2-pink); flex:0 0 auto; height:20px; margin:0; width:20px; }
.ap2-filter-chips,.ap2-specialist-card__facts,.ap2-profile-facts { display:flex; flex-wrap:wrap; gap:8px; }
.ap2-filter-chips span,.ap2-specialist-card__facts span,.ap2-profile-facts span { background:rgba(56,189,248,.08); border-radius:999px; color:var(--ap2-blue-text); font-size:14px; padding:7px 10px; }
.ap2-specialist-filter-actions { align-items:center; display:flex; flex-wrap:wrap; gap:16px; }
.ap2-specialist-card { background:rgba(255,255,255,.9); border:1px solid rgba(162,187,204,.30); border-radius:var(--ap2-radius-lg); box-shadow:var(--ap2-soft-shadow); display:grid; gap:16px; overflow:hidden; padding:14px; }
.ap2-specialist-card img,.ap2-profile-hero img { aspect-ratio:3/2; border-radius:var(--ap2-radius-md); display:block; object-fit:cover; width:100%; }
.ap2-specialist-card h2 { font-size:22px; }
.ap2-specialist-card .ap2-button { margin-top:12px; width:100%; }
.ap2-specialist-card__body { display:grid; gap:8px; min-width:0; }
.ap2-specialist-card__summary { color:var(--ap2-muted); display:-webkit-box; font-size:15px; line-height:1.5; margin:2px 0; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.ap2-profile-hero { display:grid; gap:20px; }
.ap2-profile-hero .ap2-button { margin-top:16px; }
.ap2-gallery { display:grid; gap:10px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:14px; }
.ap2-gallery img,.ap2-gallery video { aspect-ratio:1; background:#0d2027; border-radius:var(--ap2-radius-md); display:block; object-fit:cover; width:100%; }
.ap2-contact-disclosure { color:var(--ap2-muted); font-size:14px; line-height:1.45; margin:12px 0 0; max-width:38rem; }
.ap2-procedure-groups,.ap2-profile-copy { display:grid; gap:20px; margin-top:16px; }
.ap2-procedure-groups section + section,.ap2-profile-copy section + section { border-top:1px solid var(--ap2-line); padding-top:18px; }
.ap2-procedure-groups h2,.ap2-profile-copy h2 { font-size:18px; letter-spacing:-.02em; margin-bottom:8px; }
.ap2-role-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.ap2-role-tabs .ap2-button { min-height:44px; padding-inline:16px; }
.ap2-role-tabs .is-active { background:rgba(200,54,136,.12); border-color:rgba(200,54,136,.35); color:var(--ap2-pink)!important; }
.ap2-calculator-grid { align-items:start; display:grid; gap:18px; }
.ap2-calculator-inputs { display:grid; gap:14px; }
.ap2-calculator-inputs .ap2-detail-disclosure { display:grid; gap:12px; }
.ap2-calculator-rate { color:var(--ap2-muted); font-size:15px; line-height:1.45; margin:0; }
.ap2-calculator-rate.is-error { color:#a02d57; }
.ap2-pagination { align-items:center; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; margin-top:24px; }
.ap2-pagination .ap2-supporting { margin:0; }
.ap2-room-detail__media img,.ap2-photo-fallback { aspect-ratio:3/2; border-radius:var(--ap2-radius-lg); display:block; object-fit:cover; width:100%; }
.ap2-room-gallery { display:grid; gap:10px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.ap2-room-gallery__item { display:block; min-width:0; }
.ap2-room-gallery__item.is-primary { grid-column:1/-1; }
.ap2-room-gallery__item img { aspect-ratio:4/3; border-radius:var(--ap2-radius-md); display:block; object-fit:cover; width:100%; }
.ap2-room-gallery__item.is-primary img { aspect-ratio:3/2; border-radius:var(--ap2-radius-lg); }
.ap2-room-video { background:#0d2027; border-radius:var(--ap2-radius-md); display:block; margin-top:10px; max-height:520px; width:100%; }
.ap2-photo-fallback { align-items:center; background:linear-gradient(145deg,rgba(224,242,254,.78),rgba(253,238,247,.72)); color:var(--ap2-blue-text); display:flex; justify-content:center; padding:24px; text-align:center; }
.ap2-room-detail__main { display:grid; gap:12px; }
.ap2-room-detail__main .ap2-lead { margin:0; }
.ap2-room-subsection { display:grid; gap:16px; grid-column:1/-1; }
.ap2-room-subsection h2 { margin:0; }
.ap2-price { color:var(--ap2-ink); font-size:31px; font-variant-numeric:tabular-nums; font-weight:600; line-height:1.1; margin:6px 0 0; }
.ap2-price span { color:var(--ap2-muted); font-size:17px; font-weight:400; }
.ap2-availability-summary { background:linear-gradient(135deg,#075985,#0369A1); border-radius:var(--ap2-radius-md); color:#fff; margin:0; max-inline-size:100%; overflow-wrap:anywhere; padding:14px; }
.ap2-disclosure-list { border-top:1px solid var(--ap2-line); min-inline-size:0; }
.ap2-disclosure-list details { border-bottom:1px solid var(--ap2-line); padding:16px 0; }
.ap2-disclosure-list summary { cursor:pointer; font-size:17px; font-weight:500; min-height:32px; }
.ap2-disclosure-list p { color:var(--ap2-muted); margin:12px 0 0; }
.ap2-simple-list { display:grid; gap:12px; list-style:none; margin:12px 0 0; padding:0; }
.ap2-simple-list li { display:grid; gap:4px; min-inline-size:0; }
.ap2-simple-list--compact { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.ap2-document-title { color:var(--ap2-ink); font-weight:500; }
.ap2-simple-list span { color:var(--ap2-muted); font-size:15px; overflow-wrap:anywhere; }
.ap2-simple-list .ap2-document-title { color:var(--ap2-ink); font-size:17px; }
.ap2-time-controls { border-bottom:1px solid var(--ap2-line); margin-bottom:24px; padding-bottom:24px; }
.ap2-time-controls .ap2-button { justify-self:start; }
.ap2-equipment-picker { border:0; display:grid; gap:8px; margin:0; padding:0; }
.ap2-equipment-picker legend { font-weight:700; margin-bottom:4px; }
.ap2-equipment-picker label { align-items:center; display:flex; gap:8px; min-width:0; }
.ap2-time-list { display:grid; gap:10px; }
.ap2-more-times { border-top:1px solid var(--ap2-line); margin-top:18px; padding-top:12px; }
.ap2-more-times .ap2-time-list { margin-top:12px; }
.ap2-time-option { align-items:center; background:rgba(255,255,255,.84); border:1px solid rgba(162,187,204,.34); border-radius:var(--ap2-radius-md); box-shadow:0 8px 22px rgba(65,86,110,.045); color:var(--ap2-ink) !important; display:flex; justify-content:space-between; min-height:58px; padding:12px 14px; text-decoration:none; transition:border-color 180ms ease,transform 180ms ease; }
.ap2-time-option:hover { border-color:rgba(200,54,136,.42); transform:translateY(-1px); }
.ap2-time-option strong { font-size:18px; font-weight:600; }
.ap2-time-option span { color:var(--ap2-muted); font-size:15px; }
.ap2-selected-time { background:linear-gradient(135deg,#075985,#0369A1); border:0; color:#fff; display:grid; gap:12px; }
.ap2-selected-time h2,.ap2-selected-time .ap2-eyebrow { color:#fff; }
.ap2-selected-time .ap2-eyebrow { opacity:.8; }
.ap2-selected-time p { margin:0; }
.ap2-selected-time .ap2-button--primary { background:linear-gradient(135deg,var(--ap2-pink-bright),#b9317b); }

/* Specialist workspace: one task first, compact queue second. */
.ap2-workspace-page { padding-bottom:112px; }
.ap2-workspace-heading { margin-bottom:26px; }
.ap2-workspace-heading .ap2-lead { margin-top:6px; }
.ap2-task-card { background:linear-gradient(145deg,#075985,#0369A1); border-radius:var(--ap2-radius-lg); box-shadow:0 22px 54px rgba(35,64,73,.18); color:#fff; display:grid; gap:22px; padding:24px; }
.ap2-task-card h2 { color:#fff; font-size:24px; font-weight:550; margin-top:4px; }
.ap2-task-card .ap2-supporting { color:rgba(255,255,255,.84); }
.ap2-task-status { color:var(--ap2-pink); font-size:18px; font-weight:500; margin:0; }
.ap2-task-card .ap2-task-status { color:#fff; }
.ap2-task-time { font-size:17px; font-variant-numeric:tabular-nums; font-weight:500; margin:8px 0 0; }
.ap2-task-address { margin:6px 0 0; }
.ap2-task-deadline { border-top:1px solid rgba(255,255,255,.22); font-size:15px; margin:16px 0 0; padding-top:14px; }
.ap2-task-card__actions { align-items:center; display:flex; }
.ap2-task-card .ap2-button { width:100%; }
.ap2-task-card .ap2-text-link { color:#fff; font-weight:500; text-underline-offset:4px; }
.ap2-workspace-queue,.ap2-booking-section { margin-top:34px; }
.ap2-owner-report-export { border-top:1px solid var(--ap2-line); box-sizing:border-box; display:flex; margin-top:28px; min-inline-size:0; padding:24px 20px 0; }
.ap2-owner-report-export .ap2-button { max-inline-size:100%; min-inline-size:0; }
.ap2-section-heading { align-items:center; display:flex; gap:20px; justify-content:space-between; margin-bottom:8px; }
.ap2-section-heading a { align-items:center; color:var(--ap2-blue-text); display:inline-flex; font-size:15px; font-weight:500; min-height:44px; }
.ap2-catalogue-photo { background:#fff; border:1px solid var(--ap2-line); display:block; height:auto; margin:14px 0; max-height:360px; max-width:100%; object-fit:contain; width:auto; }
.ap2-product-summary { align-items:center; display:grid; gap:14px; grid-template-columns:auto minmax(0,1fr); min-width:0; }
.ap2-product-thumb { background:#fff; border:1px solid var(--ap2-line); height:72px; object-fit:cover; width:72px; }
.ap2-product-line { align-items:flex-start; display:flex; gap:16px; min-width:0; }
.ap2-product-line > div:last-child { min-width:0; }
.ap2-product-thumb--empty { align-items:center; color:var(--ap2-muted); display:flex; flex:0 0 72px; font-size:.75rem; justify-content:center; text-align:center; }
[data-ap2-admin-equipment-consumables] .ap2-check-row { align-items:flex-start; cursor:pointer; grid-template-columns:auto minmax(0,1fr); }
[data-ap2-admin-equipment-consumables] .ap2-check-row input { height:20px; margin-top:3px; width:20px; }
.ap2-queue-list,.ap2-booking-list { display:grid; }
.ap2-queue-item { align-items:center; border-bottom:1px solid var(--ap2-line); display:grid; gap:14px; padding:20px 0; }
.ap2-queue-item h2,.ap2-booking-card h2 { font-size:19px; font-weight:500; margin-top:4px; }
.ap2-queue-item .ap2-task-status,.ap2-booking-card .ap2-task-status { font-size:16px; }
.ap2-queue-item .ap2-button { min-height:46px; padding-inline:18px; width:100%; }
.ap2-shell .ap2-text-link { align-items:center; color:var(--ap2-blue-text); display:inline-flex; font-weight:500; min-height:44px; scroll-margin-bottom:96px; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.ap2-shell .ap2-task-card .ap2-text-link { color:#fff; }
.ap2-shell .ap2-context-surface .ap2-text-link { color:#fff; }
.ap2-workspace-empty { align-items:start; background:rgba(255,255,255,.82); }
.ap2-workspace-empty h2,.ap2-empty-state h2 { font-weight:600; }
.ap2-workspace-empty p,.ap2-empty-state p { color:var(--ap2-muted); margin:8px 0 0; }
.ap2-booking-section > h2 { margin-bottom:12px; }
.ap2-booking-section form:not(.ap2-action-stack) { display:grid; gap:8px; max-width:680px; }
.ap2-booking-section form:not(.ap2-action-stack) > label { color:var(--ap2-ink); font-size:16px; font-weight:500; margin-top:8px; }
.ap2-booking-section form:not(.ap2-action-stack) > input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),.ap2-booking-section form:not(.ap2-action-stack) > select,.ap2-booking-section form:not(.ap2-action-stack) > textarea { background:#fff; border:1px solid var(--ap2-line); border-radius:var(--ap2-radius-md); color:var(--ap2-ink); font:inherit; min-height:52px; padding:12px 14px; width:100%; }
.ap2-booking-section form:not(.ap2-action-stack) > textarea { min-height:104px; resize:vertical; }
.ap2-booking-section form:not(.ap2-action-stack) > .ap2-button { justify-self:start; margin-top:8px; }
.ap2-booking-card { align-items:center; border-bottom:1px solid var(--ap2-line); display:grid; gap:16px; padding:20px 0; }
.ap2-booking-card__link { min-height:44px; padding-block:10px; }
.ap2-history-section { border-top:1px solid var(--ap2-line); margin-top:34px; padding-top:14px; }
.ap2-history-section > summary { color:var(--ap2-blue-text); cursor:pointer; font-size:18px; font-weight:600; min-height:48px; padding:10px 0; }
.ap2-bottom-nav { align-items:stretch; background:rgba(255,255,255,.94); border:1px solid rgba(162,187,204,.34); border-radius:22px; bottom:max(10px,env(safe-area-inset-bottom)); box-shadow:0 18px 44px rgba(35,54,71,.15); display:grid; gap:2px; grid-template-columns:repeat(4,1fr); left:10px; padding:6px; position:fixed; right:10px; z-index:8; }
.ap2-bottom-nav--five { grid-template-columns:repeat(5,minmax(0,1fr)); }
.ap2-bottom-nav a { align-items:center; border-radius:16px; color:var(--ap2-muted); display:flex; flex-direction:column; font-size:12px; font-weight:600; gap:3px; justify-content:center; line-height:1.05; min-height:56px; min-width:0; padding:5px 2px; text-align:center; text-decoration:none; }
.ap2-bottom-nav a svg { fill:none; flex:0 0 auto; height:20px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:20px; }
.ap2-bottom-nav a[aria-current="page"] { background:rgba(200,54,136,.10); color:var(--ap2-pink); }
.ap2-workspace-nav a[aria-current="page"] { background:rgba(200,54,136,.10); color:var(--ap2-pink); }
.ap2-workspace-profile-action { display:none; }
/* Owner operational pages deliberately use a quieter text rhythm: the task,
   not the visual weight, carries priority. */
.ap2-owner-operational .ap2-task-card h2 { font-weight:500; }
.ap2-owner-operational .ap2-queue-item h2 { font-weight:500; }

/* Queue items are full-width cards. Keep both the copy and its quiet
   “Open” action inside a shared inset instead of against the outer edge. */
.ap2-owner-operational .ap2-queue-item {
  min-inline-size: 0;
  padding: 20px;
}

.ap2-owner-operational .ap2-queue-item > * {
  min-inline-size: 0;
}

.ap2-owner-operational .ap2-queue-item .ap2-task-card__actions {
  justify-self: end;
  max-inline-size: 100%;
}

.ap2-owner-operational .ap2-queue-item h2,
.ap2-owner-operational .ap2-queue-item .ap2-supporting {
  overflow-wrap: anywhere;
}

@media (min-width: 760px) {
  /* A long room name yields to the action column; neither can spill beyond
     the card’s inset. */
  .ap2-owner-operational .ap2-queue-item {
    grid-template-columns: minmax(0, 1fr) fit-content(15rem);
  }

  .ap2-owner-operational .ap2-queue-item .ap2-task-card__actions,
  .ap2-owner-operational .ap2-queue-item .ap2-button {
    width: 100%;
  }
}
.ap2-owner-operational .ap2-detail-list dd { font-weight:400; }
.ap2-owner-operational .ap2-context-surface strong { font-weight:500; }
@media (max-width:759px) {
  /* The mobile workspace is a three-row app shell. Main content scrolls in its
     own row, so persistent navigation never overlays forms, links or CTAs. */
  body.ap2-shell.ap2-has-bottom-nav { height:100dvh; min-height:0; overflow:hidden; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-page-shell { display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:100%; min-height:0; overflow:hidden; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-header { grid-row:1; width:100%; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-main { grid-row:2; min-height:0; overflow-x:hidden; overflow-y:auto; padding-bottom:24px; scroll-padding-bottom:24px; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-bottom-nav { bottom:auto; grid-row:3; left:auto; margin:8px 10px max(10px,env(safe-area-inset-bottom)); position:static; right:auto; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-pwa-update { bottom:calc(90px + env(safe-area-inset-bottom)); }
  body.ap2-shell.ap2-has-bottom-nav .ap2-workspace,
  body.ap2-shell.ap2-has-bottom-nav .ap2-page.ap2-workspace-page { padding-bottom:40px; }
}
@media (max-width:540px) {
  .ap2-workspace-switcher { margin-right:0; }
  .ap2-workspace-switcher label { clip:rect(0 0 0 0); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
  .ap2-workspace-switcher select { max-width:142px; }
}
/* iOS Safari gives native date/time controls a content-based minimum width.
   Keep that internal UI inside the search card instead of letting it push the
   viewport sideways. The picker stays native; only its inline geometry is
   constrained. */
@media (max-width:759px) {
  .ap2-search-form,
  .ap2-search-form .ap2-field-group,
  .ap2-search-form .ap2-field-group > .ap2-field {
    inline-size:100%;
    max-inline-size:100%;
    min-inline-size:0;
  }
  .ap2-search-form .ap2-field input[type="date"],
  .ap2-search-form .ap2-field input[type="time"] {
    box-sizing:border-box;
    contain:inline-size;
    display:block;
    inline-size:calc(100% - 2px);
    margin-inline:1px;
    max-inline-size:calc(100% - 2px);
    min-inline-size:0;
    min-width:0;
    overflow:hidden;
    width:calc(100% - 2px);
  }
  .ap2-search-form .ap2-field input[type="date"]::-webkit-date-and-time-value,
  .ap2-search-form .ap2-field input[type="time"]::-webkit-date-and-time-value {
    display:block;
    inline-size:100%;
    margin:0;
    max-inline-size:100%;
    min-inline-size:0;
    overflow:hidden;
  }
  .ap2-shell input,
  .ap2-shell select,
  .ap2-shell textarea { scroll-margin-block:5.5rem; }
}
@media (min-width:760px) {
  .ap2-header { padding:12px 24px 24px; }
  .ap2-header__inner { grid-template-columns:auto minmax(0,1fr) auto; min-height:100px; }
  .ap2-header__back { display:none; }
  .ap2-brand { gap:14px; grid-column:1; justify-self:start; min-height:96px; }
  .ap2-brand img { height:96px; width:96px; }
  .ap2-brand__copy { display:grid; gap:4px; }
  .ap2-brand__copy strong { font-size:26px; }
  .ap2-brand__tagline { display:block; font-size:11px; }
  .ap2-brand__copy small { display:block; font-size:12px; }
  .ap2-public-nav { align-items:center; background:rgba(255,255,255,.76); border:1px solid rgba(162,187,204,.34); border-radius:999px; box-shadow:0 12px 34px rgba(31,35,37,.07); display:grid; gap:0; grid-auto-columns:minmax(0,1fr); grid-auto-flow:column; grid-column:2; justify-self:center; max-width:720px; padding:7px; width:100%; }
  .ap2-public-nav a { align-items:center; border-radius:999px; color:var(--ap2-muted); display:flex; font-size:15px; font-weight:500; justify-content:center; min-height:44px; min-width:0; padding:0 16px; position:relative; text-align:center; text-decoration:none; transition:background 260ms cubic-bezier(.32,.72,0,1),color 260ms cubic-bezier(.32,.72,0,1),transform 260ms cubic-bezier(.32,.72,0,1); }
  .ap2-public-nav a + a::before { background:linear-gradient(180deg,transparent,rgba(92,119,142,.48) 16%,rgba(92,119,142,.48) 84%,transparent); content:""; height:34px; left:0; position:absolute; top:50%; transform:translateY(-50%); width:1px; }
  .ap2-public-nav a:hover { background:rgba(200,54,136,.13); color:var(--ap2-pink); transform:translateY(-1px); }
  .ap2-workspace-nav a[aria-current="page"]:hover { background:rgba(200,54,136,.18); color:var(--ap2-pink); }
  .ap2-header__actions { grid-column:3; }
  .ap2-page { margin:0 auto; padding:48px; }
  .ap2-shell h1 { font-size:46px; line-height:1.09; }
  .ap2-shell h2 { font-size:24px; }
  .ap2-home { max-width:1040px; }
  .ap2-trust-copy { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ap2-trust-copy span { padding:15px 18px; }
  .ap2-trust-copy span + span { border-left:1px solid rgba(92,119,142,.13); border-top:0; }
  .ap2-field-group--two,.ap2-time-controls { grid-template-columns:1fr 1fr; }
  .ap2-time-controls .ap2-button,.ap2-time-controls .ap2-loading { align-self:end; }
  .ap2-room-card { align-items:stretch; grid-template-columns:310px minmax(0,1fr); padding:16px; }
  .ap2-specialist-card { align-items:stretch; grid-template-columns:260px minmax(0,1fr); padding:16px; }
  .ap2-specialist-card .ap2-button { width:auto; }
  .ap2-profile-hero { grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr); }
  .ap2-specialist-search__primary { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto; }
  .ap2-specialist-filter-panel { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ap2-specialist-price-filter,.ap2-filter-chips,.ap2-specialist-filter-actions { grid-column:1/-1; }
  .ap2-calculator-grid { grid-template-columns:minmax(0,1fr) minmax(280px,.8fr); }
  .ap2-room-card__media { height:100%; min-height:220px; }
  .ap2-room-card__body .ap2-button { justify-self:start; width:auto; }
  .ap2-room-detail { grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); }
  .ap2-room-detail__media { grid-row:span 2; }
  .ap2-disclosure-list { grid-column:1/-1; }
  .ap2-filter-control__form { align-items:end; grid-template-columns:repeat(3,minmax(0,1fr)) auto; }
  .ap2-catalog-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ap2-filter-section--wide { grid-column:1/-1; }
  .ap2-filter-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ap2-filter-pair,.ap2-filter-price-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ap2-booking-filter { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .ap2-owner-booking-filter { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .ap2-booking-filter__actions { grid-column:1/-1; }
  .ap2-workspace-page { max-width:900px; padding-bottom:54px; }
  .ap2-task-card { align-items:end; grid-template-columns:minmax(0,1fr) auto; padding:34px; }
  .ap2-task-card .ap2-button { min-width:190px; width:auto; }
  .ap2-queue-item,.ap2-booking-card { grid-template-columns:minmax(0,1fr) auto; }
  .ap2-queue-item .ap2-button { width:auto; }
  .ap2-bottom-nav { display:none; }
  .ap2-workspace-profile-action { display:inline-flex; }
  .ap2-workspace-choice__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ap2-workspace-choice__item { padding:34px; }
  .ap2-workspace-choice__item:first-child { padding-left:0; }
  .ap2-workspace-choice__item:last-child { padding-right:0; }
  .ap2-workspace-choice__item + .ap2-workspace-choice__item { border-left:1px solid var(--ap2-line); border-top:0; }
}
@media (min-width:1120px) {
  .ap2-header__inner { min-height:114px; }
  .ap2-brand { min-height:110px; }
  .ap2-brand img { height:110px; width:110px; }
  .ap2-brand__copy strong { font-size:29px; }
  .ap2-brand__tagline { font-size:12px; }
  .ap2-brand__copy small { font-size:13px; }
}
/* Android WebViews can expose a tablet-sized CSS viewport while still being
   used on a phone. The dock follows input capability, not that reported width. */
@media (hover:none) and (pointer:coarse) {
  body.ap2-shell.ap2-has-bottom-nav { height:100dvh; min-height:0; overflow:hidden; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-page-shell { display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:100%; min-height:0; overflow:hidden; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-header { grid-row:1; width:100%; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-main { grid-row:2; min-height:0; overflow-x:hidden; overflow-y:auto; padding-bottom:24px; scroll-padding-bottom:24px; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-bottom-nav { bottom:auto; display:grid; grid-row:3; left:auto; margin:8px 10px max(10px,env(safe-area-inset-bottom)); position:static; right:auto; }
  body.ap2-shell.ap2-has-bottom-nav .ap2-pwa-update { bottom:calc(90px + env(safe-area-inset-bottom)); }
  body.ap2-shell.ap2-has-bottom-nav .ap2-workspace,
  body.ap2-shell.ap2-has-bottom-nav .ap2-page.ap2-workspace-page { padding-bottom:40px; }
}

/* Shared account profile. Keep this page on the AP2 system regardless of the
   selected role shell; all legacy form semantics remain owned by the template. */
.ap2-profile-page {
  background:transparent;
  border:0;
  box-shadow:none;
  display:grid;
  gap:24px;
  margin:0 auto;
  max-inline-size:1320px;
  max-width:1320px;
  padding:24px 0 36px;
  width:calc(100% - 40px);
}

.ap2-profile-summary,
.ap2-profile-card {
  background:#fff;
  border:1px solid var(--ap2-premium-line);
  border-radius:24px;
  box-shadow:var(--ap2-premium-shadow);
  min-inline-size:0;
}

.ap2-profile-summary {
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:20px 32px;
  justify-content:space-between;
  padding:28px 32px;
}

.ap2-profile-summary h1 { font-size:clamp(30px,3vw,42px); }
.ap2-profile-summary__email { color:var(--ap2-premium-muted); font-size:15px; margin:10px 0 0; overflow-wrap:anywhere; }
.ap2-profile-summary__meta { align-items:center; display:flex; flex-wrap:wrap; gap:12px; }
.ap2-profile-badge { background:var(--ap2-premium-pink-soft); border:1px solid rgba(209,63,134,.12); border-radius:999px; color:#842b69; display:inline-flex; font-size:14px; font-weight:600; line-height:1.2; min-height:36px; align-items:center; padding:7px 13px; }

.ap2-profile-layout { align-items:start; display:grid; gap:24px; grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr); min-inline-size:0; }
/* The shared scroll-reveal observer treats this entire long form as one
   target. On phones its visible slice can stay below the observer threshold,
   leaving all profile content transparent; keep the layout immediately
   visible while preserving the shared reveal behavior on other pages. */
.ap2-motion-ready .ap2-profile-page > .ap2-profile-layout[data-ap2-reveal] { opacity:1; transform:none; transition:none; will-change:auto; }
.ap2-profile-main,.ap2-profile-rail { display:grid; gap:20px; min-inline-size:0; }
.ap2-profile-rail { align-content:start; }
.ap2-profile-card { padding:26px; }
.ap2-profile-card__heading { align-items:start; display:flex; justify-content:space-between; margin:0 0 22px; }
.ap2-profile-card__heading h2,.ap2-profile-module h2 { font-size:22px; line-height:1.2; }
.ap2-profile-card .ap2-eyebrow { font-size:12px; letter-spacing:.1em; margin:0 0 7px; }
.ap2-profile-main .app-form { display:grid; gap:22px; margin:0; }
.ap2-profile-main .form-grid { display:grid; gap:18px 20px; grid-template-columns:repeat(2,minmax(0,1fr)); min-inline-size:0; }
.ap2-profile-main .form-grid > .field-span-2,
.ap2-profile-main .profile-subgrid > .field-span-2 { grid-column:1/-1; }
.ap2-profile-main .form-subsection { border-top:1px solid var(--ap2-premium-line); margin-top:6px; padding-top:20px; }
.ap2-profile-main .form-subsection h3 { font-size:18px; margin:0; }
.ap2-profile-main .form-subsection > p:not(.ap2-eyebrow) { color:var(--ap2-premium-muted); line-height:1.5; margin:8px 0 0; }
.ap2-profile-main .field-required-note { color:var(--ap2-premium-muted); font-size:14px; grid-column:1/-1; margin:0; }
.ap2-profile-main .field-required { color:#ba3478; font-size:14px; }
.ap2-profile-main .form-grid > label,
.ap2-profile-main .profile-subgrid > label { color:var(--ap2-premium-ink); display:grid; font-size:15px; font-weight:550; gap:7px; min-inline-size:0; }
.ap2-profile-main .form-grid input:not([type=checkbox]):not([type=radio]),
.ap2-profile-main .form-grid select,
.ap2-profile-main .form-grid textarea,
.ap2-profile-main .profile-subgrid input:not([type=checkbox]):not([type=radio]) { background:#fff; border:1px solid rgba(23,23,26,.15); border-radius:13px; box-sizing:border-box; color:var(--ap2-premium-ink); font:inherit; font-size:15px; min-height:48px; min-width:0; padding:11px 13px; width:100%; }
.ap2-profile-main .form-grid textarea { min-height:104px; resize:vertical; }
.ap2-profile-main .form-grid input:focus,
.ap2-profile-main .form-grid select:focus,
.ap2-profile-main .form-grid textarea:focus,
.ap2-profile-main .profile-subgrid input:focus { border-color:var(--ap2-premium-pink); box-shadow:0 0 0 3px rgba(209,63,134,.12); outline:0; }
.ap2-profile-main .form-grid input:disabled { background:#f8f7f9; color:var(--ap2-premium-muted); }
.ap2-profile-main .muted,.ap2-profile-module .muted,.ap2-profile-archive .muted { color:var(--ap2-premium-muted); font-size:14px; line-height:1.5; }
.ap2-profile-main small.muted { display:block; margin-top:3px; }
.ap2-profile-main .profile-toggle-grid,.ap2-profile-main .profile-subgrid { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); min-inline-size:0; }
.ap2-profile-main .checkbox-field { align-items:flex-start; background:#fff; border:1px solid var(--ap2-premium-line); border-radius:15px; color:var(--ap2-premium-ink); display:flex; font-size:14px; font-weight:500; gap:10px; line-height:1.45; min-height:54px; padding:14px; }
.ap2-profile-main .checkbox-field input { accent-color:var(--ap2-premium-pink); flex:0 0 auto; height:18px; margin:1px 0 0; width:18px; }
.ap2-profile-main .checkbox-field span { min-width:0; }
.ap2-profile-main .checkbox-field span > strong,.ap2-profile-main .checkbox-field span > small { display:block; }
.ap2-profile-main .checkbox-field span > small { color:var(--ap2-premium-muted); font-size:13px; font-weight:400; margin-top:4px; }
.ap2-profile-main .document-card,.ap2-profile-module .document-card { background:#faf9fb; border:1px solid var(--ap2-premium-line); border-radius:16px; min-inline-size:0; padding:16px; }
.ap2-profile-main .document-card__label { color:var(--ap2-premium-muted); display:block; font-size:12px; font-weight:650; letter-spacing:.055em; line-height:1.4; margin-bottom:7px; text-transform:uppercase; }
.ap2-profile-main .document-card p,.ap2-profile-module .document-card p { margin:7px 0 0; }
.ap2-profile-main .tool-panel,.ap2-profile-main details.document-card { border:1px solid var(--ap2-premium-line); border-radius:16px; min-inline-size:0; overflow:hidden; }
.ap2-profile-main .tool-panel__summary { align-items:center; cursor:pointer; display:flex; gap:16px; justify-content:space-between; list-style:none; padding:18px; }
.ap2-profile-main .tool-panel__summary::-webkit-details-marker { display:none; }
.ap2-profile-main .tool-panel__copy h2 { font-size:18px; margin:0; }
.ap2-profile-main .tool-panel__note { color:var(--ap2-premium-muted); font-size:14px; line-height:1.45; margin:6px 0 0; }
.ap2-profile-main .tool-panel__content,.ap2-profile-main .active-access-profile__content { border-top:1px solid var(--ap2-premium-line); padding:18px; }
.ap2-profile-main .tool-panel__toggle,.ap2-profile-main .active-access-profile__toggle { color:var(--ap2-premium-muted); flex:0 0 auto; font-size:13px; font-weight:600; }
.ap2-profile-main .tool-panel__toggle-text--open,.ap2-profile-main details[open] .tool-panel__toggle-text--closed { display:none; }
.ap2-profile-main details[open] .tool-panel__toggle-text--open { display:inline; }
.ap2-profile-main .ap2-profile-card__heading ~ .document-file-list,
.ap2-profile-main .document-file-list { display:grid; gap:10px; min-inline-size:0; }
.ap2-profile-main .document-file-item { align-items:flex-start; background:#fff; border:1px solid var(--ap2-premium-line); border-radius:14px; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; min-inline-size:0; padding:14px; }
.ap2-profile-main .document-file-item__copy { flex:1 1 180px; min-inline-size:0; overflow-wrap:anywhere; }
.ap2-profile-main .document-file-item__copy p { margin:5px 0 0; }
.ap2-profile-main .document-file-actions { align-items:center; display:flex; flex-wrap:wrap; gap:8px; }
.ap2-profile-main .notification-channel-setup { align-items:flex-start; background:#faf9fb; border:1px solid var(--ap2-premium-line); border-radius:14px; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; margin-top:14px; padding:14px; }
.ap2-profile-main .notification-channel-setup p { color:var(--ap2-premium-muted); font-size:14px; line-height:1.45; margin:5px 0 0; }
.ap2-profile-main .notification-actions,.ap2-profile-main .profile-channel-actions { align-items:center; display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.ap2-profile-main .notification-link-code { background:var(--ap2-premium-pink-soft); border-radius:12px; display:grid; gap:8px; margin-top:12px; overflow-wrap:anywhere; padding:14px; }
.ap2-profile-main .panel-divider,.ap2-profile-module .panel-divider { border:0; border-top:1px solid var(--ap2-premium-line); margin:22px 0; }
.ap2-profile-main .button,.ap2-profile-module .button { align-items:center; background:#17171a; border:1px solid #17171a; border-radius:999px; box-shadow:none; color:#fff; cursor:pointer; display:inline-flex; font:inherit; font-size:14px; font-weight:600; justify-content:center; line-height:1.25; max-inline-size:100%; min-height:46px; min-width:0; overflow-wrap:anywhere; padding:10px 17px; text-align:center; text-decoration:none; }
.ap2-profile-main .button:hover,.ap2-profile-module .button:hover { background:#8d2be2; border-color:#8d2be2; color:#fff; }
.ap2-profile-main .button--ghost,.ap2-profile-module .button--ghost { background:#fff; border-color:rgba(23,23,26,.16); box-shadow:none; color:#17171a; }
.ap2-profile-main .button--ghost:hover,.ap2-profile-module .button--ghost:hover { background:#fff2f8; border-color:rgba(209,63,134,.28); color:#842b69; }
.ap2-profile-main .button--compact,.ap2-profile-module .button--compact { min-height:40px; padding:8px 13px; }
.ap2-profile-main .app-form > .button { justify-self:start; min-height:50px; }
.ap2-profile-main .status-chip,.ap2-profile-module .status-chip,.ap2-profile-archive .pill { align-items:center; background:#f7f1fb; border:1px solid rgba(141,43,226,.12); border-radius:999px; color:#71318c; display:inline-flex; font-size:13px; font-weight:600; justify-content:center; line-height:1.25; min-height:30px; padding:5px 10px; }
.ap2-profile-main .status-confirmed,.ap2-profile-module .status-confirmed { background:var(--ap2-success-soft); border-color:var(--ap2-success-border); color:var(--ap2-success); }
.ap2-profile-main .status-cancelled,.ap2-profile-module .status-cancelled { background:#fff2f4; border-color:rgba(183,67,87,.15); color:#963c52; }
.ap2-profile-main .status-pending,.ap2-profile-module .status-pending { background:#fff8ed; border-color:rgba(182,125,88,.18); color:#84592f; }
.ap2-profile-module > .ap2-profile-card__heading { align-items:center; margin-bottom:14px; }
.ap2-profile-module > p { color:var(--ap2-premium-muted); font-size:14px; line-height:1.5; }
.ap2-profile-module .header-actions { display:grid; gap:9px; }
.ap2-profile-module .header-actions .button { width:100%; }
.ap2-profile-module .info-stack { display:grid; gap:0; }
.ap2-profile-module .info-row { align-items:baseline; border-bottom:1px solid var(--ap2-premium-line); display:flex; flex-wrap:wrap; gap:4px 12px; justify-content:space-between; padding:11px 0; }
.ap2-profile-module .info-row span { color:var(--ap2-premium-muted); font-size:13px; }
.ap2-profile-module .info-row strong { font-size:14px; font-weight:550; overflow-wrap:anywhere; text-align:right; }
.ap2-profile-module .inline-form { margin:0; }
.ap2-profile-module .profile-channel-followup { display:grid; gap:8px; min-inline-size:0; }
.ap2-profile-archive { padding:0; }
.ap2-profile-archive .archive-panel__summary { align-items:center; cursor:pointer; display:flex; gap:16px; justify-content:space-between; list-style:none; padding:22px 26px; }
.ap2-profile-archive .archive-panel__summary::-webkit-details-marker { display:none; }
.ap2-profile-archive .archive-panel__copy h2 { font-size:19px; }
.ap2-profile-archive .archive-panel__note { color:var(--ap2-premium-muted); font-size:14px; margin:6px 0 0; }
.ap2-profile-archive .archive-panel__meta { align-items:center; display:flex; gap:12px; }
.ap2-profile-archive .archive-panel__content { border-top:1px solid var(--ap2-premium-line); padding:8px 26px 22px; }
.ap2-profile-archive .archive-list { display:grid; }
.ap2-profile-archive .archive-snippet { align-items:flex-start; border-bottom:1px solid var(--ap2-premium-line); display:flex; flex-wrap:wrap; gap:8px 16px; justify-content:space-between; padding:14px 0; }
.ap2-profile-archive .archive-snippet:last-child { border-bottom:0; }
.ap2-profile-archive .archive-snippet__line { align-items:center; display:flex; flex-wrap:wrap; gap:8px; }
.ap2-profile-archive .archive-snippet h3 { font-size:15px; margin:0; }
.ap2-profile-archive .archive-snippet__meta,.ap2-profile-archive .archive-snippet__time { color:var(--ap2-premium-muted); font-size:13px; }

@media (min-width:760px) {
  .ap2-profile-page .ap2-page-return { justify-self:start; margin-bottom:0; }
}

@media (max-width:759px) {
  .ap2-profile-page { gap:16px; margin:0 auto; max-inline-size:calc(100% - 24px); padding:12px 0 24px; width:calc(100% - 24px); }
  .ap2-profile-summary { align-items:flex-start; border-radius:20px; flex-direction:column; gap:15px; padding:20px; }
  .ap2-profile-summary h1 { font-size:30px; }
  .ap2-profile-summary__meta { align-items:flex-start; flex-direction:column; }
  .ap2-profile-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
  .ap2-profile-main,.ap2-profile-rail { gap:16px; }
  .ap2-profile-card { border-radius:19px; padding:18px; }
  .ap2-profile-main .form-grid { gap:15px; grid-template-columns:minmax(0,1fr); }
  .ap2-profile-main .form-grid > .field-span-2 { grid-column:auto; }
  .ap2-profile-main .profile-toggle-grid,.ap2-profile-main .profile-subgrid { grid-template-columns:minmax(0,1fr); }
  .ap2-profile-main .profile-subgrid > .field-span-2 { grid-column:auto; }
  .ap2-profile-main .app-form > .button,.ap2-profile-main .notification-actions .button,.ap2-profile-main .profile-channel-actions .button,.ap2-profile-module .button { width:100%; }
  .ap2-profile-main .notification-actions,.ap2-profile-main .profile-channel-actions { align-items:stretch; flex-direction:column; }
  .ap2-profile-main .document-file-actions { width:100%; }
  .ap2-profile-main .document-file-actions .button { flex:1 1 auto; }
  .ap2-profile-archive .archive-panel__summary { align-items:flex-start; padding:18px; }
  .ap2-profile-archive .archive-panel__content { padding:4px 18px 18px; }
  .ap2-profile-module .info-row { align-items:flex-start; flex-direction:column; }
  .ap2-profile-module .info-row strong { text-align:left; }
}

@media (max-width:359px) {
  .ap2-profile-page { max-inline-size:calc(100% - 16px); width:calc(100% - 16px); }
  .ap2-profile-summary { padding:17px; }
  .ap2-profile-card { padding:15px; }
  .ap2-profile-main .document-file-actions { display:grid; grid-template-columns:minmax(0,1fr); }
}

/* The shared profile is intentionally wider than the usual editorial AP2
   page, while remaining inside the product's centered 1320px shell. */
body.ap2-shell.ap2-profile-page-body .ap2-profile-page {
  background:transparent;
  border:0;
  box-shadow:none;
  margin:0 auto;
  max-inline-size:1320px;
  max-width:1320px;
  padding:24px 0 36px;
  width:calc(100% - 40px);
}

@media (max-width:759px) {
  body.ap2-shell.ap2-profile-page-body .ap2-profile-page {
    max-inline-size:calc(100% - 24px);
    padding:12px 0 24px;
    width:calc(100% - 24px);
  }
}

@media (max-width:359px) {
  body.ap2-shell.ap2-profile-page-body .ap2-profile-page {
    max-inline-size:calc(100% - 16px);
    padding-left:0;
    padding-right:0;
    width:calc(100% - 16px);
  }
}

@media (min-width:760px) {
  body.ap2-shell.ap2-profile-page-body.ap2-role-admin .ap2-public-nav.ap2-workspace-nav {
    max-width:none;
    padding:5px;
  }

  body.ap2-shell.ap2-profile-page-body.ap2-role-admin .ap2-public-nav.ap2-workspace-nav a {
    font-size:12px;
    line-height:1.15;
    min-height:42px;
    padding:4px 5px;
    text-wrap:balance;
  }

  body.ap2-shell.ap2-profile-page-body.ap2-role-admin .ap2-public-nav.ap2-workspace-nav a + a::before {
    height:24px;
  }
}
@media (max-width:359px) {
  .ap2-header { padding-left:12px; padding-right:12px; }
  .ap2-brand img { height:52px; width:76px; }
  /* Keep a usable back affordance without competing with the brand at 320 px. */
  .ap2-header__back .ap2-back-link { font-size:0; width:44px; }
  .ap2-header__back .ap2-back-link::before { content:"←"; font-size:21px; line-height:1; }
  .ap2-brand__copy { display:none; }
  .ap2-header-action { padding:0 12px; }
  .ap2-header-account-actions { gap:4px; }
  .ap2-page { border-radius:var(--ap2-radius-lg); margin-left:8px; margin-right:8px; padding-left:16px; padding-right:16px; }
  .ap2-shell h1 { font-size:29px; }
  .ap2-time-option { align-items:flex-start; flex-direction:column; gap:4px; }
  .ap2-bottom-nav--five a { font-size:11px; letter-spacing:-.01em; }
  .ap2-pwa-update { font-size:14px; gap:8px; padding:10px 12px; }
  .ap2-pwa-update button { min-height:36px; padding:0 12px; }
}
@media (max-width:759px) {
  /* The profile remains one tap away in the dock's “Ещё”; the top bar keeps
     the logout action immediately visible without crowding the brand. */
  .ap2-header-account-actions .ap2-workspace-profile-action { display:none; }
}
@media (max-width:759px) { .ap2-page.ap2-workspace-page { padding-bottom:140px; } }

/* Owner places: task-first, with secondary details kept subordinate. */
.ap2-workspace { max-width:900px; padding-bottom:152px; }
.ap2-page-heading { display:grid; gap:8px; margin-bottom:34px; }
.ap2-page-heading > .ap2-button { justify-self:start; }
.ap2-page-heading p { color:var(--ap2-muted); max-width:620px; }
.ap2-owner-group { margin-top:34px; }
.ap2-owner-group > h2 { font-size:20px; font-weight:500; margin-bottom:6px; }
.ap2-owner-place-list { display:grid; }
.ap2-owner-place { align-items:center; border-bottom:1px solid var(--ap2-line); display:grid; gap:14px; padding:20px 0; }
.ap2-owner-place h3 { font-size:20px; font-weight:500; margin:3px 0 4px; }
.ap2-owner-place p { color:var(--ap2-muted); margin:0; }
.ap2-status-title { color:var(--ap2-blue-text)!important; font-size:15px; font-weight:500; }
.ap2-owner-place__location { margin-top:2px!important; }
.ap2-owner-place__facts { display:flex; flex-wrap:wrap; gap:6px 10px; list-style:none; margin:10px 0 0; padding:0; }
.ap2-owner-place__facts li { color:var(--ap2-ink); font-size:14px; line-height:1.35; }
.ap2-owner-place__facts li + li::before { color:var(--ap2-line); content:"·"; margin-right:10px; }
.ap2-owner-place__facts .ap2-owner-place__attention { color:var(--ap2-blue-text); font-weight:500; }
.ap2-owner-place__relationship,.ap2-owner-place__compatibility-link { display:inline-block; font-size:14px; margin-top:8px!important; }
.ap2-owner-place__hint { font-size:15px; margin-top:8px!important; }
.ap2-owner-place .ap2-button { min-height:46px; width:100%; }
.ap2-form-page { max-width:680px; }
.ap2-page-intro { color:var(--ap2-muted); margin:8px 0 28px; max-width:560px; }
.ap2-owner-form { display:grid; gap:20px; }
.ap2-owner-form .ap2-field-group { display:grid; gap:8px; }
.ap2-owner-form label,.ap2-owner-form legend { color:var(--ap2-ink); font-size:16px; font-weight:500; }
.ap2-owner-form label span { color:var(--ap2-muted); font-size:14px; font-weight:400; }
.ap2-owner-form input:not([type="radio"]),.ap2-owner-form textarea { background:#fff; border:1px solid var(--ap2-line); border-radius:16px; color:var(--ap2-ink); font:inherit; min-height:52px; padding:13px 15px; width:100%; }
.ap2-owner-form textarea { min-height:auto; resize:vertical; }
.ap2-owner-form input:focus,.ap2-owner-form textarea:focus { border-color:var(--ap2-pink); box-shadow:0 0 0 3px rgba(200,54,136,.13); outline:0; }
.ap2-owner-form > .ap2-button:not(.ap2-button--wide):not(.ap2-button--card),
.ap2-owner-form > button:not(.ap2-button--wide):not(.ap2-button--card) {
  box-sizing:border-box;
  inline-size:auto;
  justify-self:start;
  max-inline-size:100%;
  width:auto;
}
.ap2-shell .ap2-form-stack { display:grid; gap:16px; max-width:680px; min-width:0; }
.ap2-shell .ap2-form-stack--compact { max-width:560px; }
.ap2-shell .ap2-form-stack > .ap2-button:not(.ap2-button--wide):not(.ap2-button--card),
.ap2-shell .ap2-form-stack > button:not(.ap2-button--wide):not(.ap2-button--card) {
  box-sizing:border-box;
  inline-size:auto;
  justify-self:start;
  max-inline-size:100%;
  width:auto;
}
.ap2-shell .ap2-equipment-pricing-grid { display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); min-width:0; }
.ap2-shell .ap2-equipment-pricing-grid label { color:var(--ap2-ink); display:grid; font-size:16px; font-weight:500; gap:7px; min-width:0; }
.ap2-shell .ap2-equipment-pricing-grid input { background:#fff; border:1px solid var(--ap2-line); border-radius:16px; box-sizing:border-box; color:var(--ap2-ink); font:inherit; min-height:52px; padding:12px 14px; width:100%; }
.ap2-shell .ap2-equipment-catalog-form > section { display:grid; gap:12px; min-width:0; }
.ap2-form-hint { color:var(--ap2-muted); font-size:15px; line-height:1.5; margin:0; }
.ap2-shell .ap2-multiselect { max-width:680px; }
.ap2-shell .ap2-multiselect summary { align-items:center; display:flex; }
.ap2-shell .ap2-multiselect__menu { max-height:min(52svh,520px); overflow:auto; overscroll-behavior:contain; }
.ap2-shell .ap2-multiselect .ap2-catalog-toggle { border-bottom:1px solid rgba(92,119,142,.14); color:var(--ap2-blue-text); font-size:14px; padding-bottom:8px; }
.ap2-shell .ap2-muted-context { background:rgba(239,246,255,.58); border:1px solid rgba(56,189,248,.13); border-radius:var(--ap2-radius-lg); display:grid; gap:8px; max-width:680px; padding:20px; }
.ap2-shell .ap2-muted-context.ap2-form-stack { margin-bottom:32px; }
.ap2-shell .ap2-muted-context > label { color:var(--ap2-ink); font-size:16px; font-weight:500; margin-top:8px; }
.ap2-shell .ap2-muted-context > input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),.ap2-shell .ap2-muted-context > select,.ap2-shell .ap2-muted-context > textarea { background:#fff; border:1px solid var(--ap2-line); border-radius:16px; color:var(--ap2-ink); font:inherit; min-height:52px; padding:12px 14px; width:100%; }
.ap2-shell .ap2-muted-context > textarea { min-height:104px; resize:vertical; }
.ap2-shell .ap2-muted-context > input:focus,.ap2-shell .ap2-muted-context > select:focus,.ap2-shell .ap2-muted-context > textarea:focus { border-color:var(--ap2-pink); box-shadow:0 0 0 3px rgba(200,54,136,.13); outline:0; }
.ap2-shell .ap2-muted-context > .ap2-button { justify-self:start; margin-top:10px; }
.ap2-shell .ap2-form-stack > label { color:var(--ap2-ink); display:grid; font-size:16px; font-weight:500; gap:7px; min-width:0; }
.ap2-shell .ap2-form-stack > label > input:not([type="checkbox"]):not([type="radio"]),.ap2-shell .ap2-form-stack > label > select,.ap2-shell .ap2-form-stack > label > textarea { background:#fff; border:1px solid var(--ap2-line); border-radius:16px; box-sizing:border-box; color:var(--ap2-ink); font:inherit; min-height:52px; padding:12px 14px; width:100%; }
.ap2-shell .ap2-form-stack > label > textarea { min-height:104px; resize:vertical; }
.ap2-field-error { color:#a21d63; font-size:14px; font-weight:500; overflow-wrap:anywhere; }
.ap2-field-hint { color:var(--ap2-muted); font-size:14px; font-weight:400; overflow-wrap:anywhere; }
.ap2-shell .ap2-form-stack > label > input[type="file"] { padding:8px; }
.ap2-shell .ap2-form-stack > label > input[type="file"]::file-selector-button { background:var(--ap2-blue-soft); border:0; border-radius:10px; color:var(--ap2-blue-text); cursor:pointer; font:inherit; font-weight:500; margin-right:10px; min-height:34px; padding:0 12px; }
.ap2-shell .ap2-form-stack > label > input:focus,.ap2-shell .ap2-form-stack > label > select:focus,.ap2-shell .ap2-form-stack > label > textarea:focus { border-color:var(--ap2-pink); box-shadow:0 0 0 3px rgba(200,54,136,.13); outline:0; }
.ap2-shell .ap2-form-stack fieldset label { color:var(--ap2-ink); display:grid; font-size:16px; font-weight:500; gap:7px; }
.ap2-shell .ap2-form-stack fieldset input:not([type="checkbox"]):not([type="radio"]),.ap2-shell .ap2-form-stack fieldset select,.ap2-shell .ap2-form-stack fieldset textarea { background:#fff; border:1px solid var(--ap2-line); border-radius:16px; color:var(--ap2-ink); font:inherit; min-height:52px; padding:12px 14px; width:100%; }
.ap2-shell .ap2-form-stack fieldset input:focus,.ap2-shell .ap2-form-stack fieldset select:focus,.ap2-shell .ap2-form-stack fieldset textarea:focus { border-color:var(--ap2-pink); box-shadow:0 0 0 3px rgba(200,54,136,.13); outline:0; }
.ap2-shell .ap2-form-stack > label:has(> input[type="checkbox"]),.ap2-shell .ap2-form-stack fieldset label:has(> input[type="checkbox"]) { align-items:center; display:flex; gap:9px; }
.ap2-shell .ap2-form-stack input[type="checkbox"] { accent-color:var(--ap2-pink); flex:0 0 auto; height:20px; margin:0; width:20px; }
.ap2-choice-row { display:flex; flex-wrap:wrap; gap:10px; }
.ap2-choice-row label,.ap2-checkbox { align-items:center; background:#fff; border:1px solid var(--ap2-line); border-radius:15px; display:inline-flex; gap:8px; min-height:46px; padding:9px 13px; }
.ap2-checkbox { color:var(--ap2-muted)!important; font-weight:400!important; }
.ap2-form-help { color:var(--ap2-muted); font-size:15px; margin-top:20px; }
.ap2-form-help a,.ap2-owner-actions a { color:var(--ap2-blue-text); }
.ap2-owner-hero { background:linear-gradient(135deg,#17171b 0%,#21151f 58%,#5b1e4e 100%); border:1px solid rgba(214,66,145,.34); border-radius:var(--ap2-radius-xl); box-shadow:0 22px 50px rgba(36,20,38,.22); color:#fff; display:grid; gap:12px; padding:28px; }
.ap2-owner-hero h1 { color:#fff; margin:0; }
.ap2-owner-hero p { color:rgba(255,255,255,.86); margin:0; }
.ap2-owner-hero .ap2-eyebrow { color:#f4a8d2; }
.ap2-owner-hero .ap2-button--secondary { background:#fff; border-color:#fff; color:var(--ap2-ink); }
.ap2-owner-actions { border-bottom:1px solid var(--ap2-line); display:flex; flex-wrap:wrap; gap:18px; padding:18px 0; }
.ap2-owner-actions a { align-items:center; display:inline-flex; font-weight:500; min-height:44px; text-decoration:none; }
.ap2-stock-page { --stock-sage:#8B9D83; --stock-clay:#B08B6E; --stock-terracotta:#C66B3D; --stock-moss:#606C38; }
.ap2-stock-section { background:#E8DCC7; border:1px solid rgba(96,108,56,.18); border-radius:28px; display:grid; gap:20px; margin-top:24px; padding:22px; }
.ap2-stock-section__heading { align-items:flex-start; display:flex; gap:16px; justify-content:space-between; }
.ap2-stock-section__heading h2 { font-size:22px; margin:0 0 6px; }
.ap2-stock-section__heading p { color:#606C38; margin:0; }
.ap2-stock-kit-form { max-width:none!important; }
.ap2-stock-kit-grid { display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); }
.ap2-stock-kit { align-items:flex-start; background:#D4B895; border:1px solid rgba(96,108,56,.18); border-radius:18px; display:flex; gap:10px; min-width:0; padding:14px; }
.ap2-stock-kit input { accent-color:#606C38; flex:0 0 auto; height:20px; width:20px; }
.ap2-stock-kit span { display:grid; gap:3px; min-width:0; }
.ap2-stock-kit small { color:#606C38; overflow-wrap:anywhere; }
.ap2-stock-list { display:grid; gap:14px; }
.ap2-stock-card { background:#E8DCC7; border:1px solid rgba(96,108,56,.25); border-radius:24px; display:grid; gap:14px; padding:18px; }
.ap2-stock-card--attention { border-color:#C66B3D; }
.ap2-stock-card__summary { align-items:start; display:grid; gap:16px; grid-template-columns:minmax(0,1fr) auto; }
.ap2-stock-card__summary h3 { font-size:19px; margin:0 0 4px; }
.ap2-stock-card__summary p { color:#606C38; margin:0; }
.ap2-stock-balance { display:flex; gap:18px; margin:0; }
.ap2-stock-balance div { display:grid; gap:2px; min-width:70px; }
.ap2-stock-balance dt { color:#606C38; font-size:12px; text-transform:uppercase; }
.ap2-stock-balance dd { font-size:22px; font-variant-numeric:tabular-nums; font-weight:650; margin:0; }
.ap2-stock-state { display:flex; }
.ap2-stock-page .ap2-status-pill { background:#D4B895; color:#606C38; }
.ap2-stock-page .ap2-status-pill--danger,.ap2-stock-page .ap2-status-pill--warning { background:#C66B3D; color:#fff; }
.ap2-stock-page .ap2-status-pill--success { background:#8B9D83; color:#fff; }
.ap2-stock-actions { border-top:1px solid rgba(96,108,56,.2); padding-top:10px; }
.ap2-stock-actions > summary { color:#606C38; cursor:pointer; font-weight:650; min-height:44px; padding:10px 0; }
.ap2-stock-actions__grid { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); padding-top:10px; }
.ap2-stock-command { background:#D4B895; border-radius:20px; display:grid; gap:12px; padding:16px; }
.ap2-stock-command h4 { font-size:17px; margin:0; }
/* Cards in the same row can have different fields. Keep their final actions
   pinned to the baseline without allowing a grid track to stretch a button. */
.ap2-stock-command .ap2-button { align-self:end; justify-self:start; min-height:52px; }
.ap2-stock-history { display:grid; list-style:none; margin:0; padding:0; }
.ap2-stock-history li { align-items:start; border-bottom:1px solid rgba(96,108,56,.22); display:grid; gap:10px; grid-template-columns:minmax(0,1fr) auto; padding:15px 0; }
.ap2-stock-history li:last-child { border-bottom:0; }
.ap2-stock-history li > div { display:grid; gap:3px; }
.ap2-stock-history span,.ap2-stock-history p { color:#606C38; margin:0; overflow-wrap:anywhere; }
.ap2-stock-history__amount { text-align:right; }
.ap2-stock-history__amount strong { font-variant-numeric:tabular-nums; }
.ap2-stock-history li > p { grid-column:1/-1; }
.ap2-stock-history__empty { grid-template-columns:1fr!important; }
@media (max-width:759px) {
  .ap2-stock-section { border-radius:22px; padding:16px; }
  .ap2-stock-section__heading,.ap2-stock-card__summary { display:grid; grid-template-columns:1fr; }
  .ap2-stock-actions__grid { grid-template-columns:1fr; }
  .ap2-stock-balance { justify-content:space-between; }
  .ap2-stock-command .ap2-button { width:100%; }
  .ap2-stock-history li { grid-template-columns:1fr; }
  .ap2-stock-history__amount { text-align:left; }
}
.ap2-muted-surface { background:rgba(239,242,243,.75); border:1px solid rgba(218,224,228,.8); border-radius:var(--ap2-radius-lg); margin-top:26px; padding:22px; }
.ap2-muted-surface h2 { font-size:20px; font-weight:500; margin:0 0 8px; }
.ap2-muted-surface p { color:var(--ap2-muted); margin:5px 0; }
.ap2-checklist { display:grid; margin-top:26px; }
.ap2-checklist article { align-items:center; border-bottom:1px solid var(--ap2-line); display:grid; gap:15px; padding:20px 0; }
.ap2-checklist h2 { font-size:19px; font-weight:500; margin:0 0 4px; }
.ap2-checklist p { color:var(--ap2-muted); margin:0; }
.ap2-checklist .ap2-button { width:100%; }
.ap2-optional { border-top:1px solid var(--ap2-line); color:var(--ap2-muted); margin-top:30px; padding-top:16px; }
.ap2-optional summary { color:var(--ap2-blue-text); cursor:pointer; font-weight:500; min-height:44px; }
.ap2-flash-stack { display:grid; gap:10px; margin-bottom:18px; }
.ap2-flash-stack .ap2-inline-alert { margin-top:0; }
.ap2-inline-alert { background:rgba(200,54,136,.08); border-radius:16px; color:var(--ap2-ink); margin-top:22px; padding:15px; }
.ap2-inline-alert--success { background:var(--ap2-success-soft); color:var(--ap2-success); }
.ap2-inline-alert--error { border:1px solid rgba(196,55,132,.25); }
.ap2-access-state { display:grid; gap:7px; }
.ap2-access-state strong { font-weight:600; }
.ap2-context-surface.ap2-access-state--available,
.ap2-context-surface.ap2-access-state--not_applicable,
.ap2-context-surface.ap2-access-state--waiting_for_owner,
.ap2-context-surface.ap2-access-state--action_required_by_owner,
.ap2-context-surface.ap2-access-state--action_required_by_specialist,
.ap2-context-surface.ap2-access-state--expired,
.ap2-context-surface.ap2-access-state--unavailable { color:var(--ap2-ink); }
.ap2-context-surface.ap2-access-state span { color:var(--ap2-muted); opacity:1; }
.ap2-access-state--available { background:var(--ap2-success-soft); border-color:var(--ap2-success-border); }
.ap2-access-state--not_applicable,
.ap2-access-state--waiting_for_owner,
.ap2-access-state--action_required_by_owner { background:var(--ap2-blue-soft); border-color:var(--ap2-blue-border); }
.ap2-access-state--action_required_by_specialist, .ap2-access-state--expired, .ap2-access-state--unavailable { background:rgba(196, 55, 132, .10); }

/* Authentication uses the server-side auth flow. These rules stay local to
   the AP2 shell and do not affect other authentication presentations. */
.ap2-shell .auth-layout { display:grid; gap:24px; margin:0 auto; max-width:760px; padding:24px 0 48px; }
.ap2-shell .auth-panel { background:rgba(255,255,255,.9); border:1px solid rgba(162,187,204,.3); border-radius:var(--ap2-radius-xl); box-shadow:var(--ap2-soft-shadow); padding:24px; }
.ap2-shell .auth-panel--content { background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(239,248,250,.88)); }
.ap2-shell .auth-panel h1 { font-size:31px; line-height:1.16; margin:6px 0 10px; }
.ap2-shell .auth-panel h2 { font-size:22px; margin:0 0 8px; }
.ap2-shell .auth-panel p { color:var(--ap2-muted); line-height:1.55; }
.ap2-shell .auth-benefits { display:none; }
.ap2-shell .auth-panel form { display:grid; gap:16px; }
.ap2-shell .auth-panel label { color:var(--ap2-ink); display:grid; font-size:16px; font-weight:500; gap:7px; }
.ap2-shell .auth-panel label > span { color:var(--ap2-ink); }
.ap2-shell .auth-panel input:not([type="checkbox"]):not([type="radio"]),.ap2-shell .auth-panel select { background:#fff; border:1px solid var(--ap2-line); border-radius:16px; box-sizing:border-box; color:var(--ap2-ink); font:inherit; min-height:52px; padding:12px 14px; width:100%; }
.ap2-shell .auth-panel input:focus,.ap2-shell .auth-panel select:focus { border-color:var(--ap2-pink); box-shadow:0 0 0 3px rgba(200,54,136,.13); outline:0; }
.ap2-shell .auth-panel .form-grid { display:grid; gap:16px; }
.ap2-shell .auth-panel .checkbox-field { align-items:flex-start; color:var(--ap2-muted); display:flex; font-size:14px; font-weight:400; line-height:1.45; }
.ap2-shell .auth-panel .checkbox-field input { flex:0 0 auto; height:20px; margin:1px 0 0; width:20px; }
.ap2-shell .auth-panel .button { align-items:center; background:linear-gradient(135deg,var(--ap2-pink-bright),#b9317b); border:0; border-radius:999px; box-shadow:0 12px 26px rgba(200,54,136,.2); color:#fff; cursor:pointer; display:inline-flex; font:inherit; font-weight:600; justify-content:center; min-height:52px; padding:0 22px; text-decoration:none; }
.ap2-shell .auth-panel .button--ghost { background:#fff; border:1px solid var(--ap2-line); box-shadow:none; color:var(--ap2-blue-text); min-height:44px; }
.ap2-shell .auth-panel .form-footnote { font-size:15px; margin:0; }
.ap2-shell .auth-panel .form-footnote a,.ap2-shell .auth-panel a { color:var(--ap2-blue-text); }
.ap2-shell .auth-panel .document-card { background:rgba(239,242,243,.7); border:1px solid var(--ap2-line); border-radius:16px; padding:14px; }
.ap2-shell .auth-panel .auth-password-shell { align-items:center; display:flex; gap:8px; }
.ap2-shell .auth-panel .auth-password-actions { flex:0 0 auto; }
.ap2-shell .auth-panel .auth-password-actions .button { padding:0 12px; }
.ap2-shell .auth-panel .auth-password-actions svg { height:18px; width:18px; }
@media (max-width:540px) {
  .ap2-shell .auth-panel .auth-password-shell { align-items:stretch; display:grid; grid-template-columns:minmax(0,1fr); }
  .ap2-shell .auth-panel .auth-password-actions { width:100%; }
  .ap2-shell .auth-panel .auth-password-actions .button { min-height:48px; width:100%; }
}
.ap2-shell .auth-panel .auth-verify-actions { display:grid; gap:10px; }
/* Public legal/trust copy stays verbatim from the approved legal templates;
   only its presentation changes in the AP2 shell. */
.ap2-shell .section-head,.ap2-shell .panel { background:rgba(255,255,255,.9); border:1px solid rgba(162,187,204,.3); border-radius:var(--ap2-radius-xl); box-shadow:var(--ap2-soft-shadow); margin:0 auto 20px; max-width:980px; padding:24px; }
.ap2-shell .section-head--wide { max-width:1080px; }
.ap2-shell .section-kicker { color:var(--ap2-pink); font-size:14px; font-weight:600; letter-spacing:.08em; margin:0 0 8px; text-transform:uppercase; }
.ap2-shell .section-head h1 { font-size:32px; line-height:1.16; margin:0; }
.ap2-shell .section-head p,.ap2-shell .panel p { color:var(--ap2-muted); line-height:1.58; }
.ap2-shell .header-meta { color:var(--ap2-muted); font-size:15px; margin-top:10px; }
.ap2-shell .legal-doc__grid { display:grid; gap:24px; grid-template-columns:minmax(0,1fr); min-inline-size:0; }
.ap2-shell .legal-doc__section { border-bottom:1px solid var(--ap2-line); min-inline-size:0; padding-bottom:20px; }
.ap2-shell .legal-doc__section:last-child { border-bottom:0; padding-bottom:0; }
.ap2-shell .legal-doc__section h2 { font-size:21px; margin:0 0 8px; }
.ap2-shell .legal-doc a { color:var(--ap2-blue-text); }
.ap2-shell .legal-doc .document-card,.ap2-shell .legal-doc .panel-note { background:rgba(239,242,243,.7); border-radius:16px; padding:16px; }
.ap2-shell .legal-doc table { border-collapse:collapse; min-width:540px; width:100%; }
.ap2-shell .legal-doc th,.ap2-shell .legal-doc td { border-bottom:1px solid var(--ap2-line); padding:10px; text-align:left; }
.ap2-shell .table-scroll { overflow-x:auto; }
.ap2-shell .ap2-table-scroll-hint { color:var(--ap2-muted); font-size:14px; margin:0 0 8px; }
.ap2-shell .responsibility-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.ap2-shell .responsibility-card { border:1px solid var(--ap2-line); border-radius:18px; padding:16px; }
@media (min-width:760px) { .ap2-shell .section-head,.ap2-shell .panel { padding:40px; } .ap2-shell .section-head h1 { font-size:44px; } }
@media (min-width:760px) { .ap2-shell .auth-layout { grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr); max-width:1080px; padding:40px 0 60px; } .ap2-shell .auth-panel { padding:34px; } .ap2-shell .auth-panel--register-context { align-self:start; } .ap2-shell .auth-panel .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .ap2-shell .auth-panel .field-span-2 { grid-column:1/-1; } }
@media (min-width:760px) {
  .ap2-workspace { padding-bottom:48px; }
  .ap2-page-heading:has(> .ap2-button) { align-items:end; gap:20px; grid-template-columns:minmax(0,1fr) auto; }
  .ap2-owner-place,.ap2-checklist article { grid-template-columns:minmax(0,1fr) auto; }
  .ap2-owner-place .ap2-button,.ap2-checklist .ap2-button { width:auto; }
  .ap2-owner-hero { padding:38px; }
  .ap2-shell .ap2-form-stack > .ap2-button,.ap2-shell .ap2-form-stack > button { justify-self:start; width:auto; }
  .ap2-owner-place-list:has(> .ap2-muted-surface) { gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:26px; }
  .ap2-owner-place-list > .ap2-muted-surface { margin-top:0; }
}

.ap2-compatibility-label { align-self:center; background:rgba(56,189,248,.09); border-radius:999px; color:var(--ap2-blue-text); font-size:12px; font-weight:500; padding:6px 10px; }

/* Calm action language: primary work stays pink, while workspace-specific
   secondary actions use quiet semantic tints instead of one generic button. */
:root {
  --ap2-pink-soft: #fff1f8;
  --ap2-blue-soft: #F0F9FF;
  --ap2-lilac-soft: #f5f1fb;
  --ap2-sand-soft: #fff8ec;
  --ap2-danger-soft: #fff1f3;
  --ap2-card-shadow: 0 10px 26px rgba(65, 86, 110, .055);
}

.ap2-shell a,
.ap2-shell .ap2-booking-card,
.ap2-shell .ap2-queue-item,
.ap2-shell .ap2-owner-place {
  text-decoration: none;
}

.ap2-shell .ap2-text-link {
  border-bottom: 1px solid rgba(56,189,248, .26);
  text-decoration: none;
  text-underline-offset: 0;
}

.ap2-shell .ap2-text-link:hover {
  border-bottom-color: var(--ap2-pink);
  color: var(--ap2-pink);
}

.ap2-shell .legal-doc a,
.ap2-shell .ap2-context-surface .ap2-text-link {
  border-bottom: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ap2-button--secondary {
  background: var(--ap2-blue-soft);
  border-color: rgba(56,189,248, .22);
  box-shadow: 0 8px 20px rgba(56,189,248, .07);
  color: var(--ap2-blue-text) !important;
}

.ap2-button--secondary:hover {
  background: #E0F2FE;
  border-color: rgba(56,189,248, .34);
}

.ap2-button--quiet {
  background: var(--ap2-lilac-soft);
  border-color: rgba(113, 91, 151, .2);
  box-shadow: 0 8px 20px rgba(113, 91, 151, .07);
  color: #665287 !important;
}

.ap2-button--filter {
  background: var(--ap2-sand-soft);
  border-color: rgba(178, 126, 62, .24);
  box-shadow: 0 8px 20px rgba(178, 126, 62, .07);
  color: #8b6330 !important;
}

.ap2-button--filter:hover {
  background: #fff3dc;
  border-color: rgba(178, 126, 62, .34);
}

.ap2-button--danger {
  background: var(--ap2-danger-soft);
  border-color: rgba(173, 73, 97, .24);
  box-shadow: 0 8px 20px rgba(173, 73, 97, .07);
  color: #9b4058 !important;
}

.ap2-button--danger:hover {
  background: #ffe8ed;
  border-color: rgba(173, 73, 97, .36);
}

.ap2-shell .ap2-booking-list {
  gap: 14px;
}

/* Section rhythm: sibling blocks should never visually run into each other on
   a narrow screen. These rules cover the recurring search → results and
   overview cards → next queue patterns without adding markup-only spacers. */
.ap2-shell .ap2-search-form + .ap2-booking-list,
.ap2-shell .ap2-search-form + .ap2-empty-state {
  margin-top: 24px;
}

.ap2-shell .ap2-booking-list + .ap2-workspace-heading {
  margin-top: 42px;
}

.ap2-shell .ap2-booking-list + .ap2-pagination,
.ap2-shell .ap2-form-stack + .ap2-muted-context,
.ap2-shell .ap2-form-stack + .ap2-inline-alert {
  margin-top: 24px;
}

.ap2-shell .ap2-workspace-heading + .ap2-booking-list {
  margin-top: 4px;
}

.ap2-shell .ap2-booking-card {
  --ap2-card-accent: var(--ap2-blue-text);
  --ap2-card-surface: rgba(255, 255, 255, .86);
  background: linear-gradient(135deg, var(--ap2-card-surface), rgba(255, 255, 255, .68));
  border: 1px solid rgba(162, 187, 204, .28);
  border-left: 3px solid var(--ap2-card-accent);
  border-radius: 18px;
  box-shadow: var(--ap2-card-shadow);
  padding: 18px 18px 18px 20px;
  transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease, background 220ms ease;
}

.ap2-shell .ap2-booking-card:hover {
  background: var(--ap2-card-surface);
  border-color: rgba(162, 187, 204, .5);
  border-left-color: var(--ap2-card-accent);
  box-shadow: 0 16px 34px rgba(65, 86, 110, .1);
  transform: translateY(-1px);
}

.ap2-shell .ap2-booking-card h2 {
  color: var(--ap2-ink);
  text-decoration: none;
}

.ap2-booking-card--bookings { --ap2-card-accent: #c45b91; --ap2-card-surface: var(--ap2-pink-soft); }
.ap2-booking-card--spaces { --ap2-card-accent: var(--ap2-blue); --ap2-card-surface: var(--ap2-blue-soft); }
.ap2-booking-card--workspaces,
.ap2-booking-card--users { --ap2-card-accent: #7c71a4; --ap2-card-surface: var(--ap2-lilac-soft); }
.ap2-booking-card--appeals { --ap2-card-accent: #b67d58; --ap2-card-surface: var(--ap2-sand-soft); }
.ap2-booking-card--incidents { --ap2-card-accent: #ae5b72; --ap2-card-surface: var(--ap2-danger-soft); }
.ap2-booking-card--delivery { --ap2-card-accent: #6e89a8; --ap2-card-surface: #f1f6fb; }
.ap2-booking-card--catalogue { --ap2-card-accent: #6b8b76; --ap2-card-surface: #f1f8f3; }
.ap2-booking-card--finance { --ap2-card-accent: #9b7b55; --ap2-card-surface: var(--ap2-sand-soft); }
.ap2-booking-card--reports { --ap2-card-accent: #787b9f; --ap2-card-surface: #f3f4fb; }

.ap2-shell .ap2-bottom-nav a {
  text-decoration: none;
}

.ap2-role-admin .ap2-button--secondary {
  background: var(--ap2-lilac-soft);
  border-color: rgba(124, 113, 164, .24);
  color: #665287 !important;
}

.ap2-role-specialist .ap2-button--secondary {
  background: var(--ap2-pink-soft);
  border-color: rgba(196, 91, 145, .22);
  color: #a23e77 !important;
}

.ap2-role-owner .ap2-button--secondary {
  background: var(--ap2-blue-soft);
  border-color: rgba(56,189,248, .24);
  color: #075985 !important;
}

/* One control rhythm across AP2 forms. Role accents keep focus discoverable
   without turning every field into a loud browser-default highlight. */
.ap2-shell { --ap2-control-accent: var(--ap2-pink); --ap2-control-border: rgba(200,54,136,.62); --ap2-control-ring: rgba(200,54,136,.13); }
.ap2-role-admin .ap2-shell { --ap2-control-accent: #7c71a4; --ap2-control-border: rgba(124,113,164,.62); --ap2-control-ring: rgba(124,113,164,.14); }
.ap2-role-owner .ap2-shell { --ap2-control-accent: var(--ap2-blue-text); --ap2-control-border: rgba(56,189,248,.62); --ap2-control-ring: rgba(56,189,248,.18); }
.ap2-role-specialist .ap2-shell { --ap2-control-accent: #c45b91; --ap2-control-border: rgba(196,91,145,.62); --ap2-control-ring: rgba(196,91,145,.14); }

.ap2-shell input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.ap2-shell select,
.ap2-shell textarea {
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(92,119,142,.22);
  border-radius: 14px;
  color: var(--ap2-ink);
  min-height: 3.25rem;
  padding: .82rem 1rem;
  transition: background 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.ap2-shell textarea { line-height: 1.5; min-height: 7rem; }
.ap2-shell input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(:placeholder-shown),
.ap2-shell textarea:not(:placeholder-shown) { color: var(--ap2-ink); }
.ap2-shell input::placeholder,
.ap2-shell textarea::placeholder { color: var(--ap2-muted); opacity: .82; }

.ap2-shell select:not([multiple]) {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23386a76' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-position: right .95rem center;
  background-repeat: no-repeat;
  background-size: 1rem;
  padding-right: 2.8rem;
}

.ap2-shell input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="reset"]):focus,
.ap2-shell select:focus,
.ap2-shell textarea:focus {
  background: #fff;
  border-color: var(--ap2-control-border);
  box-shadow: 0 0 0 3px var(--ap2-control-ring);
  outline: 0;
}

.ap2-shell input:disabled,
.ap2-shell select:disabled,
.ap2-shell textarea:disabled {
  background: rgba(238,243,247,.72);
  color: rgba(108,120,134,.72);
  cursor: not-allowed;
  opacity: 1;
}

/* Compact state language for incident and operations history. */
.ap2-state-rail {
  background: var(--ap2-line);
  border: 1px solid var(--ap2-line);
  border-radius: var(--ap2-radius-md);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 24px 0;
  overflow: hidden;
  padding: 0;
}

.ap2-state-rail li {
  background: rgba(255, 255, 255, .9);
  color: var(--ap2-muted);
  display: grid;
  gap: 4px;
  list-style: none;
  min-height: 80px;
  padding: 16px;
}

.ap2-state-rail li.is-complete {
  box-shadow: inset 3px 0 0 var(--ap2-success);
  color: var(--ap2-ink);
}

.ap2-state-rail span,
.ap2-safety-strip span {
  font-size: 13px;
  line-height: 1.4;
}

.ap2-safety-strip {
  align-items: center;
  background: var(--ap2-blue-soft);
  border: 1px solid rgba(56,189,248, .28);
  border-radius: var(--ap2-radius-md);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 24px;
  padding: 14px 16px;
}

.ap2-safety-strip span {
  background: rgba(255, 255, 255, .66);
  border-radius: 999px;
  padding: 6px 10px;
}

.ap2-operations-card {
  background: rgba(255, 255, 255, .88);
  border: 1px solid var(--ap2-line);
  border-radius: var(--ap2-radius-lg);
  margin: 16px 0;
  padding: 20px;
}

.ap2-command-grid {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 760px) {
  .ap2-public-nav.ap2-workspace-nav {
    max-width: min(820px, calc(100% - 24px));
    width: calc(100% - 24px);
  }

  .ap2-workspace-nav a {
    font-size: 13px;
    padding-inline: 9px;
    white-space: nowrap;
  }
}

@media (max-width: 640px) {
  .ap2-state-rail,
  .ap2-command-grid {
    grid-template-columns: 1fr;
  }

  .ap2-state-rail li {
    min-height: auto;
  }

  .ap2-safety-strip {
    align-items: stretch;
    flex-direction: column;
  }

  .ap2-safety-strip span {
    border-radius: 12px;
  }
}

/* Active Lasers visual code -------------------------------------------------
   The application keeps its existing information architecture, but now uses
   the neutral editorial palette and precise interaction language of the main
   site: graphite for committed actions; pink and violet for live feedback.
   ------------------------------------------------------------------------- */
:root {
  --ap2-bg: #fff;
  --ap2-panel: #fff;
  --ap2-ink: #19191d;
  --ap2-muted: #686873;
  --ap2-line: rgba(24, 24, 29, .09);
  --ap2-pink: #d13f86;
  --ap2-pink-bright: #e423c7;
  --ap2-blue: #38BDF8;
  --ap2-blue-hover: #0EA5E9;
  --ap2-cyan: #7DD3FC;
  --ap2-blue-soft: #F0F9FF;
  --ap2-cyan-soft: #E0F2FE;
  --ap2-blue-border: #BAE6FD;
  --ap2-blue-text: #075985;
  --ap2-success: #166534;
  --ap2-success-soft: #F0FDF4;
  --ap2-success-border: #BBF7D0;
  --ap2-danger: #b74357;
  --ap2-pink-soft: #faf3fc;
  --ap2-lilac-soft: #f7f1fb;
  --ap2-sand-soft: #fbf7f9;
  --ap2-danger-soft: #fff1f4;
  --ap2-shadow: 0 18px 50px rgba(15, 15, 20, .05);
  --ap2-soft-shadow: 0 12px 30px rgba(15, 15, 20, .05);
  --ap2-card-shadow: 0 12px 30px rgba(15, 15, 20, .05);
  --ap2-radius-sm: 12px;
  --ap2-radius-md: 16px;
  --ap2-radius-lg: 20px;
  --ap2-radius-xl: 24px;
}

.ap2-shell {
  background: #fff;
  color: var(--ap2-ink);
  font-family: "Inter Local", "Avenir Next", "Segoe UI", system-ui, sans-serif;
}

.ap2-page-shell::before {
  background-image: none;
}

.ap2-header {
  border-bottom: 1px solid var(--ap2-line);
}

.ap2-header-action {
  background: #fff;
  border-color: rgba(25, 25, 29, .16);
  box-shadow: none;
  color: var(--ap2-ink);
}

.ap2-header-action:hover,
.ap2-header-action:focus-visible {
  background: #faf3fc;
  border-color: rgba(141, 43, 226, .42);
  box-shadow: none;
  color: var(--ap2-ink);
}

.ap2-back-link,
.ap2-secondary-action a,
.ap2-owner-actions a,
.ap2-section-heading a,
.ap2-filter-control summary,
.ap2-more-times summary,
.ap2-detail-disclosure summary,
.ap2-optional summary,
.ap2-room-card__availability,
.ap2-room-card__details summary {
  color: var(--ap2-ink);
}

/* A return action belongs to the page content rather than only to the
   mobile header slot. This keeps the route out of the way of the header
   navigation while making it equally discoverable on a desktop or phone. */
.ap2-page-return {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(25, 25, 29, .18);
  border-radius: 999px;
  box-shadow: none;
  color: var(--ap2-ink);
  display: inline-flex;
  font-size: 15px;
  font-weight: 600;
  justify-content: center;
  margin: 0 0 24px;
  max-inline-size: 100%;
  min-block-size: 44px;
  min-inline-size: 0;
  overflow-wrap: anywhere;
  padding: 0 16px;
  text-align: center;
  text-decoration: none;
  transition: background 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease;
}

.ap2-page-return:hover,
.ap2-page-return:focus-visible {
  background: #faf3fc;
  border-color: rgba(141, 43, 226, .42);
  box-shadow: 0 8px 20px rgba(141, 43, 226, .08);
  color: #6e278f;
}

.ap2-page,
.ap2-shell .section-head,
.ap2-shell .panel,
.ap2-shell .auth-panel {
  background: #fff;
  border-color: var(--ap2-line);
  box-shadow: var(--ap2-shadow);
}

.ap2-eyebrow,
.ap2-shell .section-kicker {
  color: #8d2be2;
  letter-spacing: .1em;
}

.ap2-shell h1,
.ap2-shell h2 {
  color: var(--ap2-ink);
}

.ap2-button,
.ap2-shell .auth-panel .button {
  border-radius: 999px;
  font-weight: 650;
  letter-spacing: -.01em;
}

.ap2-button--primary,
.ap2-shell .auth-panel .button:not(.button--ghost) {
  background: var(--ap2-premium-ink);
  border-color: var(--ap2-premium-ink);
  box-shadow: 0 14px 30px rgba(23, 23, 26, .12);
  color: #fff !important;
}

.ap2-button--primary:hover,
.ap2-button--primary:focus-visible,
.ap2-shell .auth-panel .button:not(.button--ghost):hover,
.ap2-shell .auth-panel .button:not(.button--ghost):focus-visible {
  background: linear-gradient(110deg, var(--ap2-premium-pink), var(--ap2-premium-violet));
  border-color: transparent;
  box-shadow: 0 14px 30px rgba(141, 43, 226, .18);
}

.ap2-button--secondary,
.ap2-button--quiet,
.ap2-button--filter,
.ap2-role-admin .ap2-button--secondary,
.ap2-role-owner .ap2-button--secondary,
.ap2-role-specialist .ap2-button--secondary,
.ap2-shell .auth-panel .button--ghost {
  background: #fff;
  border-color: rgba(25, 25, 29, .18);
  box-shadow: none;
  color: var(--ap2-ink) !important;
}

.ap2-button--secondary:hover,
.ap2-button--secondary:focus-visible,
.ap2-button--quiet:hover,
.ap2-button--quiet:focus-visible,
.ap2-button--filter:hover,
.ap2-button--filter:focus-visible,
.ap2-shell .auth-panel .button--ghost:hover,
.ap2-shell .auth-panel .button--ghost:focus-visible {
  background: #faf3fc;
  border-color: rgba(141, 43, 226, .42);
  box-shadow: none;
}

.ap2-button--danger {
  background: var(--ap2-danger-soft);
  border-color: rgba(183, 67, 87, .28);
  box-shadow: none;
  color: #a23856 !important;
}

.ap2-button--danger:hover,
.ap2-button--danger:focus-visible {
  background: #ffe8ef;
  border-color: rgba(183, 67, 87, .48);
}

.ap2-shell input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.ap2-shell select,
.ap2-shell textarea {
  background-color: #fff;
  border-color: rgba(25, 25, 29, .16);
  border-radius: 14px;
  box-shadow: none;
  color: var(--ap2-ink);
}

.ap2-shell input::placeholder,
.ap2-shell textarea::placeholder {
  color: #858590;
  opacity: 1;
}

.ap2-shell select:not([multiple]) {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2319191d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

.ap2-shell input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="reset"]):focus,
.ap2-shell select:focus,
.ap2-shell textarea:focus {
  background: #fff;
  border-color: #d13f86;
  box-shadow: 0 0 0 3px rgba(209, 63, 134, .16);
}

.ap2-shell :focus-visible {
  outline: 2px solid #d13f86;
  outline-offset: 3px;
}

.ap2-shell input:disabled,
.ap2-shell select:disabled,
.ap2-shell textarea:disabled {
  background: #f1f1f4;
  color: #858590;
}

.ap2-filter-control__form,
.ap2-specialist-filter-panel,
.ap2-shell .ap2-muted-context,
.ap2-muted-surface {
  background: #f7f7f9;
  border-color: var(--ap2-line);
}

.ap2-choice-group__options label,
.ap2-choice-row label,
.ap2-checkbox,
.ap2-multiselect {
  background: #fff;
  border-color: var(--ap2-line);
}

.ap2-alert,
.ap2-empty-state,
.ap2-selected-time,
.ap2-room-card,
.ap2-specialist-card,
.ap2-shell .ap2-booking-card,
.ap2-shell .ap2-queue-item,
.ap2-shell .ap2-owner-place,
.ap2-operations-card {
  background: #fff;
  border-color: var(--ap2-line);
  box-shadow: var(--ap2-card-shadow);
}

.ap2-room-card__media,
.ap2-room-card__media--fallback,
.ap2-photo-fallback {
  background: #f7f7f9;
  color: var(--ap2-ink);
}

.ap2-shell .ap2-booking-card:hover,
.ap2-room-card:hover,
.ap2-specialist-card:hover {
  border-color: rgba(25, 25, 29, .18);
  box-shadow: 0 18px 42px rgba(15, 15, 20, .08);
}

.ap2-booking-card--bookings { --ap2-card-accent: #d13f86; }
.ap2-booking-card--spaces { --ap2-card-accent: #8d2be2; }
.ap2-booking-card--workspaces,
.ap2-booking-card--users { --ap2-card-accent: #7666a8; }
.ap2-booking-card--appeals { --ap2-card-accent: #b56d93; }
.ap2-booking-card--incidents { --ap2-card-accent: #b74357; }
.ap2-booking-card--delivery { --ap2-card-accent: #7085a8; }
.ap2-booking-card--catalogue { --ap2-card-accent: #647a73; }
.ap2-booking-card--finance { --ap2-card-accent: #967458; }
.ap2-booking-card--reports { --ap2-card-accent: #7c71a4; }

.ap2-status-pill,
.ap2-filter-chips span,
.ap2-specialist-card__facts span,
.ap2-profile-facts span,
.ap2-compatibility-label {
  background: #faf3fc;
  border-color: rgba(141, 43, 226, .18);
  color: #6e278f;
}

.ap2-status-pill--confirmed {
  background: var(--ap2-success-soft);
  border-color: var(--ap2-success-border);
  color: var(--ap2-success);
}

.ap2-status-pill--pending {
  background: #fff5e9;
  border-color: rgba(174, 117, 50, .22);
  color: #8a5a2d;
}

.ap2-status-pill--cancelled {
  background: var(--ap2-danger-soft);
  border-color: rgba(183, 67, 87, .22);
  color: #a23856;
}

.ap2-status-pill--draft {
  background: #f1f1f4;
  border-color: rgba(25, 25, 29, .1);
  color: #686873;
}

.ap2-owner-hero,
.ap2-context-surface {
  background: #17171a;
  box-shadow: 0 18px 42px rgba(15, 15, 20, .15);
}

.ap2-owner-hero h1 {
  color: #e423c7;
}

.ap2-owner-hero .ap2-button--secondary {
  background: #fff;
  border-color: #fff;
  color: #17171a !important;
}

/* Publication state must stay legible on the black owner surface. The bright
   brand gradient gives it a clear status hierarchy without changing the card. */
.ap2-shell .ap2-owner-hero h1 {
  color: #f38bd9 !important;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .ap2-shell .ap2-owner-hero h1 {
    background: linear-gradient(105deg, #ff86d8 0%, #b681ff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

.ap2-shell .ap2-text-link {
  border-bottom-color: rgba(25, 25, 29, .28);
  color: var(--ap2-ink);
  text-decoration-thickness: 1px;
}

.ap2-shell .ap2-text-link:hover,
.ap2-shell .ap2-text-link:focus-visible {
  border-bottom-color: #d13f86;
  color: #d13f86;
}

.ap2-bottom-nav {
  background: rgba(255, 255, 255, .96);
  border-color: rgba(25, 25, 29, .12);
  box-shadow: 0 18px 50px rgba(15, 15, 20, .12);
}

.ap2-bottom-nav a {
  color: #686873;
}

.ap2-bottom-nav a[aria-current="page"],
.ap2-workspace-nav a[aria-current="page"] {
  background: #faf3fc;
  color: #8d2be2;
}

/* The business-tools links are navigation actions, not inline prose. */
.ap2-owner-actions {
  gap: 12px;
  max-inline-size: 100%;
  min-inline-size: 0;
}

/* These are navigational links. Primary and secondary CTA buttons in the
   same container keep their semantic button treatment. */
.ap2-owner-actions > a:not(.ap2-button) {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(25, 25, 29, .18);
  border-radius: 999px;
  box-shadow: none;
  color: var(--ap2-ink);
  display: inline-flex;
  font-weight: 600;
  justify-content: center;
  min-height: 44px;
  padding: 0 16px;
  text-decoration: none;
  transition: background 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease;
}

.ap2-owner-actions > a:not(.ap2-button):hover,
.ap2-owner-actions > a:not(.ap2-button):focus-visible {
  background: #faf3fc;
  border-color: rgba(141, 43, 226, .42);
  box-shadow: 0 8px 20px rgba(141, 43, 226, .08);
  color: #6e278f;
}

/* The action row may wrap, but no individual action may widen its card. */
.ap2-owner-actions > .ap2-button,
.ap2-owner-place > .ap2-button,
.ap2-owner-hero > .ap2-button {
  max-inline-size: 100%;
  min-inline-size: 0;
}

/* Owner-place rows are cards, not table rows: keep every datum away from
   the shared edge, including the secondary action. */
.ap2-owner-place {
  padding: 28px;
}

/* Equipment names can be long. Give the description its own shrinkable
   column, while the CTA either sits safely alongside it or moves below. */
.ap2-owner-equipment-list .ap2-owner-place > div {
  min-inline-size: 0;
}

.ap2-owner-equipment-list .ap2-owner-place h2,
.ap2-owner-equipment-list .ap2-owner-place p {
  overflow-wrap: anywhere;
}

/* Working-hours rows separate the closed state from the time controls so
   labels remain easy to scan and tap on compact screens. */
.ap2-shell .ap2-hours-fieldset {
  display: grid;
  gap: 16px;
  padding: 32px;
}

.ap2-shell .ap2-hours-fieldset > .ap2-hours-fieldset__closed {
  align-items: center;
  display: flex;
  gap: 10px;
  min-height: 44px;
}

.ap2-shell .ap2-hours-fieldset > .ap2-hours-fieldset__closed input {
  margin: 0;
}

.ap2-shell .ap2-hours-fieldset > .ap2-hours-fieldset__time {
  display: grid;
  gap: 8px;
}

/* Media management uses bounded previews; source images never determine the
   height of an owner form. */
.ap2-owner-media-list {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  margin-top: 20px;
}

.ap2-owner-media-card {
  background: #fff;
  border: 1px solid var(--ap2-line);
  border-radius: var(--ap2-radius-md);
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 12px;
}

.ap2-owner-media-card__preview {
  aspect-ratio: 4 / 3;
  background: #f7f7f9;
  border-radius: 12px;
  overflow: hidden;
}

.ap2-owner-media-card__preview img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.ap2-owner-media-card form {
  margin: 0;
}

.ap2-owner-media-card .ap2-button {
  min-height: 44px;
  width: 100%;
}

/* The document replacement form is a complete control group, not a loose
   label directly against the page edge. */
.ap2-shell .ap2-document-upload {
  background: #f7f7f9;
  border: 1px solid var(--ap2-line);
  border-radius: var(--ap2-radius-lg);
  margin-top: 24px;
  padding: 28px;
}

.ap2-shell .ap2-document-upload .ap2-field-hint {
  margin: 0;
}

/* A price-inclusion checkbox is a complete form control, with a reliable
   touch target and breathing room on every side. */
.ap2-shell .ap2-equipment-included-toggle {
  align-items: center;
  background: #f7f7f9;
  border: 1px solid var(--ap2-line);
  border-radius: var(--ap2-radius-md);
  cursor: pointer;
  display: flex;
  gap: 12px;
  min-height: 52px;
  padding: 14px 18px;
}

.ap2-shell .ap2-equipment-included-toggle input[type="checkbox"] {
  margin: 0;
}

/* The room name is the key datum on a dark task card. Reinstate a light
   brand treatment after the general heading colour rules. */
.ap2-shell .ap2-task-card h2 {
  color: #ffe0f4 !important;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .ap2-shell .ap2-task-card h2 {
    background: linear-gradient(105deg, #ffe0f4 0%, #f9e4ff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

@media (max-width: 759px) {
  .ap2-owner-place {
    padding: 20px;
  }

  .ap2-owner-actions > .ap2-button,
  .ap2-owner-place > .ap2-button,
  .ap2-owner-hero > .ap2-button {
    width: 100%;
  }
}

@media (min-width: 480px) and (max-width: 759px) {
  .ap2-owner-equipment-list .ap2-owner-place {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .ap2-owner-equipment-list .ap2-owner-place > .ap2-button {
    width: auto;
  }
}

/* Subscription checkout is a form workflow, not a generic owner-place row.
   Give price, consent and payment their own shrinkable regions so long legal
   copy can wrap without pushing the CTA outside its card. */
.ap2-owner-subscription .ap2-subscription-plans {
  display: grid;
  gap: 14px;
}

.ap2-owner-subscription .ap2-subscription-plan {
  align-items: stretch;
  gap: 20px;
  grid-template-columns: minmax(0, 1fr);
  max-inline-size: 100%;
  min-inline-size: 0;
}

.ap2-owner-subscription .ap2-subscription-plan__details,
.ap2-owner-subscription .ap2-subscription-plan__controls {
  max-inline-size: 100%;
  min-inline-size: 0;
}

.ap2-owner-subscription .ap2-subscription-plan__details {
  display: grid;
  gap: 4px;
}

.ap2-owner-subscription .ap2-subscription-plan__details strong,
.ap2-owner-subscription .ap2-subscription-plan__details p {
  overflow-wrap: anywhere;
}

.ap2-owner-subscription .ap2-subscription-plan__controls {
  display: grid;
  gap: 12px;
}

.ap2-owner-subscription .ap2-subscription-plan__controls .ap2-checkbox {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  line-height: 1.4;
  max-inline-size: 100%;
  min-inline-size: 0;
  overflow-wrap: anywhere;
  padding: 12px 14px;
  width: 100%;
}

.ap2-owner-subscription .ap2-subscription-plan__controls .ap2-checkbox input {
  flex: 0 0 auto;
  margin: .2em 0 0;
}

.ap2-owner-subscription .ap2-subscription-plan__controls .ap2-checkbox span {
  min-inline-size: 0;
}

.ap2-owner-subscription .ap2-subscription-plan__submit {
  justify-self: stretch;
  max-inline-size: 100%;
  min-inline-size: 0;
  width: 100%;
}

@media (min-width: 960px) {
  .ap2-owner-subscription .ap2-subscription-plan {
    gap: 24px;
    grid-template-columns: minmax(150px, .75fr) minmax(0, 1.75fr);
  }

  .ap2-owner-subscription .ap2-subscription-plan__controls {
    align-items: start;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .ap2-owner-subscription .ap2-subscription-plan__submit {
    grid-column: 1 / -1;
    justify-self: start;
    width: auto;
  }
}

/* Connection CTAs sit inside their own compact action lane. This keeps the
   dark primary action distinct without allowing its visual weight or shadow
   to run into the disclosure rule or page edge. */
.ap2-connections .ap2-connection {
  max-inline-size: 100%;
  min-inline-size: 0;
}

.ap2-connections .ap2-connection-action {
  display: flex;
  margin: 16px 0 0;
  max-inline-size: 100%;
  min-inline-size: 0;
}

.ap2-connections .ap2-connection-action .ap2-button {
  box-shadow: 0 8px 18px rgba(20, 20, 25, .10);
  font-size: 15px;
  max-inline-size: min(100%, 12rem);
  min-height: 46px;
  min-inline-size: 0;
  overflow-wrap: anywhere;
  padding-inline: 16px;
}

@media (max-width: 359px) {
  .ap2-connections .ap2-connection-action {
    display: grid;
  }

  .ap2-connections .ap2-connection-action .ap2-button {
    justify-self: stretch;
    max-inline-size: 100%;
    width: 100%;
  }
}

/* Content-containment system -------------------------------------------------
   Every AP2 surface uses the same contract: copy may shrink and wrap; controls
   remain within the surface; actions occupy a bounded lane rather than an
   implicit `auto` column at the page edge. This deliberately fixes geometry
   instead of hiding horizontal overflow. */
.ap2-shell .ap2-page,
.ap2-shell .ap2-workspace,
.ap2-shell .ap2-page-heading,
.ap2-shell .ap2-workspace-heading,
.ap2-shell .ap2-section-heading,
.ap2-shell .ap2-owner-actions,
.ap2-shell .ap2-empty-state,
.ap2-shell .ap2-context-surface,
.ap2-shell .ap2-alert,
.ap2-shell .ap2-selected-time,
.ap2-shell .ap2-queue-item,
.ap2-shell .ap2-booking-card,
.ap2-shell .ap2-owner-place,
.ap2-shell .ap2-task-card,
.ap2-shell .ap2-operations-card,
.ap2-shell .ap2-form-stack,
.ap2-shell .ap2-search-form,
.ap2-shell .ap2-filter-control__form,
.ap2-shell .ap2-muted-context,
.ap2-shell .ap2-command-grid,
.ap2-shell .ap2-action-stack,
.ap2-shell .ap2-card-actions,
.ap2-shell .ap2-card-edit-controls {
  max-inline-size: 100%;
  min-inline-size: 0;
}

@media (min-width:760px) {
  .ap2-shell .ap2-page {
    max-inline-size: 1320px;
    max-width: 1320px;
  }
}

.ap2-shell .ap2-page :is(form, fieldset, label, .ap2-field, .ap2-field-group, .ap2-choice-row, .ap2-checkbox),
.ap2-shell .ap2-card--with-actions > * {
  max-inline-size: 100%;
  min-inline-size: 0;
}

.ap2-shell .ap2-page :is(input, select, textarea, button),
.ap2-shell .ap2-card-actions > *,
.ap2-shell .ap2-card-edit-controls > * {
  max-inline-size: 100%;
  min-inline-size: 0;
}

.ap2-shell .ap2-page :is(h1, h2, h3, p, li, dt, dd, small, strong, .ap2-lead, .ap2-supporting),
.ap2-shell .ap2-card-copy,
.ap2-shell .ap2-task-card__content {
  overflow-wrap: anywhere;
}

/* Headings can carry a control, but neither title nor control may force a
   horizontal track wider than the page. */
.ap2-shell .ap2-section-heading,
.ap2-shell .ap2-page-heading--with-action {
  flex-wrap: wrap;
}

.ap2-shell .ap2-section-heading > *,
.ap2-shell .ap2-page-heading--with-action > * {
  max-inline-size: 100%;
  min-inline-size: 0;
}

.ap2-shell .ap2-section-heading > .ap2-button,
.ap2-shell .ap2-page-heading--with-action > .ap2-button,
.ap2-shell .ap2-owner-actions > a {
  flex: 0 1 auto;
  max-inline-size: 100%;
  min-inline-size: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

/* The same action lane is shared by booking history, queues, catalogue cards
   and owner cards. Its 16rem cap leaves room for the actual record, while a
   longer label wraps inside the action instead of extending outside the card. */
.ap2-shell .ap2-card--with-actions {
  align-items: center;
  gap: clamp(12px, 1.5vw, 20px);
}

.ap2-shell .ap2-queue-item.ap2-card--with-actions {
  padding-inline: clamp(20px, 2.2vw, 28px);
}

.ap2-shell .ap2-card-actions,
.ap2-shell .ap2-card-edit-controls {
  display: grid;
  gap: 10px;
  justify-items: start;
}

.ap2-shell .ap2-card-actions form {
  margin: 0;
  max-inline-size: 100%;
  min-inline-size: 0;
}

.ap2-shell .ap2-card-action {
  max-inline-size: 100%;
  min-inline-size: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

/* A navigation action inside a card is rendered as a compact outlined control,
   not as an underlined word that can sit against the card boundary. */
.ap2-shell .ap2-card-action.ap2-text-link {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(25, 25, 29, .18);
  border-radius: 999px;
  color: var(--ap2-ink);
  display: inline-flex;
  font-weight: 650;
  justify-content: center;
  min-block-size: 44px;
  padding: 0 16px;
  text-align: center;
  text-decoration: none;
}

.ap2-shell .ap2-card-action.ap2-text-link:hover,
.ap2-shell .ap2-card-action.ap2-text-link:focus-visible {
  background: #faf3fc;
  border-color: rgba(141, 43, 226, .42);
  box-shadow: 0 8px 20px rgba(141, 43, 226, .08);
  color: #6e278f;
}

.ap2-shell .ap2-card-edit-controls .ap2-button {
  justify-self: stretch;
  width: 100%;
}

@media (min-width: 760px) {
  /* Page headings with an inline CTA use the same bounded action lane as a
     record card. This preserves the existing two-column heading layout while
     keeping labels such as “Добавить отдельное место” inside the page. */
  .ap2-shell .ap2-page-heading:has(> .ap2-button) {
    grid-template-columns: minmax(0, 1fr) fit-content(16rem);
  }

  .ap2-shell .ap2-page-heading:has(> .ap2-button) > .ap2-button {
    max-inline-size: 100%;
    min-inline-size: 0;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .ap2-shell .ap2-card--with-actions {
    grid-template-columns: minmax(0, 1fr) fit-content(16rem);
  }

  .ap2-shell .ap2-card--with-actions .ap2-card-actions,
  .ap2-shell .ap2-card--with-actions .ap2-card-edit-controls {
    justify-items: end;
  }

  .ap2-shell .ap2-card--with-actions .ap2-card-action {
    width: auto;
  }

  .ap2-shell .ap2-card--with-actions .ap2-card-edit-controls {
    justify-items: stretch;
  }

  .ap2-shell .ap2-task-card.ap2-card--with-actions .ap2-button {
    min-inline-size: 0;
    min-width: 0;
  }
}

@media (max-width: 759px) {
  .ap2-shell .ap2-card--with-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .ap2-shell .ap2-card--with-actions .ap2-card-actions,
  .ap2-shell .ap2-card--with-actions .ap2-card-edit-controls {
    justify-items: stretch;
  }

  .ap2-shell .ap2-card--with-actions .ap2-card-action,
  .ap2-shell .ap2-card--with-actions .ap2-card-actions > form {
    width: 100%;
  }
}

/* Final rhythm and safe reflow ----------------------------------------------
   These rules close the remaining gaps between otherwise shared AP2 surfaces:
   every dynamic value can wrap, every return route gets the same affordance,
   and narrow headers/forms reflow before they can collide with a neighbour. */

/* Role classes live on the same body as .ap2-shell, not inside it. */
.ap2-shell.ap2-role-admin { --ap2-control-accent:#7c71a4; --ap2-control-border:rgba(124,113,164,.62); --ap2-control-ring:rgba(124,113,164,.14); }
.ap2-shell.ap2-role-owner { --ap2-control-accent:var(--ap2-blue-text); --ap2-control-border:rgba(56,189,248,.62); --ap2-control-ring:rgba(56,189,248,.14); }
.ap2-shell.ap2-role-specialist { --ap2-control-accent:#c45b91; --ap2-control-border:rgba(196,91,145,.62); --ap2-control-ring:rgba(196,91,145,.14); }
.ap2-shell :focus-visible { outline-color:var(--ap2-control-accent); }

/* A black context panel must never inherit the page's dark heading colour.
   The soft rose heading keeps it inside the Active visual language. */
.ap2-shell .ap2-context-surface { color:#f8f6f8; }
.ap2-shell .ap2-context-surface :is(h1,h2,h3) { color:#f3a4df; }
.ap2-shell .ap2-context-surface strong { color:#fff; }
.ap2-shell .ap2-context-surface :is(p,span,small,dt,dd,.ap2-supporting) { color:rgba(255,255,255,.84); }
.ap2-shell .ap2-context-surface .ap2-text-link { color:#fff; }

/* Access states intentionally use pale, role-neutral tints instead of the
   dark context treatment, so status copy remains readable at a glance. */
.ap2-shell .ap2-context-surface.ap2-access-state { background:#f8fafb; border:1px solid rgba(92,119,142,.2); box-shadow:0 12px 30px rgba(36,54,69,.08); color:var(--ap2-ink); }
.ap2-shell .ap2-context-surface.ap2-access-state :is(h1,h2,h3,strong) { color:var(--ap2-ink); }
.ap2-shell .ap2-context-surface.ap2-access-state :is(p,span,small,dt,dd,.ap2-supporting) { color:var(--ap2-muted); }
.ap2-shell .ap2-context-surface.ap2-access-state--available { background:var(--ap2-success-soft); border-color:var(--ap2-success-border); }
.ap2-shell .ap2-context-surface.ap2-access-state--not_applicable { background:var(--ap2-blue-soft); border-color:var(--ap2-blue-border); }
.ap2-shell .ap2-context-surface.ap2-access-state--waiting_for_owner,
.ap2-shell .ap2-context-surface.ap2-access-state--action_required_by_owner { background:#fff7ed; border-color:rgba(174,117,50,.24); }
.ap2-shell .ap2-context-surface.ap2-access-state--action_required_by_specialist,
.ap2-shell .ap2-context-surface.ap2-access-state--expired,
.ap2-shell .ap2-context-surface.ap2-access-state--unavailable { background:#fff1f7; border-color:rgba(200,54,136,.24); }

/* Page-level return links use one outlined control even in older templates.
   Header-local links are deliberately excluded. */
.ap2-shell .ap2-main .ap2-back-link,
.ap2-shell .ap2-text-link {
  max-inline-size:100%;
  min-inline-size:0;
  overflow-wrap:anywhere;
  white-space:normal;
}
.ap2-shell .ap2-main .ap2-back-link:not(.ap2-page-return) {
  align-items:center;
  background:#fff;
  border:1px solid rgba(25,25,29,.18);
  border-radius:999px;
  color:var(--ap2-ink);
  display:inline-flex;
  font-size:15px;
  font-weight:600;
  justify-content:center;
  margin:0 0 24px;
  max-inline-size:100%;
  min-block-size:44px;
  min-inline-size:0;
  padding:0 16px;
  text-align:center;
  text-decoration:none;
}
.ap2-shell .ap2-main .ap2-back-link:not(.ap2-page-return):hover,
.ap2-shell .ap2-main .ap2-back-link:not(.ap2-page-return):focus-visible {
  background:#faf3fc;
  border-color:rgba(141,43,226,.42);
  box-shadow:0 8px 20px rgba(141,43,226,.08);
  color:#6e278f;
}
.ap2-shell .ap2-page :is(a,span,code) {
  max-inline-size:100%;
  min-inline-size:0;
  overflow-wrap:anywhere;
}

/* Long equipment, room and consent names remain inside their check rows. */
.ap2-shell :is(.ap2-equipment-picker label,.ap2-filter-option-group label,.ap2-form-stack > label:has(> input[type="checkbox"]),.ap2-form-stack > label:has(> input[type="radio"]),.ap2-action-stack > label:has(> input[type="checkbox"]),.ap2-action-stack > label:has(> input[type="radio"]),.ap2-choice-row label,.ap2-checkbox) {
  align-items:start;
  display:grid;
  gap:9px;
  grid-template-columns:auto minmax(0,1fr);
  max-inline-size:100%;
  min-inline-size:0;
  overflow-wrap:anywhere;
}
.ap2-shell :is(.ap2-equipment-picker label,.ap2-filter-option-group label,.ap2-form-stack > label:has(> input[type="checkbox"]),.ap2-form-stack > label:has(> input[type="radio"]),.ap2-action-stack > label:has(> input[type="checkbox"]),.ap2-action-stack > label:has(> input[type="radio"]),.ap2-choice-row label,.ap2-checkbox) > :not(input) {
  min-inline-size:0;
  overflow-wrap:anywhere;
}
.ap2-shell .ap2-kit-choice__copy { display:grid; gap:4px; line-height:1.4; }
.ap2-shell .ap2-kit-choice__copy > span { color:var(--ap2-muted); }

/* Admin filters and request forms use the same form rhythm as every other
   editable surface, including a single-column mobile action lane. */
.ap2-shell .ap2-inline-filter,
.ap2-shell [data-ap2-request-form] {
  align-items:end;
  display:grid;
  gap:16px;
  margin-top:20px;
  max-inline-size:680px;
  min-inline-size:0;
}
.ap2-shell .ap2-inline-filter .ap2-button,
.ap2-shell [data-ap2-request-form] .ap2-button { justify-self:start; }
.ap2-shell .ap2-detail-section { display:grid; gap:14px; margin-top:28px; max-inline-size:100%; min-inline-size:0; }

/* A few legal and accountability screens share the AP2 shell while retaining
   the legacy `.button` markup. Give those controls the same contained pill
   treatment instead of leaving them as browser-default links. */
.ap2-shell :is(.section-head,.panel) .button {
  align-items:center;
  background:#17171a;
  border:1px solid #17171a;
  border-radius:999px;
  box-shadow:0 12px 26px rgba(20,20,25,.12);
  color:#fff;
  display:inline-flex;
  font:inherit;
  font-weight:650;
  justify-content:center;
  max-inline-size:100%;
  min-block-size:46px;
  min-inline-size:0;
  overflow-wrap:anywhere;
  padding:0 18px;
  text-align:center;
  text-decoration:none;
  white-space:normal;
}
.ap2-shell :is(.section-head,.panel) .button--ghost {
  background:#fff;
  border-color:rgba(25,25,29,.18);
  box-shadow:none;
  color:var(--ap2-ink);
}
.ap2-shell :is(.section-head,.panel) .button:hover,
.ap2-shell :is(.section-head,.panel) .button:focus-visible { background:linear-gradient(110deg,#e423c7,#8d2be2); border-color:transparent; color:#fff; }
.ap2-shell :is(.section-head,.panel) .button--ghost:hover,
.ap2-shell :is(.section-head,.panel) .button--ghost:focus-visible {
  background:#faf3fc;
  border-color:rgba(141,43,226,.42);
  color:var(--ap2-ink);
}
.ap2-shell .button-row { align-items:center; display:flex; flex-wrap:wrap; gap:12px; margin:24px 0 0; max-inline-size:100%; padding:0; }
.ap2-shell .table-scroll { border:1px solid var(--ap2-line); border-radius:var(--ap2-radius-md); max-inline-size:100%; overscroll-behavior-inline:contain; }

/* Identical action widths make stock controls feel like one coherent set. */
.ap2-stock-command .ap2-button { justify-self:stretch; width:100%; }

/* The desktop admin rail can scroll inside itself at medium widths instead of
   compressing nine labels into overlapping columns. */
@media (min-width:760px) {
  .ap2-public-nav.ap2-workspace-nav {
    display:flex;
    justify-content:center;
    inline-size:fit-content;
    margin-inline:auto;
    max-inline-size:100%;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:thin;
    width:fit-content;
  }
  .ap2-public-nav.ap2-workspace-nav a {
    flex:0 0 auto;
    min-inline-size:max-content;
  }
  .ap2-shell .ap2-inline-filter { grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); }
}

@media (max-width:759px) {
  /* A compact media rhythm keeps the primary booking action fully above the
     mobile dock on a first visit, rather than only making its centre tappable. */
  .ap2-room-detail { gap:16px; padding-top:24px; }
  .ap2-room-detail__media > :is(img,.ap2-photo-fallback),
  .ap2-room-detail__media .ap2-room-gallery__item.is-primary img { aspect-ratio:16 / 10; }
  .ap2-room-detail__main { gap:10px; }
  .ap2-room-detail__main .ap2-page-return { margin-bottom:12px; }
  .ap2-shell .ap2-inline-filter .ap2-button,
  .ap2-shell [data-ap2-request-form] .ap2-button,
  .ap2-shell .button-row .button { justify-self:stretch; width:100%; }
}

@media (max-width:540px) {
  /* A role switcher gets its own header row before the brand can collide with
     select/logout controls. */
  .ap2-header--switchable .ap2-header__inner { align-items:start; grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto; row-gap:8px; }
  .ap2-header--switchable .ap2-brand { grid-column:1; grid-row:1; justify-self:start; }
  .ap2-header--switchable .ap2-header__actions { grid-column:1; grid-row:2; justify-self:stretch; width:100%; }
  .ap2-header--switchable .ap2-header-account-actions { justify-content:space-between; width:100%; }
  .ap2-header--switchable .ap2-workspace-switcher { margin-right:0; max-inline-size:100%; min-inline-size:0; }
  .ap2-header--switchable .ap2-workspace-switcher select { max-inline-size:min(100%,12rem); min-inline-size:0; }
}

@media (max-width:359px) {
  .ap2-bottom-nav:not(.ap2-bottom-nav--five) a { font-size:10.5px; padding-inline:0; }
  .ap2-bottom-nav:not(.ap2-bottom-nav--five) a span { letter-spacing:-.02em; white-space:nowrap; }
  .ap2-bottom-nav a span { max-inline-size:100%; overflow-wrap:anywhere; }
}

/* Beauty coworking lockup: a white field lets the pink Active mark remain
   recognisable, while the platform name stays black and editorially quiet. */
.ap2-brand img {
  background:#fff;
  border:1px solid rgba(141,43,226,.18);
  border-radius:18px;
  box-shadow:0 10px 24px rgba(141,43,226,.09);
  filter:drop-shadow(0 8px 14px rgba(228,35,199,.14));
  padding:4px;
}

/* The supplied Active PRO mark is square. Keep its tile square as well so
   the transparent artwork stays large and balanced in both headers. */
.ap2-brand img { aspect-ratio:1; height:clamp(62px,8vw,110px); object-fit:contain; width:clamp(62px,8vw,110px); }

.ap2-brand__copy strong {
  color:#17171a;
  font-size:clamp(1.2rem,1.75vw,1.55rem);
  line-height:1.04;
  max-inline-size:13rem;
  overflow-wrap:anywhere;
  text-align:center;
  text-wrap:balance;
  white-space:normal;
}

.ap2-brand__copy { justify-items:center; text-align:center; }
.ap2-brand__tagline { color:#8d2be2; max-inline-size:100%; overflow-wrap:anywhere; text-align:center; text-wrap:balance; white-space:normal; }
.ap2-brand__copy small { color:#4a414d; max-inline-size:100%; overflow-wrap:anywhere; text-align:center; white-space:normal; }

@media (max-width:759px) {
  .ap2-brand { gap:8px; }
  .ap2-brand img { height:50px; width:50px; }
  .ap2-brand__copy strong {
    font-size:14px;
    max-inline-size:10.5rem;
  }
}

/* Owner queue hierarchy -----------------------------------------------------
   “Далее” is a decision surface: the count link is a secondary control, each
   card starts with a visible status, and the room action stays in one obvious
   right-hand lane on desktop before stacking on a phone. */
.ap2-owner-operational .ap2-workspace-queue { margin-top:40px; }
.ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading {
  align-items:end;
  gap:12px;
  margin-bottom:16px;
}
.ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading h2 {
  font-size:clamp(22px,2.4vw,28px);
  letter-spacing:-.035em;
}
.ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading a {
  background:#faf3fc;
  border:1px solid rgba(141,43,226,.22);
  border-radius:999px;
  color:#6e278f;
  font-weight:650;
  min-height:42px;
  padding:8px 14px;
  text-decoration:none;
  transition:background 180ms ease,border-color 180ms ease,box-shadow 180ms ease,color 180ms ease;
}
.ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading a:hover,
.ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading a:focus-visible {
  background:#fff;
  border-color:rgba(228,35,199,.46);
  box-shadow:0 8px 20px rgba(141,43,226,.10);
  color:#8d2be2;
}
.ap2-owner-operational .ap2-queue-list { gap:12px; }
.ap2-owner-operational .ap2-queue-item {
  background:linear-gradient(180deg,#fff 0%,#fffafd 100%);
  border:1px solid rgba(25,25,29,.12);
  border-radius:20px;
  box-shadow:0 10px 28px rgba(25,25,29,.06);
  padding:20px clamp(18px,2.2vw,24px);
  transition:border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease;
}
.ap2-owner-operational .ap2-queue-item:hover {
  border-color:rgba(141,43,226,.28);
  box-shadow:0 14px 32px rgba(141,43,226,.10);
  transform:translateY(-1px);
}
.ap2-owner-operational .ap2-queue-item .ap2-task-status {
  background:#fff1f7;
  border:1px solid rgba(200,54,136,.22);
  border-radius:999px;
  color:#c22f78;
  display:inline-flex;
  font-size:14px;
  font-weight:650;
  line-height:1.2;
  margin:0 0 8px;
  max-inline-size:100%;
  padding:6px 10px;
}
.ap2-owner-operational .ap2-queue-item h2 {
  font-size:clamp(20px,2.2vw,25px);
  letter-spacing:-.035em;
  margin:0;
}
.ap2-owner-operational .ap2-queue-item .ap2-supporting { font-size:16px; margin-top:8px; }
.ap2-owner-operational .ap2-queue-item .ap2-task-card__actions { align-self:center; }
.ap2-owner-operational .ap2-queue-item .ap2-button {
  min-height:48px;
  min-width:min(100%,12.5rem);
  padding-inline:20px;
}

@media (max-width:759px) {
  .ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading { align-items:stretch; flex-direction:column; }
  .ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading a { align-self:flex-start; }
  .ap2-owner-operational .ap2-queue-item { gap:16px; padding:18px; }
  .ap2-owner-operational .ap2-queue-item .ap2-task-card__actions,
  .ap2-owner-operational .ap2-queue-item .ap2-button { width:100%; }
}

/* Premium visual system -----------------------------------------------------
   A quiet, editorial layer for the whole AP2 surface. Structure and routes
   stay untouched: hierarchy comes from space, contrast and one deliberate
   fuchsia accent instead of a collection of competing borders. */
:root {
  --ap2-premium-bg: #fbfafc;
  --ap2-premium-ink: #17171a;
  --ap2-premium-muted: #74727d;
  --ap2-premium-line: rgba(23, 23, 26, .08);
  --ap2-premium-pink: #d13f86;
  --ap2-premium-violet: #8d2be2;
  --ap2-premium-pink-soft: #fff2f8;
  --ap2-premium-shadow: 0 18px 46px rgba(23, 23, 26, .065), 0 2px 8px rgba(141, 43, 226, .025);
  --ap2-premium-shadow-hover: 0 24px 60px rgba(23, 23, 26, .10), 0 4px 14px rgba(209, 63, 134, .055);
  --ap2-premium-ease: cubic-bezier(.32,.72,0,1);
}

.ap2-shell {
  background: var(--ap2-premium-bg);
  color: var(--ap2-premium-ink);
  letter-spacing: -.006em;
}

.ap2-page-shell::before { opacity: .28; }

.ap2-header {
  border-bottom: 0;
  padding-bottom: 20px;
}

.ap2-header-action,
.ap2-page-return {
  border: 0;
  box-shadow: inset 0 0 0 1px var(--ap2-premium-line);
  color: var(--ap2-premium-ink);
  transition: background 220ms var(--ap2-premium-ease), box-shadow 220ms var(--ap2-premium-ease), color 220ms var(--ap2-premium-ease), transform 220ms var(--ap2-premium-ease);
}

.ap2-header-action:hover,
.ap2-header-action:focus-visible,
.ap2-page-return:hover,
.ap2-page-return:focus-visible {
  background: var(--ap2-premium-pink-soft);
  box-shadow: inset 0 0 0 1px rgba(209, 63, 134, .20), 0 8px 20px rgba(209, 63, 134, .08);
  color: var(--ap2-premium-pink);
  transform: translateY(-1px);
}

.ap2-page {
  background: #fff;
  border: 0;
  border-radius: 28px;
  box-shadow: var(--ap2-premium-shadow);
}

.ap2-shell h1,
.ap2-shell h2,
.ap2-shell h3 { color: var(--ap2-premium-ink); text-wrap: balance; }

.ap2-shell h1 { letter-spacing: -.055em; }
.ap2-shell h2,
.ap2-shell h3 { letter-spacing: -.035em; }

.ap2-lead,
.ap2-page-intro,
.ap2-supporting,
.ap2-field-hint,
.ap2-workspace-empty p,
.ap2-empty-state p { color: var(--ap2-premium-muted); }

.ap2-context-surface {
  background: linear-gradient(135deg, #17171a 0%, #26232b 100%);
  border: 0;
  box-shadow: 0 20px 48px rgba(23, 23, 26, .15), inset 0 1px 0 rgba(255,255,255,.08);
}

.ap2-context-surface strong,
.ap2-context-surface .ap2-text-link { color: #fff; }

.ap2-context-surface .ap2-text-link { text-decoration-color: rgba(228, 35, 199, .72); }

.ap2-card--with-actions,
.ap2-room-card,
.ap2-specialist-card,
.ap2-booking-card,
.ap2-queue-item,
.ap2-owner-place,
.ap2-muted-surface,
.ap2-empty-state,
.ap2-alert,
.ap2-selected-time,
.ap2-workspace-empty,
.ap2-auth-panel,
.ap2-shell .auth-panel {
  border: 0;
  border-radius: 22px;
  box-shadow: var(--ap2-premium-shadow);
}

.ap2-card--with-actions,
.ap2-room-card,
.ap2-specialist-card,
.ap2-booking-card,
.ap2-queue-item,
.ap2-owner-place { background: #fff; }

.ap2-card--with-actions:hover,
.ap2-room-card:hover,
.ap2-specialist-card:hover,
.ap2-queue-item:hover,
.ap2-owner-place:hover {
  box-shadow: var(--ap2-premium-shadow-hover);
  transform: translateY(-2px);
}

.ap2-alert,
.ap2-empty-state { background: #fff; }

.ap2-alert--error {
  background: #fff2f8;
  box-shadow: inset 4px 0 0 var(--ap2-premium-pink), var(--ap2-premium-shadow);
}

.ap2-muted-surface {
  background: #faf8fb;
  box-shadow: inset 0 0 0 1px var(--ap2-premium-line);
}

.ap2-button {
  border: 0;
  border-radius: 999px;
  font-weight: 650;
  letter-spacing: -.01em;
  transition: background 220ms var(--ap2-premium-ease), box-shadow 220ms var(--ap2-premium-ease), color 220ms var(--ap2-premium-ease), transform 220ms var(--ap2-premium-ease);
}

.ap2-button--primary {
  background: var(--ap2-premium-ink);
  box-shadow: 0 14px 30px rgba(23, 23, 26, .14);
}

.ap2-button--primary:hover,
.ap2-button--primary:focus-visible {
  background: linear-gradient(110deg, var(--ap2-premium-pink), var(--ap2-premium-violet));
  box-shadow: 0 16px 34px rgba(141, 43, 226, .20);
}

.ap2-button--secondary {
  background: transparent;
  border: 0;
  box-shadow: inset 0 0 0 1px var(--ap2-premium-line);
  color: var(--ap2-premium-ink) !important;
}

.ap2-button--secondary:hover,
.ap2-button--secondary:focus-visible {
  background: var(--ap2-premium-pink-soft);
  box-shadow: inset 0 0 0 1px rgba(209, 63, 134, .20);
  color: var(--ap2-premium-pink) !important;
}

.ap2-shell .ap2-text-link,
.ap2-section-heading a { color: var(--ap2-premium-pink); text-decoration-color: rgba(209, 63, 134, .38); }

.ap2-public-nav,
.ap2-workspace-nav {
  background: rgba(255,255,255,.86);
  border: 0;
  box-shadow: inset 0 0 0 1px var(--ap2-premium-line), 0 14px 36px rgba(23, 23, 26, .06);
}

.ap2-public-nav a,
.ap2-workspace-nav a { color: var(--ap2-premium-muted); }

.ap2-public-nav a:hover,
.ap2-public-nav a[aria-current="page"],
.ap2-workspace-nav a[aria-current="page"] {
  background: var(--ap2-premium-pink-soft);
  color: var(--ap2-premium-violet);
}

.ap2-field input:not([type="checkbox"]):not([type="radio"]),
.ap2-field select,
.ap2-field textarea,
.ap2-field-group > input:not([type="checkbox"]):not([type="radio"]),
.ap2-field-group > select,
.ap2-field-group > textarea,
.ap2-form-stack input:not([type="checkbox"]):not([type="radio"]),
.ap2-form-stack select,
.ap2-form-stack textarea {
  background: #fff;
  border: 0;
  box-shadow: inset 0 0 0 1px var(--ap2-premium-line), 0 8px 22px rgba(23,23,26,.035);
}

.ap2-field input:focus,
.ap2-field select:focus,
.ap2-field textarea:focus,
.ap2-field-group > input:focus,
.ap2-field-group > select:focus,
.ap2-field-group > textarea:focus,
.ap2-form-stack input:focus,
.ap2-form-stack select:focus,
.ap2-form-stack textarea:focus {
  border-color: transparent;
  box-shadow: inset 0 0 0 2px rgba(209,63,134,.72), 0 8px 22px rgba(209,63,134,.08);
  outline: 0;
}

.ap2-section-heading { margin-bottom: 14px; }

@media (max-width:759px) {
  .ap2-page { border-radius: 22px; box-shadow: 0 12px 30px rgba(23,23,26,.055); padding-top: 32px; padding-bottom: 34px; }
  .ap2-card--with-actions,
  .ap2-room-card,
  .ap2-specialist-card,
  .ap2-booking-card,
  .ap2-queue-item,
  .ap2-owner-place,
  .ap2-muted-surface,
  .ap2-empty-state,
  .ap2-alert,
  .ap2-selected-time { border-radius: 18px; }
  .ap2-button { min-height: 50px; padding-inline: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .ap2-card--with-actions,
  .ap2-room-card,
  .ap2-specialist-card,
  .ap2-queue-item,
  .ap2-owner-place,
  .ap2-button,
  .ap2-header-action,
  .ap2-page-return { transition: none; }
  .ap2-card--with-actions:hover,
  .ap2-room-card:hover,
  .ap2-specialist-card:hover,
  .ap2-queue-item:hover,
  .ap2-owner-place:hover { transform: none; }
}

/* Dominant owner task -------------------------------------------------------
   This surface intentionally stays dark: it is the one decisive item on the
   owner dashboard. Keep every descendant on the light-on-dark contrast scale
   after the shared white-card treatment above. */
.ap2-shell .ap2-task-card.ap2-card--with-actions,
.ap2-shell .ap2-task-card--dominant {
  background: linear-gradient(135deg, #17171a 0%, #241c28 100%);
  border: 0;
  box-shadow: 0 22px 54px rgba(23, 23, 26, .17), inset 0 1px 0 rgba(255,255,255,.07);
  color: #fff;
}

.ap2-shell .ap2-task-card.ap2-card--with-actions :is(h2,h3,strong),
.ap2-shell .ap2-task-card--dominant :is(h2,h3,strong) { color: #fff; }

.ap2-shell .ap2-task-card.ap2-card--with-actions :is(.ap2-supporting,.ap2-task-time,.ap2-task-address),
.ap2-shell .ap2-task-card--dominant :is(.ap2-supporting,.ap2-task-time,.ap2-task-address) {
  color: rgba(255,255,255,.82);
}

.ap2-shell .ap2-task-card.ap2-card--with-actions .ap2-task-status,
.ap2-shell .ap2-task-card--dominant .ap2-task-status {
  color: #f7addb;
  font-weight: 650;
}

.ap2-shell .ap2-task-card.ap2-card--with-actions .ap2-task-deadline,
.ap2-shell .ap2-task-card--dominant .ap2-task-deadline {
  border-top-color: rgba(255,255,255,.20);
  color: #f7addb;
}

.ap2-shell .ap2-task-card.ap2-card--with-actions .ap2-button--secondary,
.ap2-shell .ap2-task-card--dominant .ap2-button--secondary {
  background: #fff;
  box-shadow: 0 12px 26px rgba(0,0,0,.18);
  color: var(--ap2-premium-ink) !important;
}

.ap2-shell .ap2-task-card.ap2-card--with-actions .ap2-button--secondary:hover,
.ap2-shell .ap2-task-card--dominant .ap2-button--secondary:hover {
  background: #fff2f8;
  color: var(--ap2-premium-pink) !important;
}

/* A small directional cue makes the dominant action scannable without
   replacing its readable label. The icon is a real SVG, not a text glyph. */
.ap2-shell .ap2-task-card .ap2-card-action.ap2-button::after,
.ap2-shell .ap2-task-card .ap2-card-action.ap2-text-link::after {
  background: currentColor;
  content: "";
  display: inline-block;
  flex: 0 0 15px;
  height: 15px;
  margin-left: 7px;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 220ms var(--ap2-premium-ease);
  width: 15px;
}

.ap2-shell .ap2-task-card .ap2-card-action:hover::after,
.ap2-shell .ap2-task-card .ap2-card-action:focus-visible::after { transform: translateX(3px); }

@media (prefers-reduced-motion: reduce) {
  .ap2-shell .ap2-task-card .ap2-card-action::after { transition: none; }
}

/* Brand lockup: use the available width and keep every line aligned to the left. */
.ap2-brand {
  min-inline-size: 0;
}

.ap2-brand__copy {
  align-items: start;
  justify-items: stretch;
  min-inline-size: 0;
  text-align: left;
  width: 100%;
}

.ap2-brand__copy strong,
.ap2-brand__tagline,
.ap2-brand__copy small {
  max-inline-size: 100%;
  overflow-wrap: anywhere;
  text-align: left;
}

/* The publication CTA is a grid child of the dark hero. Keep it compact on
   hover as well as at rest; the pink/violet hover treatment remains intact. */
.ap2-shell .ap2-owner-hero > .ap2-button {
  justify-self: start;
  width: auto;
}

/* Keep workspace navigation comfortably wide without leaving a blank track
   after the last label. Intrinsic sizing follows the labels themselves. */
@media (min-width: 760px) {
  .ap2-public-nav.ap2-workspace-nav {
    padding-inline: 10px;
  }

  .ap2-public-nav.ap2-workspace-nav a {
    font-size: 15px;
    padding-inline: 18px;
  }
}

/* First-rental onboarding: a focused progress stack in the shared AP2 shell. */
.ap2-first-rental {
  margin: 0 auto;
  max-width: 900px;
  padding: 8px 12px 64px;
  width: 100%;
}

.ap2-first-rental__heading {
  align-items: flex-start;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin: 4px 0 28px;
}

.ap2-first-rental__heading h1 { padding-inline-start: 13px; position: relative; }
.ap2-first-rental__heading h1::before {
  background: linear-gradient(180deg, #8e54b8, var(--ap2-pink));
  border-radius: 999px;
  content: "";
  inset: .16em auto .16em 0;
  position: absolute;
  width: 4px;
}
.ap2-first-rental__heading .ap2-lead { margin-top: 12px; }
.ap2-first-rental__role {
  background: rgba(255,255,255,.8);
  border: 1px solid var(--ap2-line);
  border-radius: 999px;
  color: var(--ap2-blue-text);
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  margin-top: 7px;
  padding: 7px 12px;
}

.ap2-first-rental__summary {
  align-items: center;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(162,187,204,.34);
  border-radius: var(--ap2-radius-lg);
  box-shadow: var(--ap2-soft-shadow);
  display: grid;
  gap: 20px;
  grid-template-columns: auto minmax(100px, .75fr) minmax(0, 1.4fr);
  margin-bottom: 18px;
  padding: 20px 24px;
}
.ap2-first-rental__summary-count { display: grid; gap: 4px; min-width: 92px; }
.ap2-first-rental__summary-count .ap2-eyebrow { font-size: 12px; margin: 0; }
.ap2-first-rental__summary-count strong { color: var(--ap2-ink); font-size: 26px; font-variant-numeric: tabular-nums; letter-spacing: -.04em; line-height: 1.1; }
.ap2-first-rental__summary-count strong span { color: var(--ap2-muted); font-size: 16px; font-weight: 500; letter-spacing: 0; }
.ap2-first-rental__summary-progress { background: rgba(108,120,134,.15); border-radius: 999px; height: 8px; overflow: hidden; }
.ap2-first-rental__summary-progress span { background: linear-gradient(90deg, #8e54b8, var(--ap2-pink)); border-radius: inherit; display: block; height: 100%; }
.ap2-first-rental__summary > p { color: var(--ap2-muted); font-size: 15px; line-height: 1.45; margin: 0; }

.ap2-first-rental__steps { display: grid; gap: 12px; }
.ap2-first-rental__step {
  align-items: start;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(162,187,204,.3);
  border-radius: var(--ap2-radius-lg);
  box-shadow: 0 12px 34px rgba(65,86,110,.055);
  display: grid;
  gap: 18px;
  grid-template-columns: 42px minmax(0,1fr) minmax(190px,auto);
  min-width: 0;
  padding: 20px;
}
.ap2-first-rental__number {
  align-items: center;
  background: rgba(200,54,136,.07);
  border: 1px solid rgba(200,54,136,.2);
  border-radius: 50%;
  color: var(--ap2-pink);
  display: flex;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
  font-weight: 650;
  height: 38px;
  justify-content: center;
  width: 38px;
}
.ap2-first-rental__step--ready .ap2-first-rental__number {
  background: var(--ap2-success-soft);
  border-color: var(--ap2-success-border);
  color: var(--ap2-success);
}
.ap2-first-rental__step-content { min-width: 0; }
.ap2-first-rental__step-heading { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; min-width: 0; }
.ap2-first-rental__step-heading > div { min-width: 0; }
.ap2-first-rental__step-heading .ap2-eyebrow { font-size: 11px; margin: 0 0 5px; }
.ap2-first-rental__step-heading h2 { font-size: 20px; line-height: 1.25; overflow-wrap: anywhere; }
.ap2-first-rental__description { color: var(--ap2-muted); font-size: 15px; line-height: 1.45; margin: 8px 0 0; }
.ap2-first-rental__details { color: var(--ap2-ink); display: grid; gap: 4px; margin: 10px 0 0; padding-inline-start: 20px; }
.ap2-first-rental__details li { padding-inline-start: 2px; }
.ap2-first-rental__status {
  align-items: center;
  background: rgba(108,120,134,.075);
  border: 1px solid rgba(108,120,134,.17);
  border-radius: 999px;
  color: var(--ap2-muted);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  max-width: 100%;
  min-height: 29px;
  padding: 5px 9px;
}
.ap2-first-rental__status--ready { background: var(--ap2-success-soft); border-color: var(--ap2-success-border); color: var(--ap2-success); }
.ap2-first-rental__status--todo { background: rgba(200,54,136,.055); border-color: rgba(200,54,136,.17); color: #8b356c; }
.ap2-first-rental__status--pending { background: rgba(124,113,164,.08); border-color: rgba(124,113,164,.19); color: #665287; }
.ap2-first-rental__action { align-self: center; min-width: 0; }
.ap2-first-rental__action .ap2-button { font-size: 14px; min-height: 46px; padding-inline: 16px; text-align: center; width: 100%; }

.ap2-first-rental__optional,
.ap2-first-rental__help {
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(162,187,204,.3);
  border-radius: var(--ap2-radius-lg);
  box-shadow: 0 10px 28px rgba(65,86,110,.045);
  margin-top: 16px;
  padding: 18px 20px;
}
.ap2-first-rental__optional > summary { align-items: center; cursor: pointer; display: flex; gap: 20px; justify-content: space-between; list-style: none; padding-inline-end: 30px; position: relative; }
.ap2-first-rental__optional > summary::-webkit-details-marker { display: none; }
.ap2-first-rental__optional > summary::after { color: var(--ap2-muted); content: "⌄"; font-size: 21px; line-height: 1; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); }
.ap2-first-rental__optional[open] > summary::after { content: "⌃"; }
.ap2-first-rental__optional > summary > span:first-child { display: grid; gap: 3px; }
.ap2-first-rental__optional > summary .ap2-eyebrow { font-size: 11px; margin: 0; }
.ap2-first-rental__optional > summary strong { color: var(--ap2-ink); font-size: 16px; font-weight: 600; }
.ap2-first-rental__optional-note { color: var(--ap2-muted); font-size: 13px; text-align: right; }
.ap2-first-rental__optional-content { border-top: 1px solid var(--ap2-line); margin-top: 16px; padding-top: 14px; }
.ap2-first-rental__optional-content > p { color: var(--ap2-muted); font-size: 14px; margin: 0 0 12px; }
.ap2-first-rental__optional-step { box-shadow: none; }
.ap2-first-rental__help { align-items: center; display: flex; gap: 20px; justify-content: space-between; }
.ap2-first-rental__help h2 { font-size: 18px; }
.ap2-first-rental__help p:last-child { color: var(--ap2-muted); font-size: 14px; line-height: 1.45; margin: 6px 0 0; max-width: 620px; }
.ap2-first-rental__help .ap2-eyebrow { font-size: 11px; margin-bottom: 5px; }
.ap2-first-rental__help .ap2-button { flex: 0 0 auto; font-size: 14px; min-height: 46px; padding-inline: 16px; }

@media (max-width: 759px) {
  .ap2-first-rental { padding: 2px 12px 48px; }
  .ap2-first-rental__heading { gap: 10px; margin: 0 0 20px; }
  .ap2-first-rental__heading h1 { font-size: 30px; }
  .ap2-first-rental__heading .ap2-lead { font-size: 15px; margin-top: 9px; }
  .ap2-first-rental__role { font-size: 11px; margin-top: 0; padding: 6px 9px; }
  .ap2-first-rental__summary { gap: 12px; grid-template-columns:auto minmax(0,1fr); padding: 16px; }
  .ap2-first-rental__summary-progress { grid-column: 1 / -1; grid-row: 2; }
  .ap2-first-rental__summary > p { align-self: center; font-size: 13px; }
  .ap2-first-rental__steps { gap: 10px; }
  .ap2-first-rental__step { gap: 10px 12px; grid-template-columns: 36px minmax(0,1fr); padding: 16px; }
  .ap2-first-rental__number { font-size: 14px; height: 34px; width: 34px; }
  .ap2-first-rental__step-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .ap2-first-rental__step-heading h2 { font-size: 19px; }
  .ap2-first-rental__description { font-size: 14px; }
  .ap2-first-rental__action { grid-column: 2; width: 100%; }
  .ap2-first-rental__action .ap2-button { min-height: 46px; }
  .ap2-first-rental__optional, .ap2-first-rental__help { margin-top: 12px; padding: 16px; }
  .ap2-first-rental__optional > summary { align-items: flex-start; flex-direction: column; gap: 5px; }
  .ap2-first-rental__optional-note { text-align: left; }
  .ap2-first-rental__help { align-items: stretch; flex-direction: column; gap: 14px; }
  .ap2-first-rental__help .ap2-button { width: 100%; }
}

@media (max-width: 359px) {
  .ap2-first-rental { padding-inline: 8px; }
  .ap2-first-rental__heading { flex-direction: column; }
  .ap2-first-rental__heading h1 { font-size: 27px; }
  .ap2-first-rental__summary { padding: 14px; }
  .ap2-first-rental__step { gap: 10px; padding: 13px; }
  .ap2-first-rental__step-heading h2 { font-size: 18px; }
  .ap2-first-rental__action { grid-column: 1 / -1; }
  .ap2-first-rental__optional, .ap2-first-rental__help { padding: 14px; }
}

@media (max-width: 359px) {
.ap2-first-rental-shell .ap2-bottom-nav--five a:nth-child(3) span { font-size: 9px; letter-spacing: -.035em; white-space: nowrap; }
}

/* Subscription cabinet: shared AP2 presentation, unchanged billing forms. */
.ap2-subscription {
  display:grid;
  gap:24px;
  max-width:1080px;
  padding:28px 20px 40px;
}
.ap2-subscription__heading { align-items:center; margin:0; }
.ap2-subscription__heading .ap2-button { justify-self:start; }
.ap2-subscription__current,
.ap2-subscription__section,
.ap2-subscription__renewal,
.ap2-subscription__history {
  background:rgba(255,255,255,.88);
  border:1px solid rgba(162,187,204,.32);
  border-radius:var(--ap2-radius-lg);
  box-shadow:var(--ap2-soft-shadow);
  min-width:0;
  padding:22px;
}
.ap2-subscription__current { display:grid; gap:12px; }
.ap2-subscription__current > p,
.ap2-subscription__intro,
.ap2-subscription__renewal p { color:var(--ap2-muted); margin:0; max-width:75ch; }
.ap2-subscription__section { display:grid; gap:18px; }
.ap2-subscription__section-heading { align-items:center; display:flex; flex-wrap:wrap; gap:14px 20px; justify-content:space-between; min-width:0; }
.ap2-subscription__section-heading .ap2-eyebrow { margin-bottom:5px; }
.ap2-subscription__section-heading h2,
.ap2-subscription__renewal h2 { font-size:22px; }
.ap2-subscription__status {
  align-items:center;
  background:rgba(108,120,134,.1);
  border:1px solid rgba(108,120,134,.19);
  border-radius:999px;
  color:var(--ap2-muted);
  display:inline-flex;
  flex:0 0 auto;
  font-size:13px;
  font-weight:600;
  line-height:1.2;
  max-width:100%;
  min-height:32px;
  overflow-wrap:anywhere;
  padding:6px 11px;
}
.ap2-subscription__status--active,
.ap2-subscription__status--succeeded { background:var(--ap2-success-soft); border-color:var(--ap2-success-border); color:var(--ap2-success); }
.ap2-subscription__status--past_due,
.ap2-subscription__status--pending,
.ap2-subscription__status--refund_pending { background:rgba(182,125,88,.12); border-color:rgba(182,125,88,.23); color:#805236; }
.ap2-subscription__status--canceled,
.ap2-subscription__status--cancelled,
.ap2-subscription__status--failed { background:rgba(183,67,87,.1); border-color:rgba(183,67,87,.2); color:#96384b; }
.ap2-subscription__status--refunded { background:rgba(124,113,164,.12); border-color:rgba(124,113,164,.2); color:#665287; }

/* The renewal monitor keeps its existing report facts while using the shared
   Admin shell and AP2 report surfaces. */
.ap2-admin-renewals__filter { align-items:end; margin:0 0 28px; }
.ap2-admin-renewals__filter .ap2-field { display:grid; gap:7px; }
.ap2-admin-renewals__filter .ap2-field > span { color:var(--ap2-ink); font-size:15px; font-weight:500; }
.ap2-admin-renewals__filter .ap2-field select { background:#fff; border:1px solid var(--ap2-line); border-radius:16px; box-sizing:border-box; color:var(--ap2-ink); font:inherit; min-height:52px; padding:12px 14px; width:100%; }
.ap2-admin-renewals__filter .ap2-field select:focus { border-color:var(--ap2-pink); box-shadow:0 0 0 3px rgba(200,54,136,.13); outline:0; }
.ap2-admin-renewals__filter > .ap2-button { justify-self:start; }
.ap2-admin-renewals .ap2-page-heading--with-action > .ap2-button { margin:0; }
.ap2-admin-renewals__metrics { display:grid; gap:14px; grid-template-columns:repeat(4,minmax(0,1fr)); margin:20px 0 32px; max-inline-size:100%; }
.ap2-admin-renewals__metric { align-content:start; background:rgba(255,255,255,.88); border:1px solid var(--ap2-line); border-radius:var(--ap2-radius-lg); box-shadow:var(--ap2-card-shadow); display:grid; gap:8px; min-inline-size:0; padding:18px; }
.ap2-admin-renewals__metric > span { color:var(--ap2-muted); font-size:14px; line-height:1.35; }
.ap2-admin-renewals__metric > strong { color:var(--ap2-ink); font-size:clamp(23px,2vw,30px); font-variant-numeric:tabular-nums; font-weight:600; line-height:1.1; overflow-wrap:anywhere; }
.ap2-admin-renewals__metric > p { color:var(--ap2-muted); font-size:14px; margin:0; }
.ap2-admin-renewals__journal { min-inline-size:0; }
.ap2-admin-renewals__journal > .ap2-section-heading { margin-bottom:12px; }
.ap2-admin-renewals__attempt { margin:0; min-inline-size:0; }
.ap2-admin-renewals__attempt-heading { align-items:flex-start; display:flex; flex-wrap:wrap; gap:12px 20px; justify-content:space-between; min-inline-size:0; }
.ap2-admin-renewals__attempt-heading > div { min-inline-size:0; overflow-wrap:anywhere; }
.ap2-admin-renewals__attempt-heading > div > strong { color:var(--ap2-ink); font-size:17px; font-weight:600; }
.ap2-admin-renewals__attempt-meta { display:grid; gap:14px 22px; grid-template-columns:repeat(2,minmax(0,1fr)); margin:18px 0 0; min-inline-size:0; }
.ap2-admin-renewals__attempt-meta > div { min-inline-size:0; }
.ap2-admin-renewals__attempt-meta dt { color:var(--ap2-muted); font-size:13px; font-weight:500; margin-bottom:4px; }
.ap2-admin-renewals__attempt-meta dd { color:var(--ap2-ink); font-size:15px; margin:0; overflow-wrap:anywhere; }

@media (max-width:1020px) {
  .ap2-admin-renewals__metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:759px) {
  .ap2-admin-renewals__metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ap2-admin-renewals__attempt-meta { grid-template-columns:minmax(0,1fr); }
  .ap2-admin-renewals__filter > .ap2-button { justify-self:stretch; width:100%; }
}
@media (max-width:359px) {
  .ap2-admin-renewals__metrics { grid-template-columns:minmax(0,1fr); }
}
.ap2-subscription__plans { display:grid; gap:14px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.ap2-subscription__plan {
  align-content:start;
  background:#fff;
  border:1px solid var(--ap2-line);
  border-radius:var(--ap2-radius-md);
  box-shadow:0 8px 24px rgba(65,86,110,.045);
  display:grid;
  gap:12px;
  min-width:0;
  padding:18px;
}
.ap2-subscription__plan-heading { align-items:center; display:flex; flex-wrap:wrap; gap:8px; justify-content:space-between; }
.ap2-subscription__plan h3 { color:var(--ap2-ink); font-size:17px; font-weight:600; letter-spacing:-.02em; margin:0; }
.ap2-subscription__discount { background:rgba(200,54,136,.09); border-radius:999px; color:#9d286b; font-size:12px; font-weight:600; padding:5px 8px; }
.ap2-subscription__price { color:var(--ap2-ink); font-size:26px; font-variant-numeric:tabular-nums; font-weight:650; letter-spacing:-.045em; line-height:1.15; }
.ap2-subscription__detail { color:var(--ap2-muted); display:block; font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
.ap2-subscription__checkout { border-top:1px solid var(--ap2-line); display:grid; gap:14px; margin:4px 0 0; padding-top:14px; }
.ap2-subscription__check { align-items:flex-start; color:var(--ap2-muted); display:flex; font-size:13px; font-weight:400; gap:9px; line-height:1.45; min-width:0; }
.ap2-subscription__check input { accent-color:var(--ap2-pink); flex:0 0 auto; height:18px; margin:2px 0 0; width:18px; }
.ap2-subscription__check a { color:var(--ap2-blue-text); text-decoration-color:rgba(56,189,248,.4); text-underline-offset:2px; }
.ap2-subscription__checkout .ap2-button { justify-self:stretch; white-space:normal; }
.ap2-subscription__unpublished { background:#f7f9fb; border:1px solid var(--ap2-line); border-radius:var(--ap2-radius-md); color:var(--ap2-muted); line-height:1.5; margin:0; padding:16px; }
.ap2-subscription__renewal { align-items:center; display:flex; flex-wrap:wrap; gap:18px; justify-content:space-between; }
.ap2-subscription__renewal > div { display:grid; gap:8px; }
.ap2-subscription__renewal .ap2-eyebrow { margin:0; }
.ap2-subscription__history { display:grid; gap:16px; }
.ap2-subscription__payment-list { border-top:1px solid var(--ap2-line); display:grid; }
.ap2-subscription__payment { align-items:center; display:flex; flex-wrap:wrap; gap:14px 20px; justify-content:space-between; min-width:0; padding:16px 0; }
.ap2-subscription__payment + .ap2-subscription__payment { border-top:1px solid var(--ap2-line); }
.ap2-subscription__payment-main { display:grid; gap:7px; min-width:0; }
.ap2-subscription__payment-heading { align-items:center; display:flex; flex-wrap:wrap; gap:9px 12px; }
.ap2-subscription__payment-heading > strong { color:var(--ap2-ink); font-size:17px; font-variant-numeric:tabular-nums; }
.ap2-subscription__payment p { color:var(--ap2-muted); font-size:14px; margin:0; }
.ap2-subscription__nav { grid-auto-columns:minmax(0,1fr); }
@media (min-width:760px) {
  body.ap2-shell.ap2-subscription-shell.ap2-role-admin .ap2-public-nav.ap2-workspace-nav { max-width:none; padding:5px; }
  body.ap2-shell.ap2-subscription-shell.ap2-role-admin .ap2-public-nav.ap2-workspace-nav a { font-size:12px; line-height:1.15; min-height:42px; padding:4px 5px; text-wrap:balance; }
  body.ap2-shell.ap2-subscription-shell.ap2-role-admin .ap2-public-nav.ap2-workspace-nav a + a::before { height:24px; }
  .ap2-subscription { padding:40px; }
  .ap2-subscription__current,
  .ap2-subscription__section,
  .ap2-subscription__renewal,
  .ap2-subscription__history { padding:26px; }
  .ap2-subscription__heading .ap2-button { justify-self:end; }
}
@media (max-width:900px) {
  .ap2-subscription__plans { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .ap2-subscription { gap:16px; padding:22px 14px 34px; }
  .ap2-subscription__heading { align-items:start; gap:14px; }
  .ap2-subscription__heading h1 { font-size:32px; }
  .ap2-subscription__heading .ap2-button { width:100%; }
  .ap2-subscription__current,
  .ap2-subscription__section,
  .ap2-subscription__renewal,
  .ap2-subscription__history { border-radius:var(--ap2-radius-md); padding:18px 16px; }
  .ap2-subscription__section-heading { align-items:flex-start; }
  .ap2-subscription__plans { grid-template-columns:minmax(0,1fr); }
  .ap2-subscription__plan { padding:17px; }
  .ap2-subscription__renewal .ap2-button,
  .ap2-subscription__payment > form,
  .ap2-subscription__payment > form .ap2-button { width:100%; }
  .ap2-subscription__payment { align-items:stretch; }
}

@media (min-width: 760px) {
  .ap2-first-rental { padding-top: 4px; }
  .ap2-first-rental__heading h1 { font-size: 42px; }
  .ap2-first-rental__step { padding: 22px; }
}

.ap2-supply-page {
  display: grid;
  gap: 30px;
}

.ap2-supply-hero {
  border-bottom: 1px solid var(--ap2-line);
  display: grid;
  gap: 22px;
  padding: 4px 0 30px;
}

.ap2-supply-hero__copy {
  max-width: 820px;
}

.ap2-supply-hero h1 {
  max-width: 18ch;
}

.ap2-supply-hero .ap2-lead {
  color: var(--ap2-muted);
  line-height: 1.65;
  max-width: 780px;
}

.ap2-supply-primary {
  align-items: start;
  display: grid;
  gap: 12px;
  justify-items: start;
}

.ap2-supply-primary .ap2-button {
  min-height: 50px;
  padding-inline: 24px;
}

.ap2-supply-primary .ap2-button:disabled {
  box-shadow: none;
  cursor: not-allowed;
  opacity: .58;
  transform: none;
}

.ap2-supply-note {
  border-left: 3px solid var(--ap2-pink);
  color: var(--ap2-muted);
  font-size: 14px;
  line-height: 1.5;
  margin: 0;
  max-width: 680px;
  padding: 5px 0 5px 14px;
}

.ap2-supply-section {
  border-top: 1px solid var(--ap2-line);
  display: grid;
  gap: 14px;
  padding-top: 24px;
}

.ap2-supply-section h2,
.ap2-supply-final h2 {
  margin: 0;
}

.ap2-supply-section > p,
.ap2-supply-steps p,
.ap2-supply-final p {
  color: var(--ap2-muted);
  line-height: 1.62;
  margin: 0;
  max-width: 820px;
}

.ap2-supply-steps {
  display: grid;
  gap: 14px;
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
}

.ap2-supply-steps li {
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(162,187,204,.3);
  border-radius: var(--ap2-radius-lg);
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 18px;
}

.ap2-supply-step__number {
  color: var(--ap2-pink);
  font-size: 26px;
  font-variant-numeric: tabular-nums;
  font-weight: 650;
  letter-spacing: -.05em;
  line-height: 1;
}

.ap2-supply-steps h3 {
  font-size: 17px;
  letter-spacing: -.02em;
  margin: 0;
}

.ap2-supply-facts {
  display: grid;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ap2-supply-facts li {
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(162,187,204,.24);
  border-left: 3px solid rgba(200,54,136,.48);
  border-radius: 0 var(--ap2-radius-md) var(--ap2-radius-md) 0;
  color: var(--ap2-muted);
  line-height: 1.58;
  min-width: 0;
  padding: 14px 16px;
}

.ap2-supply-facts strong {
  color: var(--ap2-ink);
}

.ap2-supply-section > .ap2-text-link {
  justify-self: start;
  min-height: 44px;
  padding: 10px 0;
}

.ap2-supply-final {
  background: linear-gradient(135deg, #E0F2FE, #BAE6FD);
  border-radius: var(--ap2-radius-lg);
  color: var(--ap2-ink);
  display: grid;
  gap: 18px;
  padding: 22px;
}

.ap2-supply-final p {
  color: #60606A;
  margin-top: 8px;
}

.ap2-shell .ap2-supply-final .ap2-button--secondary {
  background: #fff;
  border-color: rgba(255,255,255,.92);
  color: var(--ap2-premium-ink) !important;
}

.ap2-shell .ap2-supply-final .ap2-button--secondary:hover,
.ap2-shell .ap2-supply-final .ap2-button--secondary:focus-visible {
  background: var(--ap2-premium-pink-soft);
  border-color: var(--ap2-premium-pink-soft);
  color: var(--ap2-premium-violet) !important;
}

.ap2-shell .ap2-supply-final .ap2-text-link {
  color: #6e278f;
  text-decoration-color: currentColor;
}

.ap2-supply-final .ap2-seo-actions {
  margin-top: 0;
}

@media (max-width: 759px) {
  .ap2-results .ap2-page-return {
    display: none;
  }

  .ap2-results .ap2-seo-breadcrumbs {
    margin-bottom: 10px;
  }

  .ap2-results .ap2-seo-intro {
    margin-bottom: 14px;
    padding: 16px;
  }

  .ap2-results .ap2-seo-intro p {
    line-height: 1.5;
  }
}

@media (min-width: 760px) {
  .ap2-supply-hero {
    gap: 26px;
    padding-bottom: 36px;
  }

  .ap2-supply-steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ap2-supply-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ap2-supply-facts li:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .ap2-supply-final {
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 28px;
  }
}

/* Owner queue balance: reserve pink for a small status accent and let the
   surrounding surface carry the premium contrast in graphite and white. */
.ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading a {
  background: #fff;
  border-color: rgba(23, 23, 26, .16);
  color: var(--ap2-premium-ink);
}

.ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading a:hover,
.ap2-owner-operational .ap2-workspace-queue > .ap2-section-heading a:focus-visible {
  background: #17171a;
  border-color: #17171a;
  box-shadow: 0 8px 20px rgba(23, 23, 26, .14);
  color: #fff;
}

.ap2-owner-operational .ap2-queue-item {
  background: #fff;
  border-color: rgba(23, 23, 26, .12);
  box-shadow: 0 10px 28px rgba(23, 23, 26, .06);
}

.ap2-owner-operational .ap2-queue-item:hover {
  border-color: rgba(23, 23, 26, .22);
  box-shadow: 0 14px 32px rgba(23, 23, 26, .12);
}

.ap2-owner-operational .ap2-queue-item .ap2-task-status {
  background: #f4f4f5;
  border: 0;
  border-left: 3px solid var(--ap2-premium-pink);
  border-radius: 8px;
  color: var(--ap2-premium-ink);
  padding: 6px 10px;
}

.ap2-owner-operational .ap2-queue-item .ap2-button {
  background: #17171a;
  border: 0;
  box-shadow: 0 10px 24px rgba(23, 23, 26, .14);
  color: #fff !important;
}

.ap2-owner-operational .ap2-queue-item .ap2-button:hover,
.ap2-owner-operational .ap2-queue-item .ap2-button:focus-visible {
  background: #2b2b31;
  box-shadow: 0 12px 26px rgba(23, 23, 26, .18);
  color: #fff !important;
}

/* Mobile controls stay compact and inside their parent surface. Full-width
   actions keep their explicit wide/card contract; ordinary CTAs size to the
   label instead of creating oversized pill frames. */
@media (max-width: 759px) {
  .ap2-shell .ap2-button,
  .ap2-shell .auth-panel .button {
    box-sizing: border-box;
    font-size: 15px;
    line-height: 1.22;
    max-inline-size: 100%;
    min-height: 44px;
    min-inline-size: 0;
    overflow-wrap: anywhere;
    padding-block: 9px;
    padding-inline: 14px;
  }

  .ap2-shell .ap2-card--with-actions .ap2-card-actions,
  .ap2-shell .ap2-card--with-actions .ap2-card-edit-controls {
    justify-items: start;
    max-inline-size: 100%;
  }

  .ap2-shell .ap2-card--with-actions .ap2-card-action:not(.ap2-button--wide):not(.ap2-button--card),
  .ap2-shell .ap2-card--with-actions .ap2-card-actions > form,
  .ap2-shell .ap2-owner-place .ap2-button:not(.ap2-button--wide):not(.ap2-button--card),
  .ap2-shell .ap2-owner-hero > .ap2-button {
    justify-self: start;
    max-inline-size: 100%;
    width: auto;
  }

  .ap2-shell .ap2-card--with-actions .ap2-card-actions > form .ap2-button:not(.ap2-button--wide):not(.ap2-button--card) {
    max-inline-size: 100%;
    width: auto;
  }
}

/* Motion + clarity layer ----------------------------------------------------
   A restrained kinetic system makes the next useful action obvious without
   turning the interface into a carousel of effects. The pink rail is the
   persistent visual cue; lift and directional arrows only answer interaction. */
.ap2-shell {
  scroll-behavior: smooth;
}

.ap2-shell :is(.ap2-card--with-actions, .ap2-room-card, .ap2-specialist-card, .ap2-booking-card, .ap2-queue-item, .ap2-owner-place) {
  position: relative;
  transition: box-shadow 360ms var(--ap2-premium-ease), transform 360ms var(--ap2-premium-ease), border-color 260ms var(--ap2-premium-ease);
}

.ap2-shell :is(.ap2-card--with-actions, .ap2-room-card, .ap2-specialist-card, .ap2-booking-card, .ap2-queue-item, .ap2-owner-place)::before {
  background: linear-gradient(180deg, var(--ap2-premium-violet), var(--ap2-premium-pink));
  border-radius: 999px;
  content: "";
  inset: 18px auto 18px 0;
  opacity: .26;
  position: absolute;
  transform: scaleY(.36);
  transform-origin: center;
  transition: opacity 360ms var(--ap2-premium-ease), transform 420ms var(--ap2-premium-ease);
  width: 3px;
  z-index: 0;
}

.ap2-shell :is(.ap2-card--with-actions, .ap2-room-card, .ap2-specialist-card, .ap2-booking-card, .ap2-queue-item, .ap2-owner-place) > * {
  position: relative;
  z-index: 1;
}

@media (hover: hover) and (pointer: fine) {
  .ap2-shell :is(.ap2-card--with-actions, .ap2-room-card, .ap2-specialist-card, .ap2-booking-card, .ap2-queue-item, .ap2-owner-place):hover::before,
  .ap2-shell :is(.ap2-card--with-actions, .ap2-room-card, .ap2-specialist-card, .ap2-booking-card, .ap2-queue-item, .ap2-owner-place):focus-within::before {
    opacity: .95;
    transform: scaleY(1);
  }
}

/* Status markers turn labels such as “требует внимания” into a quick visual
   state scan. They use shape and colour, never an ambiguous text glyph. */
.ap2-shell .ap2-task-status {
  align-items: center;
  display: flex;
  gap: 8px;
}

.ap2-shell .ap2-task-status::before {
  background: currentColor;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(209, 63, 134, .12);
  content: "";
  flex: 0 0 7px;
  height: 7px;
  width: 7px;
}

.ap2-shell .ap2-task-card .ap2-task-status::before,
.ap2-shell .ap2-task-card--dominant .ap2-task-status::before {
  box-shadow: 0 0 0 4px rgba(247, 173, 219, .16);
}

/* Headings get a small editorial rail so the page answers “what is this
   section for?” before the user reaches the first control. */
.ap2-shell :is(.ap2-page-heading > h1, .ap2-home__intro > h1, .ap2-workspace-heading > h1, .ap2-section-heading > h2) {
  padding-inline-start: 13px;
  position: relative;
}

.ap2-shell :is(.ap2-page-heading > h1, .ap2-home__intro > h1, .ap2-workspace-heading > h1, .ap2-section-heading > h2)::before {
  background: linear-gradient(180deg, var(--ap2-premium-violet), var(--ap2-premium-pink));
  border-radius: 999px;
  content: "";
  inset: .16em auto .16em 0;
  position: absolute;
  width: 4px;
}

/* Directional cues are reserved for navigation/continuation actions. Save,
   confirm and destructive controls keep their clean labels. */
.ap2-shell :is(.ap2-page-heading > .ap2-button, .ap2-empty-state > .ap2-button, .ap2-owner-hero > .ap2-button, .ap2-section-heading > a) {
  align-items: center;
  gap: 8px;
}

.ap2-shell :is(.ap2-page-heading > .ap2-button, .ap2-empty-state > .ap2-button, .ap2-owner-hero > .ap2-button, .ap2-section-heading > a)::after {
  background: currentColor;
  content: "";
  display: inline-block;
  flex: 0 0 15px;
  height: 15px;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 220ms var(--ap2-premium-ease);
  width: 15px;
}

@media (hover: hover) and (pointer: fine) {
  .ap2-shell :is(.ap2-page-heading > .ap2-button, .ap2-empty-state > .ap2-button, .ap2-owner-hero > .ap2-button, .ap2-section-heading > a):hover::after,
  .ap2-shell :is(.ap2-page-heading > .ap2-button, .ap2-empty-state > .ap2-button, .ap2-owner-hero > .ap2-button, .ap2-section-heading > a):focus-visible::after {
    transform: translateX(3px);
  }
}

/* Draft forms use a compact, label-sized action. Wide/card variants remain
   intentionally full-width elsewhere; only the single-step form CTA is
   reduced here so it reads as a focused save action instead of a banner. */
.ap2-shell .ap2-form-page .ap2-owner-form > .ap2-button:not(.ap2-button--wide):not(.ap2-button--card) {
  font-size: 15px;
  min-height: 46px;
  padding-inline: 20px;
}

@media (max-width: 759px) {
  .ap2-shell .ap2-form-page .ap2-owner-form > .ap2-button:not(.ap2-button--wide):not(.ap2-button--card) {
    font-size: 14px;
    min-height: 42px;
    padding-inline: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ap2-shell {
    scroll-behavior: auto;
  }

  .ap2-shell :is(.ap2-card--with-actions, .ap2-room-card, .ap2-specialist-card, .ap2-booking-card, .ap2-queue-item, .ap2-owner-place) {
    transition: none;
  }

  .ap2-shell :is(.ap2-card--with-actions, .ap2-room-card, .ap2-specialist-card, .ap2-booking-card, .ap2-queue-item, .ap2-owner-place)::before {
    opacity: .56;
    transform: none;
    transition: none;
  }

  .ap2-shell :is(.ap2-page-heading > .ap2-button, .ap2-empty-state > .ap2-button, .ap2-owner-hero > .ap2-button, .ap2-section-heading > a)::after {
    transition: none;
  }
}

/* Equipment rental forms use the same label rhythm and compact white controls
   as the rest of the owner workspace. */
.ap2-shell .ap2-equipment-rental-form {
  gap: 16px;
  width: 100%;
}

.ap2-shell .ap2-equipment-rental-form > .ap2-equipment-rental-form__section {
  display: grid;
  gap: 16px;
  margin-top: 0;
  min-inline-size: 0;
  padding: 22px;
}

.ap2-shell .ap2-equipment-rental-form__section > h2 {
  margin: 0;
}

.ap2-shell .ap2-equipment-rental-form__field-grid,
.ap2-shell .ap2-equipment-rental-form__pricing-grid,
.ap2-shell .ap2-equipment-rental-form__delivery-details {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-inline-size: 0;
}

.ap2-shell .ap2-equipment-rental-form__field {
  color: var(--ap2-ink);
  display: grid;
  font-size: 15px;
  font-weight: 500;
  gap: 7px;
  min-inline-size: 0;
}

.ap2-shell .ap2-equipment-rental-form__field > span {
  line-height: 1.35;
}

.ap2-shell .ap2-equipment-rental-form__field :is(input:not([type="checkbox"]), textarea) {
  background: #fff;
  border: 1px solid var(--ap2-line);
  border-radius: 14px;
  box-sizing: border-box;
  color: var(--ap2-ink);
  font: inherit;
  min-height: 50px;
  min-width: 0;
  padding: 12px 14px;
  width: 100%;
}

.ap2-shell .ap2-equipment-rental-form__field textarea {
  min-height: 112px;
  resize: vertical;
}

.ap2-shell .ap2-equipment-rental-form__pricing-option {
  background: #fff;
  border: 1px solid var(--ap2-line);
  border-radius: 18px;
  display: grid;
  gap: 14px;
  min-inline-size: 0;
  padding: 16px;
}

.ap2-shell .ap2-equipment-rental-form__toggle {
  align-items: center;
  background: #fff;
  border: 1px solid var(--ap2-line);
  border-radius: 14px;
  box-sizing: border-box;
  color: var(--ap2-ink);
  display: flex;
  font-size: 15px;
  font-weight: 500;
  gap: 10px;
  line-height: 1.35;
  min-height: 48px;
  min-inline-size: 0;
  overflow-wrap: anywhere;
  padding: 10px 13px;
}

.ap2-shell .ap2-equipment-rental-form__toggle > input[type="checkbox"] {
  accent-color: var(--ap2-pink);
  flex: 0 0 20px;
  height: 20px;
  margin: 0;
  width: 20px;
}

.ap2-shell .ap2-equipment-rental-form__toggle > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.ap2-shell .ap2-equipment-rental-form__method-group {
  border: 0;
  margin: 0;
  min-inline-size: 0;
  padding: 0;
}

.ap2-shell .ap2-equipment-rental-form__method-group > legend {
  color: var(--ap2-muted);
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 8px;
  padding: 0;
}

.ap2-shell .ap2-equipment-rental-form__method-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-inline-size: 0;
}

.ap2-shell .ap2-equipment-rental-form__delivery-details {
  align-items: start;
}

.ap2-shell .ap2-equipment-rental-form__delivery-details > .ap2-equipment-rental-form__field:last-child {
  grid-column: 1 / -1;
}

.ap2-shell .ap2-equipment-rental-form > .ap2-button {
  justify-self: start;
  max-inline-size: 100%;
}

@media (max-width: 759px) {
  .ap2-shell .ap2-equipment-rental-form > .ap2-equipment-rental-form__section {
    gap: 14px;
    padding: 16px;
  }

  .ap2-shell .ap2-equipment-rental-form__field-grid,
  .ap2-shell .ap2-equipment-rental-form__pricing-grid,
  .ap2-shell .ap2-equipment-rental-form__delivery-details,
  .ap2-shell .ap2-equipment-rental-form__method-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ap2-shell .ap2-equipment-rental-form__delivery-details > .ap2-equipment-rental-form__field:last-child {
    grid-column: auto;
  }
}
