:root{--primary-color: #9c1027;--primary-dark: #7c0c1f;--background-color: #f3f4f6;--border-color: #d7dce5;--text-main: #1f2937;--text-soft: #5b6472;--panel-bg: rgba(255, 255, 255, .96)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--text-main);background:var(--background-color)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}img{max-width:100%}input,select{width:100%;padding:.72rem .85rem;border-radius:8px;border:1px solid #ced4da;background:#fff;color:var(--text-main)}input:focus,select:focus{outline:0;border-color:#c73f55;box-shadow:0 0 0 .2rem #9c102724}label{display:grid;gap:.45rem}label span{color:#555;font-size:.92rem;font-weight:500}.page-shell,.public-page,.internal-page,.simple-page{min-height:100vh;display:flex;flex-direction:column}.top-brand,.topbar,.app-footer{background:#fffffffa}.top-brand,.topbar{border-bottom:1px solid var(--border-color);box-shadow:0 2px 8px #0f172a0d}.top-brand-inner,.topbar-content,.footer-inner{max-width:1440px;width:100%;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand-group,.footer-mark,.user-box{display:flex;align-items:center;gap:14px}.brand-logo,.logo,.brand-group img{height:44px;width:auto}.brand-pill{border:1px solid var(--border-color);border-radius:16px;padding:10px 18px;background:#f8fafc;font-weight:600}.top-brand-nav,.topnav{display:flex;align-items:center;justify-content:center;gap:18px;flex:1}.top-brand-nav a,.topnav a,.nav-button{color:var(--text-soft);font-weight:600;padding:12px 6px;border:0;border-bottom:2px solid transparent;background:transparent}.top-brand-nav a.active,.topnav a.active,.nav-button.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.hero-section{flex:1;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:clamp(20px,3.2vh,40px) 5vw;background:linear-gradient(#0f172a47,#0f172a47),url(/img/portada.png) center center / cover no-repeat;min-height:0}.hero-copy{display:flex;align-items:center;gap:28px;color:#fff;max-width:760px}.hero-mark{width:clamp(130px,14vw,190px);height:clamp(130px,14vw,190px);border-radius:28px;background:#ffffff2e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;font-size:clamp(8.5rem,11.5vw,15.3rem);font-weight:900;line-height:1;-webkit-text-stroke:2px rgba(255,255,255,.98);text-shadow:0 0 1px rgba(255,255,255,.98),0 0 1px rgba(255,255,255,.98),0 0 1px rgba(255,255,255,.98);box-shadow:inset 0 0 0 1px #ffffff1f;flex-shrink:0}.hero-title{font-size:clamp(1.9rem,3vw,3.4rem);line-height:1.05;font-weight:700;margin:0 0 12px;text-shadow:0 3px 12px rgba(0,0,0,.35)}.hero-subtitle{font-size:1.2rem;margin:0;color:#ffffffeb}.login-card,.panel-card,.main-card{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:18px;box-shadow:0 12px 30px #0f172a14}.login-card{width:100%;max-width:380px;padding:24px 24px 20px}.login-title{font-size:1.9rem;font-weight:700;text-align:center;margin-bottom:6px}.login-subtitle{text-align:center;color:var(--text-soft);margin-bottom:20px}.input-wrap{position:relative}.field-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#8a94a6}.options-row,.top-actions,.action-bar,.inline-actions,.action-buttons,.topbar-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.options-row{justify-content:space-between;margin-top:4px;margin-bottom:16px}.link-action,.text-link{color:var(--primary-color);font-size:.92rem;font-weight:600}.link-action:hover,.text-link:hover{color:var(--primary-dark);text-decoration:underline}.login-btn,.primary-button,.btn-danger-solid{border:0;border-radius:999px;background:linear-gradient(135deg,var(--primary-color),#b11430);color:#fff;padding:12px 20px;font-weight:700}.secondary-button,.outline-button,.ghost-button{border-radius:999px;padding:.7rem 1.1rem;font-weight:600}.secondary-button,.ghost-button{border:1px solid var(--border-color);background:#fff;color:var(--text-main)}.outline-button{border:1px solid #dc3545;background:transparent;color:#dc3545}.outline-button:hover{background:#dc3545;color:#fff}.primary-button.small,.secondary-button.small,.ghost-button.small,.outline-button.small{padding:.5rem .85rem}.login-btn:hover,.primary-button:hover,.btn-danger-solid:hover{transform:translateY(-1px);box-shadow:0 10px 22px #9c102740}.footer-links{margin-top:18px;text-align:center}.footer-text{margin-top:18px;text-align:center;font-size:.8rem;color:#6b7280}.app-footer{border-top:1px solid var(--border-color);margin-top:auto}.footer-inner{color:#6b7280;font-size:.84rem}.footer-mark img{height:18px;width:auto}.notice,.alert-box{border-radius:12px;font-size:.92rem;padding:1rem}.notice.success,.alert-box.success{background:#d1e7dd;color:#0f5132}.notice.error,.alert-box.error{background:#f8d7da;color:#842029}.notice.warning,.alert-box.warning{background:#fff3cd;color:#664d03}.notice.info,.alert-box.info{background:#cff4fc;color:#055160}.page-content,.content,.public-content,.internal-content{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:24px}.public-container{max-width:1100px;margin:0 auto}.card-header-primary{background-color:var(--primary-color);color:#fff;border-radius:18px 18px 0 0;padding:1.5rem;text-align:center}.card-body-standard,.panel-header,.panel-body,.menu-header{padding:1.5rem 1.75rem}.panel-header,.menu-header{border-bottom:1px solid var(--border-color)}.company-logo{max-height:60px;margin-bottom:1rem}.section-header{color:var(--primary-color);font-size:1.2rem;margin-top:1rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #e9ecef}.form-grid-2,.filter-grid,.stats-grid,.menu-items{display:grid;gap:1rem}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-1{display:grid;gap:1rem}.readonly-field{background:#f2f4f6}.input-group{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:end}.vacation-summary{background-color:#ffe8b3;border-radius:8px;padding:1rem;margin-bottom:1.5rem;border-left:5px solid #ffb700}.vacation-summary.error{background-color:#f8d7da;border-left-color:#dc3545}.vacation-summary h4{color:#805b00;margin:0 0 .5rem;font-size:1.2rem}.vacation-summary p{color:#805b00;font-size:1.1rem;font-weight:500;margin:0}.vacation-days-count{font-size:1.4rem;font-weight:700;color:#ff8c00}.file-upload-container{border:2px dashed #ccc;padding:1.5rem;text-align:center;border-radius:6px;margin-bottom:1.2rem;transition:all .3s ease}.file-upload-container:hover{border-color:var(--primary-color);background-color:#f8f9fa}.form-footer{background-color:#f8f9fa;border-top:1px solid #e9ecef;padding:1.5rem;border-radius:0 0 18px 18px;text-align:center}.help-text{color:#6c757d;font-size:.85rem}.table-shell{overflow-x:auto;overflow-y:hidden}.table-shell table{width:100%;border-collapse:collapse}.table-shell th,.table-shell td{border-bottom:1px solid #e6e9ee;padding:.85rem .75rem;text-align:left;vertical-align:top}.table-shell th{background-color:#f8fafc}.table-shell td strong,.table-shell td span{display:block}.table-shell td span{color:#6b7280;font-size:.88rem;margin-top:.2rem}.actions-cell{display:flex;flex-wrap:nowrap;gap:.45rem;white-space:nowrap}.action-mini{border:1px solid #d0d7e2;background:#fff;color:var(--text-main);border-radius:8px;padding:.45rem .7rem;font-weight:600}.action-mini.danger{border-color:#dc3545;color:#dc3545}.action-mini.primary{border-color:var(--primary-color);color:var(--primary-color)}.compact-table{font-size:.84rem;min-width:1260px}.compact-table th{font-size:.8rem}.compact-table td{padding-top:.7rem;padding-bottom:.7rem;white-space:nowrap}.compact-table td strong{font-size:.82rem}.compact-table td span{font-size:.76rem}.compact-table .name-cell strong,.compact-table .name-cell span{display:inline}.compact-table .name-cell span:before{content:" | ";color:#9aa4b2}.nowrap-cell{white-space:nowrap}.icon-action{border:1px solid #d0d7e2;background:#fff;color:#516076;border-radius:10px;min-width:34px;height:32px;padding:0 .35rem;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;line-height:1}.icon-action:hover{background:#f8fafc}.icon-action.primary{border-color:var(--primary-color);color:var(--primary-color)}.icon-action.danger{border-color:#dc3545;color:#dc3545}.icon-action svg{width:15px;height:15px;display:block}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1rem;padding-top:1rem;border-top:1px solid #e6e9ee}.pagination-summary{color:var(--text-soft);font-size:.9rem}.pagination-summary strong{color:var(--text-main)}.pagination-actions,.pagination-group,.pagination-size{display:flex;align-items:center;gap:.5rem}.pagination-size span{color:var(--text-soft);font-size:.85rem;font-weight:600}.pagination-size select{width:auto;min-width:76px;padding:.5rem .7rem}.page-button{border:1px solid #d0d7e2;background:#fff;color:#425166;border-radius:10px;min-width:38px;height:36px;padding:0 .8rem;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:600}.page-button:hover:not(:disabled){background:#f8fafc}.page-button.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.page-button:disabled{opacity:.45;cursor:not-allowed}.page-ellipsis{color:#8b95a5;font-weight:700;padding:0 .15rem}.user-avatar{width:36px;height:36px;border-radius:50%;background:#e55a52;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600}.username{color:var(--text-soft);font-size:.92rem}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{background:#fff;border:1px solid var(--border-color);border-radius:16px;padding:1.1rem 1.2rem;box-shadow:0 8px 22px #0f172a0d}.stat-card span{color:var(--text-soft);font-size:.85rem}.stat-card strong{display:block;font-size:1.8rem;margin-top:.25rem;color:var(--primary-color)}.content-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:1rem}.content-grid.two-only{grid-template-columns:1.35fr .95fr}.inline-filters{display:grid;grid-template-columns:2fr repeat(3,1fr) auto auto;gap:.75rem;margin-bottom:1rem}.editor-card{display:grid;gap:.8rem}.role-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .6rem;background:#e9ecef;font-size:.82rem}.menu-items{padding:1.8rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.menu-card{background:#fff;border-radius:16px;border:1px solid var(--border-color);transition:all .3s ease;overflow:hidden}.menu-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0f172a14;border-color:var(--primary-color)}.menu-link{display:flex;flex-direction:column;padding:1.5rem;color:var(--text-main);height:100%}.menu-icon{font-size:2rem;margin-bottom:1rem;color:var(--primary-color)}.menu-item-title{font-size:1.2rem;font-weight:600;margin-bottom:.5rem}.menu-item-description{font-size:.9rem;color:#666;margin-bottom:1rem}.action-button{margin-top:auto;background-color:#e55a52;color:#fff;border:none;padding:.6rem 1rem;border-radius:12px;font-weight:500;text-align:center}.screen-center{min-height:100vh;display:grid;place-items:center}.simple-page-body{flex:1;display:grid;place-items:center;padding:2rem}.simple-card{width:min(520px,100%);padding:2rem}.stack-form{display:grid;gap:1rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1000}.modal-card{width:min(760px,100%);background:#fff;border:1px solid var(--border-color);border-radius:18px;box-shadow:0 18px 40px #0f172a38;overflow:hidden}.modal-header-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color)}.modal-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:1.25rem}.modal-form .inline-actions{grid-column:1 / -1}@media (max-width: 1200px){.content-grid,.content-grid.two-only,.stats-grid,.inline-filters,.form-grid-2{grid-template-columns:1fr}}@media (max-width: 991px){.hero-section{flex-direction:column;align-items:stretch;justify-content:center}.hero-copy{flex-direction:column;text-align:center;max-width:none}.hero-mark{width:150px;height:150px;font-size:11.9rem}.login-card{max-width:460px;margin:0 auto}}@media (max-width: 768px){.top-brand-inner,.topbar-content,.footer-inner,.options-row,.top-actions,.topbar-actions,.action-buttons,.inline-actions{flex-direction:column;align-items:flex-start}.top-brand-nav,.topnav{width:100%;flex-wrap:wrap;justify-content:flex-start}.page-content,.content,.public-content,.internal-content,.simple-page-body{padding:16px}.input-group,.modal-form{grid-template-columns:1fr}.pagination-bar,.pagination-actions{align-items:flex-start}}
