:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{margin:0}body{margin:0;font-family:Segoe UI,Tahoma,sans-serif;background-color:#f5f6fa}.app-container{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;background:#1e1e2f;color:#fff;padding:20px;display:flex;flex-direction:column;height:100vh;overflow:hidden;position:sticky;top:0;flex-shrink:0}.sidebar h3{margin-top:0;margin-bottom:30px}.sidebar button{display:block;width:100%;margin-bottom:10px;padding:10px;border:none;background:transparent;color:#fff;text-align:left;cursor:pointer;border-radius:6px;transition:.2s}.sidebar button:hover{background:#2d2d44}.sidebar .active{background:#4caf50}.sidebar-footer{margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,.16)}.sidebar-user{font-size:12px;opacity:.8;margin-bottom:8px}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f5f6fa}.auth-card{width:min(100%,380px);background:#fff;border:1px solid #dfe3e8;border-radius:10px;box-shadow:0 8px 18px #00000014;padding:16px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.auth-tabs button{border:1px solid #d7dee8;background:#f7f9fc;color:#344253;border-radius:8px;padding:8px 10px;cursor:pointer}.auth-tabs button.active{background:#1f6feb;color:#fff;border-color:#1f6feb}.auth-form{display:grid;gap:10px;width:100%}.auth-form label{display:grid;gap:6px;font-size:13px;color:#2f3e50}.auth-form input{width:100%;box-sizing:border-box}.auth-submit{width:100%;padding:9px 12px}.auth-message{font-size:13px;border-radius:8px;padding:9px 10px}.auth-message-error{color:#8a1f1f;background:#ffe9e9;border:1px solid #ffd0d0}.auth-message-success{color:#156c2d;background:#e9f9ed;border:1px solid #c8efcf}.auth-divider{height:1px;background:#e6edf4;margin:2px 0}.app-toast{position:fixed;top:16px;right:18px;z-index:1200;padding:10px 14px;border-radius:8px;color:#fff;font-size:14px;font-weight:600;box-shadow:0 8px 18px #0003}.app-toast-success{background:#2e7d32}.app-toast-error{background:#c62828}.content{flex:1;padding:30px;overflow:auto;height:100vh;min-height:0}.content.content-schedule,.content.content-data{overflow:hidden;display:flex;flex-direction:column;min-height:0;height:100dvh;box-sizing:border-box;padding:18px 20px}.card{background:#fff;padding:20px;border-radius:10px;box-shadow:0 2px 8px #0000000d;margin-bottom:20px}.data-card{height:100%;margin-bottom:0;display:flex;flex-direction:column;overflow:hidden;min-height:0;padding:18px;border:1px solid #e4e9ef;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 8px 20px #0b244712}.data-card h3{margin-top:0;margin-bottom:14px}.planning-card{display:grid;grid-template-rows:auto 1fr 1fr;gap:12px}.planning-card .card-section{margin-top:0}.schedule-card{height:100%;margin-bottom:0;display:flex;flex-direction:column;overflow:hidden;min-height:0;padding:16px}.schedule-header{flex:0 0 auto;margin-bottom:10px}.schedule-period-inputs{display:flex;gap:8px;margin-bottom:10px}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.schedule-nav{display:flex;align-items:center;gap:10px}.schedule-range-label{font-weight:600}.schedule-actions{display:flex;gap:8px}.schedule-bulk-actions{margin-top:10px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fbff}.schedule-bulk-actions strong{margin-right:4px}input,select{padding:6px 10px;border-radius:6px;border:1px solid #ccc}td input,td select{width:100%;box-sizing:border-box}button.primary{background:#4caf50;color:#fff;border:none;padding:6px 12px;border-radius:6px;cursor:pointer;transition:.2s}button.primary:hover{background:#43a047}table{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid #d6d6d6;border-radius:6px;overflow:hidden;background:#fff}th{background:#f0f0f0;font-weight:600}th,td{padding:6px;text-align:center;border:1px solid #e5e5e5;font-size:14px}.schedule-table th:first-child,.schedule-table td:first-child{width:110px;font-weight:600;border-right:2px solid #cfcfcf}.employees-table th:first-child,.employees-table td:first-child{width:32px;min-width:32px;max-width:32px;padding:0}.table-section{margin-top:8px;padding:10px;border:1px solid #dde5ee;border-radius:10px;background:linear-gradient(180deg,#f9fbff,#f5f8fc);box-shadow:inset 0 1px #ffffffbf}.table-scroll{position:relative;overflow:auto;max-height:min(56vh,560px);border:1px solid #d6d6d6;border-radius:6px}.table-scroll table{border-collapse:separate;border-spacing:0;border:0;overflow:visible;isolation:isolate}.table-scroll table thead th{background:#f0f0f0;position:sticky;top:0;z-index:10}.table-section-fill{flex:1 1 auto;min-height:0}.table-section-fill .table-scroll{height:100%;max-height:none}.schedule-scroll{position:relative;flex:1 1 auto;min-height:0;height:auto;overflow-y:auto;overflow-x:auto;border:1px solid #d6d6d6;border-radius:6px}.schedule-table-section{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:10px;border:1px solid #e2e6ea;border-radius:8px;background:#f8fafc}.schedule-scroll .schedule-table{border-collapse:separate;border-spacing:0;border:0;overflow:visible;isolation:isolate}.schedule-scroll .schedule-table thead{display:table-header-group}.schedule-scroll .schedule-table thead th{background:#f0f0f0;position:sticky;top:0;z-index:15}.schedule-scroll .schedule-table thead th:first-child{z-index:16}.schedule-card .print-area{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}tr:nth-child(2n){background:#fafafa}tbody tr+tr{border-top:2px solid #f0f0f0}tbody tr:hover{background:#f3f8ff}.absence-cell{background-color:var(--absence-color);color:#fff;padding:6px;border-radius:6px;cursor:pointer;text-align:center;font-weight:bolder;font-size:13px;transition:.2s ease}.absence-cell:hover{opacity:.85}.absence-select,.activity-select{width:100%;margin-bottom:4px;padding:4px;border-radius:4px}.shift-select{width:100%;padding:4px;border-radius:4px}.shift-selected-button{width:100%;margin-bottom:4px;line-height:1.25;font-size:13px}.shift-selected-button strong{font-size:inherit}.inactive-cell{background:#f3f3f3}.inactive-label{color:#666;font-size:12px;font-weight:600}.day-coverage-badge{margin-top:6px;display:inline-block;padding:2px 6px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2}.day-coverage-ok{color:#1b5e20;background:#e8f5e9}.day-coverage-warn{color:#7a4e00;background:#fff4d6}.day-coverage-error{color:#8a1c1c;background:#ffe2e2}.screen-only{display:inline-block}.print-only{display:none}.print-header{text-align:center;margin-bottom:15px}.print-header h2{margin:0;font-size:18px}.legend-inline{margin-top:14px;font-size:12px;text-align:center}.legend-item{margin-left:20px;white-space:nowrap}.inactive-row{opacity:.5;background:#f3f3f3!important}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.settings-grid label{display:flex;flex-direction:column;gap:6px;font-size:14px}.settings-grid .settings-checkbox{flex-direction:row;align-items:center;gap:10px}.settings-sections{display:flex;flex-direction:column;gap:16px}.settings-section{border:1px solid #e2e6ea;border-radius:8px;padding:14px;background:#fafbfc}.settings-section h4{margin:0 0 12px;font-size:15px}.card-section{margin-top:16px;border:1px solid #e2e8f0;border-radius:10px;padding:12px;background:#fcfdff;display:flex;flex-direction:column;min-height:0}.card-section h4{margin:0 0 10px}.inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-bottom:12px}@media print{@page portraitPage{size:A4 portrait;margin:8mm}@page landscapePage{size:A4 landscape;margin:8mm}html,body{width:100%;height:100%;margin:0;padding:0;background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body *{visibility:hidden}.print-area,.print-area *{visibility:visible;font-family:Times New Roman,Times,serif!important}.print-area{position:absolute;left:0;top:0;width:100%}.print-area.print-portrait{page:portraitPage}.print-area.print-landscape{page:landscapePage}.print-area table,.print-area thead,.print-area tbody,.print-area tr,.print-area th,.print-area td{background:#fff!important;border-radius:0!important;box-shadow:none!important}.print-area table{width:100%;table-layout:fixed;height:calc(100vh - 40mm);border-collapse:collapse!important;border:none!important}.schedule-scroll{max-height:none;height:auto;overflow:visible}.print-area .schedule-table-section,.print-area .schedule-scroll{background:#fff!important;border:none!important;box-shadow:none!important;padding:0!important;border-radius:0!important}.print-area .schedule-table th:first-child,.print-area .schedule-table td:first-child{width:11ch!important;min-width:11ch!important;white-space:nowrap}.schedule-scroll .schedule-table thead{display:table-header-group!important}.print-area th,.print-area td{border:1px solid black!important;padding:4px!important;font-size:var(--print-font-size, 12px)!important;color:#000!important;text-align:center;vertical-align:middle;page-break-inside:avoid;break-inside:avoid}.print-area.print-auto-scale th,.print-area.print-auto-scale td{font-size:clamp(10px,1.2vw,16px)!important}.print-area.print-auto-scale tbody{height:100%}.print-area.print-auto-scale tbody tr{height:calc(100% / var(--days-count))}.print-area.print-fixed-scale tbody,.print-area.print-fixed-scale tbody tr{height:auto}.print-area tbody tr+tr{border-top:none!important}.print-area.print-auto-scale thead th{font-size:clamp(12px,1.6vw,20px)!important}.print-area tr{page-break-inside:avoid!important;break-inside:avoid!important}.print-area.print-auto-scale tbody td{font-size:clamp(12px,1.6vw,20px)!important}.print-area tr:nth-child(2n),.print-area tr:hover{background:#fff!important}.sidebar,.screen-only,.absence-select,button{display:none!important}.print-only{display:block!important}.print-area.print-no-colors .absence-cell{background:none!important;color:#000!important;border-radius:0!important;padding:0!important;cursor:default!important;transition:none!important}.print-area.print-with-colors .absence-cell{border-radius:0!important;cursor:default!important;transition:none!important}.print-area.print-hide-inactive .employee-inactive{display:none!important}.print-header{text-align:center;margin-bottom:10px}.print-header h2{margin:0;font-size:20px;font-weight:700}.legend-inline{margin-top:8px;font-size:11px;text-align:center}.legend-item{margin:0 8px}}
