.people-form{grid-template-columns:170px 170px 1.4fr 1fr auto}
.signature-field{display:grid;gap:6px}
.signature-title{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:700}
.signature-field canvas{display:block;width:100%;height:150px;border:1px dashed #91a9b5;border-radius:10px;background:#fff;cursor:crosshair;touch-action:none}
.signature-field small{color:var(--muted)}
.signature-preview{display:block;width:100%;height:230px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff}
.signature-button{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--blue);font-weight:700;cursor:pointer}
@media(max-width:1100px){.people-form{grid-template-columns:1fr 1fr}.people-form .button{grid-column:span 2}}
@media(max-width:560px){.people-form{grid-template-columns:1fr}.people-form .button{grid-column:auto}}

/* Tema azul */
:root{--navy:#0b2d4d;--blue:#176fa9;--cyan:#e2f2fb;--ink:#153047;--muted:#647b8c;--line:#cbdde8;--bg:#edf5fa;--white:#fbfdff;--danger:#b43b46;--gold:#3c9bd2;--gold-dark:#145f91;--black:#071b2d;--shadow:0 14px 34px rgba(12,66,103,.12)}
body{background:radial-gradient(circle at 8% 0,rgba(55,158,216,.15),transparent 27%),linear-gradient(180deg,#f5fbff 0,#eaf3f8 100%);min-height:100vh}
.app-header{padding-block:16px;background:linear-gradient(115deg,#071d31,#0d3c62);border-bottom:2px solid #48a9dc;box-shadow:0 8px 26px rgba(6,37,59,.22)}
.brand-mark{background:linear-gradient(145deg,#67c4ef,#1978b5);color:#fff;box-shadow:inset 0 1px rgba(255,255,255,.45),0 5px 14px rgba(3,42,68,.3)}
.brand strong{color:#f4fbff;font-size:16px;letter-spacing:.01em}.brand small{color:#b9d9eb}
.brand-logo{width:48px;height:48px;padding:3px;border-radius:12px;background:#fff;object-fit:contain;box-shadow:0 4px 13px rgba(2,32,52,.32)}
.app-header .secondary{background:rgba(255,255,255,.07);border-color:rgba(117,199,239,.45);color:#eefaff}.app-header .secondary:hover{background:rgba(74,169,220,.2);border-color:#70c4ed}
.button{transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.button:hover{transform:translateY(-1px)}
.primary{background:linear-gradient(135deg,#299ad5,#14679f);color:#fff;border-color:#54b5e7;box-shadow:0 5px 14px rgba(17,103,158,.23)}.primary:hover{background:linear-gradient(135deg,#43abe0,#0e5d94)}
.hero{position:relative;padding:25px 28px;overflow:hidden;border-radius:20px;background:linear-gradient(125deg,#092744 0,#0d4e79 72%,#1679ae 100%);box-shadow:0 16px 38px rgba(8,63,99,.19)}
.hero::after{content:"";position:absolute;right:-65px;top:-100px;width:280px;height:280px;border:1px solid rgba(136,213,248,.3);border-radius:50%;box-shadow:0 0 0 34px rgba(97,190,235,.08),0 0 0 70px rgba(97,190,235,.045)}
.hero>div{position:relative;z-index:1}.hero h1{color:#f7fcff}.hero p{color:#c9e4f2}.eyebrow{color:#176fa9}.hero .eyebrow{color:#8bd7fa}.privacy{background:rgba(255,255,255,.1);border:1px solid rgba(141,215,248,.42);backdrop-filter:blur(5px)}.privacy strong{color:#dff5ff}.privacy span{color:#c9e4f2}
.hero-side{display:flex;align-items:center;gap:14px}.hero-logo{width:112px;height:112px;padding:5px;border:1px solid rgba(141,215,248,.55);border-radius:18px;background:#fff;object-fit:contain;box-shadow:0 9px 24px rgba(2,32,52,.28)}
.card{background:rgba(251,253,255,.97);border-color:#cfe0ea;box-shadow:var(--shadow)}
.filters{border-top:3px solid var(--gold)}
input,select,textarea{background:#fcfeff;border-color:#bfd5e2}input:focus,select:focus,textarea:focus{outline-color:rgba(44,151,207,.2);border-color:var(--gold)}
.kpi{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff,#edf7fc);border-color:#cde1ec}.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#5bb8e7,#176fa9)}.kpi strong{color:#0b2d4d}.kpi span{font-weight:700}.kpi small{color:#6b8190}
.panel{border-top:3px solid #3c9bd2}.panel-title h2{color:#102e45}.badge{background:#dff1fb;color:#115f91;border:1px solid #a9d5ec}.rank-number{background:linear-gradient(145deg,#64bee9,#1977b2);color:#fff}.rank-value{color:#12628f}
th{color:#155f8b;background:#f0f8fc}tbody tr:hover{background:#edf7fc}.history-panel .secondary{border-color:#8bc7e5;color:#145f91}
dialog{background:#fafdff;border:1px solid #9fcde5;box-shadow:0 28px 90px rgba(4,47,75,.38)}dialog::backdrop{background:rgba(4,24,40,.72)}.dialog-head{margin:-22px -22px 20px;padding:20px 22px 16px;background:linear-gradient(120deg,#08243d,#0d4c76);border-bottom:2px solid #4caadd;border-radius:18px 18px 0 0}.dialog-head h2{color:#f3fbff}.dialog-head .eyebrow{color:#83d2f6}.icon-button{background:rgba(255,255,255,.08);border-color:rgba(132,210,246,.45);color:#eefaff}.signature-field canvas{border:2px dashed #5caad0;background:#fcfeff;box-shadow:inset 0 2px 9px rgba(9,75,112,.07)}.signature-preview{border-color:#9fcde5;background:#fcfeff}
.catalog-item{background:#f4faff;border-color:#c9e0ec}.signature-button{border-color:#8bc7e5;color:#145f91;background:#f4faff}.toast{background:linear-gradient(120deg,#08243d,#0d4d77);border:1px solid #59b7e5;color:#eefaff}
@media(max-width:700px){.hero{padding:22px}.app-header{padding-inline:16px}.hero::after{opacity:.5}}

/* Uso táctil y PWA */
@media(max-width:700px){
  .app-header{position:relative;gap:14px;padding-top:max(14px,env(safe-area-inset-top))}
  .brand{width:100%}.actions{display:grid;width:100%;grid-template-columns:1fr;gap:8px}
  .actions .button,.actions .file-button{justify-content:center;width:100%;min-height:46px;padding-inline:8px;text-align:center}
  .actions [data-action="new-request"]{grid-column:auto;min-height:50px;font-size:16px}
  main{padding-top:18px;padding-bottom:max(40px,env(safe-area-inset-bottom))}
  .hero{align-items:stretch}.hero h1{max-width:100%;font-size:27px;overflow-wrap:anywhere}.hero-side{align-items:stretch}.hero-logo{width:92px;height:92px}.privacy{min-width:0;flex:1}
  .filters{grid-template-columns:1fr}.filters .button{min-height:44px}
  input,select,textarea{min-height:46px;font-size:16px}
  th,td{padding:12px 10px}.table-wrap{overscroll-behavior-inline:contain}
  dialog,dialog.wide{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:18px;overflow:auto;border-radius:15px}
  .dialog-head{position:sticky;top:-18px;z-index:2;margin:-18px -18px 18px;padding:18px;border-radius:15px 15px 0 0}
  .icon-button{min-width:44px;height:44px}.dialog-actions{position:sticky;bottom:-18px;margin:18px -18px -18px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#fafdff;border-top:1px solid var(--line)}
  .dialog-actions .button{min-height:46px;flex:1}.signature-field canvas{height:180px}
}
@media(max-width:480px){
  .filters{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:14px}.kpi strong{font-size:25px}
  .report-grid{gap:12px}.panel{padding:16px}.panel-title{align-items:flex-start}.panel-title h2{font-size:17px}
  .actions{grid-template-columns:1fr}.actions [data-action="new-request"]{grid-column:auto}
}
@media(display-mode:standalone){body{user-select:none}input,textarea{user-select:text}.app-header{padding-top:max(16px,env(safe-area-inset-top))}}
.form-hint.error{padding:10px 12px;border:1px solid #c84c3f;border-radius:9px;background:#fff0ed;color:#8d241c;font-weight:700}
.signature-field.error canvas{border-color:#c13d32;background:#fff6f4;box-shadow:0 0 0 3px rgba(193,61,50,.12)}
.auth-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,rgba(74,174,224,.2),transparent 31%),linear-gradient(140deg,#061a2d,#0d456e)}
.auth-screen[hidden],.auth-card form[hidden]{display:none!important}.auth-card{width:min(430px,100%);padding:34px;border:1px solid rgba(117,201,240,.5);border-radius:22px;background:#f8fcff;box-shadow:0 28px 90px rgba(3,35,57,.5)}.auth-card>.brand-mark{margin-bottom:22px}.auth-card h1{margin:5px 0 8px;font-size:31px}.auth-card>p{margin:0 0 22px;color:var(--muted)}.auth-card form{display:grid;gap:14px}.auth-card label{display:grid;gap:6px;color:#375a70;font-size:12px;font-weight:800}.auth-card .primary{margin-top:3px;min-height:46px}.auth-card .ghost{min-height:42px}.auth-card>small{display:block;margin-top:17px;color:var(--muted);text-align:center}.auth-card .form-hint{min-height:18px;margin:0}.auth-card .form-hint.error{padding:9px 11px}.password-intro{margin:0;padding:12px 14px;border-left:4px solid var(--gold);border-radius:8px;background:#e7f4fb;color:#244b64;line-height:1.5}
.session-name{display:inline-flex;align-items:center;padding:0 8px;color:#c7e8f8;font-size:12px;font-weight:700;white-space:nowrap}
@media(max-width:700px){.session-name{justify-content:center;min-height:35px;white-space:normal;text-align:center}.auth-card{padding:25px}.auth-card h1{font-size:27px}}

.requisition-nav{border-color:#65b9e3;color:#e9f8ff}.requisition-products{padding:15px;border:1px solid #add5e9;border-radius:13px;background:#f0f8fc}.requisition-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.requisition-section-head strong,.requisition-section-head small{display:block}.requisition-section-head small{margin-top:2px;color:var(--muted)}.requisition-items{display:grid;gap:9px}.requisition-item{display:grid;grid-template-columns:minmax(0,1fr) 92px 145px 38px;gap:8px;align-items:center}.requisition-item .icon-button{font-size:18px;color:var(--danger)}.requisition-priority{font-weight:700}.requisition-preview{min-height:180px;resize:vertical;background:#edf7fc;line-height:1.55}.email-button{background:#176fa9;color:#fff}.whatsapp-button{background:#197b4d;color:#fff}.requisition-actions{flex-wrap:wrap}.edit-signature-notice{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #9dcee6;border-radius:11px;background:#eaf7fd}.edit-signature-notice[hidden],.signature-field[hidden]{display:none!important}.edit-signature-notice strong,.edit-signature-notice span{display:block}.edit-signature-notice span{color:var(--muted);font-size:12px}.request-row-actions{display:flex;align-items:center;gap:8px}.edit-link{border:0;background:transparent;color:#176fa9;font-weight:800;cursor:pointer}
@media(max-width:700px){.requisition-item{grid-template-columns:minmax(0,1fr) 82px 1fr 42px}.requisition-item .requisition-priority{grid-column:1/span 3}}
@media(max-width:560px){.requisition-section-head{align-items:stretch;flex-direction:column}.requisition-item{grid-template-columns:minmax(0,1fr) 78px 42px}.requisition-item .requisition-priority{grid-column:1/span 2}.requisition-actions .button{width:100%}}

.people-search{display:grid;gap:6px;margin-top:16px;padding:13px 15px;border:1px solid #b7d8e9;border-radius:13px;background:#eef8fd}.people-search>label{color:#164f73;font-size:12px;font-weight:800}.people-search-box{display:flex;align-items:center;gap:10px}.people-search-box input{flex:1}.people-search-box .badge{flex:none;white-space:nowrap}.people-search>small{color:var(--muted)}
@media(max-width:560px){.people-search-box{align-items:stretch;flex-direction:column}.people-search-box .badge{align-self:flex-start}}

.catalog-form{display:grid;grid-template-columns:1.2fr 1fr 1.1fr auto;align-items:end;gap:9px}.catalog-photo-label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:800}.catalog-photo-label input{padding:6px;font-size:12px}.catalog-item{min-height:72px}.catalog-item-main{display:flex;align-items:center;gap:12px;min-width:0}.medication-photo,.medication-photo-placeholder{flex:none;width:54px;height:54px;border:1px solid #b8d7e7;border-radius:11px;background:#eaf6fc;object-fit:contain}.medication-photo-placeholder{display:grid;place-items:center;color:#287ba9;font-size:24px}.catalog-item-copy{min-width:0}.catalog-item-copy strong,.catalog-item-copy small{overflow-wrap:anywhere}.catalog-item-actions{display:flex;align-items:center;gap:8px}
.catalog-photo-picker{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.catalog-photo-picker[hidden]{display:none}.catalog-photo-picker .button{margin:0;cursor:pointer;white-space:nowrap;text-align:center}.catalog-photo-picker span{min-width:0;color:var(--muted);font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-photo-picker span.selected{color:#155a82;font-weight:800}.catalog-item-actions .edit-link{margin-right:8px}
@media(max-width:800px){.catalog-form{grid-template-columns:1fr 1fr}.catalog-form .button{grid-column:span 2}}
@media(max-width:560px){.catalog-form{grid-template-columns:1fr}.catalog-form .button{grid-column:auto}.catalog-photo-picker{grid-template-columns:1fr}.catalog-photo-picker .button{width:100%}.catalog-photo-picker span{text-align:center}.medication-photo,.medication-photo-placeholder{width:48px;height:48px}}
@media(max-width:480px){.hero-side{flex-direction:column}.hero-logo{width:118px;height:118px;align-self:center}.privacy{width:100%}}
.requisition-report-panel{margin-top:18px}.requisition-report-item{margin:4px 0;line-height:1.45}.requisition-report-item>strong{display:inline-block;min-width:24px}.supply-priority{display:inline-block;margin-left:5px;padding:2px 7px;border-radius:999px;font-size:.72rem;font-weight:700;background:#dceee6;color:#176243}.supply-priority.priority{background:#fff1bd;color:#765600}.supply-priority.urgent{background:#ffe0df;color:#a12622}.requisition-actions{flex-wrap:wrap}.requisition-actions [data-action="mark-requisition-sent"]{margin-left:auto}@media(max-width:700px){.requisition-report-panel{padding:16px}.requisition-actions [data-action="mark-requisition-sent"]{width:100%;margin-left:0}.requisition-report-panel table{min-width:720px}}

/* Archivo histórico local */
.archive-dialog{width:min(1180px,calc(100% - 32px))}.archive-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid #acd3e7;border-radius:14px;background:#edf8fd}.archive-intro p{max-width:720px;margin:4px 0 0;color:var(--muted);line-height:1.45}.archive-files{display:grid;gap:8px;margin:12px 0}.archive-file{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f7fbfd}.archive-file>span{font-weight:900}.archive-file.valid>span{color:#17714b}.archive-file.invalid{border-color:#e3aaa4;background:#fff3f1}.archive-file.invalid>span{color:#a52f26}.archive-file strong,.archive-file small{display:block;overflow-wrap:anywhere}.archive-file small{margin-top:2px;color:var(--muted)}.archive-filters{display:grid;grid-template-columns:160px 160px minmax(220px,1fr) auto;gap:10px;align-items:end;margin:16px 0}.archive-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.archive-kpis article{padding:14px;border:1px solid #c7deea;border-radius:12px;background:linear-gradient(145deg,#fff,#edf7fc)}.archive-kpis span,.archive-kpis strong{display:block}.archive-kpis span{color:var(--muted);font-size:12px;font-weight:700}.archive-kpis strong{margin-top:4px;color:var(--navy);font-size:25px}.archive-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}.archive-grid>section,.archive-table{padding:14px;border:1px solid #c8dfea;border-radius:13px;background:#fbfdff}.archive-grid h3,.archive-table h3{margin:0}.archive-table table{min-width:880px}
@media(max-width:800px){.archive-intro{align-items:stretch;flex-direction:column}.archive-filters{grid-template-columns:1fr 1fr}.archive-filters label:nth-child(3){grid-column:span 2}.archive-kpis{grid-template-columns:1fr 1fr}.archive-grid{grid-template-columns:1fr}}
@media(max-width:520px){.archive-filters{grid-template-columns:1fr}.archive-filters label:nth-child(3){grid-column:auto}.archive-kpis{grid-template-columns:1fr 1fr}.archive-kpis article{padding:11px}.archive-kpis strong{font-size:21px}}

/* Reporte de atención a trabajadores */
.medical-care-dialog{width:min(1050px,calc(100% - 24px))}.vital-signs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px;border:1px solid #afd3e5;border-radius:13px;background:#f0f8fc}.vital-signs legend{padding:0 7px;color:#155f8b;font-size:12px;font-weight:800}.vital-signs label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:700}.treatment-check{display:flex!important;align-items:center;gap:9px;min-height:42px;padding:9px 11px;border:1px solid #bfd5e2;border-radius:9px;background:#f8fcfe}.treatment-check input{width:20px;min-height:20px}.medical-care-history{margin-top:24px;padding-top:20px;border-top:2px solid #d7e7ef}.medical-care-history h3{margin:2px 0}.medical-care-history table{min-width:780px}.care-diagnosis{max-width:300px;white-space:normal}
@media(max-width:750px){.vital-signs{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.vital-signs{grid-template-columns:1fr}}
.treatment-choice{display:flex;align-items:center;gap:16px;min-height:42px;margin:0;padding:7px 12px;border:1px solid #bfd5e2;border-radius:9px;background:#f8fcfe}.treatment-choice legend{padding:0 5px;color:var(--muted);font-size:12px;font-weight:800}.treatment-choice label{display:flex!important;align-items:center;gap:6px;color:var(--ink)!important;font-size:14px!important;cursor:pointer}.treatment-choice input[type="radio"]{width:20px;min-height:20px;accent-color:var(--blue)}
.medical-care-dialog .treatment-choice{justify-self:start;width:min(100%,330px);min-height:36px;padding:4px 10px}.medical-care-dialog .folio-field{justify-self:start;width:min(100%,180px)}.medical-care-dialog .signature-field{justify-self:start;width:min(100%,620px)}.medical-care-dialog .signature-field canvas{height:105px}
@media(max-width:700px){.medical-care-dialog .signature-field canvas{height:120px}}
.archive-kpis{grid-template-columns:repeat(5,1fr)}
@media(max-width:800px){.archive-kpis{grid-template-columns:1fr 1fr}}
