@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap');

:root{
  --ink:#0B1F3A;
  --ink-soft:#54677A;
  --surface:#F0F4F6;
  --panel:#FFFFFF;
  --line:#E4E9ED;
  --primary:#159C8C;
  --primary-dark:#0E7568;
  --amber:#C97A2B;
  --success:#3F8A5C;
  --danger:#B23A32;
  --font-display:'Space Grotesk','Segoe UI',sans-serif;
  --font-body:'IBM Plex Sans','Segoe UI',sans-serif;

  --r-lg:20px;
  --r-md:14px;
  --r-sm:10px;
  --r-pill:999px;

  --shadow-xs:0 1px 2px rgba(11,31,58,0.05);
  --shadow-sm:0 2px 8px rgba(11,31,58,0.06), 0 1px 2px rgba(11,31,58,0.04);
  --shadow-md:0 8px 24px rgba(11,31,58,0.09), 0 2px 6px rgba(11,31,58,0.05);
  --shadow-lg:0 20px 45px rgba(11,31,58,0.16), 0 6px 16px rgba(11,31,58,0.08);
  --shadow-primary:0 10px 24px rgba(21,156,140,0.28);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--surface);}
div,button,input,select,textarea,table,span,a,p,h1,h2,label{font-family:var(--font-body);}
button{cursor:pointer;}

.pcs-loading{padding:40px;color:var(--ink-soft);}

