/* Scoped to the administrative layout; the public home keeps its identity. */
.roca-admin {
  --roca-black: #151515; --roca-ivory: #f6f1ea; --roca-gold: #a87537;
  --roca-gold-light: #c59a61; --roca-text: #202020; --roca-muted: #6f675f;
  --roca-border: #d8cec1; --roca-success: #36563b; --roca-warning: #77501f;
  --roca-card: #fbf8f4; --roca-white: #fff; --roca-danger: #8b3030;
  --color-gold: var(--roca-gold); --color-gold-dark: #825723;
  --color-ink: var(--roca-text); --color-body: var(--roca-text);
  --color-muted: var(--roca-muted); --color-sand: var(--roca-ivory);
  --color-sand-dark: var(--roca-border); --color-card: var(--roca-card);
  --color-navy: var(--roca-black); --color-green: var(--roca-success);
  margin: 0; min-height: 100vh; background: var(--roca-ivory); color: var(--roca-text);
  font-family: ui-sans-serif, system-ui, sans-serif;
}
.roca-admin * { box-sizing: border-box; }
.roca-admin :focus-visible { outline: 3px solid var(--roca-gold); outline-offset: 4px; }
.roca-admin h1 { font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.2; }
.roca-sidebar { background: var(--roca-black); color: var(--roca-ivory); padding: 1.25rem; }
.roca-brand { display: flex; flex-direction: column; text-align: center; text-decoration: none; padding: 1rem; color: inherit; }
.roca-brand span { font: 2rem Georgia, serif; letter-spacing: .08em; }
.roca-brand small { font-size: .75rem; letter-spacing: .3em; margin-top: .3rem; color: var(--roca-gold-light); }
.roca-menu summary { cursor: pointer; padding: .9rem; border: 1px solid var(--roca-gold-light); border-radius: .5rem; }
.roca-nav-links { display: grid; gap: .5rem; margin-top: 1rem; }
.roca-nav-links a { padding: .9rem 1rem; border-radius: .5rem; text-decoration: none; }
.roca-nav-links a:hover, .roca-nav-links a[aria-current] { background: var(--roca-gold); color: var(--roca-white); }
.roca-account { margin-top: 1.5rem; border-top: 1px solid var(--roca-muted); padding-top: 1rem; overflow-wrap: anywhere; font-size: .875rem; }
.roca-account span { color: var(--roca-gold-light); }
.roca-signout { cursor: pointer; min-height: 44px; text-decoration: underline; }
.roca-main { min-width: 0; padding: 1.5rem 1rem; }
.roca-page-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.roca-page-heading p { margin-top: .5rem; color: var(--roca-muted); }
.roca-eyebrow { text-transform: uppercase; letter-spacing: .15em; font-size: .75rem; }
.roca-panel { padding: 1.25rem; border: 1px solid var(--roca-border); background: var(--roca-card); border-radius: .85rem; box-shadow: 0 4px 16px #15151508; }
.roca-form-panel { max-width: 42rem; }
.roca-button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: .8rem 1.4rem; background: var(--roca-gold); color: var(--roca-white); border-radius: .5rem; cursor: pointer; text-decoration: none; }
.roca-button:hover { background: var(--color-gold-dark); }
.roca-secondary { display: inline-flex; align-items: center; min-height: 48px; text-decoration: underline; }
.roca-field { display: grid; gap: .5rem; margin-bottom: 1.25rem; }
.roca-field label { font-weight: 600; }
.roca-field input, .roca-auth input:not([type=checkbox]):not([type=submit]) { width: 100%; min-height: 48px; padding: .75rem; border: 1px solid var(--roca-border); border-radius: .4rem; background: var(--roca-white); }
.roca-field p { color: var(--roca-muted); font-size: .875rem; }
.roca-actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.roca-user-list { list-style: none; padding: 0; }
.roca-user-list li { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; padding: 1rem 0; overflow-wrap: anywhere; border-bottom: 1px solid var(--roca-border); }
.roca-badge { font-size: .75rem; color: var(--roca-muted); }
.roca-notice, .roca-alert { padding: 1rem; margin-bottom: 1.5rem; border: 1px solid currentColor; border-radius: .5rem; }
.roca-notice { color: var(--roca-success); }.roca-alert { color: var(--roca-danger); }
.roca-skip { position: absolute; left: -10000px; }.roca-skip:focus { left: 1rem; top: 1rem; z-index: 10; background: var(--roca-card); padding: 1rem; }
.roca-auth-brand { background: var(--roca-black); color: var(--roca-ivory); }
.roca-auth .roca-main { max-width: 30rem; margin: 2rem auto; padding: 2rem; background: var(--roca-card); border: 1px solid var(--roca-border); border-radius: .75rem; }
.roca-auth .field { margin: 1rem 0; }.roca-auth .actions input { min-height: 48px; padding: .75rem 1.25rem; background: var(--roca-gold); color: var(--roca-white); cursor: pointer; border-radius: .4rem; }
@media (min-width: 900px) {
  .roca-sidebar { position: fixed; inset: 0 auto 0 0; width: 250px; display: flex; flex-direction: column; overflow-y: auto; }
  .roca-sidebar nav { margin-top: 2rem; }.roca-account { margin-top: auto; }
  .roca-menu summary { display: none; }.roca-menu > .roca-nav-links { display: grid; }
  .roca-main { margin-left: 250px; padding: 3rem; }
  .roca-auth .roca-main { margin: 2rem auto; }
}

