@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap";:root{--bg-primary:#faf7f2;--bg-secondary:#f3ece1;--bg-card:#fff;--border-color:#e6ddd0;--text-primary:#1f2d24;--text-secondary:#5c6e63;--text-light:#90a397;--color-primary:#2c5e43;--color-primary-hover:#1e442f;--color-primary-light:#e8f2ec;--color-accent:#c5704b;--color-accent-hover:#aa5b38;--color-accent-light:#f9efea;--color-success:#3e8e62;--color-success-light:#ebf7ee;--color-warning:#d98c2e;--color-warning-light:#fff6eb;--color-error:#c94c4c;--color-error-light:#fdf1f1;--shadow-sm:0 2px 8px #2c5e430a;--shadow-md:0 8px 24px -4px #2c5e4314;--shadow-lg:0 16px 40px -8px #2c5e431f;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:9999px;--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:"Playfair Display", Georgia, serif}*{box-sizing:border-box;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);letter-spacing:-.02em;font-weight:600}.serif-title{font-family:var(--font-serif);font-style:italic;font-weight:600}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-hover)}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-header{background-color:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:100;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex;position:sticky;top:0}.header-brand{align-items:center;gap:.75rem;display:flex}.header-logo-icon{background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;font-size:1.5rem;font-weight:700;display:flex}.header-title-group h1{color:var(--color-primary);font-size:1.25rem;font-weight:700}.header-title-group p{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}.role-switcher-container{background-color:var(--bg-secondary);border-radius:var(--radius-full);border:1px solid var(--border-color);gap:.25rem;padding:.25rem;display:flex}.role-btn{border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.role-btn.active{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.main-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem}.dashboard-grid{grid-template-columns:280px 1fr;gap:2rem;display:grid}@media (width<=992px){.dashboard-grid{grid-template-columns:1fr}}.sidebar{flex-direction:column;gap:1.5rem;display:flex}.sidebar-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem}.sidebar-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-bottom:1rem;padding-bottom:.5rem;font-size:.875rem;font-weight:600}.sidebar-menu{flex-direction:column;gap:.5rem;list-style:none;display:flex}.sidebar-link{border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;transition:all .2s;display:flex}.sidebar-link:hover{background-color:var(--bg-primary);color:var(--color-primary)}.sidebar-link.active{background-color:var(--color-primary-light);color:var(--color-primary)}.panel-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:2rem;padding:2rem;position:relative;overflow:hidden}.panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.panel-title-group h2{color:var(--color-primary);font-size:1.5rem}.panel-title-group p{color:var(--text-secondary);font-size:.875rem}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.btn-accent{background-color:var(--color-accent);color:#fff}.btn-accent:hover{background-color:var(--color-accent-hover);box-shadow:var(--shadow-sm)}.btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{background-color:var(--border-color)}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover{background-color:#b23d3d}.btn-icon-only{border-radius:var(--radius-md);width:38px;height:38px;padding:0}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-primary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-control{border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);background-color:#fff;outline:none;padding:.75rem 1rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2c5e431a}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=576px){.form-row{grid-template-columns:1fr}}.table-container{border:1px solid var(--border-color);border-radius:var(--radius-md);margin-top:1rem;overflow-x:auto}.vac-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.vac-table th{background-color:var(--bg-secondary);color:var(--text-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.05em;padding:1rem 1.25rem;font-size:.75rem;font-weight:600}.vac-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);background-color:var(--bg-card);padding:1rem 1.25rem}.vac-table tr:last-child td{border-bottom:none}.vac-table tr:hover td{background-color:var(--bg-primary)}.gender-badge{border-radius:var(--radius-full);align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-flex}.gender-badge.male{color:#1a60a8;background-color:#e6f0fa}.gender-badge.female{color:#b52f6e;background-color:#faf0f5}.rules-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.rule-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-primary);flex-direction:column;justify-content:space-between;padding:1.25rem;display:flex}.rule-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;display:flex}.rule-card-title{color:var(--color-primary);font-size:.95rem;font-weight:600}.rule-badge{background-color:var(--color-accent-light);color:var(--color-accent);border-radius:var(--radius-sm);padding:.25rem .5rem;font-size:.75rem;font-weight:600}.sub-slot-flex{gap:.5rem;width:100%;height:100%;display:flex}.sub-slot-block{border-radius:var(--radius-sm);text-align:center;word-break:break-word;flex:1;justify-content:center;align-items:center;min-height:48px;padding:.5rem;font-size:.75rem;font-weight:500;transition:all .2s;display:flex}.sub-slot-block.empty{border:1.5px dashed var(--border-color);color:var(--text-light);background-color:#0000!important}.slot-1-tint{color:#2c5e43;background-color:#eaf4ee;border:1px solid #d2e7da}.slot-2-tint{color:#c5704b;background-color:#fdf4ef;border:1px solid #f3ddd2}.slot-3-tint{color:#2c5270;background-color:#eef4fa;border:1px solid #d6e4f2}.date-selector-bar{background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);align-items:center;gap:1rem;margin-bottom:1.5rem;padding:.75rem 1.25rem;display:flex}.scheduler-matrix-container{border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);margin-top:1.5rem;overflow-x:auto}.scheduler-matrix{border-collapse:collapse;width:100%;min-width:800px}.scheduler-matrix th{color:var(--text-primary);text-align:center;border:1px solid var(--border-color);padding:1.25rem 1rem;font-size:.875rem;font-weight:600}.scheduler-matrix th.slot-1-header{color:#2c5e43;background-color:#eaf4ee}.scheduler-matrix th.slot-2-header{color:#c5704b;background-color:#fdf4ef}.scheduler-matrix th.slot-3-header{color:#2c5270;background-color:#eef4fa}.scheduler-matrix th.sticky-col,.scheduler-matrix td.sticky-col{background-color:var(--bg-secondary);z-index:10;border-right:2px solid var(--border-color);text-align:left;width:200px;padding:1rem;font-weight:600;position:sticky;left:0}.scheduler-matrix td{border:1px solid var(--border-color);vertical-align:middle;text-align:center;background-color:var(--bg-card);height:90px;padding:.75rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#1c2a2273;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--bg-card);border-radius:var(--radius-lg);width:90%;max-width:650px;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);animation:.3s cubic-bezier(.16,1,.3,1) slideUp;overflow:hidden}.modal-header{background-color:var(--color-primary-light);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h3{color:var(--color-primary);font-size:1.25rem;font-family:var(--font-serif);font-style:italic}.close-modal-btn{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:1.25rem}.modal-body{max-height:70vh;padding:1.5rem;overflow-y:auto}.modal-footer{background-color:var(--bg-primary);border-top:1px solid var(--border-color);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.alert-box{border-radius:var(--radius-sm);margin-bottom:1rem;padding:.75rem 1rem;font-size:.8rem;line-height:1.4}.alert-error{background-color:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error)}.alert-warning{background-color:var(--color-warning-light);border:1px solid var(--color-warning);color:var(--color-warning)}.alert-success{background-color:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success)}.status-pill{border-radius:var(--radius-sm);padding:.25rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.status-pill.active{background-color:var(--color-success-light);color:var(--color-success)}.status-pill.upcoming{background-color:var(--color-warning-light);color:var(--color-warning)}.status-pill.completed{background-color:var(--bg-secondary);color:var(--text-secondary)}.agenda-empty-state{text-align:center;background-color:var(--bg-card);border:1.5px dashed var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);flex-direction:column;align-items:center;gap:1rem;padding:4rem 2rem;display:flex}.empty-state-icon{color:var(--text-light);font-size:2.5rem}@media print{.no-print,.app-header,.sidebar,.date-selector-bar,.portal-filter-container,.role-switcher-container,button,.btn{display:none!important}body,html,#root,.app-container,.main-content{color:#000!important;background:0 0!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.dashboard-grid{display:block!important}.panel-card{box-shadow:none!important;background:0 0!important;border:none!important;width:100%!important;margin:0!important;padding:0!important}select{appearance:none;font-weight:700;color:#000!important;background:0 0!important;border:none!important;padding:0!important}.vac-table{border:1px solid #000!important}.vac-table th,.vac-table td{color:#000!important;background:0 0!important;border:1px solid #000!important;padding:8px 12px!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
