.year-month-selector{margin-bottom:20px;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.selector-controls{display:flex;justify-content:space-between;align-items:center;gap:15px}.dropdowns{display:flex;gap:10px;flex:1;justify-content:center}.month-select,.year-select{padding:10px 15px;font-size:16px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;transition:border-color .2s}.month-select:hover,.year-select:hover,.month-select:focus,.year-select:focus{border-color:#2196f3;outline:none}.month-select{min-width:150px}.year-select{min-width:100px}.nav-button{padding:10px 20px;font-size:14px;background:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s;white-space:nowrap}.nav-button:hover{background:#1976d2}.nav-button:active{background:#0d47a1}@media(max-width:768px){.selector-controls{flex-direction:column}.dropdowns,.nav-button{width:100%}}@media print{.year-month-selector{box-shadow:none}.nav-button{display:none}}.shift-manager{margin-bottom:20px;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.shift-manager h3{margin:0 0 15px;font-size:18px;color:#333}.shift-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:20px}.shift-item{padding:12px 15px;border:2px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center;background:#fff}.shift-item:hover{border-color:#2196f3;background-color:#f0f8ff}.shift-item.active{background-color:#2196f3;color:#fff;border-color:#2196f3}.shift-label{flex:1;font-size:14px}.delete-button{background:transparent;border:none;color:#f44336;font-size:18px;cursor:pointer;padding:0 5px;margin-left:10px;transition:color .2s}.shift-item.active .delete-button{color:#fff}.delete-button:hover{color:#d32f2f}.shift-item.active .delete-button:hover{color:#ffcdd2}.add-shift-form{display:flex;gap:10px;align-items:center;padding-top:15px;border-top:1px solid #eee}.time-input{padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;flex:1;min-width:0}.time-input:focus{outline:none;border-color:#2196f3}.time-separator{color:#666;font-weight:700}.add-button{padding:10px 20px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;white-space:nowrap;transition:background-color .2s}.add-button:hover{background:#45a049}.add-button:active{background:#3d8b40}@media(max-width:768px){.shift-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.add-shift-form{flex-wrap:wrap}.add-button{width:100%}}@media print{.shift-manager{display:none}}.day-cell{min-height:120px;border:1px solid #ddd;padding:12px;cursor:pointer;position:relative;background:#fff;transition:all .2s ease;display:flex;flex-direction:column}.day-cell:not(.empty):hover{background-color:#f0f8ff;border-color:#999}.day-cell.empty{background-color:#f9f9f9;cursor:default}.day-cell.selected{background-color:#e3f2fd;border-color:#2196f3;border-width:2px}.day-cell.weekend{background-color:#ffebee}.day-cell.has-shift:not(.weekend){background-color:#fff9c4}.day-number{font-size:26px;font-weight:700;margin-bottom:8px;color:#333}.shift-text{font-size:30px;color:#333;margin-top:auto;word-wrap:break-word;font-weight:600}.bulk-checkbox{position:absolute;top:4px;right:4px;cursor:pointer;width:18px;height:18px}@media print{.day-cell{break-inside:avoid;page-break-inside:avoid;min-height:140px}.bulk-checkbox{display:none}.day-cell:hover{background-color:initial}.shift-text{font-size:24px}.day-number{font-size:22px}}.calendar-grid{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);background:#fff;color:#000;border-bottom:2px solid #333}.day-header{padding:16px;text-align:center;font-weight:700;font-size:18px;border-right:1px solid #ddd}.day-header:last-child{border-right:none}.calendar-body{display:flex;flex-direction:column}.calendar-week{display:grid;grid-template-columns:repeat(7,1fr)}@media(max-width:768px){.day-header{padding:8px;font-size:12px}}@media print{.calendar-grid{box-shadow:none;page-break-inside:avoid}.day-header{font-size:20px;padding:18px}}.bulk-action-panel{margin-bottom:20px;padding:15px 20px;background:#e3f2fd;border-radius:8px;border:2px solid #2196F3}.bulk-info{margin-bottom:10px}.selected-count{font-weight:700;color:#1976d2;font-size:16px}.bulk-actions{display:flex;gap:10px;flex-wrap:wrap}.bulk-button{padding:10px 15px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s;background:#2196f3;color:#fff}.bulk-button:hover:not(:disabled){background:#1976d2;transform:translateY(-1px)}.bulk-button:active:not(:disabled){transform:translateY(0)}.bulk-button:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.bulk-button.apply{background:#4caf50}.bulk-button.apply:hover:not(:disabled){background:#45a049}.bulk-button.clear{background:#f44336}.bulk-button.clear:hover:not(:disabled){background:#d32f2f}@media(max-width:768px){.bulk-actions{flex-direction:column}.bulk-button{width:100%}}@media print{.bulk-action-panel{display:none}}.export-panel{margin-bottom:20px;padding:15px 20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.export-button{padding:12px 24px;border:none;border-radius:4px;cursor:pointer;font-size:16px;transition:all .2s;color:#fff;display:flex;align-items:center;gap:8px}.export-button:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}.export-button:active{transform:translateY(0)}.export-button.print{background:#2196f3}.export-button.print:hover{background:#1976d2}.export-button.pdf{background:#f44336}.export-button.pdf:hover{background:#d32f2f}.export-button.png{background:#4caf50}.export-button.png:hover{background:#45a049}@media(max-width:768px){.export-panel{flex-direction:column}.export-button{width:100%;justify-content:center}}@media print{.export-panel{display:none}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f5f5;color:#333}.app{min-height:100vh;padding-bottom:40px}.app-header{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;padding:20px;text-align:center;box-shadow:0 2px 8px #0000001a}.app-header h1{font-size:28px;font-weight:600;margin:0}.app-container{max-width:1400px;margin:0 auto;padding:20px}.controls-section{margin-bottom:20px}.mode-controls{margin-bottom:20px;display:flex;justify-content:center}.mode-button{padding:12px 30px;font-size:16px;border:2px solid #2196F3;background:#fff;color:#2196f3;border-radius:4px;cursor:pointer;transition:all .2s;font-weight:600}.mode-button:hover{background:#e3f2fd}.mode-button.active{background:#2196f3;color:#fff}.calendar-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.calendar-title{text-align:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #2196F3}.calendar-title h2{font-size:36px;color:#333;font-weight:600}@media(max-width:768px){.app-header h1{font-size:22px}.calendar-title h2{font-size:20px}.app-container{padding:10px}}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff}.app{padding-bottom:0}.app-header{display:none}.controls-section.no-print{display:none!important}.calendar-section{box-shadow:none;padding:0;page-break-inside:avoid;height:100%}.calendar-title{page-break-after:avoid;margin-bottom:10px}.calendar-title h2{font-size:40px}.app-container{max-width:100%;padding:0;height:100%}}