@media (max-width: 899px) {
  .roca-admin table, .roca-admin tbody, .roca-admin tr, .roca-admin td { display: block; width: 100%; }
  .roca-admin thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .roca-admin tbody tr { padding: .75rem; border-bottom: 1px solid var(--roca-border); }
  .roca-admin td { padding: .5rem; text-align: left; white-space: normal; overflow-wrap: anywhere; }
  .roca-admin td::before { content: attr(data-label); display: block; font-size: .7rem; font-weight: 600; text-transform: uppercase; color: var(--roca-muted); margin-bottom: .2rem; }
  .roca-admin .roca-main > .flex { flex-wrap: wrap; gap: 1rem; }
}

.roca-inventory-form { max-width: 70rem; }
.roca-inventory-form fieldset { border: 0; border-bottom: 1px solid var(--roca-border); padding: 0 0 1.5rem; margin-bottom: 1.5rem; min-width: 0; }
.roca-inventory-form legend, .roca-panel > h2 { font: 1.5rem Georgia, serif; margin-bottom: 1rem; }
.roca-form-grid { display: grid; gap: 0 1.5rem; }
.roca-field select, .roca-field textarea { width: 100%; min-height: 48px; padding: .75rem; border: 1px solid var(--roca-border); border-radius: .4rem; background: var(--roca-white); }
.roca-help { color: var(--roca-muted); margin: .75rem 0 1.25rem; font-size: .875rem; }
.roca-check { display: flex; align-items: center; gap: .75rem; min-height: 48px; }
.roca-check input { width: 20px; height: 20px; flex-shrink: 0; }
.roca-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1rem; }
.roca-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: .5rem; }
.roca-gallery figcaption { overflow-wrap: anywhere; color: var(--roca-muted); font-size: .8rem; }
@media (min-width: 700px) { .roca-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.crm-search { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; margin-bottom: 1.5rem; }
.crm-search .roca-field { flex: 1 1 240px; margin: 0; }
.crm-customer-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); }
.crm-customer { overflow-wrap: anywhere; }.crm-customer h2 { font: 1.6rem Georgia, serif; margin: .75rem 0; }
.crm-customer > p:not(.roca-eyebrow) { color: var(--roca-muted); margin-bottom: .5rem; font-size: .875rem; }
.crm-pagination { display: flex; gap: 1rem; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-top: 1.5rem; font-size: .875rem; }
.crm-profile { display: grid; gap: 1.5rem; min-width: 0; }.crm-profile > * { min-width: 0; }
.crm-contact div { padding: .75rem 0; border-bottom: 1px solid var(--roca-border); overflow-wrap: anywhere; }.crm-contact dt { color: var(--roca-muted); font-size: .75rem; }.crm-contact dd { margin-top: .3rem; }.crm-contact a { text-decoration: underline; }
.crm-timeline { list-style: none; padding-left: 1rem; margin-top: 1.5rem; }
.crm-timeline li { position: relative; border-left: 1px solid var(--roca-border); padding: 0 0 2rem 1.5rem; overflow-wrap: anywhere; }
.crm-timeline li::before { content: ""; position: absolute; top: .3rem; left: -.3rem; width: .6rem; height: .6rem; background: var(--roca-gold); border-radius: 50%; }
.crm-event-heading { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-between; }.crm-event-heading time, .crm-event-author { color: var(--roca-muted); font-size: .75rem; }.crm-event-author { margin: .5rem 0; }.crm-event-body { line-height: 1.6; font-size: .875rem; }
.crm-linked-leads, .crm-link-candidates { list-style: none; padding: 0; }.crm-linked-leads li { display: grid; gap: .3rem; padding: .75rem 0; border-bottom: 1px solid var(--roca-border); }.crm-linked-leads a { text-decoration: underline; }.crm-linked-leads time { color: var(--roca-muted); font-size: .75rem; }
.crm-lead-link { max-width: 50rem; }.crm-link-candidates li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 0; border-bottom: 1px solid var(--roca-border); overflow-wrap: anywhere; }.crm-link-candidates li p { color: var(--roca-muted); font-size: .8rem; }
@media (min-width: 1100px) { .crm-profile { grid-template-columns: minmax(240px, 1fr) minmax(0, 2fr); align-items: start; } }
.proposal-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 1rem; margin-bottom: 2rem; }.proposal-stats span { color: var(--roca-muted); font-size: .8rem; }.proposal-stats strong { display: block; font: 2rem Georgia, serif; margin-top: .5rem; }
.proposal-list { display: grid; gap: 1rem; }.proposal-list-item { display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: center; }.proposal-list-item > img { width: 140px; height: 95px; object-fit: cover; border-radius: .5rem; }.proposal-list-item > div:first-of-type { flex: 1 1 200px; overflow-wrap: anywhere; }.proposal-list-item h2 { font: 1.5rem Georgia, serif; margin-bottom: .5rem; }.proposal-option-actions { display: flex; gap: 1rem; flex-wrap: wrap; }.proposal-option-actions button:disabled { opacity: .35; cursor: default; }
.proposal-form { max-width: 70rem; }.proposal-form-cover { max-width: 100%; width: 300px; border-radius: .5rem; margin-bottom: 1rem; }
.proposal-preview { background: var(--map-card); border: 1px solid var(--map-border); border-radius: .8rem; overflow: hidden; }.proposal-preview-cover { width: 100%; max-height: 480px; object-fit: cover; }.proposal-preview-intro { padding: clamp(1rem, 3vw, 2.5rem); overflow-wrap: anywhere; }.proposal-preview h2 { font: 1.8rem Georgia, serif; margin-bottom: 1rem; }.proposal-preview-option { display: grid; gap: 1.5rem; padding: clamp(1rem, 3vw, 2.5rem); border-top: 1px solid var(--map-border); }.proposal-preview-option > div { min-width: 0; }.proposal-preview-option .space-gallery { margin-top: 1rem; }
@media (min-width: 1100px) { .proposal-preview-option { grid-template-columns: minmax(0, 1.5fr) minmax(250px, 1fr); } }
.proposal-publication { margin-bottom: 2rem; display: grid; gap: 1rem; }.proposal-publication input:not([type=submit]):not([type=button]) { width: 100%; min-width: 0; min-height: 48px; padding: .75rem; border: 1px solid var(--roca-border); border-radius: .4rem; background: var(--roca-ivory); }.proposal-publication button:disabled { opacity: .5; cursor: default; }
.proposal-local-picker { margin: 1.5rem 0; border: 0; padding: 0; min-width: 0; }
.proposal-local-picker legend { font: 1.5rem Georgia, serif; }
.proposal-local-choices { display: grid; gap: .75rem; max-height: 28rem; overflow-y: auto; padding: .25rem; }
.proposal-local-choices > label { padding: .75rem; border: 1px solid var(--roca-border); border-radius: .5rem; align-items: flex-start; }
.proposal-local-choices small { display: block; }
.proposal-local-choices span { min-width: 0; overflow-wrap: anywhere; }
.floor-fields { margin-bottom: 1rem; }
.roca-admin input:disabled { background: var(--roca-border); color: var(--roca-muted); cursor: not-allowed; }
.roca-admin input[readonly] { background: var(--roca-ivory); }
.roca-admin [hidden] { display: none !important; }
@media (min-width: 700px) { .proposal-local-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