.pcs-task-alert{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  background:#FBEDD8;border:1px solid #EAC896;color:#7A4E15;
  padding:14px 16px;border-radius:var(--r-md);margin-bottom:18px;flex-wrap:wrap;
}
.pcs-task-alert-list{display:flex;flex-direction:column;gap:2px;margin-top:6px;font-size:12.5px;color:#8A5A1B;}

.pcs-topbar{
  display:flex;align-items:center;gap:14px;
  background:linear-gradient(180deg,#0D2444 0%,var(--ink) 100%);
  color:#fff;padding:13px 20px;border:none;
  box-shadow:0 6px 20px rgba(11,31,58,0.25);
  position:sticky;top:0;z-index:30;
}
.pcs-menu-btn{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:4px;border-radius:var(--r-sm);}
.pcs-menu-btn:hover{background:rgba(255,255,255,0.1);}
.pcs-brand-wrap{display:flex;align-items:center;gap:10px;}
.pcs-logo-box{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm);overflow:hidden;flex-shrink:0;}
.pcs-logo-box img{width:100%;height:100%;object-fit:contain;display:block;}
.pcs-logo-box.on-dark{background:#fff;padding:2px;box-shadow:var(--shadow-xs);}
.pcs-brand-tag{font-family:var(--font-body);font-weight:500;font-size:11px;color:var(--ink-soft);letter-spacing:0.3px;display:none;}
.pcs-topbar .pcs-brand-tag{color:rgba(255,255,255,0.6);}
@media(min-width:640px){.pcs-brand-tag{display:inline;}}
.pcs-hotel-select{margin-left:auto;background:rgba(255,255,255,0.1);color:#fff;border:1px solid rgba(255,255,255,0.18);padding:8px 12px;border-radius:var(--r-pill);font-size:13px;max-width:220px;transition:background 0.15s ease;}
.pcs-hotel-select:hover{background:rgba(255,255,255,0.16);}
.pcs-hotel-select option{color:#000;}

.pcs-body{display:flex;min-height:calc(100vh - 60px);background:var(--surface);}
.pcs-sidenav{width:196px;flex-shrink:0;background:var(--panel);border-right:none;box-shadow:2px 0 16px rgba(11,31,58,0.04);padding:18px 12px;display:flex;flex-direction:column;gap:3px;}
.pcs-navitem{display:flex;align-items:center;gap:10px;padding:11px 14px;border:none;background:none;border-radius:var(--r-sm);cursor:pointer;color:var(--ink-soft);font-size:14px;text-align:left;font-weight:500;width:100%;transition:background 0.15s ease, color 0.15s ease, transform 0.15s ease;}
.pcs-navitem:hover{background:var(--surface);transform:translateX(2px);}
.pcs-navitem.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-primary);}
.pcs-main{flex:1;min-width:0;padding:28px 32px 90px;}
.pcs-view{max-width:1020px;}
.pcs-bottomnav{display:none;}

.pcs-h1{font-family:var(--font-display);font-size:26px;margin:0 0 2px;color:var(--ink);font-weight:700;letter-spacing:-0.2px;}
.pcs-h2{font-family:var(--font-display);font-size:16.5px;margin:0 0 12px;color:var(--ink);font-weight:600;}
.pcs-sub{color:var(--ink-soft);margin:0 0 4px;font-size:14px;}
.pcs-view-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px;flex-wrap:wrap;}

.pcs-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:22px 0 28px;}
.pcs-kpi{background:var(--panel);border:none;box-shadow:var(--shadow-sm);border-left:4px solid var(--primary);padding:16px 18px;border-radius:var(--r-md);transition:box-shadow 0.2s ease, transform 0.2s ease;}
.pcs-kpi:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
.pcs-kpi.alert{border-left-color:var(--danger);}
.pcs-kpi.warn{border-left-color:var(--amber);}
.pcs-kpi.ok{border-left-color:var(--success);}
.pcs-kpi.score{background:linear-gradient(135deg,var(--ink) 0%,#123A63 100%);border-left-color:var(--primary);box-shadow:var(--shadow-md);}
.pcs-kpi.score .pcs-kpi-value,.pcs-kpi.score .pcs-kpi-label{color:#fff;}
.pcs-kpi-value{font-family:var(--font-display);font-size:25px;font-weight:700;color:var(--ink);}
.pcs-kpi-label{font-size:12px;color:var(--ink-soft);margin-top:2px;}

.pcs-panel{background:var(--panel);border:none;box-shadow:var(--shadow-sm);border-radius:var(--r-lg);padding:22px;margin-top:16px;}
.pcs-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.pcs-table th{text-align:left;padding:10px 12px;color:var(--ink-soft);font-weight:600;border-bottom:1px solid var(--line);font-size:12px;}
.pcs-table td{padding:11px 12px;border-bottom:1px solid var(--line);color:var(--ink);}
.pcs-table tbody tr{transition:background 0.15s ease;}
.pcs-table tbody tr:hover{background:var(--surface);}
.pcs-tag{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:4px 10px;border-radius:var(--r-pill);font-weight:600;white-space:nowrap;}
.pcs-tag.alert{background:#F4E0DE;color:var(--danger);}
.pcs-tag.warn{background:#F6E4D8;color:var(--amber);}
.pcs-tag.ok{background:#E1EFE6;color:var(--success);}
.pcs-tag.neutral{background:var(--surface);color:var(--ink-soft);}

.pcs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:16px;}
.pcs-card{position:relative;background:var(--panel);border:none;box-shadow:var(--shadow-sm);border-radius:var(--r-md);padding:18px;transition:box-shadow 0.2s ease, transform 0.2s ease;}
.pcs-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);}
.pcs-card-eyebrow{font-size:11px;color:var(--primary);font-weight:700;margin-bottom:4px;}
.pcs-card-title{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--ink);}
.pcs-card-sub{font-size:13px;color:var(--ink-soft);margin-top:4px;}
.pcs-card-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:8px;}
.pcs-card-foot{font-size:12px;color:var(--primary-dark);font-weight:600;}

.pcs-asset-tag{position:relative;text-align:left;background:var(--panel);border:none;box-shadow:var(--shadow-sm);border-radius:var(--r-md);padding:18px 18px 18px 26px;cursor:pointer;border-left:3px dashed #C7D0D6;width:100%;transition:box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;}
.pcs-asset-tag:hover{border-left-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-3px);}
.pcs-asset-holes{position:absolute;left:10px;top:0;bottom:0;display:flex;flex-direction:column;justify-content:center;gap:24px;}
.pcs-asset-holes span{width:6px;height:6px;border-radius:50%;background:var(--surface);border:1px solid var(--line);}
.pcs-asset-code{font-family:var(--font-display);font-size:11px;letter-spacing:0.3px;color:var(--primary-dark);font-weight:700;}
.pcs-asset-name{font-size:14.5px;font-weight:600;color:var(--ink);margin-top:3px;}
.pcs-asset-meta{font-size:12px;color:var(--ink-soft);margin-top:4px;}
.pcs-systype-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.pcs-systype-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--primary-dark);background:var(--surface);border:none;border-radius:var(--r-pill);padding:4px 9px;}
.pcs-asset-foot{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap;}
.pcs-asset-next{font-size:11px;color:var(--ink-soft);display:inline-flex;align-items:center;gap:3px;}
.pcs-asset-qr{position:absolute;right:16px;top:16px;color:var(--ink-soft);opacity:0.35;}
.pcs-asset-arrow{position:absolute;right:14px;bottom:16px;color:var(--ink-soft);transition:transform 0.2s ease;}
.pcs-asset-tag:hover .pcs-asset-arrow{transform:translateX(3px);color:var(--primary-dark);}

