:root{color:#17202a;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}.app-layout{background:#f4f7fb;grid-template-columns:260px minmax(0,1fr);height:100vh;transition:background .16s,color .16s;display:grid;overflow:hidden}.app-layout.dark-mode{color:#e8eef3;background:#101820}.sidebar{color:#e7f0f6;scrollbar-width:none;background:#0f1f2a;border-right:1px solid #1f3647;flex-direction:column;gap:28px;height:100vh;padding:22px 16px;display:flex;overflow-y:auto}.sidebar::-webkit-scrollbar{display:none}.brand-block{flex-direction:row;align-items:center;gap:10px;min-width:0;display:flex}.brand-logo-wrap{background:#fff;border-radius:10px;flex-shrink:0;width:40px;height:40px;position:relative;overflow:hidden}.brand-logo{object-fit:contain;transform-origin:50%;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.brand-text{flex-direction:column;gap:0;min-width:0;display:flex}.brand-text-top{color:#91a8b8;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:600;line-height:1.2}.brand-text-main{color:#fff;letter-spacing:.02em;white-space:nowrap;font-size:22px;font-weight:800;line-height:1}.side-nav{gap:6px;display:grid}.nav-item{color:#adc0cd;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;height:44px;padding:0 12px;transition:background .16s,color .16s;display:flex}.nav-item:hover,.nav-item.active{color:#fff;background:#173446}.nav-item.active{box-shadow:inset 3px 0 #2aa7a1}.nav-item span{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;font-weight:700;overflow:hidden}.nav-chevron{opacity:.6;flex-shrink:0;transition:transform .2s}.nav-chevron.open{transform:rotate(180deg)}.nav-sub{gap:2px;margin-top:2px;padding-left:14px;display:grid}.nav-sub-item{color:#7a9ab0;cursor:pointer;text-align:left;background:0 0;border:0;border-left:2px solid #243e52;border-radius:0 6px 6px 0;align-items:center;width:100%;height:34px;padding:0 12px;font-size:13px;font-weight:600;transition:background .16s,color .16s,border-color .16s;display:flex}.nav-sub-item:hover{color:#fff;background:#173446}.nav-sub-item.active{color:#fff;background:#173446;border-left-color:#2aa7a1}.app-shell{box-sizing:border-box;width:min(1280px,100%);height:100vh;padding:16px 20px 40px;overflow-y:auto}.global-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#f4f7fbeb;border-bottom:1px solid #dbe5ee;justify-content:space-between;align-items:center;gap:16px;min-height:44px;margin:0 0 16px;padding:4px 0 10px;display:flex;position:sticky;top:0}.shift-info{gap:2px;min-width:0;display:grid}.shift-info strong{color:#17202a;font-size:14px;line-height:1.1}.shift-info span{color:#61798d;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.header-actions{align-items:center;gap:10px;display:flex}.weather-badge{color:#34495a;background:#fff;border:1px solid #d4e1ea;border-radius:999px;align-items:center;gap:9px;min-width:0;max-width:520px;padding:6px 12px;display:flex}.weather-badge>svg{color:#2f7fbd;flex:none}.weather-badge div{gap:1px;min-width:0;display:grid}.weather-badge strong,.weather-badge span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.weather-badge strong{color:#17202a;font-size:12px;line-height:1.1}.weather-badge span{color:#61798d;font-size:11px;font-weight:700}.weather-badge.alto{background:#ffe3df;border-color:#ffb5ac}.weather-badge.alto>svg,.weather-badge.alto strong{color:#b83227}.weather-badge.moderado{background:#fff0cc;border-color:#f1cb72}.weather-badge.moderado>svg,.weather-badge.moderado strong{color:#8a5b00}.weather-badge.bajo{background:#e5f2ff;border-color:#afd2ef}.weather-badge.bajo>svg,.weather-badge.bajo strong{color:#256fa7}.weather-badge.normal{background:#e6f6ee;border-color:#a7dfbf}.weather-badge.normal>svg,.weather-badge.normal strong{color:#1d7a46}.theme-toggle{color:#34495a;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #c9d7e3;border-radius:999px;align-items:center;gap:7px;height:34px;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.icon-btn{color:#34495a;cursor:pointer;background:#fff;border:1px solid #c9d7e3;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.icon-btn:hover{color:#2aa7a1;background:#eef7f7;border-color:#2aa7a1}.eyebrow{color:#527085;letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:700}h1,h2,p{margin:0}h1{font-size:clamp(28px,4vw,44px);line-height:1}h2{font-size:18px}.status-pill{color:#527085;white-space:nowrap;border:1px solid #c9d7e3;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700}.dark-mode .global-header{background:#101820eb;border-bottom-color:#243544}.dark-mode .shift-info strong,.dark-mode .summary-cell strong,.dark-mode .donut-center strong,.dark-mode h2,.dark-mode .site-row strong{color:#e8eef3}.dark-mode .shift-info span,.dark-mode .summary-cell span,.dark-mode .donut-center span,.dark-mode .chart-legend span,.dark-mode .panel-header span,.dark-mode .site-row span,.dark-mode th{color:#9fb0bd}.dark-mode .theme-toggle,.dark-mode .icon-btn,.dark-mode .weather-badge,.dark-mode .panel,.dark-mode .summary-head{background:#172331;border-color:#283848}.dark-mode .theme-toggle,.dark-mode .icon-btn,.dark-mode .weather-badge strong{color:#e8eef3}.dark-mode .weather-badge span{color:#9fb0bd}.dark-mode .summary-cell.cpe{border-left-color:#2e4a6a!important}.dark-mode .summary-cell+.summary-cell,.dark-mode .panel-header,.dark-mode th,.dark-mode td,.dark-mode .site-row{border-color:#263746}.dark-mode .summary-cell.site-filter{background:#14323a}.dark-mode .site-select{color:#8ee1db;background:#101820;border-color:#31505b}.dark-mode .summary-cell.site-filter:after{border-top-color:#8ee1db}.dark-mode .summary-icon{color:#8ccbdc;background:#213444}.dark-mode .bar-chart-box text{fill:#a9b8c4}.status-pill.ready{color:#1d7a46;background:#e6f6ee;border-color:#a7dfbf}.status-pill.error{color:#a83225;background:#ffe9e6;border-color:#ffb3a8}.notice{color:#982719;background:#fff2ef;border:1px solid #ffc1b8;border-radius:8px;align-items:center;gap:10px;margin-bottom:18px;padding:12px 14px;display:flex}.summary-head{background:#fff;border:1px solid #dbe5ee;border-radius:8px;grid-template-columns:1.15fr repeat(5,1fr);margin-bottom:18px;display:grid;overflow:hidden;box-shadow:0 10px 30px #1c2d440f}.panel{background:#fff;border:1px solid #dbe5ee;border-radius:8px;box-shadow:0 10px 30px #1c2d440f}.summary-cell{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:112px;padding:18px 12px;display:flex;position:relative}.summary-cell+.summary-cell{border-left:1px solid #e7eef5}.summary-cell strong{color:#17202a;font-size:32px;font-weight:850;line-height:1.1}.summary-cell span{color:#61798d;font-size:14px;font-weight:750}.summary-icon{color:#246b82;background:#eef5f8;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:2px;display:flex}.summary-cell.site-filter{text-align:left;background:#eef7f7;align-items:flex-start;padding-left:22px}.site-select{appearance:none;color:#0f5960;cursor:pointer;background:#fff;border:1px solid #c4dce0;border-radius:8px;outline:none;max-width:100%;min-height:44px;padding:6px 34px 6px 10px;font-size:24px;font-weight:850;line-height:1.1}.summary-cell.site-filter:after{content:"";pointer-events:none;border-top:6px solid #0f5960;border-left:5px solid #0000;border-right:5px solid #0000;position:absolute;top:43px;left:118px}.site-select:focus{border-color:#2aa7a1;box-shadow:0 0 0 3px #2aa7a126}.summary-cell.site-filter strong{color:#0f5960;font-size:25px}.summary-cell.critical strong{color:#b83227}.summary-cell.critical .summary-icon{color:#b83227;background:#ffe3df}.summary-cell.major strong{color:#966300}.summary-cell.major .summary-icon{color:#966300;background:#fff0cc}.summary-cell.minor strong{color:#256fa7}.summary-cell.minor .summary-icon{color:#256fa7;background:#e5f2ff}.summary-cell.cpe{border-left:2px solid #b0c4de!important}.summary-cell.cpe strong{color:#3f68c9}.summary-cell.cpe .summary-icon{color:#3f68c9;background:#e8effe}.site-row span{color:#61798d}.chart-row{grid-template-columns:minmax(240px,.85fr) minmax(240px,.85fr) minmax(360px,1.3fr);gap:18px;margin-bottom:18px;display:grid}.chart-panel{min-width:0;min-height:332px}.donut-box{width:100%;min-width:180px;max-width:260px;height:210px;min-height:210px;margin:12px auto 4px;position:relative}.donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center strong{color:#17202a;font-size:34px;line-height:1}.donut-center span{color:#61798d;text-transform:uppercase;margin-top:5px;font-size:12px;font-weight:800}.chart-legend{flex-wrap:wrap;justify-content:center;gap:10px 14px;padding:0 16px 18px;display:flex}.chart-legend span{color:#52697c;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.chart-legend i{border-radius:999px;width:9px;height:9px;display:inline-block}.bar-chart-box{width:100%;min-width:240px;height:254px;min-height:254px;padding:14px 12px 12px}.content-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;display:grid}.panel{min-width:0;overflow:hidden}.panel-header{border-bottom:1px solid #e7eef5;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.panel-header span{color:#61798d;font-weight:700}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf2f7;padding:12px 18px;font-size:14px}th{color:#61798d;text-transform:uppercase;font-size:12px}.severity{border-radius:999px;justify-content:center;min-width:78px;padding:5px 8px;font-size:12px;font-weight:800;display:inline-flex}.severity.critical{color:#a52d20;background:#ffe3df}.severity.major{color:#8a5b00;background:#fff0cc}.severity.minor{color:#1d5f99;background:#e5f2ff}.event-status{border-radius:999px;justify-content:center;min-width:76px;padding:5px 8px;font-size:12px;font-weight:800;display:inline-flex}.event-status.active{color:#1d7a46;background:#e6f6ee}.event-status.cleared{color:#52697c;background:#edf2f7}.events-panel{margin-top:18px}.site-list{display:grid}.site-row{border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:center;gap:18px;padding:14px 18px;display:flex}.site-row:last-child{border-bottom:0}.site-row div{gap:4px;min-width:0;display:grid}.site-row strong,.site-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.site-row b{color:#246b82;font-size:24px}.report-subnav{border-bottom:1px solid #dbe5ee;gap:4px;margin-bottom:18px;display:flex}.report-tab{color:#61798d;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 18px;font-size:14px;font-weight:700;transition:color .16s,border-color .16s;display:flex}.report-tab:hover{color:#17202a}.report-tab.active{color:#2aa7a1;border-bottom-color:#2aa7a1}.dark-mode .report-subnav{border-bottom-color:#263746}.dark-mode .report-tab:hover{color:#e8eef3}.empty-page{padding:22px}.empty-page p{color:#61798d;margin-top:8px;font-weight:700}.dark-mode .empty-page p{color:#9fb0bd}@media (width<=920px){.app-layout{grid-template-columns:84px minmax(0,1fr)}.sidebar{padding:16px 12px}.brand-block{justify-content:center;align-items:center}.brand-logo-wrap{width:36px;height:36px}.brand-text,.nav-item span{display:none}.nav-item{justify-content:center;padding:0}.nav-item.active{box-shadow:inset 0 -3px #2aa7a1}.summary-head,.chart-row,.content-grid{grid-template-columns:1fr 1fr}.summary-cell.site-filter,.duration-panel{grid-column:1/-1}}@media (width<=640px){.app-layout{flex-direction:column;height:100vh;display:flex;overflow:hidden}.sidebar{flex-shrink:0;height:auto;padding:12px 10px;overflow:auto hidden}.app-shell{flex:1;width:100%;height:0;padding:12px 10px 40px;overflow-y:auto}.brand-block{display:none}.side-nav{gap:8px;min-width:max-content;display:flex}.nav-item{width:auto;height:40px;padding:0 12px}.nav-item span{display:inline}.app-shell{width:min(100% - 20px,1280px);padding-top:18px}.global-header,.content-grid,.chart-row,.summary-head{grid-template-columns:1fr}.duration-panel{grid-column:auto}.summary-cell+.summary-cell{border-top:1px solid #e7eef5;border-left:0}.global-header{align-items:flex-start;display:grid}.header-actions{justify-content:space-between;width:100%}.weather-badge{width:100%;max-width:none}}.logs-page{padding:22px 0 8px}.service-status-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.service-chip{border:1px solid;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;display:inline-flex}.service-chip strong{font-weight:800}.service-chip span:last-child{opacity:.8;font-weight:600}.service-chip-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;opacity:1!important}.service-chip-ok{color:#1d7a46;background:#e6f6ee;border-color:#a7dfbf}.service-chip-ok .service-chip-dot{background:#2ecc71;box-shadow:0 0 5px #2ecc7180}.service-chip-down{color:#a83225;background:#ffe9e6;border-color:#ffb3a8}.service-chip-down .service-chip-dot{background:#e74c3c;box-shadow:0 0 5px #e74c3c80}.service-chip-unknown{color:#527085;background:#f4f7fb;border-color:#c9d7e3}.service-chip-unknown .service-chip-dot{background:#adb8c4}.dark-mode .service-chip-ok{background:#0b2e1a;border-color:#1d7a4660}.dark-mode .service-chip-down{background:#2e0b08;border-color:#a8322560}.dark-mode .service-chip-unknown{color:#9fb0bd;background:#172331;border-color:#283848}.log-report-btn{color:#34495a;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #c9d7e3;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 14px;font-size:13px;font-weight:700;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.log-report-btn:hover:not(:disabled){color:#c0392b;background:#fff5e6;border-color:#e67e22}.log-report-btn.alert{color:#c0392b;background:#ffe9e6;border-color:#e74c3c}.log-report-btn.alert:hover:not(:disabled){background:#ffd5d0}.log-report-btn.sent{color:#1d7a46;background:#e6f6ee;border-color:#2aa7a1}.log-report-btn:disabled{cursor:not-allowed;opacity:.6}.dark-mode .log-report-btn{color:#e8eef3;background:#172331;border-color:#283848}.dark-mode .log-report-btn.alert{color:#f85149;background:#2e0b08;border-color:#e74c3c}.dark-mode .log-report-btn.sent{color:#2ecc71;background:#0b2e1a;border-color:#2aa7a1}.logs-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.logs-tabs{border-bottom:0;margin-bottom:0}.logs-controls{align-items:center;gap:8px;display:flex}.log-filter-select{appearance:none;color:#34495a;cursor:pointer;background:#fff;border:1px solid #c9d7e3;border-radius:8px;outline:none;height:34px;padding:0 12px;font-size:13px;font-weight:700;transition:border-color .16s}.log-filter-select:focus{border-color:#2aa7a1}.log-refresh-btn{color:#34495a;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #c9d7e3;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 14px;font-size:13px;font-weight:700;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.log-refresh-btn:hover:not(:disabled),.log-refresh-btn.active{color:#2aa7a1;background:#eef7f7;border-color:#2aa7a1}.log-refresh-btn:disabled{cursor:not-allowed;opacity:.5}.log-terminal{background:#0d1117;border:1px solid #30363d;border-radius:10px;min-height:220px;max-height:580px;padding:16px;font-family:Menlo,Consolas,Monaco,ui-monospace,monospace;font-size:13px;overflow-y:auto}.log-line{align-items:baseline;gap:10px;min-width:0;padding:1px 0;line-height:1.6;display:flex}.log-ts{color:#6e7681;white-space:nowrap;flex-shrink:0;font-size:12px}.log-badge{letter-spacing:.05em;text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:800}.log-badge-info{color:#58a6ff;background:#1f6feb2e}.log-badge-warn{color:#d29922;background:#9e6a0338}.log-badge-error{color:#f85149;background:#f851492e}.log-badge-debug{color:#8b949e;background:#24292ecc}.log-msg{color:#c9d1d9;word-break:break-all;min-width:0}.log-line.log-error .log-msg{color:#ffa198}.log-line.log-warn .log-msg{color:#e3b341}.log-empty{color:#6e7681;text-align:center;padding:48px 0}.log-count{color:#7a9ab0;text-align:right;margin-top:8px;font-size:12px;font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}.spin-icon{animation:1.4s linear infinite spin}.dark-mode .log-filter-select,.dark-mode .log-refresh-btn{color:#e8eef3;background:#172331;border-color:#283848}.dark-mode .log-refresh-btn.active{color:#2aa7a1;background:#0f3a37;border-color:#2aa7a1}.admin-page{padding:22px 0}.admin-shift-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px;display:grid}.shift-card{flex-direction:column;display:flex}.shift-card-header{border-bottom:1px solid #e7eef5;align-items:center;gap:10px;padding:14px 18px;display:flex}.shift-badge-inline{letter-spacing:.03em;white-space:nowrap;border:1px solid;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800}.shift-time{color:#61798d;font-size:13px;font-weight:700}.shift-count{color:#9fb0bd;margin-left:auto;font-size:12px;font-weight:700}.shift-members{flex:1;max-height:380px;overflow-y:auto}.shift-empty{color:#9fb0bd;text-align:center;padding:20px 18px;font-size:13px;font-weight:700}.staff-row{border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:10px 18px;display:flex}.staff-row:last-child{border-bottom:0}.staff-row-editing{background:#f4f7fb;border-bottom:1px solid #dbe5ee;flex-direction:column;align-items:stretch;padding:14px 18px}.staff-info{align-items:flex-start;gap:6px;min-width:0;display:flex}.supervisor-star{color:#d4a017;flex-shrink:0;font-size:16px;line-height:1.4}.staff-info>div{gap:2px;min-width:0;display:grid}.staff-info strong{color:#17202a;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.staff-info span{color:#7a9ab0;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.staff-row-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.staff-edit-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.staff-role-badge{color:#52697c;white-space:nowrap;background:#edf2f7;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}.staff-role-badge.supervisor{color:#1d7a46;background:#eef7f7}.admin-input{color:#17202a;background:#fff;border:1px solid #c9d7e3;border-radius:8px;outline:none;width:100%;height:36px;padding:0 12px;font-size:13px;font-weight:600;transition:border-color .16s}.admin-input:focus{border-color:#2aa7a1;box-shadow:0 0 0 3px #2aa7a11f}.admin-btn-ok,.admin-btn-cancel{cursor:pointer;border:1px solid;border-radius:6px;align-items:center;gap:5px;height:30px;padding:0 12px;font-size:12px;font-weight:700;transition:background .16s;display:inline-flex}.admin-btn-ok{color:#1d7a46;background:#eef7f7;border-color:#2aa7a1}.admin-btn-ok:hover:not(:disabled){background:#d0efed}.admin-btn-cancel{color:#527085;background:#f4f7fb;border-color:#c9d7e3}.admin-btn-cancel:hover{background:#e7eef5}.admin-icon-btn{color:#7a9ab0;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .16s,color .16s;display:inline-flex}.admin-icon-btn:hover{color:#17202a;background:#e7eef5}.admin-icon-btn.danger:hover{color:#b83227;background:#ffe3df}.admin-add-panel{margin-top:18px;padding:16px 18px}.admin-add-toggle{color:#527085;cursor:pointer;background:0 0;border:1px dashed #c9d7e3;border-radius:8px;justify-content:center;align-items:center;gap:7px;width:100%;padding:8px 16px;font-size:13px;font-weight:700;transition:border-color .16s,color .16s;display:inline-flex}.admin-add-toggle:hover{color:#2aa7a1;border-color:#2aa7a1}.admin-add-form{margin-top:14px}.admin-form-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;display:grid}.admin-submit-btn{color:#fff;cursor:pointer;background:#2aa7a1;border:0;border-radius:8px;width:100%;height:38px;padding:0 20px;font-size:13px;font-weight:800;transition:background .16s}.admin-submit-btn:hover:not(:disabled){background:#238f8a}.admin-submit-btn:disabled{cursor:not-allowed;opacity:.6}.admin-submit-btn.success{background:#1d7a46}.admin-reports-layout{grid-template-columns:380px 1fr;align-items:start;gap:18px;display:grid}.admin-report-form-panel{position:sticky;top:70px}.admin-report-form{gap:14px;padding:18px;display:grid}.admin-form-row-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.admin-field{gap:6px;display:grid}.admin-field>span{color:#61798d;letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.admin-textarea{color:#17202a;resize:vertical;background:#fff;border:1px solid #c9d7e3;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:13px;font-weight:500;line-height:1.6;transition:border-color .16s}.admin-textarea:focus{border-color:#2aa7a1;box-shadow:0 0 0 3px #2aa7a11f}.admin-reports-list{gap:12px;display:grid}.report-card{padding:14px 18px}.report-card-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.report-date{color:#7a9ab0;margin-left:auto;font-size:12px;font-weight:700}.report-content{color:#374151;white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.7}.admin-cuentas-layout{grid-template-columns:380px 1fr;align-items:start;gap:18px;display:grid}.admin-user-form-panel{position:sticky;top:70px}.pw-field{gap:6px;display:flex}.pw-field .admin-input{flex:1}.user-role-badge{border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}.user-role-badge.role-admin{color:#8a5b00;background:#fff0cc}.user-role-badge.role-operator{color:#1d5f99;background:#e5f2ff}.user-role-badge.role-viewer{color:#52697c;background:#edf2f7}.status-toggle-btn{cursor:pointer;white-space:nowrap;background:0 0;border:1px solid;border-radius:999px;padding:3px 12px;font-size:12px;font-weight:800;transition:background .16s}.status-toggle-btn.active{color:#1d7a46;border-color:#a7dfbf}.status-toggle-btn.active:hover{color:#a83225;background:#ffe3df;border-color:#ffb3a8}.status-toggle-btn.inactive{color:#7a9ab0;border-color:#c9d7e3}.status-toggle-btn.inactive:hover{color:#1d7a46;background:#e6f6ee;border-color:#a7dfbf}.dark-mode .staff-row,.dark-mode .shift-card-header{border-bottom-color:#263746}.dark-mode .staff-row-editing{background:#131f2b}.dark-mode .staff-info strong{color:#e8eef3}.dark-mode .staff-role-badge{color:#9fb0bd;background:#1e3145}.dark-mode .staff-role-badge.supervisor{color:#2ecc71;background:#0b2e1a}.dark-mode .admin-input,.dark-mode .admin-textarea{color:#e8eef3;background:#172331;border-color:#283848}.dark-mode .admin-add-toggle{color:#7a9ab0;border-color:#283848}.dark-mode .admin-add-toggle:hover{color:#2aa7a1;border-color:#2aa7a1}.dark-mode .report-content{color:#c9d1d9}.dark-mode .admin-field>span{color:#7a9ab0}.dark-mode .user-role-badge.role-admin{color:#d29922;background:#2e2200}.dark-mode .user-role-badge.role-operator{color:#58a6ff;background:#0d1f35}.dark-mode .user-role-badge.role-viewer{color:#9fb0bd;background:#1e3145}@media (width<=1100px){.admin-shift-grid{grid-template-columns:1fr 1fr}.admin-reports-layout,.admin-cuentas-layout{grid-template-columns:1fr}.admin-report-form-panel,.admin-user-form-panel{position:static}}@media (width<=640px){.admin-shift-grid{grid-template-columns:1fr}.admin-form-grid{grid-template-columns:1fr 1fr}.staff-edit-grid{grid-template-columns:1fr}}@keyframes login-fade-up{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes login-shake{0%,to{transform:translate(0)}18%{transform:translate(-10px)}36%{transform:translate(10px)}54%{transform:translate(-6px)}72%{transform:translate(6px)}}@keyframes login-spin{to{transform:rotate(360deg)}}.login-page{background-color:#050f19;background-image:linear-gradient(#020a148c 0%,#020a14c7 100%),url(/login-bg.jpg);background-position:50%;background-size:cover;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative}.login-overlay{pointer-events:none;background:radial-gradient(at 60%,#2aa7a114 0%,#0000 70%);position:absolute;inset:0}.login-card{-webkit-backdrop-filter:blur(22px)saturate(160%);backdrop-filter:blur(22px)saturate(160%);z-index:1;background:#071424e6;border:1px solid #ffffff17;border-radius:20px;flex-direction:column;align-items:center;gap:0;width:100%;max-width:420px;padding:44px 40px 36px;animation:.55s cubic-bezier(.22,1,.36,1) both login-fade-up;display:flex;position:relative;box-shadow:0 32px 80px #0009,0 0 0 1px #2aa7a12e,inset 0 1px #ffffff0f}.login-shake{animation:.55s login-shake}.login-logo-wrap{background:#fff;border-radius:12px;margin-bottom:26px;padding:10px 20px}.login-logo-img{object-fit:contain;width:auto;height:44px;display:block}.login-heading{text-align:center;margin-bottom:30px}.login-heading h1{color:#f0f6fb;letter-spacing:-.01em;margin:0 0 6px;font-size:22px;font-weight:850;line-height:1.1}.login-heading p{color:#a0b9cdcc;margin:0;font-size:13px;font-weight:600}.login-form{gap:14px;width:100%;display:grid}.login-field{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:10px;height:48px;padding:0 14px;transition:border-color .2s,box-shadow .2s;display:flex}.login-field:focus-within{border-color:#2aa7a1;box-shadow:0 0 0 3px #2aa7a133}.login-field-icon{color:#a0b9cd99;flex-shrink:0}.login-field input{color:#e8f0f6;background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:14px;font-weight:600}.login-field input::placeholder{color:#a0b9cd73;font-weight:500}.login-pw-toggle{color:#a0b9cd80;cursor:pointer;background:0 0;border:0;flex-shrink:0;align-items:center;padding:0;transition:color .16s;display:flex}.login-pw-toggle:hover{color:#2aa7a1}.login-error{color:#f98080;text-align:center;background:#f851491f;border:1px solid #f851494d;border-radius:8px;margin:0;padding:10px 14px;font-size:13px;font-weight:600}.login-btn{color:#fff;cursor:pointer;letter-spacing:.01em;background:#2aa7a1;border:0;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;height:50px;margin-top:6px;font-size:15px;font-weight:800;transition:background .2s,transform .12s,opacity .2s;display:flex}.login-btn:hover:not(:disabled){background:#238f8a}.login-btn:active:not(:disabled){transform:scale(.98)}.login-btn:disabled{cursor:not-allowed;opacity:.55}.login-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite login-spin;display:inline-block}.login-footer{color:#7896af8c;text-align:center;margin:22px 0 0;font-size:11px;font-weight:600}.user-chip{color:#34495a;white-space:nowrap;background:#fff;border:1px solid #c9d7e3;border-radius:999px;align-items:center;gap:6px;height:34px;padding:0 4px 0 10px;font-size:13px;font-weight:700;display:inline-flex}.user-chip-icon{color:#2aa7a1;flex-shrink:0}.user-chip-name{text-overflow:ellipsis;max-width:130px;overflow:hidden}.user-chip-logout{color:#9fb0bd;cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;transition:background .16s,color .16s;display:inline-flex}.user-chip-logout:hover{color:#b83227;background:#ffe3df}.dark-mode .user-chip{color:#e8eef3;background:#172331;border-color:#283848}.dark-mode .user-chip-logout:hover{color:#f85149;background:#b7322740}.briefing-section{margin-bottom:22px}.briefing-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.briefing-title{color:#17202a;margin:0 0 2px;font-size:14px;font-weight:700}.briefing-sub{color:#61798d;margin:0;font-size:11.5px}.briefing-warn{color:#b45309;margin-top:8px;font-size:12px}.briefing-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.brief-card{background:#fff;border:1px solid #dbe5ee;border-radius:10px;flex-direction:column;min-width:0;display:flex;overflow:hidden;box-shadow:0 2px 8px #1c2d440d}.brief-card-head{background:var(--ba);flex-direction:column;gap:1px;padding:8px 14px;display:flex}.brief-card-label{color:#fff;letter-spacing:.07em;text-transform:uppercase;font-size:11px;font-weight:700}.brief-card-desc{color:#ffffffbf;font-size:10.5px}.brief-card-title{color:#17202a;border-bottom:1px solid #eef2f7;padding:10px 14px;font-size:12.5px;font-weight:600;line-height:1.45}.brief-card-body{color:#344d5c;flex:1;max-height:240px;padding:12px 14px;font-size:12px;line-height:1.65;overflow-y:auto}.brief-line{word-break:break-word}.brief-indent{padding-left:12px}.brief-indent-2{color:#4a6070;padding-left:24px}.brief-spacer{height:7px}.brief-empty{color:#7a94a5;font-style:italic}.brief-skeleton{color:#7a94a5}.spinning{animation:.8s linear infinite spin}.dark-mode .briefing-title{color:#e8eef3}.dark-mode .brief-card{background:#0f1d29;border-color:#1f3647}.dark-mode .brief-card-title{color:#c8d8e4;border-bottom-color:#1f3647}.dark-mode .brief-card-body{color:#8fafbf}.dark-mode .brief-indent-2{color:#6a8898}@media (width<=960px){.briefing-grid{grid-template-columns:1fr 1fr}.briefing-grid .brief-card:last-child{grid-column:1/-1}}@media (width<=600px){.briefing-grid{grid-template-columns:1fr}}@media print{.sidebar,.global-header,.icon-btn{display:none!important}.app-layout{display:block!important}.app-shell{width:100%!important;padding:16px!important}.panel{break-inside:avoid;box-shadow:none!important}.chart-row,.content-grid{break-inside:avoid}}
