:root { --mbmc-black:#151515; --mbmc-charcoal:#242321; --mbmc-gold:#9a6f2c; --mbmc-gold-soft:#f1e7d3; --mbmc-ink:#20201f; --mbmc-muted:#66645f; --mbmc-surface:#fff; --mbmc-canvas:#f5f5f4; --mbmc-line:#deddd9; --mbmc-danger:#9f2d24; --mbmc-radius:10px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--mbmc-canvas); color:var(--mbmc-ink); font-family:"Public Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
a { color:#6f4d19; }
a:hover { color:#49310d; }
.skip-link { position:fixed; left:16px; top:-60px; z-index:1100; padding:10px 14px; background:#fff; color:#111; border:2px solid var(--mbmc-gold); }
.skip-link:focus { top:12px; }
.pc-container { background:transparent; }
.pc-content { max-width:1480px; margin-inline:auto; padding:28px 28px 48px; }
.pc-sidebar { background:var(--mbmc-black) !important; border-right:1px solid #34322f !important; }
.pc-sidebar .m-header { border-bottom:1px solid #302f2d; min-height:82px; }
.mbmc-brand-link { display:flex; align-items:center; gap:12px; min-width:0; color:#fff !important; }
.mbmc-logo { width:46px; height:46px; flex:0 0 46px; border:1px solid #3e3b36; background:#050505; overflow:hidden; }
.mbmc-logo img { display:block; width:100%; height:100%; object-fit:cover; }
.mbmc-brand-copy { min-width:0; line-height:1.05; }
.mbmc-brand-copy strong { display:block; letter-spacing:.16em; font-size:.83rem; color:#dfbf84; }
.mbmc-brand-copy small { display:block; margin-top:5px; color:#bdbab4; font-size:.62rem; white-space:nowrap; }
.pc-sidebar .pc-caption { padding:24px 24px 7px !important; color:#9c9993 !important; text-transform:uppercase; font-size:.68rem; letter-spacing:.13em; font-weight:700; }
.pc-sidebar .pc-link { margin:2px 12px; min-height:44px; border-radius:7px; color:#d5d2cc !important; }
.pc-sidebar .pc-link:hover,.pc-sidebar .pc-link:focus-visible { background:#2b2a28 !important; color:#fff !important; }
.pc-sidebar .pc-item.active>.pc-link { background:#332d23 !important; color:#f0d49d !important; box-shadow:inset 3px 0 0 var(--mbmc-gold); }
.pc-header { background:rgba(255,255,255,.96) !important; border-bottom:1px solid var(--mbmc-line) !important; box-shadow:none !important; }
.mbmc-menu-button { border:0; background:transparent; min-width:44px; min-height:44px; }
.pc-sidebar.pc-sidebar-hide { width:0 !important; overflow:hidden; }
.pc-sidebar.pc-sidebar-hide~.pc-header { left:0 !important; }
.pc-sidebar.pc-sidebar-hide~.pc-container { margin-left:0 !important; }
.page-header { display:flex; align-items:end; justify-content:space-between; gap:24px; margin:0 0 26px; padding:0 0 20px; border-bottom:1px solid var(--mbmc-line); }
.page-header h1,.page-header h2,.page-header h3 { margin:0; color:var(--mbmc-ink) !important; font-weight:700; letter-spacing:-.025em; }
.page-header p,.page-header .text-muted { margin:6px 0 0; color:var(--mbmc-muted) !important; }
.page-actions { display:flex; flex-wrap:wrap; gap:8px; }
.card { border:1px solid var(--mbmc-line); border-radius:var(--mbmc-radius); box-shadow:none; background:var(--mbmc-surface); }
.card-header { background:#fafaf9 !important; border-bottom:1px solid var(--mbmc-line); padding:16px 20px; }
.card-body { padding:20px; }
.btn { min-height:42px; border-radius:7px; padding:8px 16px; font-weight:600; }
.btn-sm { min-height:36px; padding:6px 12px; }
.btn-primary { background:var(--mbmc-charcoal); border-color:var(--mbmc-charcoal); color:#fff; }
.btn-primary:hover,.btn-primary:focus-visible { background:#000; border-color:#000; color:#fff; }
.btn-outline-primary { color:#6f4d19; border-color:#9a6f2c; }
.btn-outline-primary:hover { background:#6f4d19; border-color:#6f4d19; color:#fff; }
.btn:focus-visible,.form-control:focus,.form-select:focus,a:focus-visible { outline:3px solid rgba(154,111,44,.3); outline-offset:2px; box-shadow:none !important; }
.form-control,.form-select,select.form-control,textarea.form-control { min-height:44px; border:1px solid #c9c7c2; border-radius:7px; background:#fff; color:var(--mbmc-ink); }
textarea.form-control { min-height:92px; }
.form-control-sm,.form-select-sm,select.form-control-sm { min-height:34px; padding:.35rem .65rem; font-size:.82rem; }
textarea.form-control-sm { min-height:68px; }
.form-label,label { color:#45433f; font-size:.82rem; font-weight:600; margin-bottom:6px; }
.form-check-input { width:1.1rem; height:1.1rem; }
.form-errors,.errorlist { color:var(--mbmc-danger); }
.badge { border-radius:999px; padding:6px 10px; font-weight:700; }
.status-badge { background:#efefed; color:#494743; }
.status-DISPONIBLE,.status-VIGENTE,.status-RESUELTA { background:#dcecdf; color:#184f2d; }
.status-RESERVADO,.status-FORMALIZADO,.status-EN_ATENCION { background:#dcebf2; color:#194f68; }
.status-CONTRATADO { background:var(--mbmc-gold-soft); color:#634411; }
.status-MANTENIMIENTO,.status-POR_VENCER { background:#fae8cf; color:#744107; }
.status-CANCELADO,.status-CANCELADA { background:#f4dddd; color:#7f211b; }
.status-EN_REVISION,.status-REPORTADA { background:#ece7f6; color:#513c73; }
.status-PENDIENTE { background:#efefed; color:#494743; }
.status-EN_VALIDACION { background:#dcebf2; color:#194f68; }
.status-PAGADO { background:#dcecdf; color:#184f2d; }
.status-VENCIDO { background:#fae8cf; color:#744107; }
.metric-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--mbmc-line); border-radius:var(--mbmc-radius); background:#fff; }
.metric { padding:20px; border-right:1px solid var(--mbmc-line); }
.metric:last-child { border-right:0; }
.metric-label { display:block; color:var(--mbmc-muted); font-size:.77rem; text-transform:uppercase; letter-spacing:.08em; }
.metric-value { display:block; margin-top:7px; color:var(--mbmc-ink); font-size:clamp(1.45rem,2vw,2rem); font-weight:700; letter-spacing:-.04em; }
.section-title { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:30px 0 12px; }
.section-title h2 { margin:0; font-size:1.05rem; }
.table-responsive { border:1px solid var(--mbmc-line); border-radius:var(--mbmc-radius); background:#fff; }
.table { margin:0; }
.table thead th { padding:12px 16px; background:#f7f7f6; color:#5a5854; border-bottom:1px solid var(--mbmc-line); font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap; }
.table td { padding:14px 16px; border-color:#ebeae7; vertical-align:middle; }
.empty-state { padding:42px 24px; text-align:center; color:var(--mbmc-muted); }
.empty-state i { display:block; margin-bottom:10px; font-size:2rem; color:#9d7a42; }
.detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border:1px solid var(--mbmc-line); border-radius:var(--mbmc-radius); background:#fff; }
.detail-item { padding:18px 20px; border-right:1px solid var(--mbmc-line); border-bottom:1px solid var(--mbmc-line); }
.detail-item:nth-child(3n) { border-right:0; }
.detail-item dt { color:var(--mbmc-muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.07em; }
.detail-item dd { margin:5px 0 0; font-weight:600; }
.timeline { list-style:none; margin:0; padding:0; }
.timeline li { position:relative; padding:0 0 18px 22px; border-left:1px solid var(--mbmc-line); }
.timeline li::before { content:""; position:absolute; left:-5px; top:4px; width:9px; height:9px; border-radius:50%; background:var(--mbmc-gold); }
.alert { border:1px solid transparent; border-radius:8px; }
.alert-success { background:#e8f3ea; color:#174f2a; border-color:#bddbc4; }
.alert-error,.alert-danger { background:#fae9e7; color:#7b211b; border-color:#e6bfba; }
.alert-warning { background:#fff1dc; color:#744107; border-color:#e8ca9f; }
.detail-tabs { display:flex; gap:4px; overflow-x:auto; margin:-6px 0 22px; padding:0 0 1px; border-bottom:1px solid var(--mbmc-line); scrollbar-width:thin; }
.detail-tabs a { flex:0 0 auto; padding:12px 14px; color:var(--mbmc-muted); border-bottom:3px solid transparent; font-size:.86rem; font-weight:600; text-decoration:none; }
.detail-tabs a:hover,.detail-tabs a:focus-visible { color:var(--mbmc-ink); }
.detail-tabs a.active { color:#6f4d19; border-bottom-color:var(--mbmc-gold); }
.tab-panel { margin-top:4px; }
.calendar-toolbar { display:flex; align-items:center; justify-content:center; gap:14px; margin:0 0 12px; }
.calendar-toolbar h2 { min-width:210px; margin:0; text-align:center; font-size:1.05rem; text-transform:capitalize; }
.payment-calendar-scroll { overflow-x:auto; border-radius:var(--mbmc-radius); }
.payment-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); overflow:hidden; border:1px solid var(--mbmc-line); border-radius:var(--mbmc-radius); background:#fff; }
.payment-calendar-weekday { padding:9px 8px; background:#f7f7f6; color:var(--mbmc-muted); border-right:1px solid var(--mbmc-line); text-align:center; font-size:.7rem; font-weight:700; }
.payment-calendar-day { min-height:118px; padding:8px; border-top:1px solid var(--mbmc-line); border-right:1px solid var(--mbmc-line); }
.payment-calendar-day:nth-child(7n),.payment-calendar-weekday:nth-child(7n) { border-right:0; }
.payment-calendar-day.is-outside { background:#fafaf9; color:#aaa; }
.payment-calendar-date { display:block; margin-bottom:7px; font-size:.72rem; font-weight:700; }
.payment-calendar-entry { display:block; margin:0 0 5px; padding:6px 7px; border-left:3px solid var(--mbmc-gold); border-radius:4px; background:#f4f1eb; color:var(--mbmc-ink); text-decoration:none; font-size:.68rem; line-height:1.25; }
.payment-calendar-entry strong,.payment-calendar-entry span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.payment-calendar-entry.status-PAGADO { border-left-color:#2f7d48; background:#e8f3ea; }
.payment-calendar-entry.status-EN_VALIDACION { border-left-color:#2f7290; background:#e7f0f5; }
.payment-calendar-entry.status-VENCIDO { border-left-color:#b45d21; background:#fff1dc; }
.choices { margin-bottom:0; }
.choices__inner { min-height:36px; padding:4px 10px 1px; border:1px solid #c9c7c2; border-radius:7px; background:#fff; font-size:.82rem; }
.is-focused .choices__inner,.is-open .choices__inner { border-color:var(--mbmc-gold); }
.choices__list--dropdown,.choices__list[aria-expanded] { z-index:20; border-color:var(--mbmc-line); }
.modal { --bs-modal-zindex:1060; }
.modal-backdrop { --bs-backdrop-zindex:1055; }
.modal-content { border:1px solid var(--mbmc-line); border-radius:12px; box-shadow:none; }
.modal-header,.modal-footer { padding:14px 18px; background:#fafaf9; border-color:var(--mbmc-line); }
.modal-body { padding:18px; }
.modal-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.modal-form-grid .form-field-description,.modal-form-grid .form-field-address,.modal-form-grid .form-field-notes,.modal-form-grid .form-field-termination_terms,.modal-form-grid .form-field-characteristics,.modal-form-grid .form-field-change_reason { grid-column:1/-1; }
.modal .choices__list--dropdown,.modal .choices__list[aria-expanded] { z-index:1070; }
.eventos-public .pc-sidebar,.eventos-public .pc-header { display:none; }
.eventos-public .pc-container { margin-left:0; }
.eventos-public .pc-content { max-width:none; padding:0; }
.eventos-kpi .card-body { min-height:112px; }
.eventos-kpi-value { font-size:1.5rem; font-weight:700; }
table th,table td { white-space:normal; overflow-wrap:anywhere; }
@media (max-width:1024px) { .pc-sidebar { transform:translateX(-100%); visibility:hidden; } .pc-sidebar.mob-sidebar-active { transform:translateX(0); visibility:visible; } .pc-container { margin-left:0 !important; } .pc-header { left:0 !important; } }
@media (max-width:767.98px) { .pc-content { padding:20px 16px 36px; } .page-header { align-items:start; flex-direction:column; } .page-actions,.page-actions .btn { width:100%; } .metric-strip { grid-template-columns:1fr 1fr; } .metric:nth-child(2) { border-right:0; } .metric:nth-child(-n+2) { border-bottom:1px solid var(--mbmc-line); } .detail-grid { grid-template-columns:1fr; } .detail-item,.detail-item:nth-child(3n) { border-right:0; } .table-responsive .btn { width:100%; margin-top:4px; } .modal-form-grid { grid-template-columns:1fr; } .modal-form-grid .form-field { grid-column:1; } .payment-calendar { min-width:760px; } .payment-calendar-day { min-height:96px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; } }