.pcs-form-card{background:var(--panel);border:none;box-shadow:var(--shadow-md);border-radius:var(--r-lg);padding:22px;margin-bottom:20px;}
.pcs-expediente-step{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--primary-dark);margin:14px 0 8px;padding-top:10px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;}
.pcs-expediente-step:first-child{margin-top:0;padding-top:0;border-top:none;color:var(--ink-soft);}
.pcs-step-num{background:var(--primary);color:#fff;width:18px;height:18px;border-radius:50%;font-size:11px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.pcs-expediente-step:first-child .pcs-step-num{background:var(--ink-soft);}
.pcs-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;flex:1;}
.pcs-field-row{display:flex;gap:14px;flex-wrap:wrap;}
.pcs-field label{font-size:12px;font-weight:600;color:var(--ink-soft);}
.pcs-field input,.pcs-field select,.pcs-field textarea{border:1.5px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font-size:14px;color:var(--ink);background:#fff;width:100%;transition:border-color 0.15s ease, box-shadow 0.15s ease;}
.pcs-field input:focus,.pcs-field select:focus,.pcs-field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(21,156,140,0.14);}
.pcs-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;}
.pcs-hint{font-size:12.5px;color:var(--amber);margin-top:6px;}
.pcs-checkbox{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-soft);margin-bottom:8px;}

