:root { --navy:#052b69; --blue:#0a5cad; --sky:#1ab8df; --yellow:#f7cb3e; --ink:#092e60; --muted:#56708f; --pale:#e7f2ff; --white:#fff; --line:rgba(10,86,173,.17); --danger:#b7334e; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); background:var(--pale); }
* { box-sizing:border-box; } body { min-width:320px; min-height:100vh; margin:0; background:radial-gradient(circle at 87% 0%,rgba(26,184,223,.2),transparent 29rem),linear-gradient(145deg,#f7fbff,var(--pale)); } button,input,select,textarea { font:inherit; } button { cursor:pointer; } .topbar { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px max(22px,calc((100% - 1280px)/2)); color:#fff; background:linear-gradient(110deg,var(--navy),#0754a0); border-bottom:2px solid rgba(125,215,243,.52); box-shadow:0 8px 24px rgba(4,45,105,.16); } .brand { display:flex; align-items:center; gap:12px; color:inherit; text-decoration:none; } .brand-seal,.card-icon { width:40px; height:40px; display:grid; place-items:center; flex:none; color:var(--navy); background:var(--yellow); border-radius:12px; font-weight:900; font-size:1.55rem; box-shadow:inset 0 0 0 1px rgba(255,255,255,.45); } .brand strong { display:block; font-size:1rem; letter-spacing:-.025em; } .brand small { display:block; margin-top:2px; color:rgba(255,255,255,.76); font-size:.67rem; font-weight:650; letter-spacing:.025em; } .account-area { display:flex; align-items:center; gap:14px; } .account-name { max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.8rem; font-weight:700; } .text-button { padding:8px 11px; color:#fff; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.38); border-radius:8px; font-size:.73rem; font-weight:800; } .text-button:hover { background:#fff; color:var(--navy); }
.page-shell { width:min(1280px,calc(100% - 40px)); margin:0 auto; } .eyebrow { margin:0 0 8px; color:var(--blue); font-size:.68rem; font-weight:850; letter-spacing:.13em; } h1,h2,h3,p { margin-top:0; } h1,h2,h3 { letter-spacing:-.045em; } .muted { color:var(--muted); line-height:1.55; } .primary-button { width:100%; display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:11px 18px; color:#fff; background:linear-gradient(135deg,#0864bb,#1682cc); border:1px solid #0b68bc; border-radius:10px; box-shadow:0 7px 15px rgba(4,75,153,.16); font-size:.8rem; font-weight:850; text-decoration:none; transition:transform .15s,box-shadow .15s,background .15s; } .primary-button:hover,.primary-button:focus-visible { background:#07559e; box-shadow:0 10px 20px rgba(4,75,153,.22); outline:0; transform:translateY(-1px); } .inline-button { width:auto; } .small-button { width:auto; min-height:38px; padding:8px 14px; font-size:.73rem; } .danger-button { padding:4px 0; color:var(--danger); background:transparent; border:0; font-size:.71rem; font-weight:800; } .danger-button:hover { text-decoration:underline; }
.auth-layout { width:min(1080px,100%); min-height:calc(100vh - 82px); display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:86px; margin:auto; padding:70px 0; } .auth-intro h1 { max-width:610px; margin-bottom:16px; font-size:clamp(2.3rem,5vw,4.35rem); line-height:.98; } .auth-intro>p:not(.eyebrow) { max-width:535px; color:var(--muted); font-size:1.04rem; line-height:1.68; } .benefit-list { display:grid; gap:11px; margin:28px 0 0; padding:0; color:var(--ink); list-style:none; font-size:.84rem; font-weight:700; } .benefit-list li { display:flex; align-items:center; gap:10px; } .benefit-list li::before { content:""; width:8px; height:8px; flex:none; background:var(--sky); border-radius:50%; box-shadow:0 0 0 5px rgba(26,184,223,.13); }
.auth-card,.panel { background:rgba(255,255,255,.94); border:1px solid rgba(10,86,173,.18); border-radius:16px; box-shadow:0 18px 38px rgba(6,63,127,.11); } .auth-card { padding:34px; } .auth-card .card-icon { margin-bottom:18px; } .auth-card h2 { margin-bottom:7px; font-size:1.72rem; } .auth-card label,.service-form label,.edit-form label { display:grid; gap:6px; margin-top:16px; color:#264d78; font-size:.73rem; font-weight:850; } input,select,textarea { width:100%; min-height:41px; padding:9px 10px; color:var(--ink); background:#f8fbff; border:1px solid rgba(9,86,173,.24); border-radius:8px; outline:0; transition:border-color .15s,box-shadow .15s; } select { appearance:auto; } textarea { resize:vertical; } input:focus,select:focus,textarea:focus { background:#fff; border-color:var(--sky); box-shadow:0 0 0 3px rgba(26,184,223,.16); } .auth-card .primary-button,.service-form .primary-button { margin-top:22px; } .help-copy { margin:14px 0 0; color:var(--muted); font-size:.67rem; line-height:1.5; } .validation { display:block; color:#ac2140; font-size:.68rem; font-weight:700; } .form-alert { margin:16px 0 0; padding:10px 12px; color:#8b1730; background:#fff0f2; border-left:3px solid #d54360; border-radius:4px; font-size:.75rem; font-weight:700; } .change-password-wrap { min-height:calc(100vh - 82px); display:grid; place-items:center; padding:42px 0; } .compact-card { width:min(460px,100%); } .compact-card h1 { margin-bottom:8px; font-size:2rem; line-height:1; }
.dashboard-hero { display:flex; align-items:end; justify-content:space-between; gap:24px; margin:45px 0 22px; padding:31px 34px; color:#fff; background:linear-gradient(130deg,#063476,#0b67b9 72%,#0e8acb); border:1px solid rgba(255,255,255,.4); border-radius:18px; box-shadow:0 18px 32px rgba(4,59,125,.17); } .dashboard-hero .eyebrow { color:#8ae4fa; } .dashboard-hero h1 { margin-bottom:8px; font-size:clamp(1.9rem,3vw,3rem); } .dashboard-hero p:not(.eyebrow) { max-width:650px; margin-bottom:0; color:rgba(255,255,255,.8); line-height:1.5; } .hero-stat { min-width:142px; padding:14px 18px; text-align:center; color:var(--navy); background:#fff; border-radius:12px; } .hero-stat strong { display:block; color:#0d63af; font-size:2rem; letter-spacing:-.07em; } .hero-stat span { font-size:.68rem; font-weight:800; } .notice { margin:0 0 18px; padding:12px 15px; border-radius:9px; font-size:.78rem; font-weight:750; } .notice-success { color:#11663f; background:#e7f9ef; border:1px solid #b8e8cb; } .notice-error { color:#8e2037; background:#fff0f2; border:1px solid #f2bdc8; }
.point-selector-panel { display:flex; align-items:center; justify-content:space-between; gap:22px; margin:0 0 20px; padding:18px 21px; background:linear-gradient(115deg,#edf7ff,#f9fcff); border:1px solid rgba(10,86,173,.17); border-radius:13px; box-shadow:0 8px 18px rgba(6,63,127,.06); } .point-selector-panel .eyebrow { margin-bottom:5px; } .point-selector-panel h2 { margin:0 0 4px; font-size:1.1rem; } .point-selector-panel p:not(.eyebrow) { margin:0; color:var(--muted); font-size:.72rem; } .point-picker-label { display:grid; min-width:255px; gap:5px; color:#315d8a; font-size:.67rem; font-weight:850; } .point-picker-label select { min-height:40px; background:#fff; }
.point-picker-actions { display:grid; min-width:255px; gap:8px; } .point-picker-actions .point-picker-label { min-width:0; } .room-button { width:100%; min-height:34px; padding:6px 10px; font-size:.68rem; }
.admin-hero { margin:46px 0 22px; padding:31px 34px; color:#fff; background:linear-gradient(130deg,#063476,#0b67b9 72%,#0e8acb); border-radius:18px; box-shadow:0 18px 32px rgba(4,59,125,.17); } .admin-hero .eyebrow { color:#8ae4fa; } .admin-hero h1 { margin-bottom:8px; font-size:clamp(1.9rem,3vw,3rem); } .admin-hero p:not(.eyebrow) { margin:0; color:rgba(255,255,255,.82); } .center-picker { display:grid; grid-template-columns:repeat(auto-fill,minmax(245px,1fr)); gap:13px; padding-bottom:62px; } .center-picker-card { display:flex; align-items:center; gap:11px; min-height:98px; padding:16px; color:var(--ink); background:rgba(255,255,255,.94); border:1px solid rgba(10,86,173,.18); border-radius:13px; box-shadow:0 9px 20px rgba(6,63,127,.08); text-decoration:none; transition:transform .15s,box-shadow .15s,border-color .15s; } .center-picker-card:hover,.center-picker-card:focus-visible { border-color:var(--sky); box-shadow:0 13px 25px rgba(6,63,127,.14); outline:0; transform:translateY(-2px); } .picker-icon { width:32px; height:32px; display:grid; place-items:center; flex:none; color:#fff; background:#0a63b5; border-radius:9px; font-weight:900; } .center-picker-card span:nth-child(2) { min-width:0; flex:1; } .center-picker-card strong,.center-picker-card small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .center-picker-card strong { font-size:.83rem; } .center-picker-card small { margin-top:5px; color:var(--muted); font-size:.67rem; font-weight:700; } .center-picker-card b { color:#0a65b4; }
.calendar-panel { margin:0 0 20px; padding:24px; background:rgba(255,255,255,.94); border:1px solid rgba(10,86,173,.18); border-radius:16px; box-shadow:0 14px 30px rgba(6,63,127,.09); } .calendar-heading { display:flex; justify-content:space-between; align-items:start; gap:20px; margin-bottom:20px; } .calendar-heading h2 { margin:0 0 6px; font-size:1.38rem; } .calendar-heading p:not(.eyebrow) { max-width:570px; margin:0; color:var(--muted); font-size:.78rem; line-height:1.5; } .calendar-legend { display:flex; align-items:center; gap:6px; flex:none; color:var(--muted); font-size:.66rem; font-weight:750; } .calendar-legend i { width:9px; height:9px; background:var(--sky); border-radius:50%; box-shadow:0 0 0 4px rgba(26,184,223,.13); } .calendar-move-form { display:none; } .calendar-scroll { overflow-x:auto; padding-bottom:4px; } .weekly-calendar-grid { position:relative; display:grid; grid-template-columns:52px repeat(7,minmax(125px,1fr)); min-width:945px; border:1px solid rgba(10,86,173,.17); border-radius:10px; overflow:hidden; } .calendar-hours { display:grid; grid-template-rows:repeat(7,1fr); height:728px; padding:0 8px 0 0; color:#6b87a3; background:#f2f8fe; border-right:1px solid rgba(10,86,173,.16); font-size:.61rem; font-weight:800; text-align:right; } .calendar-hours span { padding-top:6px; } .calendar-day { min-width:0; border-right:1px solid rgba(10,86,173,.13); } .calendar-day:last-child { border:0; } .calendar-day header { height:37px; display:grid; place-items:center; color:#315d8a; background:#f7fbff; border-bottom:1px solid rgba(10,86,173,.15); font-size:.68rem; font-weight:850; } .calendar-surface { position:relative; height:728px; background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(14.2857% - 1px),rgba(10,86,173,.11) calc(14.2857% - 1px),rgba(10,86,173,.11) 14.2857%),linear-gradient(90deg,rgba(232,244,255,.32),rgba(255,255,255,.48)); transition:background .15s,box-shadow .15s; } .calendar-surface.is-drop-target { background-color:rgba(26,184,223,.16); box-shadow:inset 0 0 0 2px rgba(26,184,223,.52); } .calendar-event { position:absolute; z-index:1; left:4px; width:calc(100% - 8px); min-height:31px; padding:6px 7px; overflow:hidden; color:#fff; background:linear-gradient(145deg,#0a63b6,#1684c9); border:1px solid rgba(255,255,255,.68); border-radius:7px; box-shadow:0 4px 9px rgba(2,61,121,.23); cursor:grab; text-align:left; transition:opacity .15s,transform .15s,box-shadow .15s; } .calendar-event:hover,.calendar-event:focus-visible { z-index:2; outline:0; box-shadow:0 7px 14px rgba(2,61,121,.32); transform:scale(1.025); } .calendar-event.is-dragging { opacity:.45; cursor:grabbing; } .calendar-event.is-saving { cursor:wait; filter:saturate(.55); } .calendar-event strong,.calendar-event small,.calendar-event time { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .calendar-event strong { font-size:.63rem; line-height:1.25; } .calendar-event small,.calendar-event time { margin-top:2px; color:rgba(255,255,255,.84); font-size:.55rem; font-weight:650; } .calendar-help,.calendar-status { margin:12px 0 0; color:var(--muted); font-size:.68rem; line-height:1.45; } .calendar-status { min-height:1.15em; color:#126c55; font-weight:750; } .calendar-status.is-error { color:#a42e47; } .calendar-empty { padding:28px 15px; color:var(--muted); text-align:center; } .calendar-empty span { display:grid; width:32px; height:32px; margin:0 auto 8px; place-items:center; color:#0b65b7; background:#e6f4ff; border-radius:50%; } .calendar-empty strong { display:block; color:var(--ink); font-size:.86rem; } .calendar-empty p { margin:5px 0 0; font-size:.72rem; }
.agenda-controls { display:flex; align-items:end; justify-content:space-between; gap:14px; margin:0 0 13px; padding:10px; background:#f2f8ff; border:1px solid rgba(10,86,173,.12); border-radius:10px; } .agenda-mode-switch { display:inline-flex; padding:3px; background:#e2effa; border-radius:8px; } .agenda-mode { min-height:31px; padding:5px 12px; color:#486c90; background:transparent; border:0; border-radius:6px; font-size:.67rem; font-weight:850; } .agenda-mode.active { color:#fff; background:#0a63b6; box-shadow:0 2px 5px rgba(4,75,153,.18); } .agenda-controls label { display:grid; min-width:160px; gap:4px; color:#416b92; font-size:.62rem; font-weight:850; } .agenda-controls select { min-height:34px; padding:6px 8px; } .agenda-controls select:disabled { color:#98aabd; background:#edf3f8; }
.availability-table-wrap { overflow-x:auto; border:1px solid rgba(10,86,173,.16); border-radius:10px; } .availability-table { width:100%; min-width:510px; border-spacing:0; border-collapse:collapse; } .availability-table th { padding:11px 14px; color:#416b92; background:#f1f8ff; border-bottom:1px solid rgba(10,86,173,.16); font-size:.64rem; font-weight:850; letter-spacing:.08em; text-align:left; text-transform:uppercase; } .availability-table th:first-child { width:32%; border-right:1px solid rgba(10,86,173,.13); } .availability-table td { padding:0; border-bottom:1px solid rgba(10,86,173,.12); vertical-align:middle; } .availability-table tr:last-child td { border-bottom:0; } .availability-time { padding:13px 14px !important; background:#f8fbff; border-right:1px solid rgba(10,86,173,.13); } .availability-time strong,.availability-time span { display:block; } .availability-time strong { color:#1a558f; font-size:.72rem; } .availability-time span { margin-top:4px; color:var(--muted); font-size:.68rem; font-weight:700; } .availability-service { width:100%; display:block; padding:13px 15px; color:var(--ink); background:transparent; border:0; text-align:left; transition:background .15s; } .availability-service:hover,.availability-service:focus-visible { background:#eaf6ff; outline:0; } .availability-service strong,.availability-service small { display:block; } .availability-service strong { font-size:.79rem; } .availability-service small { margin-top:4px; color:var(--muted); font-size:.68rem; font-weight:650; }
.availability-matrix { min-width:860px; table-layout:fixed; } .availability-matrix th:first-child { width:175px; } .availability-matrix thead th { text-align:center; } .availability-matrix .availability-time { width:175px; text-align:left; } .availability-matrix .availability-cell { min-width:118px; padding:7px; border-right:1px solid rgba(10,86,173,.11); vertical-align:top; background:#fcfeff; } .availability-matrix tr:nth-child(even) .availability-cell { background:#f7fbff; } .availability-matrix .availability-cell:last-child { border-right:0; } .availability-matrix .availability-service { margin:0 0 6px; padding:8px 9px; color:#fff; background:linear-gradient(145deg,#0a63b6,#1684c9); border:1px solid rgba(255,255,255,.72); border-radius:7px; box-shadow:0 3px 7px rgba(2,61,121,.15); } .availability-matrix .availability-service:last-child { margin-bottom:0; } .availability-matrix .availability-service:hover,.availability-matrix .availability-service:focus-visible { background:#07569f; box-shadow:0 5px 10px rgba(2,61,121,.23); } .availability-matrix .availability-service strong,.availability-matrix .availability-service small,.availability-matrix .availability-time-range,.availability-matrix .availability-notes { display:block; } .availability-matrix .availability-service strong { margin-top:3px; font-size:.65rem; line-height:1.25; } .availability-matrix .availability-service small { margin-top:3px; color:rgba(255,255,255,.84); font-size:.56rem; line-height:1.3; } .availability-time-range { color:#d7f7ff; font-size:.55rem; font-weight:850; } .availability-notes { margin-top:4px; color:#d0effd; font-size:.53rem; line-height:1.3; } .availability-none { display:block; padding:6px 0; color:#a4b7ca; text-align:center; font-size:.75rem; }
.selected-point-note { display:grid; gap:3px; margin:16px 0 0; padding:10px 11px; color:#174f87; background:#e8f5ff; border-left:3px solid var(--sky); border-radius:4px; } .selected-point-note span { font-size:.62rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; } .selected-point-note strong { font-size:.74rem; }
.workspace-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(325px,.65fr); align-items:start; gap:20px; padding-bottom:62px; } .panel { padding:25px; } .panel-heading { display:flex; align-items:start; justify-content:space-between; gap:15px; padding-bottom:19px; border-bottom:1px solid var(--line); } .panel-heading h2,.add-panel h2 { margin:0; font-size:1.38rem; } .counter { display:grid; place-items:center; min-width:34px; height:28px; padding:0 8px; color:#0757a8; background:#e6f4ff; border-radius:99px; font-size:.74rem; font-weight:850; } .offering-list { display:grid; gap:9px; margin-top:16px; } .offering-card { overflow:hidden; background:#f8fbff; border:1px solid rgba(9,86,173,.16); border-radius:10px; } .offering-card summary { display:flex; align-items:center; gap:10px; min-height:62px; padding:11px 14px; cursor:pointer; list-style:none; } .offering-card summary::-webkit-details-marker { display:none; } .offering-card summary:hover { background:#f0f8ff; } .service-dot { width:9px; height:9px; flex:none; background:var(--sky); border-radius:50%; box-shadow:0 0 0 4px rgba(26,184,223,.13); } .offering-title { min-width:0; flex:1; } .offering-title strong,.offering-title small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .offering-title strong { font-size:.84rem; } .offering-title small { margin-top:3px; color:var(--muted); font-size:.68rem; font-weight:650; } .edit-hint { color:#126cba; font-size:.68rem; font-weight:850; } .edit-form { padding:2px 14px 13px; border-top:1px solid var(--line); } .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 10px; } .form-actions { display:flex; justify-content:flex-end; margin-top:14px; } .archive-form { padding:0 14px 12px; text-align:right; } .empty-state { padding:44px 18px; text-align:center; } .empty-state>span { width:32px; height:32px; display:inline-grid; place-items:center; color:var(--blue); background:#e4f3ff; border-radius:50%; font-size:1.25rem; font-weight:900; } .empty-state h3 { margin:11px 0 4px; font-size:1rem; } .empty-state p { margin:0; color:var(--muted); font-size:.77rem; }.add-panel { position:sticky; top:18px; } .add-panel>.muted { margin:7px 0 2px; font-size:.77rem; } .service-form { margin-top:14px; } .load-error { max-width:580px; margin:100px auto; padding:40px; text-align:center; background:#fff; border-radius:18px; box-shadow:0 18px 38px rgba(6,63,127,.1); } .load-error h1 { font-size:2rem; } .load-error p:not(.eyebrow) { color:var(--muted); line-height:1.55; }
@media (max-width:900px) { .auth-layout { grid-template-columns:1fr; gap:32px; padding:48px 0; } .auth-intro { max-width:660px; } .workspace-grid { grid-template-columns:1fr; } .add-panel { position:static; } }
@media (max-width:600px) { .topbar { min-height:69px; padding:10px 15px; } .brand-seal { width:34px; height:34px; border-radius:10px; font-size:1.3rem; } .brand strong { font-size:.84rem; } .brand small,.account-name { display:none; } .text-button { padding:7px 9px; font-size:.68rem; } .page-shell { width:min(100% - 24px,1280px); } .auth-layout { min-height:calc(100vh - 69px); padding:30px 0; } .auth-intro h1 { font-size:2.35rem; } .auth-intro>p:not(.eyebrow) { font-size:.9rem; } .auth-card { padding:25px 20px; border-radius:14px; } .dashboard-hero { display:block; margin:22px 0 14px; padding:23px 20px; border-radius:14px; } .dashboard-hero h1 { font-size:1.8rem; } .hero-stat { width:max-content; margin-top:18px; } .panel { padding:18px 14px; border-radius:14px; } .panel-heading { padding-bottom:14px; } .form-grid { grid-template-columns:1fr; } .offering-card summary { padding:10px; } .edit-form,.archive-form { padding-inline:10px; } .form-actions .small-button { width:100%; } }
@media (max-width:600px) { .calendar-panel { padding:18px 12px; border-radius:14px; } .calendar-heading { display:block; padding-inline:4px; } .calendar-legend { margin-top:10px; } .calendar-scroll { margin-inline:-2px; } .calendar-help,.calendar-status { padding-inline:4px; } }
@media (max-width:600px) { .agenda-controls { align-items:stretch; flex-direction:column; } .agenda-controls label { min-width:0; } }
@media (max-width:600px) { .point-selector-panel { display:block; padding:15px; } .point-picker-actions,.point-picker-label { min-width:0; margin-top:13px; } }
.timeline-block { cursor:grab; } .timeline-block.is-moving { z-index:5; cursor:grabbing; box-shadow:0 0 0 3px rgba(26,184,223,.32),0 7px 14px rgba(2,61,121,.28); } body.timeline-moving,body.timeline-moving * { cursor:grabbing !important; user-select:none; }
@media (max-width:600px) { .day-timeline-wrap { margin-inline:-2px; } .timeline-heading { padding-inline:12px; } .day-timeline { min-width:820px; } .timeline-axis,.timeline-row { grid-template-columns:150px minmax(0,1fr); } .timeline-room-axis,.timeline-room-name { padding-inline:10px; } }
.calendar-add-button { width:auto; min-width:150px; min-height:40px; flex:none; padding:8px 14px; } .service-catalog-panel { margin-bottom:62px; } .panel-description { margin:6px 0 0; color:var(--muted); font-size:.72rem; font-weight:600; letter-spacing:0; } .offering-button-list { grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); } .offering-open { width:100%; display:flex; align-items:center; gap:10px; min-height:66px; padding:12px 14px; color:var(--ink); text-align:left; } .offering-open:hover,.offering-open:focus-visible { background:#edf7ff; border-color:var(--sky); outline:0; box-shadow:0 5px 12px rgba(6,63,127,.1); } .offering-open .edit-hint { flex:none; }
.schedule-dialog { width:min(610px,calc(100% - 28px)); max-height:min(90vh,780px); padding:0; color:var(--ink); background:#fff; border:1px solid rgba(10,86,173,.22); border-radius:18px; box-shadow:0 28px 80px rgba(2,32,74,.35); } .schedule-dialog::backdrop { background:rgba(2,25,58,.62); backdrop-filter:blur(3px); } .schedule-dialog-shell { padding:26px; } .schedule-dialog-header { display:flex; align-items:start; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--line); } .schedule-dialog-header h2 { margin:0 0 5px; font-size:1.45rem; } .schedule-dialog-header p:not(.eyebrow) { margin:0; color:var(--muted); font-size:.73rem; line-height:1.45; } .dialog-close { width:36px; height:36px; display:grid; place-items:center; flex:none; padding:0 0 3px; color:#315d8a; background:#eef7ff; border:1px solid rgba(10,86,173,.16); border-radius:9px; font-size:1.5rem; line-height:1; } .dialog-close:hover,.dialog-close:focus-visible { color:#fff; background:#0a63b6; outline:0; } .schedule-editor-form { display:grid; gap:0; padding-top:4px; } .schedule-editor-form[hidden],[data-edit-panel][hidden] { display:none !important; } .schedule-editor-form label { display:grid; gap:6px; margin-top:15px; color:#264d78; font-size:.72rem; font-weight:850; } .dialog-context { display:grid; gap:3px; margin-top:15px; padding:10px 12px; color:#174f87; background:#e8f5ff; border-left:3px solid var(--sky); border-radius:5px; } .dialog-context span { font-size:.59rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; } .dialog-context strong { font-size:.75rem; } .dialog-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; } .dialog-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:20px; } .dialog-actions .primary-button { width:auto; } .secondary-button { min-height:38px; padding:8px 14px; color:#315d8a; background:#eef6fd; border:1px solid rgba(10,86,173,.2); border-radius:9px; font-size:.73rem; font-weight:800; } .secondary-button:hover,.secondary-button:focus-visible { background:#dceefa; outline:0; } .dialog-archive-form { margin-top:12px; padding-top:12px; border-top:1px solid var(--line); text-align:right; }
@media (max-width:600px) { .calendar-heading .calendar-add-button { width:100%; margin-top:14px; } .offering-button-list { grid-template-columns:1fr; } .schedule-dialog { width:100%; max-width:none; max-height:92vh; margin:auto 0 0; border-radius:18px 18px 0 0; } .schedule-dialog-shell { padding:20px 16px 18px; } .dialog-form-grid { grid-template-columns:1fr; } .dialog-actions { position:sticky; bottom:-18px; margin-inline:-16px; padding:12px 16px 18px; background:#fff; border-top:1px solid var(--line); } .dialog-actions .primary-button { flex:1; } }
.day-timeline-wrap { border:2px solid rgba(10,86,173,.29); } .timeline-axis,.timeline-row { border-bottom-color:rgba(10,86,173,.29); } .timeline-room-axis,.timeline-room-name { border-right-color:rgba(10,86,173,.29); } .timeline-hours,.timeline-lane { background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(7.142857% - 1px),rgba(10,86,173,.26) calc(7.142857% - 1px),rgba(10,86,173,.26) 7.142857%),linear-gradient(90deg,rgba(232,244,255,.42),rgba(255,255,255,.66)); } .timeline-track + .timeline-track { border-top:1px solid rgba(10,86,173,.2); } .availability-matrix thead th:not(:last-child),.availability-matrix .availability-cell:not(:last-child) { border-right:1px solid rgba(10,86,173,.25); } .availability-matrix tbody tr:not(:last-child) th,.availability-matrix tbody tr:not(:last-child) td { border-bottom:1px solid rgba(10,86,173,.25); }
.day-timeline-wrap { overflow-x:auto; padding-bottom:5px; border-radius:10px; }
.day-timeline { min-width:960px; overflow:hidden; background:#fff; }
.timeline-heading { display:flex; align-items:center; min-height:48px; padding:10px 16px; color:#315d8a; background:#f1f8ff; border-bottom:1px solid rgba(10,86,173,.29); }
.timeline-heading strong,.timeline-heading span { display:block; }
.timeline-heading strong { font-size:.77rem; }
.timeline-heading span { margin-top:3px; color:#6a85a0; font-size:.63rem; font-weight:650; }
.timeline-axis,.timeline-row { display:grid; grid-template-columns:185px minmax(0,1fr); }
.timeline-axis { min-height:42px; }
.timeline-room-axis { display:flex; align-items:center; padding:0 14px; color:#416b92; background:#f1f8ff; font-size:.64rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.timeline-hours { position:relative; }
.timeline-hours span { position:absolute; top:13px; color:#416b92; font-size:.61rem; font-weight:800; transform:translateX(-50%); }
.timeline-hours span:nth-child(1) { left:0; transform:none; }
.timeline-hours span:nth-child(2) { left:7.142857%; }
.timeline-hours span:nth-child(3) { left:14.285714%; }
.timeline-hours span:nth-child(4) { left:21.428571%; }
.timeline-hours span:nth-child(5) { left:28.571429%; }
.timeline-hours span:nth-child(6) { left:35.714286%; }
.timeline-hours span:nth-child(7) { left:42.857143%; }
.timeline-hours span:nth-child(8) { left:50%; }
.timeline-hours span:nth-child(9) { left:57.142857%; }
.timeline-hours span:nth-child(10) { left:64.285714%; }
.timeline-hours span:nth-child(11) { left:71.428571%; }
.timeline-hours span:nth-child(12) { left:78.571429%; }
.timeline-hours span:nth-child(13) { left:85.714286%; }
.timeline-hours span:nth-child(14) { left:92.857143%; }
.timeline-hours span:nth-child(15) { left:100%; transform:translateX(-100%); }
.timeline-row:last-child { border-bottom:0; }
.timeline-room-name { display:flex; flex-direction:column; justify-content:center; width:100%; padding:12px 14px; color:#1a558f; background:#f8fbff; border:0; border-radius:0; cursor:pointer; text-align:left; }
.timeline-room-name:hover,.timeline-room-name:focus-visible { background:#e7f4ff; outline:inset 2px solid rgba(10,99,182,.42); }
.timeline-room-name strong { font-size:.73rem; line-height:1.3; }
.timeline-room-name span { margin-top:4px; color:var(--muted); font-size:.63rem; font-weight:700; }
.timeline-lanes { min-width:0; }
.timeline-lane { position:relative; min-height:64px; padding:7px 0; }
.timeline-lane { background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 64px,rgba(10,86,173,.22) 64px,rgba(10,86,173,.22) 65px),repeating-linear-gradient(to right,transparent 0,transparent calc(7.142857% - 1px),rgba(10,86,173,.26) calc(7.142857% - 1px),rgba(10,86,173,.26) 7.142857%),linear-gradient(90deg,rgba(232,244,255,.42),rgba(255,255,255,.66)); }
.timeline-lane[hidden] { display:none; }
.timeline-lane.is-drop-target { background-color:rgba(26,184,223,.08); }
.timeline-track { position:relative; height:65px; }
.timeline-block { position:absolute; z-index:2; top:0; left:var(--agenda-left,0); width:max(76px,var(--agenda-width,7.142857%)); height:58px; display:flex; align-items:stretch; overflow:hidden; padding:0; color:#fff; background:linear-gradient(145deg,#0a63b6,#1684c9); border:1px solid rgba(255,255,255,.74); border-radius:7px; box-shadow:0 3px 7px rgba(2,61,121,.18); cursor:grab; text-align:left; touch-action:none; transition:box-shadow .15s,filter .15s; }
.timeline-block:hover,.timeline-block:focus-visible { z-index:4; outline:0; box-shadow:0 6px 12px rgba(2,61,121,.28); }
.timeline-block.is-resizing,.timeline-block.is-moving { z-index:5; box-shadow:0 0 0 3px rgba(26,184,223,.32),0 7px 14px rgba(2,61,121,.28); }
.timeline-block.is-moving { cursor:grabbing; }
.timeline-block.is-saving { cursor:wait; filter:saturate(.45); }
.timeline-block.is-copy-preview { pointer-events:none; opacity:.72; border-style:dashed; box-shadow:0 0 0 3px rgba(26,184,223,.28),0 7px 14px rgba(2,61,121,.2); }
.timeline-block-copy { min-width:0; flex:1; padding:5px 4px; pointer-events:none; }
.timeline-block-time,.timeline-block strong,.timeline-block-notes { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.timeline-block-time { color:#d7f7ff; font-size:.53rem; font-weight:850; }
.timeline-block strong { margin-top:2px; color:#fff; font-size:.59rem; line-height:1.2; }
.timeline-block-notes { margin-top:2px; color:rgba(255,255,255,.86); font-size:.53rem; font-weight:500; line-height:1.2; }
.timeline-resize { width:7px; flex:none; background:transparent; cursor:ew-resize; touch-action:none; }
.timeline-resize:hover { background:rgba(4,45,105,.18); }
.timeline-add { position:absolute; z-index:3; right:8px; bottom:8px; width:22px; height:22px; display:grid; place-items:center; padding:0; color:#1465ad; background:rgba(255,255,255,.88); border:1px solid rgba(10,86,173,.25); border-radius:50%; font-size:1rem; font-weight:800; opacity:0; transition:opacity .15s,transform .15s; }
.timeline-lane:hover .timeline-add,.timeline-add:focus-visible { opacity:1; }
.timeline-add:hover,.timeline-add:focus-visible { color:#fff; background:#0a63b6; outline:0; transform:scale(1.08); }
body.timeline-resizing,body.timeline-resizing * { cursor:ew-resize !important; user-select:none; }
body.timeline-moving,body.timeline-moving * { cursor:grabbing !important; user-select:none; }
body.timeline-copying,body.timeline-copying * { cursor:copy !important; user-select:none; }
@media (max-width:600px) { .day-timeline-wrap { margin-inline:-2px; } .timeline-heading { padding-inline:12px; } .day-timeline { min-width:820px; } .timeline-axis,.timeline-row { grid-template-columns:150px minmax(0,1fr); } .timeline-room-axis,.timeline-room-name { padding-inline:10px; } }

/* Flujo principal: alta y administración de horarios sin depender de la grilla. */
.quick-offering-panel { margin:0 0 22px; padding:25px; background:#fff; border:1px solid rgba(10,86,173,.19); border-radius:16px; box-shadow:0 14px 28px rgba(6,63,127,.08); }
.quick-offering-heading { display:flex; align-items:start; justify-content:space-between; gap:18px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.quick-offering-heading h2 { margin:0 0 6px; font-size:1.35rem; }
.quick-offering-heading p:not(.eyebrow) { max-width:680px; margin:0; color:var(--muted); font-size:.77rem; line-height:1.5; }
.central-catalog-badge { flex:none; padding:8px 10px; color:#0757a8; background:#e6f4ff; border:1px solid rgba(10,99,182,.16); border-radius:99px; font-size:.66rem; font-weight:850; white-space:nowrap; }
.quick-offering-form { display:grid; grid-template-columns:1.45fr .85fr 1.45fr 1fr .75fr .75fr .75fr; align-items:end; gap:10px; padding:18px 0 8px; }
.quick-offering-form label { display:grid; gap:6px; color:#264d78; font-size:.67rem; font-weight:850; }
.quick-offering-form label small { min-height:16px; color:var(--muted); font-size:.58rem; font-weight:650; line-height:1.25; }
.quick-offering-form input,.quick-offering-form select { min-height:40px; font-size:.73rem; }
.quick-notes { grid-column:1 / span 5; }
.quick-notes span { color:#849bb2; font-size:.58rem; font-weight:700; }
.quick-submit { width:auto; min-height:40px; grid-column:6 / span 2; margin-bottom:0; padding-inline:13px; font-size:.72rem; }
.quick-management { margin-top:12px; border:1px solid rgba(10,86,173,.16); border-radius:10px; overflow:hidden; }
.quick-management summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 14px; cursor:pointer; list-style:none; background:#f7fbff; }
.quick-management summary::-webkit-details-marker { display:none; }
.quick-management summary:hover { background:#edf7ff; }
.quick-management summary strong,.quick-management summary small { display:block; }
.quick-management summary strong { font-size:.78rem; }
.quick-management summary small { margin-top:3px; color:var(--muted); font-size:.65rem; font-weight:650; }
.quick-offering-list { border-top:1px solid var(--line); }
.quick-offering-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 14px; border-bottom:1px solid rgba(10,86,173,.1); }
.quick-offering-row:last-child { border-bottom:0; }
.quick-offering-row>div:first-child { min-width:0; }
.quick-offering-row strong,.quick-offering-row span,.quick-offering-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.quick-offering-row strong { font-size:.77rem; }
.quick-offering-row span { margin-top:4px; color:#416b92; font-size:.66rem; font-weight:750; }
.quick-offering-row small { margin-top:3px; color:var(--muted); font-size:.61rem; }
.quick-row-actions { display:flex; align-items:center; gap:12px; flex:none; }
.quick-row-actions .secondary-button { min-height:34px; padding:6px 11px; font-size:.67rem; }
.quick-row-actions form { margin:0; }
.quick-management-empty { margin:0; padding:18px 14px; color:var(--muted); font-size:.72rem; }
.select-point-callout { display:flex; align-items:center; gap:12px; margin:0 0 22px; padding:14px 16px; color:#315d8a; background:#eef7ff; border:1px solid rgba(10,99,182,.16); border-left:4px solid var(--sky); border-radius:10px; }
.select-point-callout strong { font-size:.75rem; }
.select-point-callout span { color:var(--muted); font-size:.7rem; line-height:1.35; }
@media (max-width:1100px) { .quick-offering-form { grid-template-columns:repeat(3,minmax(0,1fr)); } .quick-notes { grid-column:auto; } .quick-submit { grid-column:auto; width:100%; } }
@media (max-width:680px) { .quick-offering-panel { padding:18px 14px; border-radius:14px; } .quick-offering-heading { display:block; } .central-catalog-badge { display:inline-block; margin-top:12px; white-space:normal; } .quick-offering-form { grid-template-columns:1fr; gap:12px; } .quick-notes,.quick-submit { grid-column:auto; } .quick-management summary { align-items:start; } .quick-offering-row { display:block; } .quick-row-actions { justify-content:space-between; margin-top:12px; } .select-point-callout { display:block; } .select-point-callout span { display:block; margin-top:5px; } }

.quick-offering-form { grid-template-columns:repeat(4,minmax(0,1fr)); }
.catalog-browser { grid-column:1 / -1; padding:14px; background:#f7fbff; border:1px solid rgba(10,86,173,.16); border-radius:11px; }
.catalog-browser-toolbar { display:flex; align-items:end; gap:12px; }
.catalog-browser-toolbar label { flex:1; }
.catalog-browser-toolbar span { min-width:100px; padding:0 0 11px; color:#416b92; text-align:right; font-size:.66rem; font-weight:800; }
.catalog-type-tabs { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.catalog-type-tabs button { min-height:31px; padding:5px 10px; color:#315d8a; background:#fff; border:1px solid rgba(10,86,173,.2); border-radius:99px; font-size:.65rem; font-weight:800; }
.catalog-type-tabs button:hover,.catalog-type-tabs button:focus-visible,.catalog-type-tabs button.active { color:#fff; background:#0a63b6; border-color:#0a63b6; outline:0; }
.catalog-selection { display:grid; gap:2px; min-height:47px; margin:12px 0 9px; padding:9px 11px; color:#174f87; background:#e8f5ff; border-left:3px solid var(--sky); border-radius:5px; }
.catalog-selection strong { font-size:.72rem; }
.catalog-selection span { color:#56708f; font-size:.63rem; font-weight:650; }
.catalog-results { display:grid; grid-template-columns:repeat(auto-fill,minmax(185px,1fr)); gap:7px; max-height:235px; overflow:auto; padding:1px; }
.catalog-service { display:grid; grid-template-columns:1fr auto; gap:3px 8px; min-height:66px; padding:9px 10px; color:#174f87; background:#fff; border:1px solid rgba(10,86,173,.17); border-radius:8px; text-align:left; }
.catalog-service:hover,.catalog-service:focus-visible,.catalog-service.selected { color:#fff; background:linear-gradient(135deg,#0864bb,#1682cc); border-color:#0864bb; box-shadow:0 4px 9px rgba(4,75,153,.2); outline:0; }
.catalog-service strong { overflow:hidden; font-size:.68rem; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.catalog-service span { grid-column:1; overflow:hidden; color:#5f7f9e; font-size:.57rem; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.catalog-service b { grid-column:2; grid-row:1 / span 2; align-self:center; color:#126cba; font-size:.58rem; }
.catalog-service:hover span,.catalog-service:focus-visible span,.catalog-service.selected span,.catalog-service:hover b,.catalog-service:focus-visible b,.catalog-service.selected b { color:#d7f7ff; }
.quick-notes { grid-column:1 / span 3; }
.quick-submit { grid-column:4; width:100%; }
.duplicate-button { min-height:34px; padding:6px 2px; color:#126cba; background:transparent; border:0; font-size:.67rem; font-weight:800; }
.duplicate-button:hover,.duplicate-button:focus-visible { color:#07559e; text-decoration:underline; outline:0; }
.undo-archive-form { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; padding:10px 13px; color:#315d8a; background:#eef7ff; border:1px solid rgba(10,86,173,.17); border-radius:9px; font-size:.72rem; font-weight:700; }
.undo-archive-form button { padding:6px 11px; color:#0757a8; background:#fff; border:1px solid rgba(10,86,173,.24); border-radius:7px; font-size:.67rem; font-weight:850; }
.undo-archive-form button:hover,.undo-archive-form button:focus-visible { color:#fff; background:#0a63b6; outline:0; }
@media (max-width:680px) { .catalog-browser-toolbar { display:block; } .catalog-browser-toolbar span { display:block; padding:7px 0 0; text-align:left; } .catalog-results { grid-template-columns:1fr; max-height:285px; } .quick-notes,.quick-submit { grid-column:auto; } .undo-archive-form { align-items:start; flex-direction:column; } }

/* Administración simple de consultorios por punto de atención. */
.room-management { margin:0 0 18px; overflow:hidden; background:#fff; border:1px solid rgba(10,86,173,.19); border-radius:12px; box-shadow:0 8px 18px rgba(6,63,127,.05); }
.room-management summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 15px; cursor:pointer; list-style:none; background:#f7fbff; }
.room-management summary::-webkit-details-marker { display:none; }
.room-management summary:hover { background:#edf7ff; }
.room-management summary strong,.room-management summary small { display:block; }
.room-management summary strong { color:#174f87; font-size:.78rem; }
.room-management summary small { margin-top:3px; color:var(--muted); font-size:.65rem; font-weight:650; }
.room-management-content { padding:14px; border-top:1px solid var(--line); }
.room-add-form { display:grid; grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) auto; align-items:end; gap:10px; }
.room-add-form label { display:grid; gap:6px; color:#264d78; font-size:.66rem; font-weight:850; }
.room-add-form label span { color:#849bb2; font-size:.58rem; font-weight:700; }
.room-add-form input { min-height:38px; }
.room-add-form .secondary-button { min-height:38px; white-space:nowrap; }
.room-list { margin-top:13px; border:1px solid rgba(10,86,173,.14); border-radius:8px; overflow:hidden; }
.room-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px; border-bottom:1px solid rgba(10,86,173,.1); }
.room-row:last-child { border-bottom:0; }
.room-rename-form { display:flex; align-items:center; min-width:0; flex:1; gap:8px; }
.room-rename-form label { min-width:0; flex:1; }
.room-rename-form input { width:100%; min-height:34px; padding:6px 8px; font-size:.7rem; }
.room-status-form { margin:0; }
.text-action { padding:5px 7px; color:#0a63b6; background:transparent; border:0; border-radius:5px; font-size:.64rem; font-weight:850; white-space:nowrap; }
.text-action:hover,.text-action:focus-visible { background:#e7f3ff; outline:0; }
.danger-text { color:#a03333; }
.danger-text:hover,.danger-text:focus-visible { color:#8b1c1c; background:#fff0f0; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:680px) { .room-add-form { grid-template-columns:1fr; } .room-add-form .secondary-button { width:100%; } .room-row { display:block; } .room-rename-form { margin-bottom:8px; } .room-status-form { text-align:right; } }

/* Tipografía de interfaz: legible y tranquila, sin pesos artificialmente gruesos. */
:root { font-family:"Segoe UI Variable Text","Aptos","Segoe UI",ui-sans-serif,system-ui,sans-serif; font-synthesis:none; }
body { font-weight:400; }
h1,h2,h3 { font-weight:650; letter-spacing:-.03em; }
.eyebrow { font-weight:700; letter-spacing:.11em; }
.primary-button,.secondary-button,.text-button,.danger-button { font-weight:650; letter-spacing:0; }
.point-picker-label,.agenda-controls label { font-weight:650; }
.agenda-mode { font-weight:650; }
.timeline-heading strong { font-weight:650; }
.timeline-heading span { font-weight:450; }
.timeline-room-axis { font-weight:650; letter-spacing:.06em; }
.timeline-hours span { font-weight:600; }
.timeline-room-name strong { font-weight:650; }
.timeline-room-name span { font-weight:500; }
.timeline-block-time { font-weight:600; }
.timeline-block strong { font-weight:650; }
.timeline-add { font-weight:650; }
.availability-table th { font-weight:650; letter-spacing:.06em; }
.availability-time strong,.availability-service strong { font-weight:650; }
.availability-time span,.availability-service small { font-weight:500; }

/* Aplicación uniforme, incluidos los diálogos y formularios. */
strong,b { font-weight:650; }
button { font-weight:600; }
input,select,textarea { font-weight:400; }
.brand-seal,.card-icon,.picker-icon,.empty-state>span { font-weight:700; }
.account-name,.brand small,.benefit-list,.validation,.form-alert,.notice,.calendar-legend,
.calendar-status,.hero-stat span,.center-picker-card small { font-weight:500; }
.auth-card label,.service-form label,.edit-form label,.schedule-editor-form label,
.quick-offering-form label,.room-add-form label { font-weight:600; }
.dialog-context span,.selected-point-note span { font-weight:650; letter-spacing:.06em; }
.dialog-context strong,.schedule-dialog-header h2 { font-weight:650; }
.catalog-type-tabs button,.catalog-browser-toolbar span,.catalog-service span,
.central-catalog-badge,.duplicate-button,.text-action,.edit-hint,.counter,
.undo-archive-form button { font-weight:600; }
.quick-management summary small,.quick-offering-row span,.offering-title small,
.room-management summary small,.quick-notes span,.room-add-form label span { font-weight:500; }

.room-visibility { margin-top:20px; padding-top:17px; border-top:1px solid var(--line); }
.room-visibility>p { display:grid; gap:3px; margin:0 0 10px; }
.room-visibility>p strong { color:#174f87; font-size:.76rem; }
.room-visibility>p span { color:var(--muted); font-size:.66rem; }
.room-visibility-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:7px; }
.room-visibility-list button { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:36px; padding:7px 9px; color:#315d8a; background:#f6fbff; border:1px solid rgba(10,86,173,.16); border-radius:7px; text-align:left; }
.room-visibility-list button:hover,.room-visibility-list button:focus-visible { background:#e8f5ff; border-color:rgba(10,99,182,.36); outline:0; }
.room-visibility-list button.is-hidden { color:#8297ad; background:#f4f6f8; border-style:dashed; }
.room-visibility-list button span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.68rem; }
.room-visibility-list button small { flex:none; color:#0a63b6; font-size:.61rem; font-weight:650; }
.room-visibility-list button.is-hidden small { color:#58738e; }
.timeline-row.is-room-hidden,.availability-matrix tr.is-room-hidden { display:none !important; }
.service-combobox { padding-bottom:3px; } .service-combobox select { margin-top:1px; }
.dialog-archive-form .danger-button { min-height:35px; padding:7px 10px; color:#a1263f; background:#fff5f6; border:1px solid rgba(183,51,78,.3); border-radius:8px; }
.dialog-archive-form .danger-button:hover,.dialog-archive-form .danger-button:focus-visible { color:#fff; background:#b7334e; outline:0; }
.room-properties-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:17px; padding-top:16px; border-top:1px solid var(--line); }
.room-properties-actions form { margin:0; } .room-properties-actions .danger-button { min-height:36px; padding:7px 10px; color:#a1263f; background:#fff5f6; border:1px solid rgba(183,51,78,.3); border-radius:8px; }
.room-properties-actions .danger-button:hover,.room-properties-actions .danger-button:focus-visible { color:#fff; background:#b7334e; outline:0; }
.room-properties-help { margin:10px 0 0; color:var(--muted); font-size:.65rem; line-height:1.4; }

/* Catálogo central: administración separada de la agenda de cada centro. */
.catalog-hero { margin:34px 0 20px; padding:28px 30px; color:#fff; background:linear-gradient(125deg,#073c78,#0876bd); border-radius:18px; box-shadow:0 16px 34px rgba(4,72,136,.17); } .catalog-hero .eyebrow { color:#a9e5ff; } .catalog-hero h1 { margin:4px 0 7px; font-size:1.8rem; font-weight:650; } .catalog-hero p:not(.eyebrow) { max-width:650px; margin:0; color:#d8efff; font-size:.84rem; line-height:1.5; }
.catalog-admin-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); align-items:start; gap:20px; padding-bottom:55px; } .catalog-admin-card { padding:23px; background:#fff; border:1px solid rgba(10,86,173,.17); border-radius:15px; box-shadow:0 9px 22px rgba(2,61,121,.06); } .catalog-admin-card header h2 { margin:3px 0 5px; color:#093c73; font-size:1.2rem; font-weight:650; } .catalog-admin-card header p:not(.eyebrow) { margin:0; color:var(--muted); font-size:.74rem; line-height:1.45; }
.catalog-form { display:grid; gap:11px; margin:18px 0; padding:15px; background:#f4f9ff; border:1px solid rgba(10,86,173,.14); border-radius:10px; } .catalog-form label { display:grid; gap:5px; color:#264d78; font-size:.68rem; font-weight:600; } .catalog-form .primary-button { width:max-content; } .catalog-service-form { grid-template-columns:repeat(2,minmax(0,1fr)); } .catalog-service-form .catalog-description,.catalog-form-errors { grid-column:1 / -1; } .catalog-form-errors { display:grid; gap:3px; }
.catalog-search { display:grid; gap:5px; margin:18px 0 9px; color:#264d78; font-size:.68rem; font-weight:600; } .catalog-admin-list { display:grid; gap:8px; max-height:585px; overflow:auto; padding-right:3px; } .catalog-admin-item { overflow:hidden; border:1px solid rgba(10,86,173,.16); border-radius:9px; } .catalog-admin-item summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 12px; cursor:pointer; list-style:none; background:#fbfdff; } .catalog-admin-item summary::-webkit-details-marker { display:none; } .catalog-admin-item summary:hover { background:#eef7ff; } .catalog-admin-item summary span { min-width:0; } .catalog-admin-item summary strong,.catalog-admin-item summary small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .catalog-admin-item summary strong { color:#154c82; font-size:.77rem; font-weight:650; } .catalog-admin-item summary small { margin-top:3px; color:var(--muted); font-size:.62rem; font-weight:500; } .catalog-admin-item summary>b { flex:none; color:#126cba; font-size:.63rem; font-weight:600; } .catalog-admin-item summary>.status-active { color:#0a8652; } .catalog-admin-item summary>.status-inactive { color:#8b6470; }
.catalog-admin-edit { display:grid; gap:10px; padding:12px; border-top:1px solid rgba(10,86,173,.12); background:#fff; } .catalog-inline-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:9px; } .catalog-inline-form label,.catalog-service-edit label { display:grid; gap:5px; color:#264d78; font-size:.66rem; font-weight:600; } .catalog-service-edit { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; } .catalog-service-edit .catalog-description { grid-column:1 / -1; } .catalog-service-edit .secondary-button { width:max-content; } .catalog-admin-edit>form:not(.catalog-inline-form):not(.catalog-service-edit) { justify-self:start; } .danger-button { min-height:36px; padding:7px 10px; color:#a1263f; background:#fff5f6; border:1px solid rgba(183,51,78,.3); border-radius:8px; font-size:.68rem; font-weight:600; } .danger-button:hover,.danger-button:focus-visible { color:#fff; background:#b7334e; outline:0; }
@media (max-width:860px) { .catalog-admin-grid { grid-template-columns:1fr; } }
@media (max-width:600px) { .catalog-hero { margin-top:20px; padding:22px 18px; border-radius:14px; } .catalog-hero h1 { font-size:1.48rem; } .catalog-admin-card { padding:16px 13px; border-radius:13px; } .catalog-service-form,.catalog-service-edit { grid-template-columns:1fr; } .catalog-inline-form { grid-template-columns:1fr; } .catalog-form .primary-button,.catalog-service-edit .secondary-button { width:100%; } .catalog-admin-list { max-height:none; } }
