/* Gestor de Contratos corporate palette. Navy navigation, blue actions, orange milestones. */
:root{--bg:#f3f6fb;--bg2:#fff;--bg3:#eaf0f9;--card:#fff;--card-hover:#f8faff;--sidebar-bg:#102343;--text:#152844;--text2:#435774;--text3:#5e708b;--blue:#1554b5;--blue-dark:#104493;--purple:#1554b5;--orange:#f58220;--yellow:#995100;--red:#b43a29;--green:#16764f;--cyan:#1554b5;--border:#dce4f0;--border2:#c6d3e5;--gradient:linear-gradient(135deg,#1554b5,#236ed0);--gradient-glow:linear-gradient(135deg,#1554b510,#f5822010);color-scheme:light}
body{background:var(--bg);color:var(--text)}.app-header{background:#fff;border-color:var(--border)}.header-date,.ws-header-product{color:var(--text3)}.ws-header-search{background:#f3f6fb;border-color:var(--border);color:var(--text3)}.ws-header-search input{color:var(--text)}.ws-header-search input::placeholder{color:var(--text3)}.ws-header-search kbd{color:var(--text3);border-color:var(--border)}.notification-bell{background:#f5f8fc;color:var(--blue)}.bell-badge{background:var(--orange);color:#102343}
.sidebar{background:#102343;color:#fff}.sidebar-logo,.sidebar .user-name{color:#fff}.sidebar .user-area,.sidebar .nav-section,.sidebar .btn-logout{color:#b8c8e0}.sidebar-user{background:#1d3557;border-color:#335074}.sidebar .user-avatar{color:#fff;background:#1554b5}.sidebar .nav-item{color:#dbe6f6}.sidebar .nav-item.active{background:#24497b;color:#fff;border-color:#436b9f;box-shadow:inset 3px 0 #f58220}.sidebar .nav-item.active svg{color:#fff}.sidebar .nav-item:hover{background:#1d3557}.nav-badge{background:#fff0e4;color:#8d440a;border-color:#f7c59d}
.btn-primary,.ws-primary{background:#1554b5;color:#fff;border-color:#1554b5}.btn-primary:hover,.ws-primary:hover{background:#104493;color:#fff}.btn-outline,.ws-secondary{background:#fff;color:#1554b5;border-color:#c6d3e5}.btn-outline:hover,.ws-secondary:hover{background:#edf3fd;border-color:#1554b5}.btn-success{background:#edf6f1;color:#166447;border-color:#b9d8c9}.btn-danger{background:#fff1ed;color:#a83724;border-color:#efc4b7}
input,select,textarea{background:#fff;color:#152844;border-color:#c6d3e5}input::placeholder,textarea::placeholder{color:#64748b}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #1554b5;outline-offset:3px}.form-group label,label{color:#435774}
.modal,.modal-content{background:#fff;color:#152844;border-color:#dce4f0}.modal-header,.modal-footer{border-color:#dce4f0}.modal-close{color:#435774}.modal-overlay{background:#10234388}.modal-body pre{white-space:pre-wrap;overflow-wrap:anywhere}
.card,.stat-card,.table-wrap,.notification-card,.settings-card{background:#fff;border-color:#dce4f0}.table-wrap th{background:#eaf0f9;color:#435774}.table-wrap td{color:#152844;border-color:#dce4f0}.table-wrap tr:hover td{background:#f5f8fd}.badge-green,.badge-purple,.badge-blue,.badge-cyan{background:#eaf1fd;color:#1554b5;border-color:#bfd2ef}.badge-yellow,.badge-orange{background:#fff0e4;color:#8d440a;border-color:#f7c59d}.badge-red{background:#fff1ed;color:#a83724;border-color:#efc4b7}.alert-warning{background:#fff4e9;color:#85490a;border-color:#efca9d}.alert-info{background:#eaf2ff;color:#1554b5}.alert-danger{background:#fff0ed;color:#a83724}
.ws-hero{background:linear-gradient(115deg,#102343,#1554b5);color:#fff;border-color:#1554b5}.ws-hero h1,.ws-hero p,.ws-hero-caption,.ws-hero .ws-eyebrow{color:#fff}.ws-hero .ws-primary{background:#f58220;color:#102343;border-color:#f58220}.ws-hero .ws-secondary{background:#ffffff15;color:#fff;border-color:#ffffff60}.ws-float-tag{background:#fff;color:#1554b5;border-color:#dce4f0}.panel-back{background:#1b3763;color:#fff}.panel-front{background:#fff;color:#152844}
.ws-stat,.ws-stat-card,.ws-panel,.ws-section,.ws-legal-card,.ws-contract-card,.ws-hr-card,.ws-person-card,.ws-summary-card,.ws-surface,.ws-empty{background:#fff;color:#152844;border-color:#dce4f0}.ws-section-title,.ws-card-title,.ws-section h2,.ws-stat strong{color:#152844}
#loadingScreen{background:#102343!important}#loadingScreen p{color:#dbe6f6!important}.login-screen{background:linear-gradient(135deg,#102343,#1554b5)}.login-card{background:#fff;color:#152844;border-color:#dce4f0}.login-card .login-subtitle{color:#435774}
.mesa{color:#152844;max-width:1500px;margin:auto}.mesa h1{font-size:clamp(26px,3.5vw,42px);letter-spacing:-.04em;line-height:1.12;margin:10px 0 12px}.mesa h2{font-size:20px;letter-spacing:-.02em;margin:16px 0}.mesa h3{font-size:17px;margin:10px 0}.mesa p{line-height:1.6;color:#435774}.mesa-hero{padding:30px;border-radius:20px;background:linear-gradient(120deg,#102343,#1554b5);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:24px;box-shadow:0 12px 35px #10234314}.mesa-hero p{color:#dbe6f6;max-width:650px;margin-bottom:0}.mesa-eyebrow{display:block;font-size:11px;font-weight:750;letter-spacing:.14em}.mesa-hero .mesa-eyebrow{color:#ffb36e}.mesa-hero .btn-outline{background:#ffffff12;border-color:#ffffff55;color:#fff}.mesa-hero .btn-primary{background:#f58220;border-color:#f58220;color:#102343}
.mesa-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:15px 0}.mesa-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.mesa-kpis>div{background:#fff;border:1px solid #dce4f0;padding:22px;border-radius:14px;display:flex;flex-direction:column;gap:9px}.mesa-kpis strong{font-size:30px;color:#1554b5}.mesa-kpis span{font-size:12px;color:#435774}.mesa-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:24px 0}.mesa-toolbar input{flex:1;min-width:180px}.mesa-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}.mesa-card{display:block;text-align:left;border:1px solid #dce4f0;background:#fff;color:#152844;border-radius:16px;padding:24px;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s;font:inherit}.mesa-card:hover{transform:translateY(-3px);border-color:#1554b5;box-shadow:0 8px 25px #1554b515}.mesa-card h3{margin:18px 0 10px;font-size:20px}.mesa-folio{display:block;font-size:11px;color:#1554b5;font-weight:750;margin-bottom:12px}.mesa-state{display:inline-block;border-radius:7px;padding:5px 9px;font-size:11px;font-weight:650;background:#eaf1fd;color:#1554b5;margin:3px 0}.mesa-hero .mesa-state{background:#ffffff25;color:#fff}.mesa-card small{color:#5e708b;line-height:1.5;display:block}.mesa-card-next{border-top:1px solid #e4eaf4;margin-top:18px;padding-top:14px;font-size:12px;line-height:1.6;color:#435774;min-height:65px}.mesa-link{color:#1554b5;display:block;font-size:12px;font-weight:700;margin-top:15px}.mesa-board{display:grid;grid-template-columns:repeat(5,minmax(240px,1fr));overflow:auto;gap:16px;padding-bottom:20px}.mesa-board section{background:#eaf0f9;border-radius:16px;padding:14px}.mesa-board h2{font-size:15px}.mesa-board .mesa-card{width:100%;margin:12px 0;padding:18px}.mesa-empty{padding:42px;border:1px dashed #c6d3e5;border-radius:14px;background:#fff;text-align:center;color:#5e708b}
.mesa-next{display:flex;gap:18px;border-left:4px solid #f58220;border-radius:12px;background:#fff4e9;padding:20px;align-items:center;margin:20px 0;line-height:1.5}.mesa-next>span{color:#85490a;text-transform:uppercase;font-size:11px;font-weight:800}.mesa-tabs{display:flex;gap:6px;overflow:auto;border-bottom:1px solid #c6d3e5;padding-bottom:10px;margin:25px 0}.mesa-tabs button{white-space:nowrap;background:transparent;border:0;color:#435774;padding:13px 15px;border-radius:9px;font:inherit;font-size:12px;cursor:pointer}.mesa-tabs button.selected{background:#1554b5;color:#fff}.mesa-pane{background:#fff;border:1px solid #dce4f0;border-radius:18px;padding:28px}.mesa-split{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr);gap:30px}.mesa-aside{background:#f3f6fb;border-radius:14px;padding:24px;align-self:start}.mesa-aside p,.mesa-aside li{font-size:13px;line-height:1.65}.mesa-route{display:flex;flex-direction:column;gap:10px;margin:20px 0}.mesa-step{display:flex;gap:18px;text-align:left;padding:18px;border:1px solid #dce4f0;border-radius:12px;background:#fff;color:#152844;font:inherit;cursor:pointer;position:relative}.mesa-step>span{border-radius:50%;width:36px;height:36px;display:grid;place-items:center;background:#eaf0f9;color:#435774;flex-shrink:0}.mesa-step strong{display:block;font-size:14px}.mesa-step small{display:block;color:#5e708b;font-size:12px;margin-top:6px}.mesa-step.done{border-color:#9ac6b3}.mesa-step.done>span{background:#eaf7f0;color:#166447}.mesa-step.current{border-color:#f58220;background:#fff7ef;box-shadow:inset 3px 0 #f58220}.mesa-step.current>span{background:#f58220;color:#102343}.mesa-estimate{padding:18px;background:#eaf1fd;border-radius:10px;margin:18px 0}.mesa-estimate strong,.mesa-estimate span,.mesa-estimate small{display:block;margin:8px 0}.mesa-warning{background:#fff4e9;border-left:3px solid #f58220;border-radius:6px;padding:15px!important;color:#85490a!important}.mesa-helper{font-size:12px;color:#5e708b}.mesa-history{list-style:none;padding:0}.mesa-history li{border-left:2px solid #c6d3e5;padding:0 0 24px 22px}.mesa-history span,.mesa-history small{display:block;line-height:1.5}.mesa-history small{color:#5e708b;font-size:11px;margin-top:7px}
.mesa-message{background:#f3f6fb;padding:20px;border:1px solid #dce4f0;border-radius:12px;margin:14px 0}.mesa-message.internal{background:#fff4e9;border-color:#efca9d}.mesa-message header{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.mesa-message small{font-size:11px;color:#5e708b}.mesa-message p,.mesa-doc p{white-space:pre-wrap;overflow-wrap:anywhere}.mesa label{display:block;margin:14px 0 9px}.mesa textarea{width:100%}.mesa-doc{border:1px solid #dce4f0;border-radius:12px;padding:22px;margin:16px 0;overflow-wrap:anywhere}.mesa-doc h3{margin-top:0}.mesa-version{display:block;border-top:1px solid #dce4f0;padding-top:10px;margin-top:10px}.mesa-version .btn{font-size:11px;padding:5px 10px}.mesa-draft{border:1px solid #dce4f0;border-radius:14px;padding:25px;margin:20px 0;background:#fff}.mesa-approvals{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.mesa-approvals>div{background:#f3f6fb;padding:17px;border-radius:10px}.mesa-hash{font-size:10px;color:#5e708b;overflow-wrap:anywhere;display:block}.mesa pre,.mesa-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.7 inherit;max-height:65vh;overflow:auto}.mesa-summary{display:grid;grid-template-columns:minmax(100px,.7fr) 1.5fr;gap:13px}.mesa-summary dt{color:#5e708b;font-size:12px}.mesa-summary dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.mesa-template-version{padding:18px 0;border-top:1px solid #dce4f0}.mesa-template-version .mesa-state{display:block;width:fit-content}#mesaActionError{color:#b43a29}
@media(max-width:900px){.mesa-hero{flex-direction:column;align-items:flex-start;padding:24px}.mesa-split{grid-template-columns:1fr}.mesa-kpis{grid-template-columns:1fr 1fr}.mesa-pane{padding:20px}.mesa-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}
@media(max-width:560px){.mesa-hero{padding:20px}.mesa-kpis{gap:10px}.mesa-kpis>div{padding:16px}.mesa-pane{padding:16px}.mesa-cards{grid-template-columns:1fr}.mesa-approvals{grid-template-columns:1fr}.mesa-next{align-items:flex-start;flex-direction:column;gap:8px}.mesa-summary{grid-template-columns:1fr}.mesa-summary dd{margin-bottom:8px}.mesa-actions .btn{min-height:42px}.mesa-tabs button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.mesa *{transition:none!important;animation:none!important}}

.ws-metrics>button,.ws-contract,.ws-view-switch,.modal.ws-modal,.ws-modal .modal-header,.ws-modal .modal-footer{background:#fff;color:#152844;border-color:#dce4f0}
.ws-contract-title h3,.ws-modal .modal-header h3,.ws-modal .detail-value,.ws-metrics>button strong{color:#152844}
.ws-legend button,.ws-metrics>button>div,.ws-contract p,.ws-contract small,.ws-small-label,.ws-small-note,.ws-detail,.ws-timeline,.ws-row,.ws-section p{color:#435774}
.ws-collection-head h2>span{background:#eaf1fd;color:#1554b5}.ws-filter-chips button,.ws-view-switch button{color:#435774}.ws-filter-chips button.selected,.ws-view-switch button.selected{background:#eaf1fd;color:#1554b5;border-color:#bfd2ef}
.ws-metrics>button:nth-child(2) strong,.ws-metrics>button:nth-child(3) strong{color:#995100}.ws-metrics>button:nth-child(4) strong{color:#1554b5}.ws-contract-meta,.ws-contract-footer,.ws-contract-progress{border-color:#dce4f0}
.login-title,.login-logo,.login-card h1,.login-card h2{color:#152844}.login-hint,.login-subtitle,.login-card .text-muted{color:#435774}.login-card input{background:#fff;color:#152844}

/* Legacy workspace selectors are more specific than the global theme. */
#view-legal>.view-toolbar,#view-legal .search-box,#view-legal .select-sm,.ws-sort select,.ws-clean-table{background:#fff;color:#152844;border-color:#c6d3e5}
#view-legal .search-box input,.form-group input,.form-group select,.form-group textarea,.ws-modal .form-group input,.ws-modal .form-group select,.ws-modal .form-group textarea{background:#fff;color:#152844;border-color:#c6d3e5}
.ws-clean-table th{background:#eaf0f9;color:#435774}.ws-clean-table td,.ws-clean-table td:first-child strong{color:#152844}.ws-clean-table td:first-child span{color:#5e708b}.ws-clean-table tr:hover td{background:#f5f8fd}
.ws-btn{color:#1554b5;border-color:#c6d3e5}.ws-btn.ws-primary{color:#fff}.ws-btn:hover{background:#edf3fd}.ws-btn.ws-primary:hover{background:#104493}
.ws-legal-hero{background:linear-gradient(115deg,#102343,#1554b5);color:#fff;border-color:#1554b5}.ws-legal-hero h1,.ws-legal-hero h1 span,.ws-legal-hero p,.ws-legal-hero .ws-eyebrow,.ws-legal-hero .ws-ring strong,.ws-legal-hero .ws-ring span,.ws-legal-hero .ws-legend button{color:#fff}.ws-legal-hero .ws-legend button{border-color:#ffffff35}.ws-legal-hero .ws-legend button:hover{color:#ffb36e}
.ws-eyebrow,.ws-welcome p,.ws-metrics small,.ws-contract-top>span:first-child,.ws-contract-object,.ws-contract-data dt,.ws-contract-title p,.ws-ring span,.ws-footnote,.ws-focus-number>span,.ws-focus-row,.ws-focus-row small,.ws-agenda-name small,.ws-agenda-date small,.ws-hr-summary span,.ws-activity p,.ws-activity small,.ws-page-foot,.ws-sort,.ws-modal .detail-label{color:#435774}
.ws-contract-data dd,.ws-focus-row strong,.ws-agenda-date strong,.ws-agenda-name strong,.ws-empty h3{color:#152844}.ws-empty p{color:#435774}.ws-focus-number>strong,.ws-data-quality.has-missing{color:#995100}.ws-data-quality,.ws-open,.ws-text-btn{color:#1554b5}.ws-open{background:#edf3fd;border-color:#bfd2ef}.ws-open:hover{background:#dce9fc}
.ws-metrics .req-icon,.ws-legend .req-icon,.ws-section-title>.req-icon,.ws-focus-row>span>.req-icon{color:#5e708b}.ws-mobile-menu,.ws-sidebar-close{color:#1554b5}
.ws-hero h1 span{color:#ffb36e}.ws-hero .ws-secondary:hover{background:#ffffff25}.badge-gray,.badge-indigo{background:#eaf0f9;color:#435774;border-color:#c6d3e5}
.req-modal{--req-line:#dce4f0;background:#fff;color:#152844}.req-modal .modal-header,.req-modal .modal-footer,.req-modal .sol-section{background:#f3f6fb;border-color:#dce4f0}.req-modal .modal-header h3,.req-modal .form-group label{color:#435774}.req-modal .form-group input,.req-modal .form-group select,.req-modal .form-group textarea{background:#fff;color:#152844;border-color:#c6d3e5}.req-modal .btn-primary{background:#1554b5;color:#fff;border-color:#1554b5}.req-modal .btn-outline{background:#fff;color:#1554b5;border-color:#c6d3e5}.req-modal .text-muted{color:#435774!important}
/* Agenda: readable dates, keyboard navigation, private notes. */
.mesa-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 16px}.mesa-calendar-toolbar h2{text-transform:capitalize;margin:0}
.mesa-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.mesa-cal-label{text-align:center;color:#3c5f82;font-weight:700;padding:10px 0}.mesa-cal-day{min-height:114px;background:#fff;border:1px solid #d7e3ed;border-radius:10px;text-align:left;padding:10px;color:#183e62;cursor:pointer;display:flex;flex-direction:column;gap:8px}.mesa-cal-day span{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.mesa-cal-day small{color:#5a7188;margin-top:auto}.mesa-cal-day.weekend{background:#f2f6fa}.mesa-cal-day.today{border-color:#ed7927;border-width:2px}.mesa-cal-day.selected{background:#e5effa;box-shadow:0 0 0 2px #2372b9}.mesa-cal-day:focus-visible{outline:3px solid #2372b9;outline-offset:2px}.mesa-cal-day:hover{background:#edf4fa}.mesa-agenda-list{display:grid;gap:12px}.mesa-agenda-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border:1px solid #d7e3ed;border-radius:12px;padding:18px;background:#fff}.mesa-agenda-item.needs-review{border-left:4px solid #ed7927}.mesa-agenda-item p{margin:8px 0}.mesa-internal-note{background:#eef3f8;padding:10px;border-radius:6px;white-space:pre-wrap;overflow-wrap:anywhere}#mesaDatesList{margin-top:18px}
@media(max-width:650px){.mesa-cal-day{min-height:84px;padding:5px;border-radius:6px}.mesa-cal-day span{display:none}.mesa-cal-day small{font-size:10px}.mesa-calendar{gap:3px}.mesa-calendar-toolbar{flex-wrap:wrap}.mesa-calendar-toolbar h2{font-size:20px;order:-1;width:100%;text-align:center}.mesa-agenda-item{flex-direction:column}.mesa-agenda-item .mesa-actions{width:100%}}
/* Personal calendar retains the corporate palette and adapts to narrow screens. */
.calendar-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;margin:20px 0}.calendar-filters label{display:grid;gap:6px;font-weight:600}.calendar-filters input,.calendar-filters select,.personal-calendar input[type=month]{width:100%;padding:10px;border:1px solid var(--border,#dbe3eb);border-radius:9px;background:var(--bg-card,#fff);color:var(--text,#182d45)}.personal-calendar .mesa-calendar-toolbar{flex-wrap:wrap}.personal-calendar .mesa-calendar-toolbar label{display:grid;gap:6px}.personal-calendar .mesa-cal-day span{overflow:hidden;overflow-wrap:anywhere}.personal-calendar h2{margin-top:24px}.personal-calendar .mesa-agenda-item{gap:12px}
@media(max-width:700px){.calendar-filters{grid-template-columns:1fr 1fr}.personal-calendar .mesa-cal-day{min-width:0;min-height:72px;padding:5px}.personal-calendar .mesa-cal-day span{display:none}.personal-calendar .mesa-cal-day small{font-size:10px}.personal-calendar .mesa-calendar{gap:3px}.personal-calendar .mesa-agenda-item{flex-wrap:wrap}.calendar-filters select{min-width:0}}

/* Centro de correo: selección, estados y lectura del mensaje completo. */
#view-notifications .notif-grid{grid-template-columns:minmax(0,1fr);gap:20px}
.mail-controls{display:flex;gap:12px;flex-wrap:wrap;padding:16px}
.mail-controls label{display:flex;flex-direction:column;gap:6px;min-width:160px;font-size:13px}
.mail-controls label:first-child{flex:1}
.mail-controls input,.mail-controls select{min-height:38px;padding:8px;border:1px solid var(--border);border-radius:8px}
.mail-summary,.mail-bulk{padding:12px 16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mail-bulk label{display:flex;gap:8px;align-items:center}
#mailHistoryRows td{white-space:normal;vertical-align:top;min-width:130px;max-width:320px}
#mailHistoryRows td:first-child{min-width:50px}
#mailHistoryRows details{margin-top:8px;font-size:12px}
#mailHistoryRows .sol-pre{max-height:220px;overflow:auto;white-space:pre-wrap}
.mail-state{display:inline-block;padding:6px 9px;border-radius:6px;background:#eef3fb;font-size:12px}
.mail-state-enviado{background:#e3f4ea;color:#166534}.mail-state-pendiente,.mail-state-procesando{background:#fff3d6;color:#795500}
.mail-state-revisar,.mail-state-fallido{background:#feecec;color:#a82121}
.mail-review{padding:14px 0;border-bottom:1px solid var(--border)}