.pcs-btn{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-pill);padding:10px 16px;font-size:13.5px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all 0.15s ease;}
.pcs-btn.primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-primary);}
.pcs-btn.primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 12px 26px rgba(21,156,140,0.34);}
.pcs-btn.primary:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none;}
.pcs-btn.ghost{background:var(--panel);color:var(--ink-soft);border-color:var(--line);}
.pcs-btn.ghost:hover{background:var(--surface);border-color:#C7D0D6;}
.pcs-icon-btn{position:absolute;right:10px;top:10px;background:none;border:none;color:var(--ink-soft);opacity:0;cursor:pointer;padding:6px;border-radius:var(--r-sm);transition:background 0.15s ease, color 0.15s ease;}
.pcs-icon-btn:hover{background:var(--surface);}
.pcs-card:hover .pcs-icon-btn{opacity:1;}
.pcs-icon-btn.danger:hover{color:var(--danger);}
.pcs-icon-btn.ghost{position:static;opacity:1;}

.pcs-search{display:flex;align-items:center;gap:8px;background:var(--panel);border:none;box-shadow:var(--shadow-xs);border-radius:var(--r-pill);padding:10px 16px;margin-bottom:6px;color:var(--ink-soft);max-width:440px;}
.pcs-search input{border:none;outline:none;font-size:14px;flex:1;background:transparent;color:var(--ink);}

.pcs-chip-row{display:flex;flex-wrap:wrap;gap:7px;}
.pcs-chip{border:1.5px solid var(--line);background:#fff;border-radius:var(--r-pill);padding:6px 13px;font-size:12px;cursor:pointer;color:var(--ink-soft);transition:all 0.15s ease;}
.pcs-chip:hover{border-color:var(--primary);}
.pcs-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(21,156,140,0.25);}
.pcs-chip.static{cursor:default;background:var(--surface);color:var(--ink-soft);border-color:transparent;}

.pcs-empty{padding:34px;text-align:center;color:var(--ink-soft);border:1.5px dashed var(--line);border-radius:var(--r-md);font-size:14px;background:var(--panel);}

.pcs-evidence-drop{
  display:flex;align-items:center;gap:8px;border:1.5px dashed #B9DAD4;border-radius:var(--r-sm);
  padding:13px 16px;cursor:pointer;color:var(--primary-dark);font-size:13.5px;font-weight:600;background:#F7FBFA;transition:all 0.15s ease;
}
.pcs-evidence-drop:hover{border-color:var(--primary);box-shadow:var(--shadow-xs);}
.pcs-evidence-done{display:flex;align-items:center;gap:8px;color:var(--success);font-size:13.5px;background:#E1EFE6;padding:10px 14px;border-radius:var(--r-sm);}
.pcs-evidence-done a{color:var(--success);font-weight:600;text-decoration:underline;}
.pcs-evidence-done button{margin-left:auto;background:none;border:none;color:var(--ink-soft);cursor:pointer;display:inline-flex;}

.pcs-card-actions{position:absolute;right:10px;top:10px;display:flex;gap:2px;opacity:0;transition:opacity 0.15s ease;}
.pcs-card:hover .pcs-card-actions{opacity:1;}
.pcs-card-actions .pcs-icon-btn{position:static;opacity:1;}
.pcs-asset-edit{position:absolute;right:38px;top:14px;background:none;border:none;color:var(--ink-soft);opacity:0;cursor:pointer;padding:5px;border-radius:var(--r-sm);z-index:2;transition:all 0.15s ease;}
.pcs-asset-tag:hover .pcs-asset-edit{opacity:1;}
.pcs-asset-edit:hover{color:var(--primary-dark);background:var(--surface);}

.pcs-back{background:none;border:none;color:var(--primary-dark);display:flex;align-items:center;gap:4px;cursor:pointer;font-size:13.5px;font-weight:600;padding:0;margin-bottom:14px;}
.pcs-detail-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px;}
.pcs-detail-eyebrow{font-family:var(--font-display);font-size:12px;color:var(--primary);font-weight:700;}
.pcs-qr-block{display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border:none;box-shadow:var(--shadow-sm);border-radius:var(--r-md);padding:14px;}
.pcs-qr-caption{font-size:11px;color:var(--ink-soft);text-align:center;}

.pcs-timeline{display:flex;flex-direction:column;gap:11px;}
.pcs-timeline-item{position:relative;display:flex;gap:16px;padding:14px 34px 14px 16px;border:none;box-shadow:var(--shadow-xs);border-left:3px solid var(--success);border-radius:var(--r-sm);background:var(--panel);transition:box-shadow 0.15s ease;}
.pcs-timeline-item:hover{box-shadow:var(--shadow-sm);}
.pcs-timeline-item.alert{border-left-color:var(--amber);}
.pcs-timeline-date{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink);min-width:88px;}
.pcs-timeline-body{flex:1;font-size:13.5px;color:var(--ink);}
.pcs-timeline-row{display:flex;align-items:center;gap:6px;color:var(--ink-soft);margin-bottom:3px;flex-wrap:wrap;}
.pcs-timeline-row .link,a.link{color:var(--primary-dark);cursor:pointer;text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.pcs-timeline-notes{margin-top:4px;background:var(--surface);padding:9px 12px;border-radius:var(--r-sm);font-size:13px;}
.pcs-dim{color:var(--ink-soft);font-weight:400;}

.pcs-danger-link{background:none;border:none;color:var(--danger);font-size:13px;margin-top:18px;cursor:pointer;padding:0;text-decoration:underline;}

.pcs-coming-soon{background:var(--panel);border:1.5px dashed var(--line);box-shadow:var(--shadow-xs);border-radius:var(--r-lg);padding:44px 32px;text-align:center;color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;gap:10px;max-width:480px;margin:20px auto;}
.pcs-coming-soon svg{color:var(--primary);}
.pcs-coming-soon p{font-size:14px;max-width:360px;}

/* usuario / logout en topbar */
.pcs-user-chip{display:none;flex-direction:column;align-items:flex-end;line-height:1.2;margin-left:14px;}
.pcs-user-name{font-size:12.5px;font-weight:600;color:#fff;}
.pcs-user-role{font-size:10.5px;color:rgba(255,255,255,0.6);}
@media(min-width:640px){.pcs-user-chip{display:flex;}}
.pcs-logout-btn{background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.18);color:#fff;border-radius:var(--r-sm);padding:8px 9px;margin-left:8px;display:flex;align-items:center;transition:background 0.15s ease;}
.pcs-logout-btn:hover{background:rgba(255,255,255,0.22);}

/* login */
.pcs-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%, #E8F3F1 0%, var(--surface) 55%);padding:20px;}
.pcs-login-card{background:var(--panel);border:none;border-radius:var(--r-lg);padding:36px 30px;max-width:370px;width:100%;box-shadow:var(--shadow-lg);}
.pcs-login-hint{font-size:12px;color:var(--ink-soft);margin-top:18px;text-align:center;line-height:1.5;}

/* qr download link */
.pcs-qr-download{font-size:11.5px;color:var(--primary-dark);display:inline-flex;align-items:center;gap:4px;text-decoration:none;font-weight:600;margin-top:2px;}

/* página pública del QR */
.pcs-public-wrap{min-height:100vh;background:radial-gradient(circle at 30% 0%, #E8F3F1 0%, var(--surface) 45%);padding:26px 16px 60px;display:flex;flex-direction:column;align-items:center;}
.pcs-public-card{background:var(--panel);border:none;box-shadow:var(--shadow-md);border-radius:var(--r-lg);padding:28px 26px;max-width:480px;width:100%;}
.pcs-public-light{margin:18px 0;}
.pcs-public-facts{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
.pcs-public-fact{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink);}
.pcs-public-login-hint{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-soft);background:var(--surface);padding:11px 14px;border-radius:var(--r-sm);margin-top:18px;}
.pcs-public-login-hint a{color:var(--primary-dark);font-weight:600;text-decoration:none;}
.pcs-public-back{display:flex;align-items:center;gap:6px;color:var(--primary-dark);font-size:13px;font-weight:600;text-decoration:none;margin-top:16px;}

/* cronograma / calendario */
.pcs-cal-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;margin-top:16px;align-items:start;}
.pcs-cal-panel{padding:18px;}
.pcs-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.pcs-cal-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);text-transform:capitalize;}
.pcs-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;}
.pcs-cal-weekday{text-align:center;font-size:11px;color:var(--ink-soft);font-weight:600;padding:4px 0;}
.pcs-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.pcs-cal-cell{aspect-ratio:1;background:var(--surface);border:1px solid transparent;border-radius:var(--r-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;position:relative;padding:2px;transition:all 0.15s ease;}
.pcs-cal-cell.empty{background:transparent;cursor:default;}
.pcs-cal-cell:not(.empty):hover{border-color:var(--primary);transform:scale(1.05);}
.pcs-cal-cell.today .pcs-cal-daynum{color:var(--primary-dark);font-weight:700;}
.pcs-cal-cell.selected{background:var(--ink);box-shadow:var(--shadow-sm);}
.pcs-cal-cell.selected .pcs-cal-daynum{color:#fff;}
.pcs-cal-daynum{font-size:12.5px;color:var(--ink);}
.pcs-cal-dots{display:flex;gap:2px;}
.pcs-cal-dot{width:5px;height:5px;border-radius:50%;background:var(--ink-soft);}
.pcs-cal-dot.ok{background:var(--success);}
.pcs-cal-dot.warn{background:var(--amber);}
.pcs-cal-dot.alert{background:var(--danger);}
.pcs-cal-dot.neutral{background:var(--ink-soft);}

.pcs-cal-day{padding:18px;min-height:200px;}
.pcs-task-list{display:flex;flex-direction:column;gap:11px;}
.pcs-task-item{border:none;box-shadow:var(--shadow-xs);border-radius:var(--r-sm);padding:13px 15px;transition:box-shadow 0.15s ease;}
.pcs-task-item:hover{box-shadow:var(--shadow-sm);}
.pcs-task-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.pcs-task-time{font-size:11.5px;color:var(--ink-soft);margin-right:8px;display:inline-flex;align-items:center;gap:3px;}
.pcs-task-title{font-family:var(--font-display);font-weight:600;font-size:14px;color:var(--ink);}
.pcs-task-sub{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.pcs-task-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid var(--line);}
.pcs-task-actions select{border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 9px;font-size:12.5px;color:var(--ink);background:#fff;}

/* reportes */
.pcs-report-header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid var(--ink);padding-bottom:10px;margin:18px 0 6px;}
.pcs-report-meta{text-align:right;font-size:12.5px;color:var(--ink-soft);display:flex;flex-direction:column;gap:2px;}
.pcs-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px;}
.pcs-barlist{display:flex;flex-direction:column;gap:10px;}
.pcs-barlist-row{display:grid;grid-template-columns:130px 1fr 70px;align-items:center;gap:10px;}
.pcs-barlist-label{font-size:12.5px;color:var(--ink-soft);}
.pcs-barlist-track{background:var(--surface);border-radius:var(--r-pill);height:8px;overflow:hidden;}
.pcs-barlist-fill{background:linear-gradient(90deg,var(--primary),var(--primary-dark));height:100%;border-radius:var(--r-pill);}
.pcs-barlist-value{font-size:12px;color:var(--ink);text-align:right;}
.pcs-report-footer{text-align:center;font-size:11.5px;color:var(--ink-soft);margin-top:20px;}

@media print{
  .no-print, .pcs-topbar, .pcs-sidenav, .pcs-bottomnav{display:none !important;}
  .pcs-main{padding:0 !important;}
  .pcs-body{min-height:0;}
  .pcs-panel, .pcs-kpi{border:1px solid #ccc !important;box-shadow:none !important;break-inside:avoid;}
  .pcs-report-page{max-width:100% !important;}
  body{background:#fff !important;}
}

/* asistencia */
.pcs-attendance-table{border-collapse:collapse;font-size:12px;}
.pcs-attendance-table th, .pcs-attendance-table td{border:1px solid var(--line);padding:0;text-align:center;}
.pcs-attendance-table th{background:var(--surface);color:var(--ink-soft);font-weight:600;padding:6px 4px;font-size:11px;min-width:26px;}
.pcs-att-sticky{position:sticky;left:0;background:var(--panel);z-index:1;text-align:left !important;padding:8px 10px !important;min-width:160px;}
.pcs-att-name{font-weight:600;color:var(--ink);white-space:nowrap;}
.pcs-att-cell{width:26px;height:26px;border:none;background:transparent;cursor:pointer;font-weight:700;font-size:11px;color:var(--ink);transition:transform 0.1s ease;}
.pcs-att-cell:hover{transform:scale(1.15);}
.pcs-att-cell.ok{background:#E1EFE6;color:var(--success);}
.pcs-att-cell.warn{background:#FBEDD8;color:var(--amber);}
.pcs-att-cell.alert{background:#F4E0DE;color:var(--danger);}
.pcs-att-cell.neutral{background:var(--surface);color:var(--ink-soft);}
.pcs-att-cell.holiday{background:#EDE7F6;color:#6B4FA0;}
.pcs-att-rest-head{background:#E8EAEC !important;}
.pcs-att-holiday-head{background:#DED0F0 !important;color:#6B4FA0 !important;}
.pcs-report-title-inline{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--ink);}

/* sticker QR imprimible */
.pcs-sticker-print-target{display:flex;flex-direction:column;align-items:center;gap:10px;}
.pcs-sticker{
  background:#fff;border:2px dashed #C7D0D6;border-radius:var(--r-md);
  padding:18px 20px 16px;width:220px;display:flex;flex-direction:column;align-items:center;
  text-align:center;position:relative;box-shadow:var(--shadow-md);
}
.pcs-sticker::before, .pcs-sticker::after{
  content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--surface);
  border:1px solid var(--line);top:50%;transform:translateY(-50%);
}
.pcs-sticker::before{left:-6px;}
.pcs-sticker::after{right:-6px;}
.pcs-sticker-logo{width:44px;height:44px;object-fit:contain;margin-bottom:8px;}
.pcs-sticker-qr{width:150px;height:150px;margin-bottom:10px;}
.pcs-sticker-code{
  font-family:'Courier New', monospace;font-weight:800;font-size:15px;letter-spacing:0.5px;
  color:var(--primary-dark);background:#E4F3F1;padding:3px 10px;border-radius:var(--r-sm);margin-bottom:8px;
}
.pcs-sticker-name{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--ink);line-height:1.25;}
.pcs-sticker-location{font-size:12px;color:var(--ink-soft);margin-top:3px;}
.pcs-sticker-footer{font-size:9.5px;color:#B7BEC5;margin-top:10px;letter-spacing:0.2px;}
.pcs-sticker-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}

@media print{
  body.pcs-print-sticker-only .pcs-view > *:not(.pcs-detail-head){display:none !important;}
  body.pcs-print-sticker-only .pcs-detail-head > *:not(.pcs-sticker-print-target){display:none !important;}
  body.pcs-print-sticker-only .pcs-detail-head{display:block !important;}
  body.pcs-print-sticker-only .pcs-sticker-actions{display:none !important;}
  body.pcs-print-sticker-only .pcs-sticker{margin:60px auto 0;box-shadow:none;border-style:solid;}
}

@media print{
  .pcs-attendance-table{display:none;}
}

@media (max-width: 860px){
  .pcs-cal-layout{grid-template-columns:1fr;}
  .pcs-report-grid{grid-template-columns:1fr;}
  .pcs-barlist-row{grid-template-columns:90px 1fr 50px;}
  .pcs-menu-btn{display:block;}
  .pcs-sidenav{display:none;}
  .pcs-sidenav.open{display:flex;position:fixed;top:60px;left:0;bottom:0;z-index:25;box-shadow:var(--shadow-lg);}
  .pcs-bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--panel);box-shadow:0 -4px 16px rgba(11,31,58,0.08);z-index:20;}
  .pcs-bottomitem{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 2px;background:none;border:none;color:var(--ink-soft);font-size:10.5px;}
  .pcs-bottomitem.active{color:var(--primary);}
  .pcs-main{padding:18px 16px 90px;}
  .pcs-detail-head{flex-direction:column-reverse;}
  .pcs-hotel-select{max-width:140px;font-size:12px;}
}
