:root {
  --ink:#302c2b; --muted:#766b6a; --rose:#c65c70; --rose-dark:#a84258;
  --blush:#f7eeeb; --paper:#fffaf7; --white:#fff; --line:#e8d9d4;
  --green:#377a62; --amber:#ae6b2f; --blue:#5d6e9c;
  --shadow:0 18px 50px rgba(92,52,48,.12);
  --serif:'Playfair Display',Georgia,serif; --sans:'DM Sans',Arial,sans-serif;
}
* { box-sizing:border-box; }
html { min-height:100%; scroll-behavior:smooth; }
body { min-height:100vh; margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); line-height:1.55; }
a { color:inherit; }
h1,h2,h3,p { overflow-wrap:anywhere; }
.btn { display:inline-block; border:0; border-radius:999px; padding:11px 19px; cursor:pointer; text-decoration:none; text-align:center; font:600 .78rem var(--sans); letter-spacing:.02em; transition:.2s; }
.btn:hover { transform:translateY(-1px); }
.btn-primary { background:var(--rose-dark); color:#fff; box-shadow:0 8px 20px rgba(168,66,88,.18); }
.btn-secondary,.btn-info { background:#fff; border:1px solid var(--rose); color:var(--rose-dark); }
.btn-danger { background:#fff; border:1px solid #b73f55; color:#983248; }
.eyebrow { margin:0 0 10px; color:var(--rose-dark); font-size:.67rem; font-weight:600; letter-spacing:.21em; }
.empty-state { padding:20px; color:var(--muted); text-align:center; }

/* Acceso */
.login-header { padding:28px 20px 8px; text-align:center; }
.login-header img { width:104px; height:104px; object-fit:contain; }
.login-header p { margin:4px 0 0; color:var(--rose-dark); font-size:.68rem; font-weight:600; letter-spacing:.22em; }
.login-content { min-height:calc(100vh - 220px); display:grid; place-items:center; padding:25px 20px 70px; background:radial-gradient(circle at 50% 20%,#fff 0,var(--paper) 48%,var(--blush) 100%); }
.login-container { width:100%; display:flex; justify-content:center; }
.login-card { width:min(100%,440px); padding:38px; }
.login-card h2 { font:500 2.15rem var(--serif); margin:0 0 8px; border:0; padding:0; }
.login-copy { margin:0 0 25px; color:var(--muted); font-size:.9rem; }
.login-card form { display:grid; gap:17px; }
.login-card label { display:grid; gap:7px; color:var(--muted); font-size:.78rem; font-weight:600; }
.login-card .btn { width:100%; margin-top:5px; }
.error { padding:10px 12px; background:#fce7ea; color:#8e3248; border-left:3px solid var(--rose-dark); font-size:.85rem; }

/* Estructura administrativa */
.admin-footer { padding:20px; text-align:center; background:var(--ink); color:#cbb9b5; font-size:.72rem; }
.admin-shell .admin-footer { margin-left:260px; transition:margin-left .25s ease; }
.app-header { position:fixed; inset:0 auto 0 0; z-index:30; width:260px; display:flex; flex-direction:column; padding:24px 18px 20px; background:#fff; border-right:1px solid var(--line); box-shadow:10px 0 30px rgba(92,52,48,.08); transition:transform .25s ease; }
.admin-brand { display:flex; align-items:center; gap:11px; padding:0 5px 22px; border-bottom:1px solid var(--line); text-decoration:none; flex-shrink:0; }
.admin-brand img { width:54px; height:54px; object-fit:contain; }
.admin-brand span { display:flex; flex-direction:column; letter-spacing:.11em; }
.admin-brand strong { font-size:.78rem; }
.admin-brand small { font-size:.51rem; color:var(--rose-dark); margin-top:2px; }
.nav-tabs { display:flex; flex:1; flex-direction:column; gap:6px; padding-top:18px; overflow-y:auto; }
.tab-link { display:flex; align-items:center; justify-content:space-between; width:100%; padding:11px 13px; border-radius:7px; text-decoration:none; color:var(--muted); font-size:.76rem; font-weight:600; transition:.2s; }
.tab-link:hover { background:var(--blush); color:var(--rose-dark); }
.tab-link.active { background:var(--rose-dark); color:#fff; box-shadow:0 5px 14px rgba(168,66,88,.18); }
.btn-logout { margin-top:auto; border:1px solid var(--line); }
.tab-link.active.btn-logout { background:transparent; color:var(--muted); }
.notification-badge { display:inline-grid; place-items:center; min-width:20px; min-height:20px; padding:2px 6px; border-radius:999px; background:#fff; color:var(--rose-dark); font-size:.64rem; text-align:center; }
.sidebar-toggle { position:fixed; z-index:35; top:26px; left:246px; display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid var(--line); border-radius:0 8px 8px 0; background:#fff; color:var(--rose-dark); box-shadow:5px 5px 15px rgba(92,52,48,.1); cursor:pointer; transition:left .25s ease; }
.hamburger-icon { display:grid; gap:4px; width:18px; }
.hamburger-icon i { display:block; width:100%; height:2px; border-radius:999px; background:currentColor; transition:transform .2s ease; }
.app-content { min-height:calc(100vh - 70px); margin-left:260px; padding:34px 4vw 65px; transition:margin-left .25s ease; }
html.sidebar-collapsed .app-header { transform:translateX(-100%); }
html.sidebar-collapsed .sidebar-toggle { left:0; }
html.sidebar-collapsed .app-content,html.sidebar-collapsed .admin-shell .admin-footer { margin-left:0; }
.page-heading,.dashboard-heading { margin:14px 0 30px; }
.page-heading h1,.dashboard-heading h1 { font:500 clamp(2rem,4vw,3.45rem)/1.08 var(--serif); margin:0; }
.page-heading p:last-child,.dashboard-heading p:last-child { color:var(--muted); }
.page-heading.split { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.button-group { display:flex; gap:9px; flex-wrap:wrap; justify-content:flex-end; }
.reveal-panel { scroll-margin-top:100px; }
.reveal-panel[hidden],.order-tab-panel[hidden] { display:none; }
.reveal-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:20px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.card .reveal-panel-heading h2 { flex:1; margin:0; padding:0; border:0; }
.success-banner { margin:-12px 0 24px; padding:12px 16px; border:1px solid #b8ddcc; background:#edf8f3; color:#286149; font-size:.82rem; }
.error-banner { margin:-12px 0 24px; padding:12px 16px; border:1px solid #efb7c2; background:#fce7ea; color:#8e3248; font-size:.82rem; }
.task-banner { margin:-12px 0 24px; padding:12px 16px; border:1px solid #d7c9ed; background:#f4effb; color:#604280; font-size:.82rem; }

/* Formularios y tarjetas */
.card { background:#fff; padding:28px; border:1px solid var(--line); box-shadow:var(--shadow); margin-bottom:24px; }
.card h1,.card h2 { font:500 1.7rem var(--serif); margin:0 0 20px; border-bottom:1px solid var(--line); padding-bottom:12px; }
.form-grid,.order-form,.payment-form { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:16px; align-items:end; }
.form-grid label,.order-form label,.payment-form label,.payment-registration-form label,.catalog-row label { display:grid; gap:7px; color:var(--muted); font-size:.76rem; font-weight:600; }
.client-email-field { display:grid; gap:8px; }
.client-no-email { display:flex!important; grid-template-columns:none!important; align-items:center; gap:8px!important; color:var(--ink)!important; font-size:.72rem!important; font-weight:500!important; cursor:pointer; }
.client-no-email input { width:auto; margin:0; accent-color:var(--rose-dark); }
.client-no-email input:disabled { cursor:not-allowed; }
.client-no-email span { white-space:nowrap; }
.editable-table td .client-no-email { margin-top:7px; }
.editable-table tr:not(.is-editing) .client-no-email { display:none!important; }
.edit-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.edit-actions .btn { padding:9px 13px; white-space:nowrap; }
.edit-actions [hidden] { display:none!important; }
.wide { grid-column:1/-1; }
fieldset { margin:0; padding:16px; border:1px solid var(--line); }
legend { padding:0 7px; color:var(--muted); font-size:.76rem; font-weight:600; }
input,select,textarea { width:100%; padding:11px 12px; border:1px solid #d7c7c3; border-radius:6px; background:#fff; color:var(--ink); font:inherit; }
textarea { resize:vertical; }
input:focus,select:focus,textarea:focus { outline:2px solid rgba(198,92,112,.2); border-color:var(--rose); }
label small { color:var(--muted); font-size:.68rem; font-weight:400; }
.search-form { display:flex; align-items:end; gap:10px; margin-bottom:22px; }
.search-form label { display:grid; flex:1; max-width:440px; gap:7px; color:var(--muted); font-size:.76rem; font-weight:600; }
.search-form input { max-width:440px; }
.search-form label input { max-width:none; }
.muted-note,.security-help { color:var(--muted); font-size:.74rem; }
.current-user-label { display:block; margin-top:3px; color:var(--rose-dark); font-size:.64rem; }
.admin-users-table { min-width:1080px; }
.admin-users-table th:nth-child(1) { width:14%; }
.admin-users-table th:nth-child(2) { width:10%; }
.admin-users-table th:nth-child(3) { width:48%; }
.inline-password-form { display:grid; grid-template-columns:1fr 1.25fr auto; gap:8px; align-items:center; }
.inline-password-form input,.admin-row-actions input { min-width:150px; }
.admin-row-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.admin-row-actions form { display:flex; flex-wrap:wrap; gap:7px; margin:0; }
.security-sections-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.security-section-card { padding:18px; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
.security-section-card>div { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.security-section-card h3 { margin:0; font:500 1.1rem var(--serif); }
.section-lock-form { display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:end; }
.section-lock-form label { display:grid; gap:6px; color:var(--muted); font-size:.7rem; font-weight:600; }
.section-lock-form .btn { grid-column:1/-1; }
.remove-lock-form { display:grid; grid-template-columns:1fr auto; gap:8px; margin-top:10px; }
.section-unlock { min-height:65vh; align-items:center; }
.finance-filter-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:20px; }
.finance-filter-heading h2 { margin:0; border:0; padding:0; }
.finance-filter { display:flex; align-items:end; flex-wrap:wrap; justify-content:flex-end; gap:9px; }
.finance-filter label { display:grid; gap:6px; color:var(--muted); font-size:.72rem; font-weight:600; }
.finance-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:18px 0 24px; }
.finance-summary article { display:grid; gap:6px; padding:20px; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
.finance-summary small { color:var(--muted); font-size:.68rem; font-weight:600; letter-spacing:.08em; }
.finance-summary strong { color:var(--rose-dark); font:600 1.45rem var(--sans); }
.finance-summary article.positive { border-color:#b8ddcc; background:#edf8f3; }
.finance-summary article.negative { border-color:#efb7c2; background:#fce7ea; }
.finance-summary article.positive strong,.financial-result.positive { color:#286149; }
.finance-summary article.negative strong,.financial-result.negative { color:#8e3248; }
.financial-result { font-weight:600; }
.capitalize { text-transform:capitalize; }
.expenses-table { min-width:1000px; }
.check-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:9px; }
.check-option { display:flex!important; grid-template-columns:none!important; align-items:center; gap:9px!important; padding:10px; border:1px solid var(--line); background:var(--paper); color:var(--ink)!important; font-size:.8rem!important; }
.check-option input { width:auto; }
.check-option span { display:flex; justify-content:space-between; gap:8px; width:100%; }
.check-option small { color:var(--rose-dark); }

/* Calendarios */
.month-nav { display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:25px; }
.btn-today { padding:9px 18px; font-size:.72rem; }
.calendar-section { margin-bottom:42px; }
.calendar-legends { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px 28px; margin-bottom:20px; text-align:center; }
.calendar-legends .section-title { margin:0; }
.calendar-month-label { margin:0 0 18px; text-align:center; font:500 1.75rem var(--serif); text-transform:capitalize; }
.section-title { display:flex; align-items:center; gap:10px; margin:0 0 14px; }
.section-title h2 { margin:0; font-size:.82rem; letter-spacing:.12em; }
.legend { width:12px; height:12px; border-radius:50%; }
.legend.form,.calendar-event.form { background:#ebe3f7; color:#604280; }
.legend.delivery,.calendar-event.delivery { background:#f5dfe3; color:#7f3142; }
.legend.payment,.calendar-event.payment { background:#f7e8d9; color:#824f24; }
.legend.liquidated,.calendar-event.liquidated { background:#dff0e8; color:#286149; }
.calendar { border:1px solid var(--line); background:#fff; box-shadow:0 8px 25px rgba(92,52,48,.05); overflow:hidden; }
.calendar-week,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-week { background:var(--ink); color:#fff; }
.calendar-week span { padding:9px; text-align:center; font-size:.67rem; letter-spacing:.08em; text-transform:uppercase; }
.calendar-day { min-height:130px; padding:9px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.calendar-day:nth-child(7n) { border-right:0; }
.calendar-day.muted { background:#fbf7f5; }
.calendar-day time { display:block; margin-bottom:7px; color:var(--muted); font-size:.72rem; }
.calendar-day.today { background:#eeeae8; box-shadow:inset 0 0 0 2px #d7cfcb; }
.calendar-day.today time { display:inline-flex; align-items:center; justify-content:center; min-width:25px; height:25px; padding:0 6px; border-radius:50%; background:#d7cfcb; color:var(--ink); font-weight:600; }
.calendar-event { display:block; margin:5px 0; padding:7px 8px; border-radius:5px; text-decoration:none; font-size:.68rem; line-height:1.3; transition:.2s; }
.calendar-event:hover { transform:translateY(-1px); filter:saturate(1.2); }
.calendar-event b,.calendar-event span { display:block; }
.calendar-event span { opacity:.8; }

/* Catálogos */
.editable-list,.catalog-list { display:grid; gap:12px; }
.editable-row { display:grid; grid-template-columns:2fr 1fr auto; gap:12px; align-items:center; padding:14px; background:var(--paper); border:1px solid var(--line); }
.editable-clients .editable-row { grid-template-columns:1.4fr 1.5fr 1fr auto; }
.catalog-row { display:grid; grid-template-columns:1.2fr .65fr 2fr auto; gap:13px; align-items:end; padding:16px; background:var(--paper); border:1px solid var(--line); }
.catalog-search { display:flex; align-items:end; gap:12px; margin-bottom:20px; }
.catalog-search label { display:grid; flex:1; max-width:560px; gap:7px; color:var(--muted); font-size:.76rem; font-weight:600; }
.catalog-no-results { padding:18px; color:var(--muted); background:var(--paper); text-align:center; }
.catalog-actions { display:grid; gap:7px; }
.catalog-actions form { margin:0; }
.catalog-actions .btn { width:100%; }
.editable-table { min-width:760px; table-layout:fixed; white-space:normal; }
.invitation-table { min-width:900px; }
.editable-table input,.editable-table textarea { min-width:120px; }
.editable-table input:disabled,.editable-table textarea:disabled { padding:4px 0; border-color:transparent; background:transparent; color:var(--ink); opacity:1; -webkit-text-fill-color:var(--ink); resize:none; }
.editable-table tr.is-editing [data-client-email]:disabled { display:block; box-sizing:border-box; width:100%; padding:11px 12px; border:1px solid #e7c6cc; background:#fff8f8; color:var(--rose-dark); -webkit-text-fill-color:var(--rose-dark); font-weight:600; }
.editable-table tr.is-editing [data-client-email]:disabled::placeholder { color:var(--rose-dark); opacity:1; }
.editable-table tr.is-editing .client-no-email { display:flex!important; box-sizing:border-box; width:100%; max-width:100%; min-height:32px; margin-top:8px; padding:7px 9px; border:1px solid #edc7cf; border-radius:999px; background:#fff8f8; color:var(--rose-dark)!important; font-size:.66rem!important; }
.editable-table tr.is-editing .client-no-email input { flex:0 0 16px; width:16px!important; min-width:16px!important; height:16px; margin:0; padding:0; }
.editable-table tr.is-editing .client-no-email span { line-height:1.25; white-space:normal; }
.editable-table tr[hidden] { display:none; }
.editable-table tr.selected td { background:var(--blush); }
.catalog-description { min-height:105px; overflow:hidden; line-height:1.5; white-space:pre-wrap; }
.editable-table td:last-child { width:230px; }
.invitation-table th:nth-child(1) { width:24%; }
.invitation-table th:nth-child(2) { width:14%; }
.invitation-table th:nth-child(3) { width:42%; }
.service-table th:nth-child(1) { width:50%; }
.service-table th:nth-child(2) { width:25%; }

/* Pedidos */
.orders-section { margin-bottom:42px; }
.orders-workspace { padding:0; overflow:hidden; }
.order-view-tabs { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--line); background:var(--paper); }
.order-view-tab { display:flex; align-items:center; justify-content:center; gap:9px; min-height:58px; padding:13px 18px; border:0; border-right:1px solid var(--line); background:transparent; color:var(--muted); font:600 .75rem var(--sans); letter-spacing:.08em; cursor:pointer; }
.order-view-tab:last-child { border-right:0; }
.order-view-tab span { display:inline-grid; place-items:center; min-width:23px; min-height:23px; padding:2px 6px; border-radius:999px; background:#eadeda; color:var(--ink); font-size:.66rem; letter-spacing:0; }
.order-view-tab.active { background:#fff; color:var(--rose-dark); box-shadow:inset 0 -3px var(--rose-dark); }
.order-tab-panel { padding:26px; }
.order-list { display:grid; gap:12px; }
.order-card { display:grid; grid-template-columns:minmax(220px,1.8fr) minmax(130px,.6fr) auto; gap:20px; align-items:center; padding:20px 22px; background:#fff; border:1px solid var(--line); box-shadow:0 6px 18px rgba(92,52,48,.04); }
.order-card h3 { margin:5px 0 2px; font:500 1.25rem var(--serif); }
.order-card p { margin:0; color:var(--muted); font-size:.82rem; }
.order-money { display:grid; text-align:right; }
.order-money b { color:var(--rose-dark); }
.order-money small { color:var(--muted); }
.status { display:inline-block; width:max-content; padding:4px 8px; border-radius:999px; font-size:.63rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; }
.status.pending { background:#f8eadb; color:#8b5728; }
.status.done,.status.paid { background:#dff0e8; color:#286149; }
.new-order { scroll-margin-top:100px; }
.detail-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:24px; align-items:start; }
.detail-grid.single { grid-template-columns:1fr; }
.detail-grid.single .summary-card { position:static; }
.summary-card { position:sticky; top:95px; }
.payment-summary-card { position:static; top:auto; }
.summary-card dl { margin:0; }
.summary-card dl>div { display:grid; grid-template-columns:145px 1fr; gap:12px; padding:8px 0; border-bottom:1px solid var(--line); }
.summary-card dt { color:var(--muted); font-size:.74rem; }
.summary-card dd { margin:0; font-size:.84rem; }
.totals { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:20px 0; }
.totals span { padding:12px; background:var(--blush); color:var(--muted); font-size:.7rem; }
.totals b { display:block; color:var(--rose-dark); font-size:1rem; }
.summary-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.summary-actions form { margin:0; }
.workflow-status-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:16px 0 18px; }
.workflow-status { display:flex; flex-direction:column; gap:10px; min-width:0; min-height:132px; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 8px 20px rgba(71,45,45,.04); }
.workflow-status.is-complete { border-color:#c8e3d5; background:linear-gradient(145deg,#f7fcf9,#edf8f3); }
.workflow-status.is-pending { border-color:#ecc8d0; background:linear-gradient(145deg,#fffafa,#fdf1f3); }
.workflow-status.is-waiting { border-color:#e4ddda; background:#faf8f7; }
.workflow-status-heading { display:flex; align-items:center; gap:10px; min-width:0; }
.workflow-status-heading>span:last-child { display:grid; gap:1px; min-width:0; }
.workflow-status-heading small { color:var(--muted); font-size:.56rem; font-weight:600; letter-spacing:.12em; }
.workflow-status-heading b { overflow:hidden; color:var(--ink); font-size:.73rem; letter-spacing:.04em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.workflow-status-icon { display:grid; flex:0 0 30px; place-items:center; width:30px; height:30px; border-radius:50%; background:#eadeda; color:var(--rose-dark); font-size:.72rem; font-weight:700; }
.workflow-status.is-complete .workflow-status-icon { background:#d6eee2; color:#286149; }
.workflow-status.is-waiting .workflow-status-icon { background:#ebe7e5; color:#8d817d; }
.workflow-status>strong { display:inline-flex; align-items:center; width:max-content; max-width:100%; padding:4px 8px; border-radius:999px; background:#f5dfe3; color:var(--rose-dark); font:600 .66rem var(--sans); letter-spacing:.04em; text-transform:uppercase; }
.workflow-status.is-complete>strong { background:#dff0e8; color:#286149; }
.workflow-status.is-waiting>strong { background:#ebe7e5; color:#756b68; }
.workflow-status form { margin:0; }
.workflow-status .btn { width:max-content; min-height:34px; margin-top:auto; padding:7px 10px; font-size:.68rem; }
.workflow-payment-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:auto; }
.order-form.compact { grid-template-columns:repeat(2,minmax(140px,1fr)); }
.payment-form { grid-template-columns:1fr 1fr 1fr auto; }
.payment-registration-form { display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:16px; align-items:end; }
.payment-registration-form .payment-order { grid-column:1/-1; }
.payment-registration-form>.btn { width:max-content; min-width:180px; }
.payment-order-picker,.client-picker { position:relative; }
.field-help { color:var(--muted); font-size:.67rem; font-weight:400; }
.payment-order-results { position:absolute; z-index:12; top:calc(100% - 17px); left:0; right:0; max-height:270px; overflow:auto; padding:7px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.payment-order-results[hidden],.payment-order-result[hidden] { display:none; }
.payment-order-result { display:flex; align-items:center; justify-content:space-between; gap:15px; width:100%; padding:11px 12px; border:0; border-bottom:1px solid var(--line); background:#fff; color:var(--ink); text-align:left; cursor:pointer; }
.payment-order-result:last-child { border-bottom:0; }
.payment-order-result:hover,.payment-order-result:focus { outline:0; background:var(--blush); }
.payment-order-result strong { font-size:.8rem; }
.payment-order-result span { color:var(--muted); font-size:.74rem; }
.client-picker-results { position:absolute; z-index:14; top:calc(100% + 5px); left:0; right:0; max-height:240px; overflow:auto; padding:7px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.client-picker-results[hidden],.client-picker-option[hidden] { display:none; }
.client-picker-option { display:block; width:100%; padding:11px 12px; border:0; border-bottom:1px solid var(--line); background:#fff; color:var(--ink); text-align:left; font:500 .8rem var(--sans); cursor:pointer; }
.client-picker-option:last-child { border-bottom:0; }
.client-picker-option:hover,.client-picker-option:focus { outline:0; background:var(--blush); }
.invitation-picker-option { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.invitation-picker-option small { color:var(--rose-dark); font-weight:700; }
.new-order .order-form,.unified-editor-form,.admin-create-user { grid-template-columns:repeat(2,minmax(180px,1fr)); gap:18px; padding:4px 0; }
.unified-editor-form>button,.admin-create-user>button { width:max-content; min-width:170px; }
.courtesy-option { display:flex!important; align-items:center; gap:12px!important; min-height:54px; padding:10px 14px; border:1px solid var(--line); border-radius:7px; background:var(--paper); cursor:pointer; }
.courtesy-option input { width:19px; height:19px; margin:0; accent-color:var(--rose-dark); }
.courtesy-option span { display:grid; gap:2px; color:var(--ink); }
.courtesy-option small { color:var(--muted); font-weight:400; }
.client-edit-dialog .button-group { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }
.client-edit-dialog .client-email-field { align-self:start; }
.payment-registration-form :disabled { cursor:not-allowed; opacity:.58; }
.payment-list { display:grid; gap:10px; }
.payment-head { display:grid; grid-template-columns:1fr 1fr 1.4fr auto; gap:10px; padding:0 12px 7px; color:var(--muted); font-size:.67rem; letter-spacing:.08em; text-transform:uppercase; }
.payment-row { display:grid; grid-template-columns:1fr 1fr 1.4fr auto; gap:10px; align-items:center; padding:12px; background:var(--paper); border:1px solid var(--line); }
.payment-head-readonly,.payment-row-readonly { grid-template-columns:1fr 1fr 1.4fr; }
.payment-row-readonly { min-height:52px; }
.payment-row-readonly strong { color:var(--rose-dark); }
.payment-row-readonly time { color:var(--muted); }

/* Tablas */
.table-scroll { overflow:auto; }
.data-table { width:100%; border-collapse:collapse; white-space:nowrap; }
.data-table th,.data-table td { padding:13px 11px; text-align:left; border-bottom:1px solid var(--line); font-size:.82rem; }
.data-table th { color:var(--muted); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.data-table tr:hover td { background:#fffaf8; }

/* Notificaciones */
.notification-list { display:grid; gap:10px; }
.notification-card { display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; padding:17px; background:#fff; border:1px solid var(--line); text-decoration:none; }
.notification-card.unread { border-left:4px solid var(--rose-dark); }
.notification-card.read { opacity:.72; }
.notification-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:#fff; font-weight:600; }
.notification-icon.entrega { background:var(--rose-dark); }
.notification-icon.pago { background:var(--amber); }
.notification-icon.pago_retrasado { background:#9b3b36; }
.notification-card b,.notification-card small { display:block; }
.notification-card b { font-size:.85rem; }
.notification-card small { margin-top:3px; color:var(--muted); font-size:.7rem; }
.notification-card em { color:var(--muted); font-size:.68rem; font-style:normal; }

@media(max-width:1100px) {
  .form-grid,.order-form { grid-template-columns:repeat(2,minmax(150px,1fr)); }
  .detail-grid { grid-template-columns:1fr; }
  .summary-card { position:static; }
  .catalog-row { grid-template-columns:1fr 1fr; }
  .catalog-row .wide { grid-column:1/-1; }
  .payment-registration-form { grid-template-columns:repeat(2,minmax(150px,1fr)); }
  .security-sections-grid { grid-template-columns:1fr; }
  .finance-filter-heading { align-items:flex-start; flex-direction:column; }
}
@media(max-width:900px) {
  .app-content,.admin-shell .admin-footer { margin-left:0; }
  .app-header { transform:translateX(-100%); }
  html:not(.sidebar-collapsed) .app-header { transform:translateX(0); }
  .sidebar-toggle { left:0; }
  html:not(.sidebar-collapsed) .sidebar-toggle { left:246px; }
}
@media(max-width:760px) {
  .app-content { padding:24px 16px 50px; }
  .page-heading.split { align-items:flex-start; flex-direction:column; }
  .month-nav { flex-wrap:wrap; }
  .calendar { overflow-x:auto; }
  .calendar-week,.calendar-grid { min-width:760px; }
  .order-card { grid-template-columns:1fr; gap:10px; }
  .order-money { text-align:left; }
  .payment-form,.payment-registration-form,.payment-row,.payment-head { grid-template-columns:1fr 1fr; }
  .payment-head-readonly,.payment-row-readonly { grid-template-columns:1fr 1fr 1.4fr; }
  .editable-row,.editable-clients .editable-row { grid-template-columns:1fr; }
  .order-view-tabs { grid-template-columns:1fr; }
  .order-view-tab { border-right:0; border-bottom:1px solid var(--line); }
  .order-tab-panel { padding:18px; }
  .workflow-status-grid { grid-template-columns:1fr; }
  .workflow-status { min-height:0; }
  .finance-summary { grid-template-columns:1fr; }
  .section-lock-form,.remove-lock-form { grid-template-columns:1fr; }
}
@media(max-width:520px) {
  .admin-brand span { display:flex; }
  .login-card { padding:28px 22px; }
  .form-grid,.order-form,.order-form.compact,.catalog-row,.payment-form,.payment-registration-form,.payment-row { grid-template-columns:1fr; }
  .payment-head-readonly { display:none; }
  .payment-row-readonly { grid-template-columns:1fr; gap:5px; }
  .catalog-search { align-items:stretch; flex-direction:column; }
  .search-form { align-items:stretch; flex-direction:column; }
  .wide { grid-column:auto; }
  .totals { grid-template-columns:1fr; }
  .summary-card dl>div { grid-template-columns:1fr; gap:2px; }
  .tab-link { font-size:.68rem; padding:7px 8px; }
}
/* Pedidos, descuentos y edición de pagos */
.order-notes { white-space: pre-wrap; line-height: 1.6; }
.inline-checkbox { display: inline-flex; align-items: center; gap: .55rem; white-space: nowrap; }
.inline-checkbox input { width: 1.05rem; height: 1.05rem; }
.editable-table textarea { min-width: 16rem; resize: vertical; }
[data-payment-row] input:not([type="hidden"]),
[data-payment-row] select { min-width: 9rem; }
[data-payment-row] .edit-actions { min-width: 13rem; }
.check-option small { display: block; margin-top: .2rem; line-height: 1.35; }
.order-description,.service-description-cell { white-space: pre-wrap; line-height: 1.55; }
.catalog-edit-dialog,.authorization-dialog { width:min(720px,calc(100vw - 32px)); border:1px solid var(--line,#ead4cf); border-radius:18px; padding:0; color:inherit; background:#fffdfc; box-shadow:0 24px 80px rgba(60,31,31,.24); }
.catalog-edit-dialog::backdrop,.authorization-dialog::backdrop { background:rgba(48,28,28,.48); backdrop-filter:blur(3px); }
.catalog-edit-dialog form,.authorization-dialog form { padding:28px; }
.authorization-dialog { width:min(480px,calc(100vw - 32px)); }
.authorization-dialog form { display:grid; gap:22px; padding:34px; }
.authorization-dialog h3 { margin:0; font-family:inherit; font-size:1.25rem; line-height:1.35; }
.authorization-dialog label { display:block; margin:0; }
.authorization-dialog input { width:100%; min-height:54px; margin:0; }
.authorization-dialog .button-group { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-top:2px; }
.authorization-dialog .button-group .btn { min-width:116px; }
.portal-users-grid { display:grid; gap:14px; }
.portal-user-card { border:1px solid var(--line,#ead4cf); border-radius:14px; padding:18px; background:#fffaf8; }
.portal-user-card>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.portal-user-card h3 { margin:0; }
.portal-user-card.is-current { background:#f8f2ef; }
.movement-buttons { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.movement-buttons form { margin:0; }
.movement-form { margin-top:18px; padding:20px; border-radius:12px; background:#fff; border:1px solid var(--line,#ead4cf); }
.movement-form h4 { margin:0 0 18px; font-size:1rem; }
.movement-form label { display:block; margin-bottom:14px; }
.movement-form input { margin-top:7px; }
.current-user-label { display:inline-flex; margin-top:14px; color:var(--accent,#b4415d); }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
