*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--v: #2b5bff;--vl: #6a8bff;--v-strong: #1f125c;--v-soft: #dbe6ff;--warm: #ffc83d;--g50: #f5f8ff;--g100: #f3f4f6;--g200: #e5e7eb;--g300: #d1d5db;--g400: #9ca3af;--g500: #6b7a99;--g600: #4e5f85;--g700: #344563;--g800: #1f2a44;--g900: #101c38;--green: #10b981;--red: #ef4444;--blue: #0b7cd6;--amber: #f59e0b;--sw: 260px;--r: 12px;--sh: 0 4px 24px rgba(0, 0, 0, .08);--shl: 0 12px 40px rgba(0, 0, 0, .14);--font-ui: "Manrope", system-ui, -apple-system, sans-serif;--font-brand: "Playfair Display", serif}html,body,#root{min-height:100%}body{font-family:var(--font-ui);background:linear-gradient(180deg,#dbe8ff,#edf3ff 52%,#f5f8ff);color:var(--g800);font-size:14px;line-height:1.6}.layout{display:flex;min-height:100vh}.main{flex:1;margin-left:var(--sw);background:linear-gradient(180deg,#f5f8ffc2,#f5f8fff0);min-height:100vh}.main-inner{max-width:1360px;margin:0 auto;padding:32px 28px;position:relative}.sidebar-backdrop{display:none}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sw);background:linear-gradient(180deg,#0f1d45,#1f125c);display:flex;flex-direction:column;z-index:100;box-shadow:22px 0 44px #101c3852}.sidebar-top{padding:22px 18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-logo{display:flex;align-items:center;gap:12px}.brand-logo-image{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.24);box-shadow:0 6px 20px #0003;flex-shrink:0}.sidebar-brand-wrap{display:flex;flex-direction:column}.sidebar-brand{font-family:var(--font-brand);font-size:22px;font-weight:700;color:#fff;line-height:1;letter-spacing:.3px}.sidebar-crm{font-size:10px;color:#ffffffbf;text-transform:uppercase;letter-spacing:1.4px}.sidebar-close{margin-left:auto;display:none;background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:10px;width:32px;height:32px;cursor:pointer;align-items:center;justify-content:center;font-size:14px;line-height:1}.sidebar-nav{flex:1;padding:14px 10px;display:flex;flex-direction:column;gap:3px}.nav-btn{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;border:none;border-radius:10px;background:transparent;color:#ffffff8c;font-size:14px;font-weight:500;cursor:pointer;text-align:left;transition:all .2s}.nav-btn:hover{background:#ffffff12;color:#fff}.nav-btn.active{background:linear-gradient(135deg,#2b5bff94,#6a8bff61);color:#fff;border:1px solid rgba(255,255,255,.24);box-shadow:inset 0 1px #ffffff26}.nav-icon{font-size:18px}.sidebar-bottom{padding:14px 10px;border-top:1px solid rgba(255,255,255,.12)}.logout-btn{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:transparent;color:#ffffff73;font-size:13px;cursor:pointer;transition:all .2s}.logout-btn:hover{background:#ef44441f;color:#f87171;border-color:#ef444433}.mobile-topbar{display:none}.view-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.view-header h2{font-size:24px;font-weight:800;color:var(--g900)}.view-header p{color:var(--g500);margin-top:2px;font-size:13px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:#fff;border-radius:var(--r);padding:20px;display:flex;align-items:center;gap:16px;box-shadow:var(--sh);border:1px solid var(--g200);border-left:4px solid var(--cc, var(--v))}.stat-icon{font-size:30px}.stat-val{font-size:28px;font-weight:800;color:var(--g900);line-height:1}.stat-lbl{font-size:12px;color:var(--g500);margin-top:2px}.welcome-box{background:linear-gradient(135deg,#e9f0ff,#f6f9ff);border:1px solid rgba(43,91,255,.18);border-radius:var(--r);padding:24px}.welcome-box h3{font-size:17px;font-weight:700;margin-bottom:12px}.welcome-box ul{list-style:none;display:flex;flex-direction:column;gap:8px}.welcome-box li{font-size:14px;color:var(--g700)}.btn-primary{background:linear-gradient(135deg,var(--v),var(--vl));color:#fff;border:none;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 8px 20px #2b5bff47}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 24px #2b5bff5c}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary.full{width:100%;padding:13px;font-size:15px}.btn-secondary{background:var(--g100);color:var(--g700);border:1px solid var(--g200);padding:10px 18px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:var(--g200)}.btn-secondary.sm{padding:6px 12px;font-size:13px}.btn-edit{background:#0ea5e91a;color:#0369a1;border:1px solid rgba(14,165,233,.2);padding:6px 12px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s}.btn-edit:hover{background:#0ea5e933}.btn-del{background:#ef444414;color:var(--red);border:1px solid rgba(239,68,68,.14);padding:6px 10px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s}.btn-del:hover{background:#ef44442e}.btn-del.sm{padding:4px 8px}.btn-danger{background:var(--red);color:#fff;border:none;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer}.btn-danger:hover{background:#dc2626}.btn-icon{background:var(--g100);border:1px solid var(--g200);padding:6px 10px;border-radius:8px;font-size:12px;cursor:pointer;transition:background .2s}.btn-icon:hover{background:var(--g200)}.search-row{margin-bottom:16px}.search-input{width:100%;max-width:380px;padding:10px 16px;border:1px solid var(--g200);border-radius:10px;font-size:14px;background:#fff;outline:none;transition:border-color .2s}.search-input:focus{border-color:var(--v);box-shadow:0 0 0 3px #2b5bff2e}.table-wrap{background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow-x:auto;border:1px solid var(--g200)}.tbl{width:100%;border-collapse:collapse}.tbl th{background:var(--g50);padding:13px 16px;text-align:left;font-size:11px;font-weight:700;color:var(--g500);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--g200)}.tbl td{padding:13px 16px;border-bottom:1px solid var(--g100);vertical-align:middle}.tbl tbody tr:hover td{background:#f2f6ff}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr.row-open td{background:#ebf1ff}.tbl-thumb{width:52px;height:40px;border-radius:8px;object-fit:cover;border:1px solid var(--g200)}.tbl-thumb-ph{width:52px;height:40px;border-radius:8px;background:var(--g100);display:flex;align-items:center;justify-content:center;font-size:18px}.empty{text-align:center;color:var(--g400);padding:32px}.slug-hint{margin-top:3px}.expanded-row td{padding:0!important;background:#e9f0ff!important}.expanded-inner{padding:16px 20px;border-top:2px dashed rgba(43,91,255,.24)}.expanded-inner h5{font-size:11px;text-transform:uppercase;color:var(--g500);letter-spacing:.5px;margin-bottom:8px}.chips-row{display:flex;flex-wrap:wrap;gap:8px}.service-chip{background:linear-gradient(135deg,#edf4ff,#f7fbff);border:1px solid rgba(43,91,255,.16);padding:5px 12px;border-radius:8px;font-size:13px;color:var(--g700)}.service-chip strong{color:var(--v)}.date-chip{background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:#065f46;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.salidas-td{max-width:220px}.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:600}.badge-green{background:#10b9811f;color:#065f46}.badge-gray{background:var(--g100);color:var(--g500)}.badge-purple{background:#2b5bff1f;color:var(--v)}.badge-blue{background:#0ea5e91a;color:#0369a1}.badge-toggle{border:none;cursor:pointer;transition:opacity .2s}.badge-toggle:hover{opacity:.75}.ml{margin-left:4px}.row-actions{display:flex;gap:6px;align-items:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:8px}.field{display:flex;flex-direction:column;gap:6px}.field.span2{grid-column:1 / -1}.field label{font-size:13px;font-weight:600;color:var(--g700)}.field input,.field textarea,.field select{padding:10px 12px;border:1px solid var(--g200);border-radius:10px;font-size:14px;font-family:inherit;background:#fff;outline:none;transition:border-color .2s;width:100%}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--v);box-shadow:0 0 0 3px #2b5bff24}.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;cursor:pointer;font-size:14px}.check-label input{width:16px;height:16px;accent-color:var(--v)}.img-preview{width:100%;max-height:130px;object-fit:cover;border-radius:8px;border:1px solid var(--g200);margin-top:6px}.form-section{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--g100)}.form-section:last-child{border-bottom:none;margin-bottom:0}.form-section h4{font-size:14px;font-weight:700;color:var(--g800);margin-bottom:12px}.section-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-row h4{margin-bottom:0}.items-list{display:flex;flex-direction:column;gap:8px}.item-row{display:flex;gap:8px;align-items:flex-end}.item-row select{min-width:140px}.item-row input{flex:1}.item-row .field{margin:0}.dates-row{align-items:flex-start}.align-end{align-self:flex-end;margin-bottom:1px}.gallery-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--g200)}.gallery-section h4{font-size:14px;font-weight:700;margin-bottom:12px;color:var(--g700)}.gallery-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.gallery-row input{flex:1}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-box{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shl)}.modal-wide{max-width:820px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--g100)}.modal-head h3{font-size:18px;font-weight:700}.modal-close{background:none;border:none;font-size:26px;cursor:pointer;color:var(--g400);line-height:1;padding:2px 8px;border-radius:6px}.modal-close:hover{background:var(--g100);color:var(--g700)}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--g100);background:var(--g50);border-radius:0 0 16px 16px;position:sticky;bottom:0}.toast{position:fixed;top:24px;right:24px;padding:14px 20px;border-radius:12px;font-weight:600;font-size:14px;display:flex;align-items:center;gap:10px;z-index:9999;box-shadow:var(--shl);animation:toastIn .3s ease}.toast-success{background:#d1fae5;color:#065f46;border:1px solid rgba(16,185,129,.3)}.toast-error{background:#fee2e2;color:#991b1b;border:1px solid rgba(239,68,68,.3)}@keyframes toastIn{0%{transform:translate(120%);opacity:0}to{transform:translate(0);opacity:1}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 10% 20%,rgba(88,128,255,.2),transparent 45%),radial-gradient(circle at 85% 15%,rgba(255,200,61,.22),transparent 42%),linear-gradient(135deg,#0d1b44,#1f125c 58%,#0f1d45);padding:20px}.login-card{background:#fff;border-radius:20px;padding:40px;width:100%;max-width:420px;box-shadow:0 30px 80px #00000073}.login-logo{display:flex;align-items:center;gap:14px;margin-bottom:24px}.login-logo .brand-logo-image{width:56px;height:56px}.login-brand{font-family:var(--font-brand);font-size:30px;font-weight:700;color:var(--v-strong);letter-spacing:.2px;line-height:1}.login-sub{font-size:12px;color:var(--g600);text-transform:uppercase;letter-spacing:1px}.login-card h1{font-size:24px;font-weight:700;margin-bottom:6px;color:var(--g900)}.login-card>p{color:var(--g500);margin-bottom:26px;font-size:14px}.login-card .field{margin-bottom:16px}.loading{text-align:center;color:var(--g400);padding:48px;font-size:15px}.hint{color:var(--g400);font-size:13px;margin-top:4px}.error-msg{background:#fee2e2;color:#991b1b;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:14px;border:1px solid rgba(239,68,68,.2)}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#e2ebff,#f4f8ff);padding:20px}.auth-loading-card{min-width:260px;padding:20px 22px;border-radius:14px;background:#fff;border:1px solid rgba(43,91,255,.16);box-shadow:0 12px 32px #1f2a4429;display:flex;align-items:center;gap:12px}.auth-loading-card p{color:var(--g700);font-weight:600}.auth-spinner{width:20px;height:20px;border:3px solid rgba(43,91,255,.25);border-top-color:var(--v);border-radius:50%;animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}code{background:var(--g100);padding:2px 6px;border-radius:4px;font-size:11px;color:var(--g500)}.badge-amber{background:#f59e0b1f;color:#92400e;border:1px solid rgba(245,158,11,.2)}.fecha-td{white-space:nowrap;font-size:13px;color:var(--g600)}.service-chip strong{color:var(--v);margin-right:4px}.info-tip{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid rgba(59,130,246,.2);border-radius:10px;padding:12px 16px;font-size:13px;color:#1e40af;margin-bottom:16px;display:flex;gap:8px;align-items:flex-start}.visibility-toggle{display:flex;align-items:center;gap:8px}@media (max-width: 900px){.sidebar{transform:translate(-100%);transition:transform .28s ease}.sidebar.open{transform:translate(0)}.sidebar-close{display:inline-flex}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;border:none;background:#101c3885;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90}.mobile-topbar{display:flex;align-items:center;gap:12px;position:sticky;top:10px;z-index:70;margin-bottom:14px;padding:10px 12px;background:#ffffffdb;border:1px solid rgba(43,91,255,.18);border-radius:14px;box-shadow:0 8px 18px #1f2a4424;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-menu-btn{width:38px;height:38px;border-radius:10px;border:1px solid rgba(43,91,255,.24);background:#fff;color:var(--v-strong);font-size:19px;line-height:1;cursor:pointer}.mobile-topbar-title{font-family:var(--font-brand);color:var(--v-strong);font-size:24px;line-height:1}.main{margin-left:0}.form-grid{grid-template-columns:1fr}.field.span2{grid-column:1}.item-row{flex-wrap:wrap}.stats-grid{grid-template-columns:1fr 1fr}}@media (max-width: 520px){.stats-grid{grid-template-columns:1fr}.main-inner{padding:20px 16px}.login-card{padding:32px 22px}.modal-box{margin:0;border-radius:16px 16px 0 0;max-height:95vh}.modal-bg{align-items:flex-end}}
