.create-ticket-form-container{padding:2rem;max-width:800px;margin:0 auto}.create-ticket-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.create-ticket-form h2{color:#333;margin-bottom:1.5rem;font-size:1.5rem}.form-group input[type=text],.form-group input[type=tel],.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.form-group input[type=text]:focus,.form-group input[type=tel]:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#14b8a6}.form-group textarea{resize:vertical}.form-group input[type=file]{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px}@media (max-width: 768px){.create-ticket-form-container{padding:1rem}.create-ticket-form{padding:1.5rem}.create-ticket-form h2{font-size:1.3rem}.form-group{margin-bottom:1.25rem}.form-actions{flex-direction:column;gap:.75rem}.cancel-button,.submit-button{width:100%;padding:.75rem}}@media (max-width: 480px){.create-ticket-form-container{padding:.75rem}.create-ticket-form{padding:1rem}.create-ticket-form h2{font-size:1.2rem}.form-group label{font-size:.9rem}.form-group input[type=text],.form-group input[type=tel],.form-group select,.form-group textarea{font-size:.95rem;padding:.6rem}}.lesson-hours-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.75rem;margin-top:.5rem}.lesson-hour-button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.75rem .5rem;border:2px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s;min-height:70px}.lesson-hour-button:hover:not(.disabled){border-color:#14b8a6;background:#f0fdfa;transform:translateY(-2px);box-shadow:0 2px 8px #14b8a633}.lesson-hour-button.selected{border-color:#14b8a6;background:#14b8a6;color:#fff;font-weight:600}.lesson-hour-button.selected .lesson-hour-number,.lesson-hour-button.selected .lesson-hour-time{color:#fff}.lesson-hour-button.disabled{opacity:.4;cursor:not-allowed;background:#f5f5f5;border-color:#e0e0e0}.lesson-hour-button.disabled:hover{transform:none;box-shadow:none;border-color:#e0e0e0;background:#f5f5f5}.lesson-hour-number{font-size:1.2rem;font-weight:600;color:#333;margin-bottom:.25rem}.lesson-hour-time{font-size:.75rem;color:#666;text-align:center;line-height:1.2}.lesson-hour-button.selected .lesson-hour-number{color:#fff}.lesson-hour-button.selected .lesson-hour-time{color:#ffffffe6}@media (max-width: 768px){.lesson-hours-selector{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:.5rem}.lesson-hour-button{min-height:60px;padding:.5rem .4rem}.lesson-hour-number{font-size:1rem}.lesson-hour-time{font-size:.7rem}}.alert-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem;animation:fadeIn .2s ease-in-out}.alert-modal-content{background:#fff;border-radius:12px;max-width:90vw;width:100%;max-width:500px;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d;animation:slideUp .3s ease-out;overflow:hidden}.alert-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e0e0e0}.alert-modal-header h2{margin:0;font-size:1.25rem;color:#333;font-weight:600}.alert-modal-close{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;line-height:1}.alert-modal-close:hover{background:#e0e0e0;color:#333}.alert-modal-body{padding:1.5rem;color:#333;font-size:1rem;line-height:1.5}.alert-modal-footer{padding:1rem 1.5rem;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;background:#f8f9fa}.alert-modal-button{padding:.625rem 1.5rem;background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;min-width:80px}.alert-modal-button:hover{background:linear-gradient(135deg,#0f766e,#0d9488);transform:translateY(-1px);box-shadow:0 4px 8px #0d94884d}.alert-modal-button:active{transform:translateY(0)}.alert-info{border-top:4px solid #14b8a6}.alert-warning{border-top:4px solid #ff9800}.alert-error{border-top:4px solid #dc3545}.alert-success{border-top:4px solid #28a745}@media (max-width: 768px){.alert-modal-content{max-width:95vw;margin:1rem}.alert-modal-header{padding:1rem 1.25rem}.alert-modal-header h2{font-size:1.1rem}.alert-modal-body{padding:1.25rem;font-size:.95rem}.alert-modal-footer{padding:.875rem 1.25rem}}.details-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.details-modal-content{background:#fff;border-radius:8px;max-width:90vw;max-height:90vh;width:100%;max-width:800px;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003;animation:slideUp .3s ease-out;overflow:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.details-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0;background:#f8f9fa}.details-modal-header h2{margin:0;font-size:1.5rem;color:#333}.details-modal-close{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.details-modal-close:hover{background:#e0e0e0;color:#333}.details-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.details-modal-footer{padding:1rem 1.5rem;border-top:1px solid #e0e0e0;display:flex;gap:.5rem;justify-content:flex-end;background:#f8f9fa;flex-wrap:wrap}.details-modal-footer button,.details-modal-footer .action-button{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 4px #0000001a}.details-modal-footer button:hover,.details-modal-footer .action-button:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.details-modal-footer button:active,.details-modal-footer .action-button:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.details-modal-footer .assign-button,.details-modal-footer .assign-button-small,.details-modal-footer button[class*=assign]{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.details-modal-footer .assign-button:hover,.details-modal-footer .assign-button-small:hover,.details-modal-footer button[class*=assign]:hover{background:linear-gradient(135deg,#1976d2,#1565c0)}.details-modal-footer .complete-button,.details-modal-footer .complete-button-small,.details-modal-footer .btn-complete-small,.details-modal-footer button[class*=complete]{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;font-weight:600}.details-modal-footer .complete-button:hover,.details-modal-footer .complete-button-small:hover,.details-modal-footer .btn-complete-small:hover,.details-modal-footer button[class*=complete]:hover{background:linear-gradient(135deg,#45a049,#3d8b40)}.details-modal-footer .accelerate-button,.details-modal-footer .accelerate-button-small,.details-modal-footer button[class*=accelerate]{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.details-modal-footer .accelerate-button:hover,.details-modal-footer .accelerate-button-small:hover,.details-modal-footer button[class*=accelerate]:hover{background:linear-gradient(135deg,#f57c00,#e65100)}.details-modal-footer .btn-approve-small,.details-modal-footer button[class*=approve]{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.details-modal-footer .btn-approve-small:hover,.details-modal-footer button[class*=approve]:hover{background:linear-gradient(135deg,#45a049,#3d8b40)}.details-modal-footer .btn-reject-small,.details-modal-footer button[class*=reject]{background:linear-gradient(135deg,#f44336,#d32f2f);color:#fff}.details-modal-footer .btn-reject-small:hover,.details-modal-footer button[class*=reject]:hover{background:linear-gradient(135deg,#d32f2f,#c62828)}.details-modal-footer .btn-defer-small,.details-modal-footer button[class*=defer]{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.details-modal-footer .btn-defer-small:hover,.details-modal-footer button[class*=defer]:hover{background:linear-gradient(135deg,#f57c00,#e65100)}.details-modal-footer .btn-accept-small,.details-modal-footer button[class*=accept]{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.details-modal-footer .btn-accept-small:hover,.details-modal-footer button[class*=accept]:hover{background:linear-gradient(135deg,#1976d2,#1565c0)}.details-modal-footer .btn-order-small,.details-modal-footer button[class*=order]{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.details-modal-footer .btn-order-small:hover,.details-modal-footer button[class*=order]:hover{background:linear-gradient(135deg,#f57c00,#e65100)}.details-modal-footer .btn-ready-small,.details-modal-footer button[class*=ready]{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.details-modal-footer .btn-ready-small:hover,.details-modal-footer button[class*=ready]:hover{background:linear-gradient(135deg,#7b1fa2,#6a1b9a)}.details-modal-footer .delete-button-small,.details-modal-footer button[class*=delete]{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff}.details-modal-footer .delete-button-small:hover,.details-modal-footer button[class*=delete]:hover{background:linear-gradient(135deg,#c82333,#bd2130)}.details-section-title{font-size:1.1rem;font-weight:600;color:#333;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid #14b8a6}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.details-item{display:flex;flex-direction:column}.details-label{font-size:.85rem;color:#666;margin-bottom:.25rem;font-weight:500}.details-value{font-size:1rem;color:#333;word-break:break-word}.details-value strong{font-weight:600;color:#14b8a6}@media (max-width: 768px){.details-modal-content{max-width:95vw;max-height:95vh}.details-modal-header{padding:1rem}.details-modal-header h2{font-size:1.25rem}.details-modal-body{padding:1rem}.details-grid{grid-template-columns:1fr}}.ticket-list{display:flex;flex-direction:column;gap:1rem}.ticket-list-empty{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#666}.ticket-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;transition:box-shadow .2s}.ticket-card:hover{box-shadow:0 4px 8px #00000026}.ticket-id{font-weight:700;color:#333;font-size:1.1rem}.ticket-info{margin-bottom:1rem}.info-row{display:flex;margin-bottom:.5rem}.info-label{font-weight:500;color:#666;min-width:100px}.info-value{color:#333}.ticket-description{margin-bottom:1rem;padding:1rem;background-color:#f8f9fa;border-radius:4px}.ticket-description strong{display:block;margin-bottom:.5rem;color:#333}.ticket-description p{color:#555;line-height:1.5;margin:0;white-space:pre-wrap;word-wrap:break-word}.ticket-file{margin-bottom:1rem;padding:.5rem;background-color:#e7f3ff;border-radius:4px}.ticket-file .file-link{color:#06c;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;font-weight:500;transition:color .2s}.ticket-file .file-link:hover{color:#0052a3;text-decoration:underline}.ticket-file .file-link:visited{color:#0052a3}.phone-link,.email-link{color:#2196f3;text-decoration:none;transition:color .2s}.ticket-actions{display:flex;gap:.5rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid #eee}.assign-button,.complete-button{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 4px #0003}.assign-button{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.assign-button:hover{background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-2px);box-shadow:0 4px 8px #2196f366}.complete-button{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;font-weight:600}.complete-button:hover{background:linear-gradient(135deg,#45a049,#3d8b40);transform:translateY(-2px);box-shadow:0 4px 8px #4caf5066}.accelerate-button{padding:.5rem 1rem;background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 4px #ff98004d}.accelerate-button:hover{background:linear-gradient(135deg,#f57c00,#e65100);transform:translateY(-2px);box-shadow:0 4px 8px #ff980066}@media (max-width: 768px){.ticket-card{padding:1rem}.ticket-header{flex-direction:column;align-items:flex-start;gap:.75rem}.ticket-id{font-size:1rem}.info-row{flex-direction:column;gap:.25rem}.info-label{min-width:auto;font-size:.9rem}.info-value{font-size:.9rem}.ticket-description{padding:.75rem;font-size:.9rem}.ticket-actions{flex-direction:column;gap:.5rem}.assign-button,.complete-button,.accelerate-button{width:100%;padding:.6rem}}@media (max-width: 480px){.ticket-card{padding:.75rem}.ticket-id{font-size:.95rem}.info-label,.info-value{font-size:.85rem}.ticket-description{padding:.6rem;font-size:.85rem}}.pagination{display:flex;flex-direction:column;gap:1rem;margin:2rem 0;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.pagination-info{text-align:center;color:#666;font-size:.9rem}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:.5rem;flex-wrap:wrap}.pagination-button{padding:.5rem 1rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.pagination-button:hover:not(:disabled){background:#f5f5f5;border-color:#14b8a6}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-pages{display:flex;gap:.25rem}.pagination-page{min-width:2.5rem;height:2.5rem;padding:.5rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.pagination-page:hover{background:#f5f5f5;border-color:#14b8a6}.pagination-page.active{background:#14b8a6;color:#fff;border-color:#14b8a6;font-weight:700}.pagination-ellipsis{padding:.5rem;color:#666}@media (max-width: 768px){.pagination-controls{gap:.25rem}.pagination-page{min-width:2rem;height:2rem;padding:.25rem;font-size:.8rem}.pagination-button{padding:.4rem .8rem;font-size:.8rem}}.tickets-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto;margin-top:1rem;-webkit-overflow-scrolling:touch}@media (min-width: 1024px){.tickets-table-container{width:calc(100vw - 4rem);max-width:calc(100vw - 4rem);margin-left:auto;margin-right:auto}}.tickets-table{width:100%;border-collapse:collapse;font-size:.9rem}.tickets-table thead{background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.tickets-table th{padding:1rem;text-align:left;font-weight:600;color:#333;white-space:nowrap}.tickets-table th:first-child{max-width:80px;min-width:60px;width:60px;padding:1rem .5rem}.tickets-table td{padding:1rem;border-bottom:1px solid #dee2e6;color:#555}.tickets-table tbody tr.clickable-row{cursor:pointer;transition:background-color .2s ease}.tickets-table tbody tr.clickable-row:hover{background-color:#f0f9ff!important}.tickets-table tbody tr.clickable-row:active{background-color:#e0f2fe!important}.tickets-table td:first-child{padding:1rem .5rem}.tickets-table tbody tr:hover{background-color:#f8f9fa}.tickets-table tbody tr:last-child td{border-bottom:none}.ticket-id-cell{font-weight:600;color:#2196f3;font-size:.75rem;max-width:80px;min-width:60px;width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.assign-button-small{padding:.5rem 1rem;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 4px #2196f34d}.assign-button-small:hover{background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-2px);box-shadow:0 4px 8px #2196f366}.complete-button-small{padding:.5rem 1rem;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 4px #4caf504d}.complete-button-small:hover{background:linear-gradient(135deg,#45a049,#3d8b40);transform:translateY(-2px);box-shadow:0 4px 8px #4caf5066}.accelerate-button-small{padding:.5rem 1rem;background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 4px #ff98004d}.accelerate-button-small:hover{background:linear-gradient(135deg,#f57c00,#e65100);transform:translateY(-2px);box-shadow:0 4px 8px #ff980066}.delete-button-small{padding:.5rem 1rem;background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 4px #dc35454d}.delete-button-small:hover{background:linear-gradient(135deg,#c82333,#bd2130);transform:translateY(-2px);box-shadow:0 4px 8px #dc354566}.file-link{display:inline-flex;align-items:center;gap:.25rem;color:#2196f3;text-decoration:none;font-size:.85rem;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-link:hover{background-color:#e3f2fd;text-decoration:underline}.file-link:visited{color:#1976d2}.phone-link,.email-link{color:#2196f3;text-decoration:none;font-size:.85rem;transition:color .2s}.phone-link:hover,.email-link:hover{color:#0b7dda;text-decoration:underline}.phone-link:visited,.email-link:visited{color:#1976d2}.tickets-table-empty{text-align:center;padding:3rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#666}.table-filters{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1rem}.filter-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:.5rem}.filter-group{display:flex;flex-direction:column;gap:.25rem;min-width:120px}.filter-group.filter-search{flex:1;min-width:200px}.filter-group label{font-size:.85rem;font-weight:500;color:#555}.filter-select,.filter-input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;transition:border-color .2s}.filter-select:focus,.filter-input:focus{outline:none;border-color:#2196f3}.reset-filters-button{padding:.5rem 1rem;background-color:#6c757d;color:#fff;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;transition:background-color .2s;white-space:nowrap;height:fit-content}.reset-filters-button:hover{background-color:#5a6268}.filter-info{font-size:.85rem;color:#666;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #eee}.no-results{text-align:center;padding:2rem;color:#666;font-style:italic}@media (max-width: 1200px){.tickets-table{font-size:.85rem}.tickets-table th,.tickets-table td{padding:.75rem .5rem}.tickets-table th:first-child,.tickets-table td:first-child{max-width:60px;min-width:50px;width:50px;padding:.75rem .25rem}.description-cell{max-width:200px}}@media (max-width: 768px){.tickets-table-container{margin-top:.5rem}.table-filters{padding:1rem}.filter-row{flex-direction:column;gap:.75rem}.filter-group{width:100%;min-width:auto}.filter-group.filter-search{min-width:auto}.reset-filters-button{width:100%}.tickets-table{font-size:.8rem;min-width:600px}.tickets-table th,.tickets-table td{padding:.6rem .4rem}.tickets-table th:first-child,.tickets-table td:first-child{max-width:50px;min-width:40px;width:40px;padding:.6rem .2rem;font-size:.7rem}.description-cell{max-width:150px}.table-actions{flex-direction:column;gap:.4rem}.assign-button-small,.complete-button-small{width:100%;padding:.5rem}}@media (max-width: 480px){.table-filters{padding:.75rem}.tickets-table{font-size:.75rem;min-width:500px}.tickets-table th,.tickets-table td{padding:.5rem .3rem}.tickets-table th:first-child,.tickets-table td:first-child{max-width:40px;min-width:35px;width:35px;padding:.5rem .15rem;font-size:.65rem}.description-cell{max-width:120px}}.table-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.comment-button-small,.assign-button-small,.complete-button-small,.accelerate-button-small,.delete-button-small{padding:.4rem .75rem;font-size:.85rem;border:none;border-radius:4px;cursor:pointer;transition:all .2s;white-space:nowrap;font-weight:500}.comment-button-small{background-color:#3b82f6;color:#fff;padding:.4rem .6rem;font-size:1.1rem}.comment-button-small:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f64d}.assign-button-small{background-color:#14b8a6;color:#fff}.assign-button-small:hover:not(:disabled){background-color:#0d9488;transform:translateY(-1px);box-shadow:0 2px 4px #14b8a64d}.complete-button-small{background-color:#10b981;color:#fff}.complete-button-small:hover:not(:disabled){background-color:#059669;transform:translateY(-1px);box-shadow:0 2px 4px #10b9814d}.accelerate-button-small{background-color:#f59e0b;color:#fff}.accelerate-button-small:hover:not(:disabled){background-color:#d97706;transform:translateY(-1px);box-shadow:0 2px 4px #f59e0b4d}.delete-button-small{background-color:#dc3545;color:#fff}.delete-button-small:hover:not(:disabled){background-color:#c82333;transform:translateY(-1px);box-shadow:0 2px 4px #dc35454d}.file-link-small{padding:.4rem .6rem;background-color:#e7f3ff;color:#06c;border-radius:4px;text-decoration:none;font-size:1.1rem;transition:all .2s;display:inline-block}.file-link-small:hover{background-color:#d0e7ff;transform:translateY(-1px)}.comment-button-small:disabled,.assign-button-small:disabled,.complete-button-small:disabled,.accelerate-button-small:disabled,.delete-button-small:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.requester-view{padding:2rem}@media (min-width: 1024px){.requester-view{max-width:calc(100vw - 4rem);margin-left:auto;margin-right:auto}}.requester-header{margin-bottom:1.5rem;display:flex;justify-content:flex-end}.view-button:hover{border-color:#4caf50;color:#4caf50}.view-button.active{background-color:#4caf50;border-color:#4caf50;color:#fff}.create-ticket-button{padding:.75rem 1.5rem;background-color:#4caf50;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .2s}.create-ticket-button:hover{background-color:#45a049}@media (max-width: 768px){.requester-view{padding:1rem}.requester-header{flex-direction:column;align-items:stretch;gap:1rem}.create-ticket-button{width:100%;padding:.75rem}.view-controls{flex-direction:column;padding:.75rem}.view-button{width:100%;padding:.75rem}.admin-stats{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.stat-card{padding:.6rem .75rem}.stat-card h3{font-size:.7rem;margin-bottom:.4rem}.stat-number{font-size:1.5rem}.tickets-section h2{font-size:1.1rem}}@media (max-width: 480px){.requester-view{padding:.75rem}.admin-stats{grid-template-columns:repeat(2,1fr);gap:.5rem}.stat-card{padding:.5rem .6rem}.stat-card h3{font-size:.65rem}.stat-number{font-size:1.3rem}.tickets-section h2{font-size:1rem;margin-bottom:.75rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:8px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.modal-header h2{margin:0;color:#333;font-size:1.3rem}.close-button{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;line-height:1;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.close-button:hover{color:#333}.modal-body{padding:1.5rem}.ticket-preview{background-color:#f8f9fa;padding:1rem;border-radius:4px;margin-bottom:1.5rem}.ticket-preview p{margin:.5rem 0;color:#555}.phone-link,.email-link,.file-link{color:#2196f3;text-decoration:none;transition:color .2s}.phone-link:hover,.email-link:hover,.file-link:hover{color:#0b7dda;text-decoration:underline}.phone-link:visited,.email-link:visited,.file-link:visited{color:#1976d2}.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.form-group select:focus{outline:none;border-color:#14b8a6}.submit-button{background-color:#2196f3;color:#fff}.submit-button:hover{background-color:#0b7dda}@media (max-width: 768px){.modal-overlay{padding:.75rem}.modal-content{max-width:100%;border-radius:8px}.modal-header{padding:1rem}.modal-header h2{font-size:1.2rem}.close-button{font-size:1.5rem;width:25px;height:25px}.modal-body{padding:1rem}.ticket-preview{padding:.75rem}.ticket-preview p{font-size:.9rem}.form-group{margin-bottom:1.25rem}.form-group label{font-size:.9rem}.form-group select{padding:.6rem;font-size:.95rem}.modal-actions{flex-direction:column;gap:.75rem}.cancel-button,.submit-button{width:100%;padding:.6rem}}@media (max-width: 480px){.modal-overlay{padding:.5rem}.modal-header{padding:.75rem}.modal-header h2{font-size:1.1rem}.modal-body{padding:.75rem}.ticket-preview{padding:.6rem}.ticket-preview p,.form-group label{font-size:.85rem}.form-group select{padding:.5rem;font-size:.9rem}}.user-autocomplete{position:relative;width:100%}.user-autocomplete-input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.user-autocomplete-input:focus{outline:none;border-color:#14b8a6}.user-autocomplete-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.user-autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 4px 16px #0003;max-height:300px;overflow-y:auto;z-index:1000;margin-top:2px;min-width:300px}.user-autocomplete-item{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background-color .15s;display:flex;flex-direction:column;gap:.15rem;min-height:3.5rem}.user-autocomplete-item:last-child{border-bottom:none}.user-autocomplete-item:hover{background-color:#e8f4f8}.user-autocomplete-item:active{background-color:#d0e8f0}.user-autocomplete-name-row{display:flex;align-items:center;width:100%}.user-autocomplete-name{font-weight:500;color:#333;font-size:1rem;line-height:1.5;display:block;width:100%;word-wrap:break-word}.user-autocomplete-email{font-size:.875rem;color:#666;line-height:1.4;display:block;width:100%;word-wrap:break-word}.user-autocomplete-loading{padding:.5rem;text-align:center;color:#666;font-size:.9rem}.user-management{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.add-user-form{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem}.add-user-form input,.add-user-form select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.add-user-form input:focus,.add-user-form select:focus{outline:none;border-color:#14b8a6}.users-table-container{overflow-x:auto;margin-top:1rem}.users-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.users-table thead{background:#14b8a6;color:#fff}.users-table th{padding:1rem;text-align:left;font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.users-table td{padding:1rem;border-bottom:1px solid #e9ecef;color:#333}.users-table tbody tr.clickable-row{cursor:pointer;transition:background-color .2s ease}.users-table tbody tr.clickable-row:hover{background-color:#f0f9ff!important;opacity:1;transform:none}.users-table tbody tr.clickable-row:active{background-color:#e0f2fe!important}.users-table tbody tr.role-admin-it{background:#e0f2fe;border-left:4px solid #0ea5e9}.users-table tbody tr.role-admin-buildings{background:#f0fdf4;border-left:4px solid #22c55e}.users-table tbody tr.role-executor{background:#fef3c7;border-left:4px solid #f59e0b}.users-table tbody tr.role-director{background:#fce7f3;border-left:4px solid #ec4899}.users-table tbody tr.role-financist{background:#e0e7ff;border-left:4px solid #6366f1}.users-table tbody tr.role-referent{background:#f3e8ff;border-left:4px solid #a855f7}.users-table tbody tr.role-vedouci{background:#fff1f2;border-left:4px solid #f43f5e}.users-table tbody tr.role-vedouci_executor{background:#fef3c7;border-left:4px solid #f59e0b;position:relative}.users-table tbody tr.role-vedouci_executor:after{content:"⭐";position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:1rem}.users-table tbody tr.role-property-referent{background:#ecfdf5;border-left:4px solid #10b981}.users-table tbody tr:last-child td{border-bottom:none}.users-table .empty-message{text-align:center;color:#666;font-style:italic;padding:2rem}@media (max-width: 768px){.user-management{padding:1rem}.management-header{flex-direction:column;align-items:flex-start;gap:1rem}.management-header h2{font-size:1.3rem}.add-button{width:100%;padding:.6rem}.add-user-form{padding:1rem}.form-actions{flex-direction:column}.submit-button,.cancel-button{width:100%;padding:.6rem}.users-table-container{overflow-x:scroll}.users-table th,.users-table td{padding:.75rem .5rem;font-size:.9rem}}@media (max-width: 480px){.user-management{padding:.75rem}.management-header h2{font-size:1.2rem}.add-user-form{padding:.75rem}.users-table th,.users-table td{padding:.6rem .4rem;font-size:.85rem}}.add-button{padding:.5rem 1rem;background-color:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.add-button:hover{background-color:#0b7dda}.add-building-form input:focus{outline:none;border-color:#2196f3}.buildings-table-container{overflow-x:auto;margin-top:1rem}.buildings-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.buildings-table thead{background:#14b8a6;color:#fff}.buildings-table th{padding:1rem;text-align:left;font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.buildings-table td{padding:1rem;border-bottom:1px solid #e9ecef;color:#333}.buildings-table tbody tr.clickable-row{cursor:pointer;transition:background-color .2s ease}.buildings-table tbody tr.clickable-row:hover{background-color:#f0f9ff!important}.buildings-table tbody tr.clickable-row:active{background-color:#e0f2fe!important}.buildings-table tbody tr:last-child td{border-bottom:none}.buildings-table .empty-message{text-align:center;color:#666;font-style:italic;padding:2rem}@media (max-width: 768px){.building-management{padding:1rem}.management-header{flex-direction:column;align-items:flex-start;gap:1rem}.management-header h2{font-size:1.3rem}.add-button{width:100%;padding:.6rem}.add-building-form{padding:1rem}.form-actions{flex-direction:column}.submit-button,.cancel-button{width:100%;padding:.6rem}.buildings-table-container{overflow-x:scroll}.buildings-table th,.buildings-table td{padding:.75rem .5rem;font-size:.9rem}}@media (max-width: 480px){.building-management{padding:.75rem}.management-header h2{font-size:1.2rem}.add-building-form{padding:.75rem}.buildings-table th,.buildings-table td{padding:.6rem .4rem;font-size:.85rem}}.centers-table-container{overflow-x:auto;margin-top:1rem}.centers-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.centers-table thead{background:#14b8a6;color:#fff}.centers-table th{padding:1rem;text-align:left;font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.centers-table td{padding:1rem;border-bottom:1px solid #e9ecef;color:#333}.centers-table tbody tr.clickable-row{cursor:pointer;transition:background-color .2s ease}.centers-table tbody tr.clickable-row:hover{background-color:#f0f9ff!important}.centers-table tbody tr.clickable-row:active{background-color:#e0f2fe!important}.centers-table tbody tr:last-child td{border-bottom:none}.centers-table .empty-message{text-align:center;color:#666;font-style:italic;padding:2rem}.building-management{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #eee}.management-header h2{margin:0;color:#333;font-size:1.5rem}.add-button{padding:.5rem 1rem;background-color:#14b8a6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.add-button:hover{background-color:#0d9488}.add-building-form{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem}.add-building-form .form-group{margin-bottom:1rem}.add-building-form label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.add-building-form input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.add-building-form input:focus{outline:none;border-color:#14b8a6}.form-actions{display:flex;gap:.5rem;margin-top:1rem}.submit-button,.cancel-button{padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.submit-button:hover{background-color:#45a049}.empty-message{color:#666;font-style:italic;padding:2rem;text-align:center;background:#f8f9fa;border-radius:6px}.delete-button{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.5rem;transition:transform .2s}.delete-button:hover{transform:scale(1.2)}@media (max-width: 768px){.building-management{padding:1rem}.management-header{flex-direction:column;align-items:flex-start;gap:1rem}.management-header h2{font-size:1.3rem}.add-button{width:100%;padding:.6rem}.add-building-form{padding:1rem}.form-actions{flex-direction:column}.submit-button,.cancel-button{width:100%;padding:.6rem}.centers-table-container{overflow-x:scroll}.centers-table th,.centers-table td{padding:.75rem .5rem;font-size:.9rem}}@media (max-width: 480px){.building-management{padding:.75rem}.management-header h2{font-size:1.2rem}.add-building-form{padding:.75rem}.centers-table th,.centers-table td{padding:.6rem .4rem;font-size:.85rem}}.executor-role-management{padding:2rem;max-width:1400px;margin:0 auto}.management-header{margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.management-header h2{margin:0 0 .5rem;color:#333;font-size:1.5rem}.subtitle{color:#666;font-size:.95rem;margin:0 0 1rem;line-height:1.5}.management-header .add-button{padding:.5rem 1rem;background-color:#14b8a6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s;white-space:nowrap}.management-header .add-button:hover{background-color:#0d9488}.add-user-form{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem;border:1px solid #e9ecef}.add-user-form .form-group{margin-bottom:1rem}.add-user-form label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.add-user-form input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box;transition:border-color .2s}.add-user-form input:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.add-user-form input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.submit-button,.cancel-button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .2s}.submit-button{background-color:#14b8a6;color:#fff}.submit-button:hover:not(:disabled){background-color:#0d9488;transform:translateY(-1px);box-shadow:0 2px 4px #14b8a64d}.cancel-button{background-color:#f44336;color:#fff}.cancel-button:hover:not(:disabled){background-color:#da190b}.users-section{margin-bottom:3rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.users-section h3{color:#333;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:2px solid #e9ecef;font-size:1.3rem}.empty-message{color:#666;font-style:italic;padding:2rem;text-align:center;background:#f9f9f9;border-radius:8px}.executors-table-container{overflow-x:auto;margin-top:1rem}.executors-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.executors-table thead{background:#14b8a6;color:#fff}.executors-table th{padding:1rem;text-align:left;font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.executors-table td{padding:1rem;border-bottom:1px solid #e9ecef;color:#333}.executors-table tbody tr:hover{opacity:.9;transform:scale(1.01);transition:all .2s}.executors-table tbody tr:last-child td{border-bottom:none}.executors-table tbody tr.role-executor{background:#fef3c7;border-left:4px solid #f59e0b}.executors-table tbody tr.role-requester{background:#e0e7ff;border-left:4px solid #6366f1}.executors-table tbody tr.role-admin{background:#dbeafe;border-left:4px solid #3b82f6}.executors-table tbody tr.role-none{background:#f3f4f6;border-left:4px solid #9ca3af}.executors-table .add-button,.executors-table .remove-button{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s;white-space:nowrap;font-weight:500}.executors-table .add-button{background-color:#14b8a6;color:#fff}.executors-table .add-button:hover:not(:disabled){background-color:#0d9488;transform:translateY(-1px);box-shadow:0 2px 4px #14b8a64d}.executors-table .remove-button{background-color:#ef4444;color:#fff}.executors-table .remove-button:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px);box-shadow:0 2px 4px #ef44444d}.add-button:disabled,.remove-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.executor-role-management{padding:1rem}.executors-table-container{overflow-x:scroll}.executors-table th,.executors-table td{padding:.75rem .5rem;font-size:.9rem}.executors-table .add-button,.executors-table .remove-button{padding:.4rem .8rem;font-size:.8rem}}@media (max-width: 480px){.executor-role-management{padding:.75rem}.executors-table th,.executors-table td{padding:.6rem .4rem;font-size:.85rem}.executors-table .add-button,.executors-table .remove-button{padding:.35rem .6rem;font-size:.75rem}}.executor-statistics-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.executor-statistics-content{background:#fff;border-radius:12px;max-width:1200px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d;display:flex;flex-direction:column}.statistics-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #e0e0e0;background:#f8f9fa;border-radius:12px 12px 0 0}.statistics-header h2{margin:0;color:#333;font-size:1.5rem}.close-button{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-button:hover{background:#e0e0e0;color:#333}.statistics-filters{padding:1.5rem;background:#f8f9fa;border-bottom:2px solid #e0e0e0}.filter-section{margin-bottom:1.5rem}.filter-section:last-child{margin-bottom:0}.filter-section h3{margin:0 0 1rem;color:#333;font-size:1.1rem}.executors-list{display:flex;flex-wrap:wrap;gap:1rem;max-height:200px;overflow-y:auto;padding:.5rem;background:#fff;border-radius:8px;border:1px solid #dee2e6}.executor-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s}.executor-checkbox:hover{background-color:#f0f0f0}.executor-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.date-filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.date-input-group{display:flex;flex-direction:column;gap:.5rem}.date-input-group label{font-weight:500;color:#555;font-size:.9rem}.date-input{padding:.5rem;border:1px solid #dee2e6;border-radius:6px;font-size:1rem;min-width:150px}.date-input:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.clear-filters-button{padding:.5rem 1rem;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.clear-filters-button:hover{background:#5a6268}.overall-stats{padding:1.5rem;border-bottom:2px solid #e0e0e0}.overall-stats h3{margin:0 0 1rem;color:#333;font-size:1.2rem}.overall-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stat-card{background:linear-gradient(135deg,#14b8a6,#0d9488);color:#fff;padding:1.5rem;border-radius:8px;text-align:center;box-shadow:0 2px 8px #0000001a}.stat-card .stat-label{font-size:.9rem;opacity:.9;margin-bottom:.5rem}.stat-card .stat-value{font-size:2rem;font-weight:700}.executors-stats-table{padding:1.5rem}.executors-stats-table h3{margin:0 0 1rem;color:#333;font-size:1.2rem}.stats-table{width:100%;border-collapse:collapse;background:#fff;box-shadow:0 2px 4px #0000001a;border-radius:8px;overflow:hidden}.stats-table thead{background:#f8f9fa}.stats-table th{padding:1rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #dee2e6;font-size:.95rem}.stats-table td{padding:1rem;border-bottom:1px solid #e9ecef;color:#333}.stats-table tbody tr:hover{background:#f8f9fa}.stats-table tbody tr:last-child td{border-bottom:none}.executor-name{font-weight:600;color:#14b8a6}.completion-rate{display:flex;align-items:center;gap:.75rem}.rate-value{font-weight:600;min-width:45px;color:#333}.rate-bar{flex:1;height:20px;background:#e9ecef;border-radius:10px;overflow:hidden;max-width:200px}.rate-bar-fill{height:100%;background:linear-gradient(90deg,#14b8a6,#0d9488);transition:width .3s ease}.no-stats{padding:3rem;text-align:center;color:#666}@media (max-width: 768px){.executor-statistics-modal{padding:1rem}.executor-statistics-content{max-height:95vh}.overall-stats-grid{grid-template-columns:repeat(2,1fr)}.date-filters{flex-direction:column;align-items:stretch}.date-input{width:100%}.stats-table{font-size:.85rem}.stats-table th,.stats-table td{padding:.75rem .5rem}}.it-admin-info-editor{padding:2rem;max-width:1200px;margin:0 auto}.editor-header{margin-bottom:2rem}.it-admin-info-editor h2{color:#333;margin-bottom:.5rem}.it-admin-info-editor h3{color:#667eea;margin-top:2rem;margin-bottom:1rem;font-size:1.3rem}.blocks-container{margin-bottom:2rem}.block-editor{margin-bottom:2rem;border:2px solid #e0e0e0;border-radius:8px;padding:1.5rem;background:#fafafa}.block-header{display:flex;justify-content:flex-end;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #ddd}.block-controls{display:flex;gap:.5rem}.move-button,.add-subblock-button,.delete-button{padding:.5rem 1rem;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:.9rem;transition:all .2s}.move-button:hover,.add-subblock-button:hover{background:#f0f0f0;border-color:#667eea}.editor-section{margin-bottom:1rem;padding:1.5rem;background:#fff;border-radius:8px;border-left:4px solid #667eea}.editor-section label{display:block;margin-bottom:.5rem;color:#333;font-weight:500;font-size:.9rem;margin-top:1rem}.editor-section label:first-child{margin-top:0}.editor-textarea,.editor-input,.editor-select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;margin-bottom:1rem;box-sizing:border-box}.editor-textarea:focus,.editor-input:focus,.editor-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.list-item,.faq-item,.wifi-item{margin-bottom:1rem;padding:1rem;border:1px solid #e0e0e0;border-radius:6px;background:#f9f9f9;display:flex;flex-direction:column;gap:.5rem}.list-item{display:flex;flex-direction:row;align-items:center;gap:.5rem}.list-item .editor-input{flex:1;margin-bottom:0}.add-item-button,.add-block-button{padding:.75rem 1.5rem;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;margin-top:.5rem;transition:background .2s}.add-item-button:hover,.add-block-button:hover{background:#5568d3}.remove-item-button{padding:.5rem 1rem;background:#fee;color:#c00;border:1px solid #fcc;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.remove-item-button:hover{background:#fcc;border-color:red}.subblocks-container{margin-top:2rem;padding-top:2rem;border-top:2px dashed #ddd}.subblocks-container h4{color:#667eea;margin-bottom:1rem}.subblock-editor{margin-bottom:1rem;padding:1rem;background:#f5f5f5;border-radius:6px;border-left:3px solid #999}.subblock-header{display:flex;gap:.5rem;margin-bottom:.5rem}.subblock-header .editor-input{flex:1;margin-bottom:0}.add-block-section{margin-top:3rem;padding:2rem;background:#f0f0f0;border-radius:8px;border:2px dashed #667eea}.add-block-section h3{margin-top:0;margin-bottom:1rem}.add-block-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.save-button,.preview-button{padding:.75rem 2rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.save-button{background:#10b981;color:#fff}.preview-button{background:#667eea;color:#fff}.preview-button:hover{background:#5568d3}.loading{text-align:center;padding:3rem;color:#666;font-size:1.2rem}.weekly-news-editor{padding:2rem;max-width:1000px;margin:0 auto}.weekly-news-editor h2{color:#333;margin-bottom:.5rem}.weekly-news-editor-loading{text-align:center;padding:3rem;color:#666}.editor-section{margin-bottom:2rem;padding:1.5rem;background:#f8f9fa;border-radius:8px;border-left:4px solid #667eea}.editor-section label{display:block;margin-bottom:.5rem;color:#333;font-weight:500;font-size:.9rem}.editor-input,.editor-textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;margin-bottom:1rem;box-sizing:border-box}.editor-textarea{min-height:100px;resize:vertical}.editor-input:focus,.editor-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.news-items-container{margin-bottom:2rem}.news-item-editor{margin-bottom:2rem;padding:1.5rem;background:#fff;border:2px solid #e0e0e0;border-radius:8px}.news-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #ddd}.news-item-header h4{margin:0;color:#667eea;font-size:1.1rem}.news-item-controls{display:flex;gap:.5rem}.move-button,.delete-button{padding:.5rem 1rem;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:.9rem;transition:all .2s}.move-button:hover{background:#f0f0f0;border-color:#667eea}.delete-button:hover{background:#fee;border-color:red}.move-button:disabled{opacity:.5;cursor:not-allowed}.add-news-button{padding:.75rem 1.5rem;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;margin-bottom:2rem;transition:background .2s}.add-news-button:hover{background:#5568d3}.editor-actions{margin-top:2rem;display:flex;gap:1rem;padding-top:2rem;border-top:2px solid #ddd}.save-button{padding:.75rem 2rem;background:#10b981;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.save-button:hover:not(:disabled){background:#059669}.school-employees-editor{padding:2rem;max-width:1400px}.school-employees-editor h2{margin-top:0;margin-bottom:1.5rem;color:#333}.editor-controls{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:center}.search-input{flex:1;padding:.75rem;font-size:1rem;border:1px solid #ddd;border-radius:6px}.refresh-btn{padding:.75rem 1.5rem;background:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem}.refresh-btn:hover{background:#1976d2}.add-btn{padding:.75rem 1.5rem;background:#10b981;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600}.add-btn:hover:not(:disabled){background:#059669}.add-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.employees-table-wrapper{overflow-x:auto;border:1px solid #ddd;border-radius:6px}.employees-table{width:100%;border-collapse:collapse;background:#fff}.employees-table thead{background:#6c5ce7;color:#fff}.employees-table th{padding:1rem;text-align:left;font-weight:600}.employees-table td{padding:1rem;border-bottom:1px solid #eee}.employees-table tbody tr:hover{background:#f8f9fa}.employees-table tbody tr:last-child td{border-bottom:none}.adding-row{background:#e8f5e9!important}.adding-row td{border-bottom:2px solid #4caf50!important}.edit-input{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem}.edit-btn,.save-btn,.cancel-btn,.delete-btn{padding:.5rem 1rem;margin:0 .25rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.edit-btn{background:#ffc107;color:#000}.edit-btn:hover{background:#ffb300}.save-btn{background:#4caf50;color:#fff}.save-btn:hover{background:#45a049}.cancel-btn{background:#f44336;color:#fff}.cancel-btn:hover{background:#da190b}.delete-btn{background:#f44336;color:#fff}.delete-btn:hover{background:#da190b}.editor-info{margin-top:1.5rem;padding:1rem;background:#f8f9fa;border-radius:6px;color:#666}.loading{padding:2rem;text-align:center;color:#666}.database-backup-container{padding:2rem;max-width:800px;margin:0 auto}.database-backup-container h2{color:#2c3e50;margin-bottom:2rem;font-size:1.8rem}.backup-section,.restore-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 4px #0000001a}.backup-section h3,.restore-section h3{color:#2c3e50;margin-bottom:1rem;font-size:1.4rem}.section-description{color:#666;margin-bottom:1.5rem;line-height:1.6}.section-description.warning{color:#d32f2f;background:#ffebee;padding:1rem;border-radius:4px;border-left:4px solid #d32f2f}.backup-button,.restore-button{background:#14b8a6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:background .3s;font-weight:500}.backup-button:hover:not(:disabled){background:#0d9488}.restore-button{background:#ef4444}.restore-button:hover:not(:disabled){background:#dc2626}.backup-button:disabled,.restore-button:disabled{background:#ccc;cursor:not-allowed}.file-input-container{margin-bottom:1.5rem}.file-input{width:100%;padding:.75rem;border:2px dashed #14b8a6;border-radius:6px;background:#f0fdfa;cursor:pointer;font-size:1rem}.file-input:hover{background:#e0f2f1;border-color:#0d9488}.selected-file{margin-top:1rem;padding:1rem;background:#e8f5e9;border-radius:4px;border-left:4px solid #4caf50;display:flex;justify-content:space-between;align-items:center}.selected-file span{color:#2e7d32;font-weight:500}.file-size{color:#666;font-size:.9rem}.message{padding:1rem;border-radius:6px;margin-top:1.5rem;font-weight:500}.message.success{background:#e8f5e9;color:#2e7d32;border-left:4px solid #4caf50}.message.error{background:#ffebee;color:#d32f2f;border-left:4px solid #d32f2f}.notes-panel{padding:2rem;max-width:1200px;margin:0 auto}.notes-panel-loading{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e0e0e0}.notes-header h2{color:#333;margin:0;font-size:1.8rem}.create-note-button{padding:.75rem 1.5rem;background:#14b8a6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.create-note-button:hover{background:#0d9488;transform:translateY(-2px);box-shadow:0 4px 8px #14b8a64d}.create-note-button:active{transform:translateY(0)}.notes-controls{display:flex;gap:1rem;margin-bottom:2rem;align-items:center}.search-input{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;font-family:inherit}.search-input:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.order-select{padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;font-family:inherit;background:#fff;cursor:pointer}.order-select:focus{outline:none;border-color:#14b8a6}.order-dir-button{padding:.75rem 1rem;border:1px solid #ddd;border-radius:8px;background:#fff;font-size:1.2rem;cursor:pointer;transition:all .2s}.order-dir-button:hover{background:#f0f0f0;border-color:#14b8a6}.notes-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.notes-empty{grid-column:1 / -1;text-align:center;padding:3rem;color:#666;font-size:1.1rem;background:#f8f9fa;border-radius:8px}.note-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:1.5rem;transition:all .2s;display:flex;flex-direction:column;gap:1rem;position:relative}.note-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.note-card.pinned{border-color:#ffd43b;background:#fffef7}.note-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.note-title{margin:0;color:#333;font-size:1.2rem;font-weight:600;flex:1;word-break:break-word}.note-actions{display:flex;gap:.5rem}.pin-button,.edit-button,.delete-button{padding:.5rem;border:none;background:transparent;cursor:pointer;font-size:1.2rem;transition:all .2s;border-radius:6px}.pin-button:hover{background:#fff9e6}.edit-button:hover{background:#e7f5ff}.delete-button:hover{background:#ffe0e0}.pin-button.pinned{opacity:1}.note-content{color:#555;line-height:1.6;flex:1;overflow:hidden;word-wrap:break-word}.note-content *{margin:0;padding:0}.note-content p{margin-bottom:.5rem}.note-content h1,.note-content h2,.note-content h3{margin-top:1rem;margin-bottom:.5rem;font-weight:600}.note-content ul,.note-content ol{margin-left:1.5rem;margin-bottom:.5rem}.note-footer{padding-top:1rem;border-top:1px solid #e0e0e0;margin-top:auto}.note-date{font-size:.85rem;color:#888}.note-card.note-color-red{border-left-color:#ff6b6b}.note-card.note-color-blue{border-left-color:#4dabf7}.note-card.note-color-green{border-left-color:#51cf66}.note-card.note-color-yellow{border-left-color:#ffd43b}.note-card.note-color-purple{border-left-color:#9775fa}.note-card.note-color-orange{border-left-color:#ff922b}.note-card.note-color-pink{border-left-color:#f783ac}.note-card.note-color-gray{border-left-color:#adb5bd}.note-editor{background:#fff;border:2px solid #14b8a6;border-radius:12px;padding:2rem;margin-bottom:2rem}.editor-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.editor-title-input{width:100%;padding:1rem;border:2px solid #ddd;border-radius:8px;font-size:1.2rem;font-weight:600;font-family:inherit}.editor-title-input:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.editor-actions-top{display:flex;gap:1rem;align-items:center}.pin-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.95rem}.pin-checkbox input[type=checkbox]{width:1.2rem;height:1.2rem;cursor:pointer}.color-tag-select{padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;font-family:inherit;background:#fff;cursor:pointer}.color-tag-select:focus{outline:none;border-color:#14b8a6}.rich-text-toolbar{display:flex;gap:.5rem;padding:.75rem;background:#f8f9fa;border:1px solid #ddd;border-radius:8px 8px 0 0;margin-bottom:-1px;flex-wrap:wrap}.toolbar-button{padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:1rem;transition:all .2s;min-width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center}.toolbar-button:hover{background:#e9ecef;border-color:#14b8a6}.toolbar-button:active{background:#dee2e6}.toolbar-separator{width:1px;background:#ddd;margin:0 .25rem}.rich-text-editor{padding:1rem;border:1px solid #ddd;border-radius:0 0 8px 8px;font-size:1rem;font-family:inherit;line-height:1.6;outline:none;min-height:200px;max-height:400px;overflow-y:auto}.rich-text-editor:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.rich-text-editor *{margin:0;padding:0}.rich-text-editor p{margin-bottom:.5rem}.rich-text-editor h1,.rich-text-editor h2,.rich-text-editor h3{margin-top:1rem;margin-bottom:.5rem;font-weight:600}.rich-text-editor ul,.rich-text-editor ol{margin-left:1.5rem;margin-bottom:.5rem}.editor-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.cancel-button{padding:.75rem 1.5rem;border:1px solid #ddd;border-radius:8px;background:#fff;color:#666;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.cancel-button:hover{background:#f0f0f0;border-color:#999}.save-button{padding:.75rem 1.5rem;border:none;border-radius:8px;background:#14b8a6;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.save-button:hover:not(:disabled){background:#0d9488;transform:translateY(-2px);box-shadow:0 4px 8px #14b8a64d}.save-button:active:not(:disabled){transform:translateY(0)}.save-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.notes-panel{padding:1rem}.notes-header{flex-direction:column;align-items:flex-start;gap:1rem}.create-note-button{width:100%}.notes-controls{flex-direction:column;align-items:stretch}.notes-list{grid-template-columns:1fr}.editor-actions-top{flex-direction:column;align-items:stretch}.rich-text-toolbar{justify-content:center}}.purchase-request-history{margin-top:1rem;padding:1rem;background:#f9f9f9;border-radius:8px;border:1px solid #e0e0e0}.purchase-request-history h3{margin:0 0 1rem;color:#333;font-size:1rem;font-weight:600}.history-loading,.history-empty{padding:1rem;text-align:center;color:#666;font-style:italic}.history-table{width:100%;border-collapse:collapse;font-size:.85rem;background:#fff;border-radius:4px;overflow:hidden}.history-table thead{background:#f5f5f5}.history-table th{padding:.5rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #ddd;font-size:.8rem}.history-table td{padding:.5rem;border-bottom:1px solid #eee;color:#555}.history-table tbody tr:hover{background:#f9f9f9}.history-table tbody tr:last-child td{border-bottom:none}.cancel-request-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.cancel-request-modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.cancel-request-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.cancel-request-modal-header h2{margin:0;font-size:1.5rem;color:#333}.cancel-request-modal-close{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.cancel-request-modal-close:hover{background-color:#f0f0f0}.cancel-request-modal-body{padding:1.5rem}.cancel-request-subject{margin-bottom:1rem;padding:.75rem;background-color:#f5f5f5;border-radius:4px;font-size:.9rem}.cancel-request-subject strong{color:#333}.cancel-request-warning{margin-bottom:1.5rem;padding:1rem;background-color:#fff3cd;border-left:4px solid #ffc107;border-radius:4px;color:#856404;font-size:.9rem}.cancel-request-form-group{margin-bottom:1rem}.cancel-request-form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.cancel-request-form-group .required{color:#dc3545}.cancel-request-form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;font-family:inherit;resize:vertical;min-height:100px}.cancel-request-form-group textarea:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a}.cancel-request-form-group textarea.error{border-color:#dc3545}.cancel-request-error{margin-top:.5rem;color:#dc3545;font-size:.85rem}.cancel-request-modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #eee}.btn-cancel{padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.btn-cancel:hover{background-color:#5a6268}.btn-confirm-cancel{padding:.75rem 1.5rem;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.btn-confirm-cancel:hover{background-color:#c82333}@media (max-width: 768px){.cancel-request-modal-content{width:95%;max-height:95vh}.cancel-request-modal-header,.cancel-request-modal-body{padding:1rem}.cancel-request-modal-footer{padding:1rem;flex-direction:column}.btn-cancel,.btn-confirm-cancel{width:100%}}.purchase-request-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;margin-bottom:1rem;box-shadow:0 2px 4px #0000001a;transition:box-shadow .2s}.purchase-request-card:hover{box-shadow:0 4px 8px #00000026}.request-id{font-weight:600;color:#666;font-size:.9rem}.status-badge{padding:.25rem .75rem;border-radius:4px;font-size:.85rem;font-weight:500}.status-accepted{background-color:#e1f5fe;color:#0277bd}.status-ordered{background-color:#f3e5f5;color:#7b1fa2}.status-ready{background-color:#fff9c4;color:#f57f17}.request-info{margin-bottom:.75rem}.info-row{display:flex;margin-bottom:.5rem;gap:.5rem}.info-label{font-weight:600;color:#555;min-width:120px;flex-shrink:0}.info-value{color:#333;flex-grow:1;word-break:break-word}.spoiler-toggle{width:100%;padding:.5rem;margin-top:.5rem;background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#555;transition:background-color .2s}.spoiler-toggle:hover{background-color:#eee}.spoiler-toggle span:first-child{font-size:.75rem;transition:transform .2s}.request-details-expanded{margin-top:1rem;padding-top:1rem;border-top:1px solid #e0e0e0;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.details-section{margin-bottom:1.5rem}.details-section:last-child{margin-bottom:0}.details-section h4{margin:0 0 .75rem;font-size:1rem;color:#333;font-weight:600;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.btn-action,.btn-approve,.btn-reject,.btn-defer,.btn-accept,.btn-order,.btn-ready,.btn-complete,.btn-delete,.btn-print,.btn-cancel,.btn-approve-small,.btn-reject-small,.btn-defer-small,.btn-accept-small,.btn-order-small,.btn-ready-small,.btn-complete-small,.btn-delete-small,.btn-print-small,.btn-approve-modal,.btn-reject-modal,.btn-defer-modal,.btn-accept-modal,.btn-order-modal,.btn-ready-modal,.btn-complete-modal,.btn-delete-modal,.delete-button{padding:.6rem 1.2rem;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 4px #0003;display:inline-flex;align-items:center;justify-content:center;min-width:100px}.btn-approve-small,.btn-reject-small,.btn-defer-small,.btn-accept-small,.btn-order-small,.btn-ready-small,.btn-complete-small,.btn-delete-small,.btn-print-small{padding:.4rem .8rem;font-size:.85rem;min-width:auto;margin:0 .25rem}.btn-approve,.btn-approve-small,.btn-approve-modal{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.btn-approve:hover,.btn-approve-small:hover,.btn-approve-modal:hover{background:linear-gradient(135deg,#45a049,#3d8b40);transform:translateY(-2px);box-shadow:0 4px 8px #4caf5066}.btn-reject,.btn-reject-small,.btn-reject-modal{background:linear-gradient(135deg,#f44336,#d32f2f);color:#fff}.btn-reject:hover,.btn-reject-small:hover,.btn-reject-modal:hover{background:linear-gradient(135deg,#d32f2f,#c62828);transform:translateY(-2px);box-shadow:0 4px 8px #f4433666}.btn-defer,.btn-defer-small,.btn-defer-modal{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.btn-defer:hover,.btn-defer-small:hover,.btn-defer-modal:hover{background:linear-gradient(135deg,#f57c00,#e65100);transform:translateY(-2px);box-shadow:0 4px 8px #ff980066}.btn-accept,.btn-accept-small,.btn-accept-modal{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.btn-accept:hover,.btn-accept-small:hover,.btn-accept-modal:hover{background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-2px);box-shadow:0 4px 8px #2196f366}.btn-order,.btn-order-small,.btn-order-modal{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.btn-order:hover,.btn-order-small:hover,.btn-order-modal:hover{background:linear-gradient(135deg,#f57c00,#e65100);transform:translateY(-2px);box-shadow:0 4px 8px #ff980066}.btn-ready,.btn-ready-small,.btn-ready-modal{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.btn-ready:hover,.btn-ready-small:hover,.btn-ready-modal:hover{background:linear-gradient(135deg,#7b1fa2,#6a1b9a);transform:translateY(-2px);box-shadow:0 4px 8px #9c27b066}.btn-complete,.btn-complete-small,.btn-complete-modal{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;font-weight:600}.btn-complete:hover,.btn-complete-small:hover,.btn-complete-modal:hover{background:linear-gradient(135deg,#45a049,#3d8b40);transform:translateY(-2px);box-shadow:0 4px 8px #4caf5066}.btn-delete,.btn-delete-small,.btn-delete-modal,.delete-button{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff}.btn-delete:hover,.btn-delete-small:hover,.btn-delete-modal:hover,.delete-button:hover{background:linear-gradient(135deg,#c82333,#bd2130);transform:translateY(-2px);box-shadow:0 4px 8px #dc354566}.btn-print,.btn-print-small{background:linear-gradient(135deg,#14b8a6,#0d9488);color:#fff}.btn-print:hover,.btn-print-small:hover{background:linear-gradient(135deg,#0d9488,#0f766e);transform:translateY(-2px);box-shadow:0 4px 8px #14b8a666}.btn-cancel{background:linear-gradient(135deg,#9e9e9e,#757575);color:#fff}.btn-cancel:hover{background:linear-gradient(135deg,#757575,#616161);transform:translateY(-2px);box-shadow:0 4px 8px #9e9e9e66}.table-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.request-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid #e0e0e0;display:flex;gap:.5rem;flex-wrap:wrap}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}@media (max-width: 768px){.btn-action,.btn-approve,.btn-reject,.btn-defer,.btn-accept,.btn-order,.btn-ready,.btn-complete,.btn-delete,.btn-print,.btn-cancel{padding:.5rem 1rem;font-size:.85rem;min-width:80px}.table-actions{flex-direction:column;width:100%}.table-actions button{width:100%}.request-actions{flex-direction:column}.request-actions button{width:100%}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}.suppliers-management{padding:2rem;max-width:1200px;margin:0 auto}.suppliers-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.suppliers-header h2{margin:0;color:#333;font-size:1.8rem}.add-supplier-button{padding:.75rem 1.5rem;background:#28a745;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;font-weight:500}.add-supplier-button:hover{background:#218838;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.add-supplier-form{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem;border:2px solid #dee2e6}.add-supplier-form .form-row{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1rem}.add-supplier-form .form-group{display:flex;flex-direction:column}.add-supplier-form label{font-weight:600;margin-bottom:.5rem;color:#495057}.add-supplier-form input{padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:1rem}.add-supplier-form .required{color:#dc3545}.add-supplier-form .form-actions{display:flex;gap:1rem}.add-supplier-form .submit-button{padding:.75rem 2rem;background:#007bff;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background .2s}.add-supplier-form .submit-button:hover{background:#0056b3}.add-supplier-form .submit-button:disabled{background:#6c757d;cursor:not-allowed}.suppliers-search{margin-bottom:1.5rem}.suppliers-search .search-input{width:100%;padding:.75rem 1rem;border:2px solid #dee2e6;border-radius:8px;font-size:1rem}.suppliers-search .search-input:focus{outline:none;border-color:#007bff}.loading{text-align:center;padding:3rem;color:#6c757d;font-size:1.1rem}.no-suppliers{text-align:center;padding:3rem;color:#6c757d;background:#f8f9fa;border-radius:8px;font-size:1.1rem}.suppliers-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.suppliers-table thead{background:#007bff;color:#fff}.suppliers-table th{padding:1rem;text-align:left;font-weight:600}.suppliers-table td{padding:1rem;border-bottom:1px solid #dee2e6}.suppliers-table tbody tr:hover{background:#f8f9fa}.suppliers-table tbody tr:last-child td{border-bottom:none}.supplier-name{font-weight:500;color:#333}.supplier-ico{color:#6c757d;font-family:monospace}.supplier-date{color:#6c757d}.supplier-actions{text-align:right}.delete-button{padding:.5rem 1rem;background:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .2s;font-size:.9rem}.delete-button:hover{background:#c82333}.suppliers-info{margin-top:2rem;padding:1rem;background:#e7f3ff;border-radius:8px;text-align:center}.suppliers-info p{margin:0;color:#004085;font-size:1.1rem}.suppliers-info strong{font-size:1.3rem;color:#007bff}@media (max-width: 768px){.suppliers-management{padding:1rem}.suppliers-header{flex-direction:column;gap:1rem;align-items:stretch}.add-supplier-form .form-row{grid-template-columns:1fr}.suppliers-table{font-size:.9rem}.suppliers-table th,.suppliers-table td{padding:.75rem .5rem}}.admin-view{padding:2rem;max-width:1400px;margin:0 auto}@media (min-width: 1024px){.admin-view{max-width:calc(100vw - 4rem);width:calc(100vw - 4rem)}}.admin-info{background:#fff;padding:1rem 1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.5rem}.admin-info p{margin:0;color:#333}.admin-type-badge{display:inline-block;padding:.25rem .75rem;background-color:#e7f3ff;color:#06c;border-radius:12px;font-size:.85rem;font-weight:500}.view-button:hover{border-color:#2196f3;color:#2196f3}.view-button.active{background-color:#2196f3;border-color:#2196f3;color:#fff}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.tab-button{flex:1;padding:.75rem 1rem;border:2px solid #dee2e6;background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s;color:#666}.tab-button:hover{border-color:#2196f3;color:#2196f3}.tab-button.active{background-color:#2196f3;border-color:#2196f3;color:#fff}@media (max-width: 768px){.admin-view{padding:1rem}.admin-info{padding:.75rem 1rem;font-size:.9rem}.view-controls{flex-direction:column;padding:.75rem}.view-button{width:100%;padding:.75rem}.admin-tabs{flex-direction:column;gap:.5rem}.tab-button{width:100%;padding:.75rem}.admin-stats{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.stat-card{padding:.6rem .75rem}.stat-card h3{font-size:.7rem;margin-bottom:.4rem}.stat-number{font-size:1.5rem}.tickets-section h2{font-size:1.1rem}}@media (max-width: 480px){.admin-view{padding:.75rem}.admin-info{padding:.6rem .75rem;font-size:.85rem}.admin-stats{grid-template-columns:repeat(2,1fr);gap:.5rem}.stat-card{padding:.5rem .6rem}.stat-card h3{font-size:.65rem}.stat-number{font-size:1.3rem}.tickets-section h2{font-size:1rem;margin-bottom:.75rem}}.purchase-requests-management{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.purchase-requests-admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.purchase-requests-admin-table thead{background-color:#f5f5f5}.purchase-requests-admin-table th{padding:.75rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #ddd}.purchase-requests-admin-table td{padding:.75rem;border-bottom:1px solid #eee;vertical-align:top}.purchase-requests-admin-table tbody tr:hover{background-color:#f9f9f9}.purchase-requests-admin-table .status-badge{display:inline-block;padding:.25rem .6rem;border-radius:12px;font-size:.8rem;font-weight:500}.settings-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.settings-subtabs{display:flex;gap:.5rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e9ecef;flex-wrap:wrap}.subtab-button{padding:.75rem 1.5rem;border:2px solid #dee2e6;background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s;color:#666;white-space:nowrap}.subtab-button:hover{border-color:#14b8a6;color:#14b8a6}.subtab-button.active{background-color:#14b8a6;border-color:#14b8a6;color:#fff}.settings-content{min-height:400px}@media (max-width: 768px){.settings-subtabs{flex-direction:column;gap:.5rem}.subtab-button{width:100%;padding:.75rem}}.executor-view{padding:2rem}@media (min-width: 1024px){.executor-view{max-width:calc(100vw - 4rem);margin-left:auto;margin-right:auto}}.executor-header{margin-bottom:1.5rem}.view-button:hover{border-color:#ff9800;color:#ff9800}.view-button.active{background-color:#ff9800;border-color:#ff9800;color:#fff}.executor-header h2{color:#333;font-size:1.5rem}@media (max-width: 768px){.executor-view{padding:1rem}.view-controls{flex-direction:column;padding:.75rem}.view-button{width:100%;padding:.75rem}.admin-stats{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.stat-card{padding:.6rem .75rem}.stat-card h3{font-size:.7rem;margin-bottom:.4rem}.stat-number{font-size:1.5rem}.tickets-section h2{font-size:1.1rem}.executor-header h2{font-size:1.2rem}}@media (max-width: 480px){.executor-view{padding:.75rem}.admin-stats{grid-template-columns:repeat(2,1fr);gap:.5rem}.stat-card{padding:.5rem .6rem}.stat-card h3{font-size:.65rem}.stat-number{font-size:1.3rem}.tickets-section h2{font-size:1rem;margin-bottom:.75rem}.executor-header h2{font-size:1.1rem}}.supplier-selector-modal{max-width:600px;max-height:80vh}.supplier-search{margin-bottom:1rem}.supplier-search .search-input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box}.supplier-search .search-input:focus{outline:none;border-color:#14b8a6}.suppliers-list{max-height:400px;overflow-y:auto;border:1px solid #ddd;border-radius:6px}.supplier-item{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid #eee;transition:background-color .2s}.supplier-item:last-child{border-bottom:none}.supplier-item:hover{background-color:#f5f5f5}.supplier-info{display:flex;flex-direction:column;gap:.25rem}.supplier-name{font-size:1rem;color:#333;font-weight:500}.supplier-ico{font-size:.85rem;color:#666;font-family:monospace}.no-suppliers{padding:2rem;text-align:center;color:#666;font-style:italic}.create-purchase-request-form{padding:2rem;max-width:800px;margin:0 auto}.form-container{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 12px #0000001a}.form-container h2{color:#333;margin-bottom:1.5rem;font-size:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500;font-size:.95rem}.form-group input[type=text],.form-group input[type=number],.form-group input[type=tel],.form-group select,.form-group textarea{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s;font-family:inherit}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group input[type=tel]:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#14b8a6}.form-group textarea{resize:vertical;min-height:100px}.form-group input[type=file]{padding:.5rem;border:2px dashed #ddd;border-radius:6px;background:#f9f9f9;cursor:pointer;width:100%}.file-name{margin-top:.5rem;color:#666;font-size:.9rem}.form-actions{display:flex;gap:1rem;margin-top:2rem;justify-content:flex-end}.submit-button{padding:.75rem 2rem;background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,opacity .2s}.submit-button:hover:not(:disabled){transform:scale(1.05)}.cancel-button{padding:.75rem 2rem;background:#f5f5f5;color:#666;border:2px solid #ddd;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.cancel-button:hover:not(:disabled){background:#e9e9e9}.cancel-button:disabled{opacity:.6;cursor:not-allowed}.loading{text-align:center;padding:3rem;color:#666}.supplier-select-button{padding:.75rem 1rem;background:#14b8a6;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s,transform .2s;white-space:nowrap}.supplier-select-button:hover{background:#0d9488;transform:scale(1.02)}@media (max-width: 768px){.create-purchase-request-form{padding:1rem}.form-container{padding:1.5rem}.form-container h2{font-size:1.3rem}.form-group{margin-bottom:1.25rem}.form-group label{font-size:.9rem}.form-group input[type=text],.form-group input[type=number],.form-group input[type=tel],.form-group select,.form-group textarea{padding:.6rem;font-size:.95rem}.form-actions{flex-direction:column;gap:.75rem}.submit-button,.cancel-button{width:100%;padding:.75rem}}@media (max-width: 480px){.create-purchase-request-form{padding:.75rem}.form-container{padding:1rem}.form-container h2{font-size:1.2rem}.form-group label{font-size:.85rem}.form-group input[type=text],.form-group input[type=number],.form-group input[type=tel],.form-group select,.form-group textarea{padding:.5rem;font-size:.9rem}}.purchase-requests-table-container{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.purchase-requests-table th.hidden-column,.purchase-requests-table td.hidden-column{display:none!important;width:0!important;padding:0!important;margin:0!important;border:none!important}@media (min-width: 1024px){.purchase-requests-table-container{width:calc(100vw - 4rem);max-width:calc(100vw - 4rem);margin-left:auto;margin-right:auto}}.table-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.5rem;min-width:150px}.filter-group label{font-size:.85rem;font-weight:500;color:#666}.filter-group select,.filter-group input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.filter-group input{min-width:200px}.reset-filters-btn{padding:.5rem 1rem;background-color:#9e9e9e;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;height:fit-content;transition:background-color .2s}.reset-filters-btn:hover{background-color:#757575}.table-container-wrapper{position:relative}.table-scroll-top{overflow-x:auto;overflow-y:hidden;margin-bottom:0;max-width:100%;height:20px;scrollbar-width:thin;scrollbar-color:#ccc transparent}.table-scroll-top::-webkit-scrollbar{height:8px}.table-scroll-top::-webkit-scrollbar-track{background:transparent}.table-scroll-top::-webkit-scrollbar-thumb{background-color:#ccc;border-radius:4px}.table-scroll-top::-webkit-scrollbar-thumb:hover{background-color:#999}.table-scroll-spacer{min-width:2400px;height:1px}.table-wrapper{overflow-x:auto;margin-bottom:1rem;max-width:100%;scrollbar-width:thin;scrollbar-color:#ccc transparent}.table-wrapper::-webkit-scrollbar{height:8px}.table-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background-color:#ccc;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background-color:#999}.purchase-requests-table{width:100%;min-width:2400px;border-collapse:collapse;font-size:.85rem}.purchase-requests-table thead{background-color:#f5f5f5}.purchase-requests-table th{padding:.75rem .5rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #ddd;white-space:nowrap;font-size:.85rem;position:sticky;top:0;background-color:#f5f5f5;z-index:10}.purchase-requests-table td{padding:.5rem .4rem;border-bottom:1px solid #eee;vertical-align:top;font-size:.85rem;max-width:200px;word-wrap:break-word}.purchase-requests-table td.description-column{max-width:600px!important}.purchase-requests-table td.date-column{max-width:180px!important}.purchase-requests-table td.text-cell{max-width:250px;white-space:normal;line-height:1.4}.purchase-requests-table th.description-column,.purchase-requests-table td.description-column{min-width:400px;max-width:600px;width:auto}.purchase-requests-table th.date-column,.purchase-requests-table td.date-column{white-space:nowrap;min-width:140px;max-width:180px;width:auto}.file-link{color:#1976d2;text-decoration:none;word-break:break-all}.file-link:hover{text-decoration:underline}.purchase-requests-table tbody tr.clickable-row{cursor:pointer;transition:background-color .2s ease}.purchase-requests-table tbody tr.clickable-row:hover{background-color:#f0f9ff!important}.purchase-requests-table tbody tr.clickable-row:active{background-color:#e0f2fe!important}.request-subject{display:flex;flex-direction:column;gap:.25rem}.request-subject strong{color:#333}.request-notes{font-size:.8rem;color:#666;font-style:italic;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{display:inline-block;padding:.25rem .6rem;border-radius:12px;font-size:.8rem;font-weight:500}.table-actions{display:flex;gap:.5rem;flex-wrap:wrap}.empty-row{text-align:center;padding:2rem;color:#666}.empty-state{text-align:center;padding:3rem;color:#666}.table-info{margin-top:1rem;text-align:right;font-size:.85rem;color:#666}@media (max-width: 768px){.purchase-requests-table-container{padding:1rem}.table-filters{flex-direction:column;gap:.75rem}.filter-group{width:100%;min-width:auto}.filter-group input{min-width:auto;width:100%}.reset-filters-btn{width:100%}.table-scroll-top{height:15px}.table-scroll-spacer{min-width:700px}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.purchase-requests-table{min-width:700px;font-size:.85rem}.purchase-requests-table th,.purchase-requests-table td{padding:.6rem .5rem}.request-subject strong{font-size:.9rem}.request-notes{font-size:.75rem;max-width:200px}.table-actions{flex-direction:column;gap:.4rem}.table-actions button{width:100%;padding:.5rem}.table-info{text-align:center;font-size:.8rem}}@media (max-width: 480px){.purchase-requests-table-container{padding:.75rem}.table-filters{gap:.5rem}.table-scroll-spacer{min-width:600px}.purchase-requests-table{min-width:600px;font-size:.8rem}.purchase-requests-table th,.purchase-requests-table td{padding:.5rem .4rem}.request-subject strong{font-size:.85rem}.request-notes{font-size:.7rem;max-width:150px}.status-badge{font-size:.75rem;padding:.2rem .5rem}}.vedouci-view{padding:1rem}.view-controls{display:flex;gap:.5rem}.vedouci-view{padding:2rem}@media (min-width: 1024px){.vedouci-view{max-width:calc(100vw - 4rem);margin-left:auto;margin-right:auto}}.vedouci-header{margin-bottom:1.5rem;display:flex;justify-content:flex-end}.create-request-button{padding:.75rem 1.5rem;background-color:#14b8a6;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .2s}.requests-section{margin-bottom:2rem}.requests-section h2{color:#333;margin-bottom:1rem;font-size:1.3rem}.requests-list{display:grid;gap:1rem}.request-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;transition:box-shadow .2s}.request-card:hover{box-shadow:0 4px 8px #00000026}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.request-id{font-weight:600;color:#14b8a6;font-size:.9rem}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.status-approved{background-color:#d1e7dd;color:#0f5132}.status-rejected{background-color:#f8d7da;color:#842029}.status-completed{background-color:#cfe2ff;color:#084298}.request-info{display:flex;flex-direction:column;gap:.75rem}.info-row{display:flex;gap:.5rem}.info-label{font-weight:500;color:#666;min-width:120px}.empty-state{text-align:center;padding:3rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.empty-state p{color:#666;font-size:1.1rem}@media (max-width: 768px){.vedouci-view{padding:1rem}.vedouci-header{flex-direction:column;align-items:stretch}.create-request-button{width:100%;padding:.75rem}.view-controls{flex-direction:column;margin-bottom:1rem}.view-controls button{width:100%}.admin-stats{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.stat-card{padding:.6rem .75rem}.stat-card h3{font-size:.7rem;margin-bottom:.4rem}.stat-number{font-size:1.5rem}.requests-section h2{font-size:1.1rem}.request-card{padding:1rem}.request-header{flex-direction:column;align-items:flex-start;gap:.75rem}.info-row{flex-direction:column;gap:.25rem}.info-label{min-width:auto;font-size:.9rem}.info-value{font-size:.9rem}}@media (max-width: 480px){.vedouci-view{padding:.75rem}.admin-stats{grid-template-columns:repeat(2,1fr);gap:.5rem}.stat-card{padding:.5rem .6rem}.stat-card h3{font-size:.65rem}.stat-number{font-size:1.3rem}.requests-section h2{font-size:1rem}.request-card{padding:.75rem}.info-label,.info-value{font-size:.85rem}}.financist-view{padding:1rem}@media (min-width: 1024px){.financist-view{max-width:calc(100vw - 4rem);margin-left:auto;margin-right:auto}}.status-deferred{background-color:#fff3e0;color:#f57c00}@media (max-width: 768px){.financist-view{padding:1rem}.view-controls{flex-direction:column}.view-controls button{width:100%}.requests-container h2{font-size:1.2rem;margin-top:1.5rem}.request-card{padding:1rem}.request-header{flex-direction:column;align-items:flex-start;gap:.75rem}.request-header h3{font-size:1rem}.request-details p{font-size:.9rem}.request-actions{flex-direction:column}.request-actions button{width:100%}.modal-content{padding:1.5rem;width:95%;max-height:95vh}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}@media (max-width: 480px){.financist-view{padding:.75rem}.requests-container h2{font-size:1.1rem;margin-top:1rem}.request-card{padding:.75rem}.request-header h3{font-size:.95rem}.request-details p{font-size:.85rem;margin:.4rem 0}.modal-content{padding:1rem}}.director-view{padding:1rem}@media (min-width: 1024px){.director-view{max-width:calc(100vw - 4rem);margin-left:auto;margin-right:auto}}.request-notes-display{margin:.5rem 0}.notes-content{white-space:pre-wrap;background:#f9f9f9;padding:.75rem;border-radius:4px;margin-top:.25rem;font-size:.9rem;line-height:1.5;max-height:200px;overflow-y:auto}.status-approved_by_economist{background-color:#e8f5e9;color:#388e3c}.status-approved_by_director{background-color:#c8e6c9;color:#2e7d32}.status-rejected_by_director{background-color:#ffebee;color:#d32f2f}@media (max-width: 768px){.director-view{padding:1rem}.view-controls{flex-direction:column}.view-controls button{width:100%}.requests-container h2{font-size:1.2rem;margin-top:1.5rem}.request-card{padding:1rem}.request-header{flex-direction:column;align-items:flex-start;gap:.75rem}.request-header h3{font-size:1rem}.request-details p{font-size:.9rem}.request-actions{flex-direction:column}.request-actions button{width:100%}.modal-content{padding:1.5rem;width:95%;max-height:95vh}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}@media (max-width: 480px){.director-view{padding:.75rem}.requests-container h2{font-size:1.1rem;margin-top:1rem}.request-card{padding:.75rem}.request-header h3{font-size:.95rem}.request-details p{font-size:.85rem;margin:.4rem 0}.modal-content{padding:1rem}}.print-view{padding:2rem;background:#f5f5f5;min-height:100vh}.print-actions{display:flex;gap:1rem;margin-bottom:2rem;justify-content:flex-end;position:relative;z-index:1000}.btn-back,.btn-print{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.btn-back{background:#6c757d;color:#fff}.btn-back:hover{background:#5a6268}.btn-print{background:#14b8a6;color:#fff}.btn-print:hover{background:#0d9488}.print-document{background:#fff;padding:3rem;max-width:210mm;margin:0 auto;box-shadow:0 2px 8px #0000001a}.print-header{margin-bottom:2rem}.print-logo-section{display:flex;align-items:flex-start;gap:1.5rem;margin-bottom:1rem}.print-logo{display:flex;align-items:center;gap:.75rem}.print-logo-img{max-height:60px;width:auto;object-fit:contain}.organization-info{flex:1}.org-name{font-weight:600;color:#333;margin:0 0 .25rem;font-size:1rem}.org-address{color:#666;margin:0 0 .25rem;font-size:.9rem}.org-ids{color:#666;margin:0;font-size:.85rem}.document-title{font-size:1.5rem;font-weight:700;text-align:center;margin:2rem 0 1.5rem;color:#333}.request-number{text-align:right;margin-bottom:2rem;font-size:1rem;color:#333}.request-details-section{margin-bottom:2rem}.detail-row{display:flex;margin-bottom:1rem;align-items:flex-start}.detail-row.full-width{flex-direction:column}.detail-label{font-weight:600;min-width:200px;color:#333;margin-right:1rem}.detail-row.full-width .detail-label{margin-bottom:.5rem}.detail-value{flex:1;color:#333;word-wrap:break-word;white-space:normal;overflow-wrap:break-word}.supplier-section{margin-bottom:2rem;padding:1rem;background:#f9f9f9;border-left:4px solid #14b8a6}.section-title{font-weight:600;margin-bottom:.75rem;color:#333;font-size:1.1rem}.supplier-details p{margin:.5rem 0;color:#333}.approval-section{margin-bottom:2rem;padding:1rem;background:#f9f9f9;border-left:4px solid #0066cc}.approval-row{display:flex;margin-bottom:.75rem}.approval-row:last-child{margin-bottom:0}.approval-label{font-weight:600;min-width:250px;color:#333;margin-right:1rem}.approval-value{flex:1;color:#333}.order-processing-section{margin-top:2rem;padding:1rem;background:#f9f9f9;border-left:4px solid #ffcc00}.order-processing-section .section-title{margin-bottom:1rem;font-size:1.2rem}.processing-row{display:flex;margin-bottom:.75rem}.processing-row:last-child{margin-bottom:0}.processing-label{font-weight:600;min-width:200px;color:#333;margin-right:1rem}.processing-value{flex:1;color:#333}@media print{body *{visibility:hidden}.print-view,.print-view *{visibility:visible}.print-view{position:absolute;left:0;top:0;width:100%;padding:0;margin:0;background:#fff}.print-actions,.btn-back,.btn-print{display:none!important;visibility:hidden!important}.print-document{box-shadow:none;padding:1.2rem 2rem;max-width:100%;margin:0;page-break-inside:avoid;height:100vh;display:flex;flex-direction:column}.print-document *{color:#000!important}.print-header{margin-bottom:.8rem}.print-logo-section{gap:.8rem;margin-bottom:.3rem}.print-logo-img{max-height:40px!important}.org-name{font-size:.95rem!important;margin-bottom:.15rem!important;line-height:1.2}.org-address{font-size:.85rem!important;margin-bottom:.15rem!important;line-height:1.2}.org-ids{font-size:.75rem!important;line-height:1.2}.document-title{font-size:1.2rem!important;margin:.8rem 0 .6rem!important;line-height:1.2}.request-number{margin-bottom:.8rem!important;font-size:.95rem!important}.request-details-section{margin-bottom:.8rem}.detail-row{margin-bottom:.4rem!important;font-size:.9rem!important;line-height:1.3}.detail-label{min-width:180px!important;font-size:.9rem!important}.detail-value{font-size:.9rem!important;line-height:1.3}.supplier-section{margin-bottom:.8rem!important;padding:.6rem!important}.section-title{font-size:1rem!important;margin-bottom:.4rem!important;line-height:1.2}.supplier-details p{margin:.2rem 0!important;font-size:.9rem!important;line-height:1.3}.approval-section{margin-bottom:.8rem!important;padding:.6rem!important}.approval-row{margin-bottom:.4rem!important;font-size:.9rem!important;line-height:1.3}.approval-label{min-width:200px!important;font-size:.9rem!important}.approval-value{font-size:.9rem!important}.order-processing-section{margin-top:.8rem!important;padding:.6rem!important}.order-processing-section .section-title{font-size:1rem!important;margin-bottom:.4rem!important;line-height:1.2}.processing-row{margin-bottom:.4rem!important;font-size:.9rem!important;line-height:1.3}.processing-label{min-width:180px!important;font-size:.9rem!important}.processing-value{font-size:.9rem!important}.print-header,.request-details-section,.supplier-section,.approval-section,.order-processing-section{page-break-inside:avoid}@page{size:A4;margin:1cm}*{margin-top:0!important;margin-bottom:0!important}.print-document>*{margin-bottom:.8rem!important}.print-document>*:last-child{margin-bottom:0!important}}.referent-view{padding:1rem}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:1.5rem}.stat-card{background:#fff;padding:.75rem 1rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center;transition:all .2s}.stat-card h3{color:#666;font-size:.75rem;margin:0 0 .5rem;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.stat-number{font-size:1.75rem;font-weight:700;color:#333;line-height:1.2}@media (min-width: 1024px){.referent-view{max-width:calc(100vw - 4rem);margin-left:auto;margin-right:auto}}.view-controls{display:flex;gap:.5rem;margin-bottom:1.5rem}.view-controls button{padding:.5rem 1rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s}.view-controls button:hover{background:#f5f5f5}.view-controls button.active{background:#2196f3;color:#fff;border-color:#2196f3}.requests-container h2{margin-top:2rem;margin-bottom:1rem;color:#333;font-size:1.5rem}.requests-list{display:grid;gap:1.5rem;margin-bottom:2rem}.request-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e0e0e0}.request-header h3{margin:0;color:#333;font-size:1.2rem}.status-badge{padding:.4rem .8rem;border-radius:4px;font-size:.85rem;font-weight:500}.status-approved_by_director{background-color:#e8f5e9;color:#388e3c}.status-accepted{background-color:#e3f2fd;color:#1976d2}.status-ordered{background-color:#fff3e0;color:#f57c00}.status-ready{background-color:#f3e5f5;color:#7b1fa2}.status-completed{background-color:#e8f5e9;color:#2e7d32}.request-details{margin-bottom:1rem}.request-details p{margin:.5rem 0;color:#666;line-height:1.6}.request-details strong{color:#333;margin-right:.5rem}.request-actions{display:flex;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e0e0e0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-content h3{margin-top:0;margin-bottom:1rem;color:#333}.modal-request-info{background-color:#f5f5f5;padding:1rem;border-radius:4px;margin-bottom:1.5rem}.modal-request-info p{margin:.5rem 0;color:#666}.modal-form label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.modal-form textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:.9rem;resize:vertical;margin-bottom:1.5rem}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}@media (max-width: 768px){.referent-view{padding:1rem}.view-controls{flex-direction:column}.view-controls button{width:100%}.requests-container h2{font-size:1.2rem;margin-top:1.5rem}.request-card{padding:1rem}.request-header{flex-direction:column;align-items:flex-start;gap:.75rem}.request-header h3{font-size:1rem}.request-details p{font-size:.9rem}.request-actions{flex-direction:column}.request-actions button{width:100%}.modal-content{padding:1.5rem;width:95%;max-height:95vh}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}@media (max-width: 480px){.referent-view{padding:.75rem}.requests-container h2{font-size:1.1rem;margin-top:1rem}.request-card{padding:.75rem}.request-header h3{font-size:.95rem}.request-details p{font-size:.85rem;margin:.4rem 0}.modal-content{padding:1rem}}.director-tickets-view{padding:2rem;max-width:1400px;margin:0 auto}@media (min-width: 1024px){.director-tickets-view{max-width:calc(100vw - 4rem);width:calc(100vw - 4rem)}}.director-info{background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;padding:1rem 1.5rem;border-radius:12px;margin-bottom:2rem;box-shadow:0 4px 12px #00000026}.director-info p{margin:0;font-size:1rem;font-weight:500}.view-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.view-mode-buttons{display:flex;gap:.5rem}.view-mode-button{padding:.5rem 1rem;border:2px solid #ddd;background:#fff;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .2s}.view-mode-button:hover{border-color:#14b8a6;background:#f5f5f5}.view-mode-button.active{background:#14b8a6;color:#fff;border-color:#14b8a6}.filters{display:flex;gap:1rem;flex-wrap:wrap}.filter-select{padding:.5rem 1rem;border:2px solid #ddd;border-radius:8px;font-size:.9rem;background:#fff;cursor:pointer;transition:border-color .2s}.filter-select:hover{border-color:#14b8a6}.filter-select:focus{outline:none;border-color:#14b8a6}.tickets-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;text-align:center;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-card.active{background:#14b8a6;color:#fff;box-shadow:0 4px 12px #14b8a666}.stat-card.active .stat-number,.stat-card.active .stat-label{color:#fff}.stat-number{font-size:2rem;font-weight:700;color:#14b8a6;margin-bottom:.5rem}.stat-label{font-size:.9rem;color:#666;text-transform:uppercase;letter-spacing:.5px}@media (max-width: 768px){.director-tickets-view{padding:1rem}.view-controls{flex-direction:column;align-items:stretch}.view-mode-buttons{width:100%}.view-mode-button{flex:1}.filters{width:100%}.filter-select{flex:1;min-width:150px}.tickets-stats{grid-template-columns:repeat(2,1fr)}}.property-ticket-list{display:flex;flex-direction:column;gap:1rem;padding:1rem 0}.property-ticket-list-empty{padding:2rem;text-align:center;color:#666}.property-ticket-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;transition:box-shadow .2s}.property-ticket-card:hover{box-shadow:0 4px 8px #00000026}.property-ticket-card .ticket-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #f0f0f0}.property-ticket-card .ticket-header h3{margin:0;font-size:1.1rem;color:#333}.property-ticket-card .status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.property-ticket-card .status-new{background:#fff3cd;color:#856404}.property-ticket-card .status-in-progress{background:#d1ecf1;color:#0c5460}.property-ticket-card .status-completed{background:#d4edda;color:#155724}.property-ticket-card .ticket-details{display:flex;flex-direction:column;gap:.75rem}.property-ticket-card .detail-row{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.95rem;line-height:1.5}.property-ticket-card .detail-row strong{color:#555;min-width:140px}.property-ticket-card .detail-row{color:#333}.property-referent-view{padding:2rem;max-width:1200px;margin:0 auto}.property-referent-view h2{color:#333;margin-bottom:2rem}.no-tickets{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;text-align:center;color:#666}.tickets-list{display:flex;flex-direction:column;gap:1.5rem}.property-ticket-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;border-left:4px solid #14b8a6}.ticket-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.ticket-header h3{margin:0;color:#333;font-size:1.2rem}.status-badge{padding:.4rem .8rem;border-radius:4px;font-size:.9rem;font-weight:500}.status-new{background-color:#fff3cd;color:#856404}.status-in-progress{background-color:#cfe2ff;color:#084298}.status-completed{background-color:#d1e7dd;color:#0f5132}.ticket-details{display:flex;flex-direction:column;gap:.75rem}.detail-row{color:#666;line-height:1.6}.detail-row strong{color:#333;margin-right:.5rem}@media (max-width: 768px){.property-referent-view{padding:1rem}.property-referent-view h2{font-size:1.3rem}}@media (max-width: 480px){.property-referent-view{padding:.75rem}.property-referent-view h2{font-size:1.2rem}}.create-property-move-ticket-form-container{padding:2rem;max-width:800px;margin:0 auto}.create-property-move-ticket-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.create-property-move-ticket-form h2{color:#333;margin-bottom:1.5rem;font-size:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.required{color:#e74c3c}.form-group input[type=text],.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.form-group input[type=text]:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#14b8a6}.inventory-numbers-textarea{resize:vertical;min-height:100px;line-height:1.5}.radio-group{display:flex;gap:2rem;margin-top:.5rem}.radio-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.radio-label input[type=radio]{width:auto;margin:0;cursor:pointer}.form-hint{display:block;margin-top:.5rem;color:#666;font-size:.9rem;font-style:italic}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.cancel-button,.submit-button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .2s}.cancel-button{background-color:#6c757d;color:#fff}.cancel-button:hover{background-color:#5a6268}.submit-button{background-color:#4caf50;color:#fff}.submit-button:hover:not(:disabled){background-color:#45a049}.submit-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.create-property-move-ticket-form-container{padding:1rem}.create-property-move-ticket-form{padding:1.5rem}.create-property-move-ticket-form h2{font-size:1.3rem}.form-group{margin-bottom:1.25rem}.radio-group{flex-direction:column;gap:1rem}.form-actions{flex-direction:column;gap:.75rem}.cancel-button,.submit-button{width:100%;padding:.75rem}}.property-requester-view{padding:2rem;max-width:1200px;margin:0 auto}.property-requester-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.property-requester-view h2{color:#333;margin:0}.create-ticket-button{padding:.75rem 1.5rem;background-color:#14b8a6;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .2s}.create-ticket-button:hover{background-color:#0d9488}.property-requester-info{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.property-requester-info p{color:#666;margin-bottom:.5rem;line-height:1.6}.loading{text-align:center;padding:2rem;color:#666}@media (max-width: 768px){.property-requester-view{padding:1rem}.property-requester-view h2{font-size:1.3rem}}.view-controls{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.view-button{padding:.5rem 1rem;border:2px solid #dee2e6;background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s;color:#666}.view-button:hover{border-color:#14b8a6;color:#14b8a6}.view-button.active{background-color:#14b8a6;border-color:#14b8a6;color:#fff}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;transition:all .2s}.stat-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.stat-card.active{background:#0d9488;border:2px solid #0d9488;color:#fff;box-shadow:0 4px 12px #0d948866}.stat-card.active h3,.stat-card.active .stat-number{color:#fff}.stat-card h3{margin:0 0 .5rem;font-size:.9rem;color:#666;font-weight:500;transition:color .2s}.stat-card .stat-number{margin:0;font-size:2rem;font-weight:700;color:#14b8a6;transition:color .2s}.tickets-section{margin-bottom:2rem}.tickets-section h2{color:#333;margin-bottom:1rem;font-size:1.3rem}@media (max-width: 480px){.property-requester-view{padding:.75rem}.property-requester-view h2{font-size:1.2rem}}.role-selector{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:2rem}.role-selector-container{background:#fff;border-radius:12px;padding:3rem;box-shadow:0 10px 40px #0003;max-width:900px;width:100%}.role-selector-container h1{text-align:center;color:#333;margin-bottom:.5rem;font-size:2.5rem}.subtitle{text-align:center;color:#666;margin-bottom:2rem;font-size:1.1rem}.role-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.role-button{padding:2rem;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:all .3s;text-align:left}.role-button:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026;border-color:#14b8a6}.role-button.requester:hover{border-color:#4caf50}.role-button.admin:hover{border-color:#2196f3}.role-button.executor:hover{border-color:#ff9800}.role-button.admin-it:hover{border-color:#2196f3}.role-button.admin-buildings:hover{border-color:#4caf50}.back-to-roles-button{margin-bottom:1rem;padding:.5rem 1rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.back-to-roles-button:hover{background-color:#5a6268}.role-button h2{color:#333;margin-bottom:.5rem;font-size:1.5rem}.role-button p{color:#666;font-size:.9rem}.role-button.disabled{opacity:.5;cursor:not-allowed;background:#f5f5f5;border-color:#d0d0d0}.role-button.disabled:hover{transform:none;box-shadow:none;border-color:#d0d0d0}.disabled-badge{display:inline-block;margin-top:.5rem;padding:.25rem .75rem;background:#ff9800;color:#fff;border-radius:12px;font-size:.75rem;font-weight:700}@media (max-width: 768px){.role-selector{padding:1rem}.role-selector-container{padding:2rem 1.5rem}.role-selector-container h1{font-size:2rem}.subtitle{font-size:1rem;margin-bottom:1.5rem}.role-buttons{grid-template-columns:1fr;gap:1rem}.role-button{padding:1.5rem}.role-button h2{font-size:1.3rem}.role-button p{font-size:.85rem}}@media (max-width: 480px){.role-selector{padding:.75rem}.role-selector-container{padding:1.5rem 1rem;border-radius:8px}.role-selector-container h1{font-size:1.75rem}.subtitle{font-size:.9rem;margin-bottom:1.25rem}.role-buttons{gap:.75rem}.role-button{padding:1.25rem}.role-button h2{font-size:1.2rem}.role-button p{font-size:.8rem}.back-to-roles-button{width:100%;padding:.6rem}}.substitution-request-list{display:flex;flex-direction:column;gap:1rem;padding:1rem 0}.substitution-request-list-empty{padding:3rem 2rem;text-align:center;color:#666;font-style:italic}.substitution-request-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000000d;transition:box-shadow .2s}.substitution-request-card:hover{box-shadow:0 4px 8px #0000001a}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e0e0e0}.request-id{font-size:.85rem;color:#666;font-family:monospace}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.status-new{background-color:#e3f2fd;color:#1976d2}.status-approved{background-color:#e8f5e9;color:#388e3c}.status-rejected{background-color:#ffebee;color:#d32f2f}.status-in-progress{background-color:#fff3e0;color:#f57c00}.status-completed{background-color:#e8f5e9;color:#388e3c}.request-info{display:flex;flex-direction:column;gap:.5rem}.info-row{display:flex;gap:.5rem;align-items:flex-start}.info-label{font-weight:500;color:#666;min-width:150px;flex-shrink:0}.info-value{color:#333;flex:1}@media (max-width: 768px){.substitution-request-card{padding:1rem}.request-header{flex-direction:column;align-items:flex-start;gap:.5rem}.info-row{flex-direction:column;gap:.25rem}.info-label{min-width:auto}}.substitution-teachers-requester-view{padding:2rem;max-width:1200px;margin:0 auto}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.view-header h2{color:#333;margin:0;font-size:1.8rem}.create-request-button{padding:.75rem 1.5rem;background-color:#14b8a6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.create-request-button:hover{background-color:#0d9488}.requests-list{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}.loading{text-align:center;padding:3rem;color:#666;font-size:1.1rem}@media (max-width: 768px){.substitution-teachers-requester-view{padding:1rem}.view-header{flex-direction:column;align-items:stretch}.view-header h2{font-size:1.5rem}.create-request-button{width:100%}}.substitution-requester-view{padding:2rem;max-width:1200px;margin:0 auto}.substitution-requester-view .role-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.substitution-teachers:hover{border-color:#1976d2}.substitution-classrooms:hover{border-color:#b71c1c}.substitution-classes:hover{border-color:#2e7d32}@media (max-width: 768px){.substitution-requester-view{padding:1rem}.substitution-requester-view .role-buttons{grid-template-columns:1fr;gap:1rem}}.substitution-manager-view{padding:2rem;max-width:1400px;margin:0 auto}.manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e0e0e0}.manager-header h2{margin:0;color:#333}.refresh-button{padding:.5rem 1rem;background-color:#14b8a6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.refresh-button:hover{background-color:#0f766e}.filters-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem;padding:1.5rem;background:#f5f5f5;border-radius:8px}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-weight:500;color:#666;font-size:.9rem}.filter-select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;background:#fff}.sort-order-button{padding:.5rem;background-color:#14b8a6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;margin-top:.5rem;transition:background-color .2s}.sort-order-button:hover{background-color:#0f766e}.search-input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.statistics{display:flex;gap:2rem;margin-bottom:2rem;padding:1rem;background:#e8f5e9;border-radius:8px;flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.85rem;color:#666}.stat-value{font-size:1.5rem;font-weight:700;color:#14b8a6}.requests-container{display:flex;flex-direction:column;gap:2rem}.request-section{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.request-section h3{margin:0 0 1rem;color:#333;font-size:1.2rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.no-requests{padding:2rem;text-align:center;color:#666;font-style:italic}.loading{padding:3rem;text-align:center;color:#666}@media (max-width: 768px){.substitution-manager-view{padding:1rem}.manager-header{flex-direction:column;align-items:flex-start;gap:1rem}.filters-section{grid-template-columns:1fr}.statistics{flex-direction:column;gap:1rem}}.travel-orders-container{max-width:1400px;margin:0 auto;padding:20px}.travel-orders-header{text-align:center;margin-bottom:40px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:40px 20px;border-radius:12px;box-shadow:0 4px 6px #0000001a}.travel-icon{font-size:64px;margin-bottom:10px}.travel-orders-header h1{margin:0;font-size:32px;font-weight:700}.travel-subtitle{margin:10px 0 0;font-size:16px;opacity:.9}.role-select-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:40px}.role-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:32px 24px;text-align:center;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.role-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000001a;border-color:#667eea}.role-icon{font-size:48px;margin-bottom:16px}.role-card h3{margin:0 0 12px;font-size:24px;color:#2d3748}.role-card p{margin:0;color:#718096;font-size:14px}.travel-orders-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.btn-back{padding:10px 20px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;color:#4a5568;transition:all .2s}.btn-back:hover{background:#edf2f7;border-color:#cbd5e0}.btn-primary{padding:10px 20px;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-primary:hover{background:#5a67d8;transform:translateY(-1px);box-shadow:0 4px 8px #667eea4d}.btn-primary:disabled{background:#cbd5e0;cursor:not-allowed;transform:none}.btn-secondary{padding:10px 20px;background:#fff;color:#4a5568;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-secondary:hover{background:#f7fafc;border-color:#cbd5e0}.orders-list{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 4px #0000000d}.orders-list h2{margin:0 0 20px;font-size:24px;color:#2d3748}.orders-table{width:100%;border-collapse:collapse}.orders-table th{text-align:left;padding:12px;background:#f7fafc;color:#4a5568;font-weight:600;font-size:13px;text-transform:uppercase;border-bottom:2px solid #e2e8f0}.orders-table td{padding:16px 12px;border-bottom:1px solid #e2e8f0;color:#2d3748;font-size:14px}.orders-table tbody tr:hover{background:#f7fafc}.purpose-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-draft{background:#f7fafc;color:#718096}.status-pending{background:#fef5e7;color:#d68910}.status-approved{background:#d1f2eb;color:#0e7c61}.status-rejected{background:#fadbd8;color:#c0392b}.status-in-progress{background:#d6eaf8;color:#21618c}.status-pending-completion{background:#fef5e7;color:#d68910}.status-completed{background:#d5f4e6;color:#0e7c61}.status-closed{background:#e8e8e8;color:#555}.btn-view,.btn-delete{padding:6px 12px;border:none;background:transparent;cursor:pointer;font-size:18px;transition:transform .2s;margin:0 4px}.btn-view:hover,.btn-delete:hover{transform:scale(1.2)}.travel-order-form{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 4px #0000000d;max-width:900px;margin:0 auto}.travel-order-form h2{margin:0 0 24px;font-size:28px;color:#2d3748;text-align:center}.form-section{margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid #e2e8f0}.form-section:last-of-type{border-bottom:none;padding-bottom:0;margin-bottom:24px}.form-section h3{margin:0 0 16px;font-size:18px;color:#4a5568;font-weight:600}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:6px;font-size:14px;font-weight:500;color:#4a5568}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;color:#2d3748;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0}.order-details{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 4px #0000000d;max-width:900px;margin:0 auto}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid #e2e8f0}.details-header h2{margin:0;font-size:28px;color:#2d3748}.btn-close{width:36px;height:36px;border:none;background:#f7fafc;border-radius:50%;cursor:pointer;font-size:20px;color:#718096;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-close:hover{background:#edf2f7;color:#2d3748}.details-content{display:grid;gap:24px}.detail-section{padding:20px;background:#f7fafc;border-radius:8px}.detail-section h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#4a5568}.detail-section p{margin:8px 0;font-size:14px;color:#2d3748}.detail-section p strong{color:#718096;font-weight:500;display:inline-block;min-width:140px}.rejection-section{background:#fadbd8;border-left:4px solid #c0392b}.details-actions{display:flex;justify-content:center;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid #e2e8f0}.btn-approve{padding:12px 24px;background:#10b981;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-approve:hover{background:#059669;transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.btn-reject{padding:12px 24px;background:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-reject:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}.loading{text-align:center;padding:40px;color:#718096;font-size:16px}.error-message{background:#fadbd8;color:#c0392b;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;border-left:4px solid #c0392b}.no-orders{text-align:center;padding:60px 20px;color:#718096;font-size:16px}@media (max-width: 768px){.travel-orders-header{padding:24px 16px}.travel-orders-header h1{font-size:24px}.travel-icon{font-size:48px}.role-select-cards{grid-template-columns:1fr}.travel-orders-toolbar{flex-direction:column;align-items:stretch}.orders-table{font-size:12px}.orders-table th,.orders-table td{padding:8px 6px}.form-grid{grid-template-columns:1fr}.travel-order-form,.order-details{padding:20px}}.auth-callback{display:flex;align-items:center;justify-content:center;min-height:100vh;flex-direction:column;gap:1rem;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);color:#fff}.auth-callback p{margin:0;font-size:1.1rem}.loading-spinner{border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}.app-header{background:linear-gradient(135deg,#0d9488,#14b8a6,#2dd4bf);color:#fff;padding:1rem 2rem;box-shadow:0 4px 20px #0f766e33;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;position:relative;overflow:hidden;min-height:fit-content}.header-left{display:flex;align-items:center;gap:1rem;flex:1;min-width:0;flex-wrap:wrap;row-gap:.75rem}.header-right{display:flex;align-items:center;gap:1rem;flex-shrink:0;flex-wrap:wrap;row-gap:.75rem}.header-logo{display:flex;align-items:center;height:40px}.header-logo img{height:40px;width:auto}.app-header h1{font-size:1.5rem;color:#fff;font-weight:600;text-shadow:0 2px 4px rgba(0,0,0,.1);margin:0}.back-button{padding:.6rem 1.25rem;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:10;-webkit-tap-highlight-color:transparent;touch-action:manipulation;white-space:nowrap}.logout-button{padding:.6rem 1.25rem;background:#dc2626e6;color:#fff;border:1px solid rgba(220,38,38,1);border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #dc26264d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap}@media (max-width: 768px){.app-header{padding:1rem;align-items:flex-start;gap:.75rem}.header-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;flex-wrap:wrap;row-gap:.5rem}.header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0;flex-wrap:wrap;row-gap:.5rem}.app-header h1{font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.back-button{padding:.5rem .75rem;font-size:.85rem;flex-shrink:0;min-width:auto}.logout-button{padding:.5rem .75rem;font-size:.85rem;flex-shrink:0}.header-logo{height:32px}.header-logo img{height:32px;width:auto}}@media (max-width: 480px){.app-header{padding:.75rem;flex-direction:row;align-items:flex-start;gap:.5rem}.header-left{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;flex-wrap:wrap;row-gap:.5rem}.header-right{display:flex;align-items:center;flex-shrink:0;flex-wrap:wrap;row-gap:.5rem}.app-header h1{font-size:.95rem;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.back-button{padding:.5rem .6rem;font-size:.8rem;flex-shrink:0;min-width:auto}.logout-button{padding:.5rem .6rem;font-size:.8rem;flex-shrink:0}.header-logo{height:28px}.header-logo img{height:28px;width:auto}}.weekly-news{margin:1rem 0;width:100%}.weekly-news-container{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;padding:1rem;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;gap:1rem}.weekly-news-section{display:flex;flex-direction:column}.weekly-news-calendar-section{margin-top:.5rem;padding-top:1rem;border-top:2px solid rgba(255,255,255,.3)}.weekly-news-calendar-title{font-size:1.1rem}.weekly-news-calendar-item{background:#fffffff2;border-left:4px solid #4CAF50}.weekly-news-title{color:#fff;margin:0 0 .75rem;font-size:1.2rem;font-weight:600;text-align:center}.weekly-news-list{display:flex;flex-direction:column;gap:1rem}.weekly-news-item{background:#fff;border-radius:6px;padding:.75rem;box-shadow:0 1px 4px #0000001a;transition:transform .2s,box-shadow .2s}.weekly-news-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.news-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;gap:.75rem}.news-item-title{color:#333;margin:0;font-size:.95rem;font-weight:600;flex:1}.news-item-date{color:#666;font-size:.8rem;white-space:nowrap}.news-item-content{color:#555;margin:0;line-height:1.5;font-size:.85rem;white-space:pre-line}.weekly-news-loading{text-align:center;padding:2rem;color:#666}.weekly-news-empty{background:#fff3;border-radius:8px;padding:1.5rem;text-align:center;color:#fff;font-style:italic}@media (max-width: 768px){.weekly-news{margin:.5rem 0}.weekly-news-container{padding:.75rem;gap:.75rem}.weekly-news-title{font-size:1rem;margin-bottom:.5rem}.weekly-news-calendar-title{font-size:1rem}.weekly-news-calendar-section{margin-top:.5rem;padding-top:.75rem}.weekly-news-item{padding:.6rem}.news-item-header{flex-direction:column;gap:.25rem;margin-bottom:.4rem}.news-item-title{font-size:.9rem}.news-item-date{align-self:flex-start;font-size:.75rem}.news-item-content{font-size:.8rem;line-height:1.4}}.ai-assistant{position:fixed;bottom:2rem;right:2rem;width:420px;max-width:calc(100vw - 2rem);max-height:600px;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;display:flex;flex-direction:column;z-index:1000;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);animation:slideInUp .4s ease-out}@keyframes slideInUp{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.ai-assistant.minimized{width:70px;height:70px;max-width:70px;max-height:70px;border-radius:50%;overflow:visible}.ai-assistant-header{background:linear-gradient(135deg,#0d9488,#14b8a6,#2dd4bf);color:#fff;padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .3s;position:relative;overflow:hidden;border-radius:inherit;height:100%}.ai-assistant.minimized .ai-assistant-header{padding:0;justify-content:center;align-items:center;border-radius:50%}.ai-assistant-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}.ai-assistant-header:hover{background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf)}.ai-assistant-header>*{position:relative;z-index:1}.ai-assistant-header-content{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.ai-assistant.minimized .ai-assistant-header-content{justify-content:center;gap:0}.ai-assistant-icon{font-size:2rem;flex-shrink:0;animation:sparkle 2s ease-in-out infinite;display:flex;align-items:center;justify-content:center}.ai-assistant.minimized .ai-assistant-icon{font-size:2.5rem;margin:0}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:1}25%{transform:scale(1.1) rotate(-5deg);opacity:.9}50%{transform:scale(1.15) rotate(5deg);opacity:1}75%{transform:scale(1.1) rotate(-3deg);opacity:.9}}.ai-assistant-title{flex:1;min-width:0}.ai-assistant.minimized .ai-assistant-title{display:none}.ai-assistant-title h3{margin:0;font-size:1.1rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-assistant-subtitle{font-size:.75rem;opacity:.9;display:block;margin-top:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-assistant-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.ai-assistant.minimized .ai-assistant-actions{display:none}.ai-assistant-clear-btn{background:#fff3;border:none;color:#fff;padding:.4rem .6rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.ai-assistant-clear-btn:hover{background:#ffffff4d;transform:scale(1.1)}.ai-assistant-toggle-btn{background:#fff3;border:none;color:#fff;padding:.4rem .6rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .2s;display:flex;align-items:center;justify-content:center;min-width:32px}.ai-assistant-toggle-btn:hover{background:#ffffff4d}.ai-assistant-content{display:flex;flex-direction:column;height:500px;max-height:calc(100vh - 200px)}.ai-assistant-messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;background:#f8fafc}.ai-assistant-messages::-webkit-scrollbar{width:8px}.ai-assistant-messages::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.ai-assistant-messages::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.ai-assistant-messages::-webkit-scrollbar-thumb:hover{background:#94a3b8}.ai-assistant-message{display:flex;flex-direction:column;gap:.4rem;animation:messageSlideIn .3s ease-out}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-assistant-message.user{align-items:flex-end}.ai-assistant-message.assistant{align-items:flex-start}.ai-assistant-message-content{max-width:80%;padding:.875rem 1.125rem;border-radius:16px;word-wrap:break-word;line-height:1.5;font-size:.95rem}.ai-assistant-message.user .ai-assistant-message-content{background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border-bottom-right-radius:4px}.ai-assistant-message.assistant .ai-assistant-message-content{background:#fff;color:#1e293b;border:1px solid #e2e8f0;border-bottom-left-radius:4px;box-shadow:0 2px 4px #0000000d}.ai-assistant-message-time{font-size:.7rem;color:#94a3b8;padding:0 .5rem}.ai-assistant-typing{display:flex;gap:.4rem;padding:.5rem 0}.ai-assistant-typing span{width:8px;height:8px;border-radius:50%;background:#94a3b8;animation:typing 1.4s ease-in-out infinite}.ai-assistant-typing span:nth-child(1){animation-delay:0s}.ai-assistant-typing span:nth-child(2){animation-delay:.2s}.ai-assistant-typing span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-10px);opacity:1}}.ai-assistant-input-container{padding:1rem 1.5rem;background:#fff;border-top:1px solid #e2e8f0;display:flex;gap:.75rem;align-items:flex-end}.ai-assistant-input{flex:1;border:2px solid #e2e8f0;border-radius:12px;padding:.75rem 1rem;font-size:.95rem;font-family:inherit;resize:none;min-height:44px;max-height:120px;transition:all .2s;background:#f8fafc}.ai-assistant-input:focus{outline:none;border-color:#14b8a6;background:#fff;box-shadow:0 0 0 3px #14b8a61a}.ai-assistant-input:disabled{opacity:.6;cursor:not-allowed}.ai-assistant-send-btn{background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border:none;border-radius:12px;padding:.75rem 1.25rem;font-size:1.2rem;cursor:pointer;transition:all .2s;flex-shrink:0;min-width:48px;height:44px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #14b8a64d}.ai-assistant-send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #14b8a666}.ai-assistant-send-btn:active:not(:disabled){transform:translateY(0)}.ai-assistant-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (max-width: 768px){.ai-assistant{bottom:1rem;right:1rem;left:1rem;width:auto;max-width:none;max-height:calc(100vh - 2rem)}.ai-assistant.minimized{width:60px;height:60px;max-width:60px;max-height:60px}.ai-assistant-header{padding:1rem 1.25rem}.ai-assistant-icon{font-size:1.5rem}.ai-assistant-title h3{font-size:1rem}.ai-assistant-subtitle{font-size:.7rem}.ai-assistant-content{height:400px;max-height:calc(100vh - 150px)}.ai-assistant-messages{padding:1rem;gap:.75rem}.ai-assistant-message-content{max-width:85%;padding:.75rem 1rem;font-size:.9rem}.ai-assistant-input-container{padding:.75rem 1rem}.ai-assistant-input{font-size:.9rem;padding:.625rem .875rem;min-height:40px}.ai-assistant-send-btn{padding:.625rem 1rem;font-size:1.1rem;min-width:44px;height:40px}}@media (max-width: 480px){.ai-assistant{bottom:.5rem;right:.5rem;left:.5rem;border-radius:16px}.ai-assistant-header{padding:.875rem 1rem}.ai-assistant-icon{font-size:1.25rem}.ai-assistant-title h3{font-size:.9rem}.ai-assistant-subtitle{font-size:.65rem}.ai-assistant-content{height:350px;max-height:calc(100vh - 120px)}.ai-assistant-messages{padding:.75rem;gap:.625rem}.ai-assistant-message-content{max-width:90%;padding:.625rem .875rem;font-size:.85rem}.ai-assistant-input-container{padding:.625rem .75rem;gap:.5rem}.ai-assistant-input{font-size:.85rem;padding:.5rem .75rem;min-height:36px}.ai-assistant-send-btn{padding:.5rem .875rem;font-size:1rem;min-width:40px;height:36px}}.intranet-home{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:0;position:relative}.intranet-home:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(20,184,166,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(15,118,110,.15) 0%,transparent 50%);pointer-events:none}.intranet-container{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:3rem;max-width:1200px;width:100%;margin:2rem auto;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;position:relative;z-index:1;flex:1}.intranet-header{background:linear-gradient(135deg,#0d9488,#14b8a6,#2dd4bf);color:#fff;padding:2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 20px #00000026;position:relative;overflow:hidden}.intranet-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}.intranet-header>*{position:relative;z-index:1}.header-logo-title{display:flex;align-items:center;gap:1rem}.header-logo-img{height:50px;width:auto;object-fit:contain}.intranet-header h1{margin:0;font-size:2rem;font-weight:700}.user-info{display:flex;flex-direction:column;align-items:flex-end;font-size:.9rem}.user-email{opacity:.9;font-size:.85rem}.logout-button{background:#dc2626e6;color:#fff;border:1px solid rgba(220,38,38,1);padding:.6rem 1.25rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #dc26264d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.back-button{padding:.6rem 1.25rem;background:linear-gradient(135deg,#2e8b57,#228b22);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #2e8b574d;position:relative;z-index:10;-webkit-tap-highlight-color:transparent;touch-action:manipulation;white-space:nowrap}.back-button:hover{background:linear-gradient(135deg,#228b22,#1e7a1e);transform:translateY(-2px);box-shadow:0 4px 12px #2e8b5766}.back-button:active{transform:translateY(0);box-shadow:0 2px 8px #2e8b574d}.intranet-content{padding:0}.intranet-content h2{color:#333;margin-bottom:.5rem;font-size:2rem;margin-top:0}.subtitle{color:#666;margin-bottom:3rem;font-size:1.1rem}.systems-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.system-card-link{text-decoration:none;color:inherit}.system-card{background:linear-gradient(135deg,#fff,#f8fafc);border:2px solid #e2e8f0;border-radius:16px;padding:2rem;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;height:100%;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000000d;position:relative;overflow:hidden}.system-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#0d9488,#14b8a6);transform:scaleX(0);transition:transform .3s}.system-card:hover{transform:translateY(-6px);box-shadow:0 12px 32px #0f766e33;border-color:#14b8a6}.system-card:hover:before{transform:scaleX(1)}.system-card.ticket-system:hover{border-color:#14b8a6}.system-icon{font-size:4rem;margin-bottom:1rem}.system-card h3{color:#1e293b;margin-bottom:.5rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.system-card p{color:#666;margin-bottom:1.5rem;font-size:.95rem;font-weight:500}.system-button{background:linear-gradient(135deg,#2e8b57,#228b22);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s}.system-button:hover{transform:scale(1.05)}.system-card.ticket-system .system-button{background:linear-gradient(135deg,#4caf50,#45a049)}@media (max-width: 768px){.intranet-home{padding:1rem}.intranet-container{padding:2rem 1.5rem;border-radius:12px}.intranet-header{padding:1rem 1.25rem;flex-direction:row;align-items:center;gap:.75rem;flex-wrap:nowrap}.intranet-header>div:first-child{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;overflow:hidden}.intranet-header>div:last-child{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.header-logo-title{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.header-logo-img{height:35px;flex-shrink:0}.intranet-header h1{font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.user-info{display:none}.back-button{padding:.45rem .7rem;font-size:.8rem}.logout-button{padding:.5rem .75rem;font-size:.8rem;white-space:nowrap;flex-shrink:0}.intranet-content{padding:0}.intranet-content h2{font-size:1.5rem}.subtitle{font-size:1rem;margin-bottom:2rem}.systems-grid{grid-template-columns:1fr;gap:1.5rem}.system-card{padding:1.5rem}.system-icon{font-size:3rem}.system-card h3{font-size:1.3rem}.system-card p{font-size:.9rem}.system-button{padding:.6rem 1.5rem;font-size:.95rem}}@media (max-width: 480px){.intranet-home{padding:.75rem}.intranet-container{padding:1.5rem 1rem;border-radius:8px}.intranet-header{padding:.75rem 1rem;gap:.5rem}.intranet-header>div:first-child{gap:.5rem}.header-logo-title{gap:.4rem}.header-logo-img{height:30px}.intranet-header h1{font-size:.95rem}.user-info{display:none}.back-button{padding:.5rem .6rem;font-size:.8rem}.logout-button{padding:.45rem .6rem;font-size:.75rem}.intranet-content{padding:0}.intranet-content h2{font-size:1.25rem;margin-bottom:.5rem}.subtitle{font-size:.9rem;margin-bottom:1.5rem}.systems-grid{gap:1rem}.system-card{padding:1.25rem}.system-icon{font-size:2.5rem;margin-bottom:.75rem}.system-card h3{font-size:1.15rem;margin-bottom:.4rem}.system-card p{font-size:.85rem;margin-bottom:1rem}.system-button{padding:.6rem 1.25rem;font-size:.9rem}}.help-button{position:absolute;top:.5rem;right:.5rem;width:calc(33.333% - 1rem);max-width:120px;background:#0d94881a;border:1px solid rgba(13,148,136,.3);border-radius:8px;padding:.25rem .5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s;z-index:10;color:#0d9488;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.help-button:hover{background:#0d948833;border-color:#0d9488;transform:translateY(-1px);box-shadow:0 2px 4px #0d948833}.help-button:active{transform:translateY(0);box-shadow:none}.calendar-view{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f5}.calendar-header{background:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a;display:flex;align-items:center;gap:1rem}.calendar-header{display:flex;justify-content:space-between;align-items:center}.calendar-header h1{margin:0;font-size:1.5rem;color:#333}.sync-button{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem}.sync-button:hover:not(:disabled){background:linear-gradient(135deg,#45a049,#3d8b40);transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.sync-button:disabled{opacity:.6;cursor:not-allowed}.back-button{background:#14b8a6;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:1rem;transition:background .2s}.back-button:hover{background:#0d9488}.calendar-content{display:grid;grid-template-columns:1fr 400px;gap:1.5rem;padding:1.5rem;max-width:1400px;margin:0 auto;width:100%}.calendar-section{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000001a}.calendar-controls{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e0e0e0}.calendar-controls h2{margin:0;font-size:1.3rem;color:#333;min-width:180px;text-align:center}.nav-button{background:#14b8a6;color:#fff;border:none;padding:.4rem .8rem;border-radius:6px;cursor:pointer;font-size:1.2rem;font-weight:700;transition:background .2s;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.nav-button:hover{background:#0d9488}.today-button{background:#4caf50;color:#fff;border:none;padding:.4rem .8rem;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background .2s}.today-button:hover{background:#45a049}.calendar-loading{padding:1rem;text-align:center;color:#666}.calendar-error{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:1.5rem;margin:1rem;color:#856404}.error-icon{font-size:2rem;text-align:center;margin-bottom:1rem}.error-content{text-align:left}.error-content h3{margin:0 0 .5rem;color:#856404;font-size:1.2rem}.error-content p{margin:.5rem 0;line-height:1.5}.error-instructions{background:#fff;border-radius:6px;padding:1rem;margin:1rem 0;border-left:4px solid #ffc107}.error-instructions p{margin:.5rem 0;font-weight:600}.error-instructions ol,.error-instructions ul{margin:.5rem 0;padding-left:1.5rem}.error-instructions li{margin:.5rem 0;line-height:1.6}.error-instructions a{color:#14b8a6;text-decoration:none;font-weight:600}.error-instructions a:hover{text-decoration:underline}.retry-button{background:#14b8a6;color:#fff;border:none;padding:.4rem .8rem;border-radius:6px;cursor:pointer;font-size:.85rem}.retry-button:hover{background:#0d9488}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e0e0e0;border-radius:4px;overflow:hidden}.calendar-day-header{background:#14b8a6;color:#fff;padding:.5rem;text-align:center;font-weight:700;font-size:.85rem}.calendar-day{background:#fff;min-height:60px;padding:.4rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;transition:all .2s}.calendar-day:hover{background:#f0f0f0;transform:scale(1.05);z-index:10;box-shadow:0 2px 8px #00000026}.calendar-day.empty{background:#f9f9f9}.calendar-day.today{background:#e3f2fd;border:2px solid #14b8a6}.calendar-day.has-events{background:#f1f8e9}.calendar-day.has-past-events{background:#f5f5f5;border-left:3px solid #9e9e9e}.calendar-day.has-upcoming-events{background:#e8f5e9;border-left:3px solid #4caf50}.calendar-day.has-multiday-events{background:#fff3e0;border-left:3px solid #ff9800}.calendar-day.has-multiday-events.has-upcoming-events{background:#ffe0b2;border-left:3px solid #ff9800}.calendar-day.today.has-multiday-events{background:#ffe082;border:3px solid #ff9800}.calendar-day.past-day{opacity:.7}.calendar-day.today{background:#e3f2fd;border:3px solid #2196f3;font-weight:700;box-shadow:0 2px 8px #2196f34d}.calendar-day.today.has-events{background:#fff9c4;border:3px solid #ffc107}.day-number{font-weight:700;font-size:.9rem;color:#333;margin-bottom:.2rem}.day-events-count{background:#14b8a6;color:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700}.day-events-count.multiday-count{background:#ff9800}.events-section{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000001a;max-height:calc(100vh - 200px);display:flex;flex-direction:column}.events-section h3{margin:0 0 1rem;font-size:1.2rem;color:#333;padding-bottom:.5rem;border-bottom:2px solid #14b8a6}.events-loading,.events-error{padding:1rem;text-align:center;color:#666}.events-error{color:#d32f2f}.events-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.no-events{text-align:center;color:#999;padding:2rem;font-style:italic}.event-card{display:flex;gap:1rem;padding:.75rem;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s;background:#fff}.event-card:hover{box-shadow:0 2px 8px #0000001a;border-color:#14b8a6}.event-card.past-event{opacity:.7;background:#f5f5f5;border-left:4px solid #9e9e9e}.event-card.upcoming-event{background:#e8f5e9;border-left:4px solid #4caf50}.event-card.today-event{background:#fff9c4;border-left:4px solid #ffc107;box-shadow:0 2px 8px #ffc1074d}.event-card.multiday-event{background:#fff3e0;border-left:4px solid #ff9800;position:relative}.event-card.multiday-event:before{content:"📅";position:absolute;top:.5rem;right:.5rem;font-size:1rem;opacity:.7}.event-card.today-event.multiday-event{background:#ffe082;border-left:4px solid #ff9800}.event-card.upcoming-event.multiday-event{background:#ffe0b2;border-left:4px solid #ff9800}.event-card.past-event.multiday-event{background:#fce4ec;border-left:4px solid #e91e63}.events-group{margin-bottom:1.5rem}.events-group-title{font-size:1rem;font-weight:600;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid #e0e0e0}.today-title{color:#ff6f00;border-bottom-color:#ffc107}.upcoming-title{color:#2e7d32;border-bottom-color:#4caf50}.past-title{color:#616161;border-bottom-color:#9e9e9e}.today-date{background:#ffc107;color:#000}.event-description{font-size:.85rem;color:#666;margin-top:.5rem;line-height:1.4;white-space:pre-wrap}.day-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.day-modal{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d}.day-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #e0e0e0}.day-modal-header h3{margin:0;font-size:1.5rem;color:#333}.day-modal-close{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.day-modal-close:hover{background:#f5f5f5;color:#333}.day-modal-content{padding:1.5rem;overflow-y:auto;flex:1}.day-modal-content .event-card{margin-bottom:1rem}.event-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:50px;background:#14b8a6;color:#fff;border-radius:6px;padding:.5rem}.event-day{font-size:1.5rem;font-weight:700;line-height:1}.event-month{font-size:.7rem;text-transform:uppercase;opacity:.9}.event-details{flex:1;display:flex;flex-direction:column;gap:.25rem}.event-time-range{font-size:.85rem;color:#666;font-weight:500}.event-title{font-size:1rem;font-weight:600;color:#333}.event-location{font-size:.85rem;color:#666;margin-top:.25rem}.calendar-iframe-container{flex:1;width:100%;height:calc(100vh - 200px);min-height:600px;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;background:#fff}.calendar-iframe{width:100%;height:100%;border:none;display:block}@media (max-width: 1024px){.calendar-content{grid-template-columns:1fr;gap:1rem}.events-section{max-height:400px}.calendar-iframe-container{height:calc(100vh - 150px);min-height:400px}}@media (max-width: 768px){.calendar-header{padding:1rem}.calendar-header h1{font-size:1.2rem}.calendar-content{padding:1rem}.calendar-controls{flex-wrap:wrap}.calendar-controls h2{font-size:1.1rem;min-width:auto;width:100%;order:-1}.calendar-day{min-height:50px;padding:.3rem}.day-number{font-size:.8rem}.day-events-count{width:18px;height:18px;font-size:.65rem}.event-card{padding:.5rem;gap:.75rem}.event-date{min-width:40px;padding:.4rem}.event-day{font-size:1.2rem}.event-month{font-size:.65rem}}.user-type-selection{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:0;position:relative}.user-type-selection:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(20,184,166,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(15,118,110,.15) 0%,transparent 50%);pointer-events:none}.user-type-container{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:3rem;max-width:800px;width:100%;margin:2rem auto;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;position:relative;z-index:1}.user-type-header{text-align:center;margin-bottom:3rem}.user-type-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.user-type-button{display:flex;flex-direction:column;align-items:center;padding:2rem;border:2px solid #e2e8f0;border-radius:16px;background:linear-gradient(135deg,#fff,#f8fafc);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-align:center;box-shadow:0 2px 8px #0000000d;position:relative;overflow:hidden}.user-type-button:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#0d9488,#14b8a6);transform:scaleX(0);transition:transform .3s}.user-type-button:hover:not(:disabled){transform:translateY(-6px);box-shadow:0 12px 32px #0f766e33;border-color:#14b8a6}.user-type-button:hover:not(:disabled):before{transform:scaleX(1)}.user-type-button:disabled{opacity:.6;cursor:not-allowed}.user-type-button.selected{border-color:#14b8a6;background:linear-gradient(135deg,#f0fdfa,#ccfbf1);box-shadow:0 8px 24px #0f766e40}.user-type-button.selected:before{transform:scaleX(1)}.user-type-button.selected .button-content h2{color:#0d9488}.user-type-button.guest:hover:not(:disabled){border-color:#4caf50}.user-type-button.student:hover:not(:disabled){border-color:#2196f3}.user-type-button.employee:hover:not(:disabled){border-color:#ff9800}.button-icon{font-size:3rem;margin-bottom:1rem}.button-content h2{font-size:1.5rem;color:#333;margin-bottom:.5rem}.button-content p{font-size:.9rem;color:#666;margin:0}.user-type-error{background:#ffebee;color:#c62828;padding:1rem;border-radius:8px;margin-bottom:1.5rem;text-align:center}.user-type-loading{text-align:center;padding:2rem}.loading-spinner{border:4px solid #f3f3f3;border-top:4px solid #2E8B57;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 1rem}.user-type-actions{margin-top:2rem;text-align:center}.continue-button{background:#2e8b57;color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.continue-button:hover{background:#228b22;transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}@media (max-width: 768px){.user-type-selection{padding:1rem}.user-type-buttons{grid-template-columns:1fr;gap:1rem}.user-type-container{padding:2rem 1.5rem;border-radius:12px}.school-logo{height:60px;max-width:150px}.user-type-header h1{font-size:1.75rem}.user-type-header p{font-size:1rem}.user-type-button{padding:1.5rem}.button-icon{font-size:2.5rem}.button-content h2{font-size:1.3rem}.button-content p{font-size:.85rem}}@media (max-width: 480px){.user-type-selection{padding:.75rem}.user-type-container{padding:1.5rem 1rem;border-radius:8px}.school-logo{height:50px;max-width:120px}.user-type-header h1{font-size:1.5rem}.user-type-header p{font-size:.95rem}.user-type-button{padding:1.25rem}.button-icon{font-size:2rem;margin-bottom:.75rem}.button-content h2{font-size:1.2rem}.button-content p{font-size:.8rem}}.guest-view{min-height:100vh;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:0;position:relative;display:flex;flex-direction:column}.guest-view:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 30%,rgba(20,184,166,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(15,118,110,.1) 0%,transparent 50%);pointer-events:none}.guest-container{max-width:1200px;margin:2rem auto;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;overflow:hidden;position:relative;z-index:1;flex:1}.guest-header{background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;padding:2rem;box-shadow:0 4px 20px #0000001a}.guest-header h1{margin:0;font-size:2rem}.guest-content{padding:2rem}.guest-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e0e0e0}.guest-section:last-child{border-bottom:none}.guest-section h2{color:#1e293b;margin-bottom:1rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.guest-section p{color:#475569;line-height:1.7;font-size:1rem;margin-bottom:1rem}.guest-section p:last-child{margin-bottom:0}.schools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1.5rem}.school-card{background:linear-gradient(135deg,#fff,#f8fafc);padding:1.5rem;border-radius:12px;border-left:4px solid #14b8a6;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000000d}.school-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0f766e26;border-left-color:#0d9488}.school-card h3{color:#1e293b;margin:0 0 .5rem;font-size:1.2rem;font-weight:700}.school-card p{color:#475569;margin:0;font-size:.95rem;line-height:1.6}.services-list{list-style:none;padding:0;margin:1rem 0}.services-list li{padding:.75rem 0;border-bottom:1px solid #e0e0e0;color:#666;line-height:1.6}.services-list li:last-child{border-bottom:none}.services-list li strong{color:#333}.guest-section a{color:#14b8a6;text-decoration:none;font-weight:600;transition:color .2s}.guest-section a:hover{color:#0d9488;text-decoration:underline}@media (max-width: 768px){.guest-view{padding:1rem}.guest-container{border-radius:10px}.guest-header{padding:1.5rem;flex-direction:column;align-items:flex-start;gap:1rem}.guest-header h1{font-size:1.5rem}.schools-grid{grid-template-columns:1fr;gap:1rem}.guest-content{padding:1.5rem 1rem}.guest-section{margin-bottom:1.5rem;padding-bottom:1.5rem}.guest-section h2{font-size:1.3rem}.guest-section p{font-size:.95rem}.school-card{padding:1.25rem}.school-card h3{font-size:1.1rem}.school-card p{font-size:.9rem}}@media (max-width: 480px){.guest-view{padding:.75rem}.guest-header{padding:1rem}.guest-header h1{font-size:1.3rem}.guest-content{padding:1rem .75rem}.guest-section{margin-bottom:1.25rem;padding-bottom:1.25rem}.guest-section h2{font-size:1.2rem}.guest-section p{font-size:.9rem}.school-card{padding:1rem}.school-card h3{font-size:1rem}.school-card p{font-size:.85rem}}.student-view{min-height:100vh;background:linear-gradient(135deg,#f093fb,#f5576c);padding:0;display:flex;flex-direction:column}.student-container{max-width:1200px;margin:2rem auto;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;overflow:hidden;flex:1}.student-header{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;padding:2rem}.student-header h1{margin:0;font-size:2rem;font-weight:700}.student-content{padding:2rem}.student-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e0e0e0}.student-section:last-child{border-bottom:none}.student-section h2{color:#333;margin-bottom:1rem;font-size:1.5rem}.student-section p{color:#666;line-height:1.6;font-size:1rem}@media (max-width: 768px){.student-view{padding:1rem}.student-container{border-radius:10px}.student-header{padding:1.5rem;flex-direction:column;align-items:flex-start;gap:1rem}.student-header h1{font-size:1.5rem}.student-content{padding:1.5rem 1rem}.student-section{margin-bottom:1.5rem;padding-bottom:1.5rem}.student-section h2{font-size:1.3rem}.student-section p{font-size:.95rem}}@media (max-width: 480px){.student-view{padding:.75rem}.student-header{padding:1rem}.student-header h1{font-size:1.3rem}.student-content{padding:1rem .75rem}.student-section{margin-bottom:1.25rem;padding-bottom:1.25rem}.student-section h2{font-size:1.2rem}.student-section p{font-size:.9rem}}.public-canteen-voting{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:0;position:relative}.public-canteen-voting:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(20,184,166,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(15,118,110,.15) 0%,transparent 50%);pointer-events:none}.public-canteen-voting .canteen-container{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:3rem;max-width:1200px;width:100%;margin:2rem auto;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;position:relative;z-index:1}.public-canteen-voting .header-buttons{display:flex;justify-content:center;gap:15px;margin-top:20px;flex-wrap:wrap}.public-canteen-voting .statistics-button-header,.public-canteen-voting .external-link-button-header{padding:12px 30px;border:none;border-radius:25px;font-size:1em;font-weight:700;cursor:pointer;transition:all .3s ease}.public-canteen-voting .statistics-button-header{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 15px #3b82f64d}.public-canteen-voting .statistics-button-header:hover{transform:scale(1.05);box-shadow:0 6px 20px #3b82f666}.public-canteen-voting .external-link-button-header{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 15px #10b9814d}.public-canteen-voting .external-link-button-header:hover{transform:scale(1.05);box-shadow:0 6px 20px #10b98166}.public-canteen-voting .subtitle{font-size:1.2em;color:#666;margin:0}.public-canteen-voting .info-box{background:#fffffff2;border-radius:15px;padding:20px;margin-bottom:30px;box-shadow:0 5px 15px #0000001a}.public-canteen-voting .info-box p{margin:10px 0;color:#333;line-height:1.6}.public-canteen-voting .info-hint{font-size:.9em;color:#666;margin-top:5px}.public-canteen-voting .info-hint a{color:#667eea;text-decoration:none;font-weight:700}.public-canteen-voting .info-hint a:hover{text-decoration:underline}.public-canteen-voting .loading,.public-canteen-voting .error-message,.public-canteen-voting .no-data{background:#fff;border-radius:15px;padding:40px;text-align:center;box-shadow:0 10px 40px #0003;margin-top:30px}.public-canteen-voting .error-message{background:#fee;color:#c00}.public-canteen-voting .date-section{margin-bottom:40px}.public-canteen-voting .date-header{font-size:1.8em;color:#1e293b;font-weight:700;text-align:center;margin-bottom:20px;display:flex;justify-content:center;align-items:center;gap:10px;background:#fffffff2;padding:.75rem 1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a}.public-canteen-voting .date-header.date-today{color:#fff;background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 4px 12px #fbbf2466}.public-canteen-voting .date-header.date-past{color:#475569;background:#fffffff2}.public-canteen-voting .date-badge{background:#fbbf244d;padding:5px 15px;border-radius:15px;font-size:.7em;font-weight:400}.public-canteen-voting .menu-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;justify-items:center}.public-canteen-voting .menu-items.single-item{display:flex;justify-content:center;grid-template-columns:none}.public-canteen-voting .menu-items.single-item .menu-card{max-width:450px;width:100%}.public-canteen-voting .upcoming-menu{margin-bottom:2rem;padding-bottom:2rem;border-bottom:2px solid #e0e0e0}.public-canteen-voting .upcoming-menu .date-section{margin-bottom:2rem}.public-canteen-voting .menu-card{background:#fff;border-radius:15px;padding:20px;box-shadow:0 5px 20px #00000026;transition:transform .3s ease,box-shadow .3s ease}.public-canteen-voting .menu-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000040}.public-canteen-voting .menu-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.public-canteen-voting .meal-type-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px 15px;border-radius:20px;font-size:.9em;font-weight:700}.public-canteen-voting .menu-item-name{font-size:1.3em;color:#333;margin:15px 0;line-height:1.4}.public-canteen-voting .menu-description{color:#666;font-size:.95em;margin:10px 0;line-height:1.6}.public-canteen-voting .menu-part{padding:5px 0;border-bottom:1px dashed #eee}.public-canteen-voting .menu-part:last-child{border-bottom:none}.public-canteen-voting .allergens{margin:10px 0;color:#d97706;font-size:.9em}.public-canteen-voting .ratings-display{background:#f8f9fa;border-radius:10px;padding:15px;margin:15px 0}.public-canteen-voting .rating-row{display:flex;align-items:center;margin:10px 0;flex-wrap:wrap}.public-canteen-voting .rating-label{font-weight:700;color:#555;margin-right:10px;min-width:160px}.public-canteen-voting .stars{display:flex;align-items:center;gap:2px}.public-canteen-voting .rating-number{margin-left:8px;color:#666;font-weight:700}.public-canteen-voting .no-rating{color:#999;font-style:italic;font-size:.9em}.public-canteen-voting .votes-count{margin-left:8px;color:#999;font-size:.9em}.public-canteen-voting .menu-card-footer{margin-top:15px;padding-top:15px;border-top:1px solid #eee;display:flex;justify-content:center}.public-canteen-voting .vote-button{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:12px 30px;border-radius:25px;font-size:1.1em;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #10b9814d}.public-canteen-voting .vote-button:hover{transform:scale(1.05);box-shadow:0 6px 20px #10b98166}.public-canteen-voting .already-voted{color:#10b981;font-weight:700;font-size:1.1em}.public-canteen-voting .cannot-vote{color:#999;font-style:italic}.public-canteen-voting .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.public-canteen-voting .modal-content{background:#fff;border-radius:20px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.public-canteen-voting .modal-header{padding:25px;border-bottom:2px solid #eee;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px 20px 0 0}.public-canteen-voting .modal-header h2{margin:0;font-size:1.8em}.public-canteen-voting .close-button{background:#fff3;border:none;color:#fff;font-size:2em;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:background .3s ease;display:flex;align-items:center;justify-content:center}.public-canteen-voting .close-button:hover{background:#ffffff4d}.public-canteen-voting .modal-body{padding:30px}.public-canteen-voting .modal-body h3{font-size:1.5em;color:#333;margin:0 0 10px}.public-canteen-voting .meal-date{color:#1e293b;font-weight:600;font-size:1.1em;margin-bottom:25px;background:#ffffffe6;padding:.5rem 1rem;border-radius:8px;display:inline-block}.public-canteen-voting .rating-section{margin:25px 0;padding:20px;background:#f8f9fa;border-radius:10px}.public-canteen-voting .rating-section label{display:block;font-weight:700;color:#333;margin-bottom:10px;font-size:1.1em}.public-canteen-voting .rating-note{font-size:.9em;color:#667eea;font-weight:400}.public-canteen-voting .lunch-warning{background:#fef3c7;color:#92400e;padding:12px;border-radius:10px;font-size:.95em;margin:15px 0;border-left:4px solid #f59e0b;text-align:center}.public-canteen-voting .lunch-variants{display:flex;flex-direction:column;gap:15px;margin:20px 0}.public-canteen-voting .lunch-variant{border:2px solid #ddd;border-radius:12px;padding:15px;cursor:pointer;transition:all .3s ease;display:flex;align-items:flex-start;gap:12px}.public-canteen-voting .lunch-variant:hover{border-color:#667eea;background:#f8f9ff}.public-canteen-voting .lunch-variant.selected{border-color:#667eea;background:#f0f3ff;box-shadow:0 4px 12px #667eea33}.public-canteen-voting .lunch-variant input[type=radio]{margin-top:3px;width:20px;height:20px;cursor:pointer}.public-canteen-voting .variant-content{flex:1}.public-canteen-voting .variant-content h4{margin:0 0 8px;color:#333;font-size:1.1em}.public-canteen-voting .variant-content p{margin:0;color:#666;line-height:1.5}.public-canteen-voting .allergens-mini{display:block;color:#d97706;margin-top:5px;font-size:.85em}.public-canteen-voting .star-selector{display:flex;gap:10px;margin:15px 0}.public-canteen-voting .star-button{background:none;border:none;font-size:2.5em;cursor:pointer;transition:transform .2s ease;padding:5px}.public-canteen-voting .star-button:hover{transform:scale(1.2)}.public-canteen-voting .star-button.selected{animation:starPulse .3s ease}@keyframes starPulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.public-canteen-voting .rating-label-text{display:block;color:#667eea;font-weight:700;font-size:1.1em;margin-top:10px}.public-canteen-voting .comment-input{margin:25px 0}.public-canteen-voting .comment-input label{display:block;font-weight:700;color:#333;margin-bottom:10px}.public-canteen-voting .comment-input textarea{width:100%;padding:12px;border:2px solid #ddd;border-radius:10px;font-family:inherit;font-size:1em;resize:vertical;transition:border-color .3s ease}.public-canteen-voting .comment-input textarea:focus{outline:none;border-color:#667eea}.public-canteen-voting .comment-input small{display:block;text-align:right;color:#999;margin-top:5px}.public-canteen-voting .modal-footer{padding:20px 30px;border-top:2px solid #eee;display:flex;gap:15px;justify-content:flex-end}.public-canteen-voting .cancel-button{background:#6b7280;color:#fff;border:none;padding:12px 30px;border-radius:25px;font-size:1.1em;cursor:pointer;transition:background .3s ease}.public-canteen-voting .cancel-button:hover{background:#4b5563}.public-canteen-voting .submit-button{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:12px 30px;border-radius:25px;font-size:1.1em;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #10b9814d}.public-canteen-voting .submit-button:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 20px #10b98166}.public-canteen-voting .submit-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.public-canteen-voting{padding:10px}.public-canteen-voting .header h1{font-size:2em}.public-canteen-voting .menu-items{grid-template-columns:1fr}.public-canteen-voting .rating-row{flex-direction:column;align-items:flex-start}.public-canteen-voting .rating-label{min-width:auto;margin-bottom:5px}}.public-statistics-maps{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:0;position:relative}.public-statistics-maps:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(20,184,166,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(15,118,110,.15) 0%,transparent 50%);pointer-events:none}.public-statistics-maps .stats-container{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:3rem;max-width:1200px;width:100%;margin:2rem auto;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;position:relative;z-index:1}.public-statistics-maps .stats-header{background:transparent;padding:0;border-radius:0;box-shadow:none;margin-bottom:30px;position:relative}.public-statistics-maps .back-button{position:absolute;left:20px;top:20px;background:none;border:none;color:#667eea;font-size:1.1em;font-weight:600;cursor:pointer;padding:8px 15px;border-radius:8px;transition:background .3s ease}.public-statistics-maps .back-button:hover{background:#f3f4f6}.public-statistics-maps .kiosk-button{position:absolute;right:20px;top:20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;font-size:1em;font-weight:600;cursor:pointer;padding:12px 20px;border-radius:8px;transition:all .3s ease;box-shadow:0 2px 8px #667eea4d}.public-statistics-maps .kiosk-button:hover{background:linear-gradient(135deg,#764ba2,#667eea);transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.public-statistics-maps .stats-header h1{margin:0 0 5px;font-size:2em;color:#333;text-align:center}.public-statistics-maps .subtitle{text-align:center;color:#666;margin:0}.public-statistics-maps .search-filters{background:#fff;padding:20px;border-radius:15px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px}.public-statistics-maps .search-box{margin-bottom:15px}.public-statistics-maps .search-input{width:100%;padding:12px 20px;border:2px solid #e5e7eb;border-radius:30px;font-size:1em;transition:border-color .3s ease}.public-statistics-maps .search-input:focus{outline:none;border-color:#667eea}.public-statistics-maps .filters-row{display:flex;gap:10px;flex-wrap:wrap}.public-statistics-maps .filter-select{padding:10px 15px;border:2px solid #e5e7eb;border-radius:10px;font-size:.95em;background:#fff;cursor:pointer;transition:border-color .3s ease;flex:1;min-width:150px}.public-statistics-maps .filter-select:focus{outline:none;border-color:#667eea}.public-statistics-maps .filter-date{padding:10px 15px;border:2px solid #e5e7eb;border-radius:10px;font-size:.95em;background:#fff;color:#333;cursor:pointer;transition:border-color .3s ease;min-width:150px}.public-statistics-maps .filter-date:focus{outline:none;border-color:#667eea}.public-statistics-maps .reset-button{padding:10px 20px;background:#6b7280;color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:600;transition:background .3s ease}.public-statistics-maps .reset-button:hover{background:#4b5563}.public-statistics-maps .results-info{text-align:center;color:#666;margin:15px 0;font-size:.95em}.public-statistics-maps .global-stats-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;border-radius:15px;box-shadow:0 4px 16px #00000026;margin-bottom:20px}.public-statistics-maps .global-stats-card h2{margin:0 0 20px;font-size:1.5em;text-align:center}.public-statistics-maps .global-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.public-statistics-maps .global-stat-item{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;border-radius:12px;text-align:center;border:1px solid rgba(255,255,255,.2)}.public-statistics-maps .global-stat-value{font-size:3em;font-weight:700;margin-bottom:10px}.public-statistics-maps .global-stat-label{font-size:1.1em;margin-bottom:5px;font-weight:600}.public-statistics-maps .global-stat-count{font-size:.9em;opacity:.9}.public-statistics-maps .chart-card{background:#fff;padding:30px;border-radius:15px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px}.public-statistics-maps .chart-card h2{margin:0 0 20px;color:#333;font-size:1.5em}.public-statistics-maps .chart-container{margin-top:20px}.public-statistics-maps .chart-legend{display:flex;gap:20px;justify-content:center;margin-bottom:15px}.public-statistics-maps .legend-item{display:flex;align-items:center;gap:8px;font-size:.95em;color:#4b5563}.public-statistics-maps .legend-color{width:20px;height:4px;border-radius:2px}.public-statistics-maps .legend-color.food{background:#10b981}.public-statistics-maps .legend-color.service{background:#3b82f6}.public-statistics-maps .chart-wrapper{width:100%;overflow-x:auto;background:#f9fafb;border-radius:10px;padding:20px}.public-statistics-maps .chart-svg{width:100%;height:300px;min-width:800px}.public-statistics-maps .chart-line{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.public-statistics-maps .meals-by-dates{display:flex;flex-direction:column;gap:25px}.public-statistics-maps .date-section-stats{background:#fff;border-radius:15px;padding:25px;box-shadow:0 2px 8px #0000001a}.public-statistics-maps .date-header-stats{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #e5e7eb;flex-wrap:wrap;gap:15px}.public-statistics-maps .date-header-stats h3{margin:0;color:#333;font-size:1.3em;font-weight:600}.public-statistics-maps .date-ratings-summary{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.public-statistics-maps .date-rating-item{background:#f3f4f6;padding:8px 15px;border-radius:20px;font-size:.95em;font-weight:600;color:#4b5563}.public-statistics-maps .date-meals-count{background:#e5e7eb;padding:8px 15px;border-radius:20px;font-size:.9em;color:#6b7280}.public-statistics-maps .meals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.public-statistics-maps .meal-card-maps{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:all .3s ease}.public-statistics-maps .meal-card-maps:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.public-statistics-maps .meal-card-header-maps{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px;gap:10px}.public-statistics-maps .meal-card-header-maps h3{margin:0;color:#333;font-size:1.1em;line-height:1.3;flex:1}.public-statistics-maps .meal-type-badge-small{background:#e5e7eb;color:#4b5563;padding:4px 12px;border-radius:12px;font-size:.8em;font-weight:600;white-space:nowrap}.public-statistics-maps .rating-row-maps{display:flex;flex-direction:column;gap:10px;margin:15px 0}.public-statistics-maps .rating-item{display:flex;align-items:center;justify-content:space-between}.public-statistics-maps .rating-label-small{font-size:.9em;color:#666;font-weight:600}.public-statistics-maps .rating-display{display:flex;align-items:center;gap:8px}.public-statistics-maps .stars-display{display:flex;align-items:center;gap:2px}.public-statistics-maps .star-full,.public-statistics-maps .star-half{font-size:1.1em}.public-statistics-maps .rating-value{font-weight:700;color:#333;margin-left:5px}.public-statistics-maps .votes-count-small{font-size:.85em;color:#9ca3af;margin-left:4px}.public-statistics-maps .no-rating-small{font-size:.85em;color:#9ca3af;font-style:italic}.public-statistics-maps .meal-date-small{margin-top:10px;padding-top:10px;border-top:1px solid #e5e7eb;color:#9ca3af;font-size:.9em}.public-statistics-maps .no-results{text-align:center;padding:60px 20px;background:#fff;border-radius:15px;color:#666}.public-statistics-maps .loading,.public-statistics-maps .error-message{text-align:center;padding:60px 20px;background:#fff;border-radius:15px;margin-top:30px}.public-statistics-maps .error-message{color:#ef4444}.public-statistics-maps .detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.public-statistics-maps .detail-modal{background:#fff;border-radius:20px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.public-statistics-maps .detail-header{padding:25px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.public-statistics-maps .detail-header h2{margin:0;color:#333;font-size:1.5em;flex:1}.public-statistics-maps .close-btn{background:#f3f4f6;border:none;width:35px;height:35px;border-radius:50%;font-size:1.5em;cursor:pointer;color:#6b7280;transition:all .3s ease}.public-statistics-maps .close-btn:hover{background:#e5e7eb;color:#333}.public-statistics-maps .detail-body{padding:25px}.public-statistics-maps .detail-meta{display:flex;gap:15px;margin-bottom:25px;flex-wrap:wrap}.public-statistics-maps .meal-type-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px 20px;border-radius:20px;font-weight:600}.public-statistics-maps .meal-date{background:#f3f4f6;padding:8px 20px;border-radius:20px;color:#4b5563;font-weight:600}.public-statistics-maps .detail-ratings{display:grid;grid-template-columns:1fr 1fr;gap:30px}.public-statistics-maps .rating-section-detail{background:#f9fafb;padding:20px;border-radius:15px}.public-statistics-maps .rating-section-detail h3{margin:0 0 15px;color:#333;font-size:1.2em}.public-statistics-maps .rating-big{display:flex;align-items:center;gap:10px;margin-bottom:10px}.public-statistics-maps .rating-number-big{font-size:2.5em;font-weight:700;color:#333}.public-statistics-maps .votes-text{color:#6b7280;margin:0 0 20px}.public-statistics-maps .rating-distribution{display:flex;flex-direction:column;gap:8px}.public-statistics-maps .distribution-row{display:flex;align-items:center;gap:10px}.public-statistics-maps .star-label{min-width:50px;font-size:.9em;color:#6b7280}.public-statistics-maps .bar-container{flex:1;height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden}.public-statistics-maps .bar-fill{height:100%;transition:width .5s ease;border-radius:6px}.public-statistics-maps .count-label{min-width:30px;text-align:right;font-size:.9em;color:#6b7280;font-weight:600}.public-statistics-maps .comments-section{margin-top:30px;padding-top:25px;border-top:2px solid #e5e7eb}.public-statistics-maps .comments-section h3{margin:0 0 20px;color:#333;font-size:1.3em}.public-statistics-maps .comments-list{display:flex;flex-direction:column;gap:15px;max-height:400px;overflow-y:auto}.public-statistics-maps .comment-card{background:#f9fafb;border-radius:12px;padding:15px;border-left:4px solid #667eea}.public-statistics-maps .comment-ratings{display:flex;gap:15px;margin-bottom:10px;flex-wrap:wrap}.public-statistics-maps .comment-rating{background:#fff;padding:4px 12px;border-radius:15px;font-size:.9em;font-weight:600;color:#4b5563}.public-statistics-maps .comment-date{color:#9ca3af;font-size:.85em;margin-left:auto}.public-statistics-maps .comment-text{margin:0;color:#4b5563;line-height:1.6;font-style:italic}.public-statistics-maps .loading-comments{text-align:center;padding:20px;color:#9ca3af}@media (max-width: 968px){.public-statistics-maps .detail-ratings,.public-statistics-maps .meals-grid{grid-template-columns:1fr}}@media (max-width: 480px){.public-statistics-maps{padding:10px}.public-statistics-maps .filters-row{flex-direction:column}.public-statistics-maps .filter-select{min-width:100%}}.canteen-kiosk{height:100vh;max-height:100vh;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2);padding:15px 20px;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}.kiosk-header{text-align:center;color:#fff;margin-bottom:15px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:10px}.kiosk-logo{margin-bottom:10px}.kiosk-logo img{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.kiosk-instruction{background:#fffffff2;border-radius:12px;padding:12px 20px;margin-bottom:15px;max-width:1200px;width:100%;box-shadow:0 5px 15px #0003;flex-shrink:0}.kiosk-instruction h3{font-size:1.2rem;margin:0 0 8px;color:#667eea;font-weight:700}.kiosk-instruction p{font-size:1rem;margin:5px 0;color:#333;line-height:1.4}.kiosk-header h1{font-size:2rem;margin:0 0 5px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.kiosk-date{font-size:1rem;margin:0;opacity:.95}.kiosk-test-mode{font-size:.8rem;margin:5px 0 0;padding:4px 12px;background:#fff3;border-radius:6px;display:inline-block;opacity:.9}.kiosk-loading,.kiosk-error,.kiosk-empty{background:#fff;padding:60px 40px;border-radius:20px;text-align:center;font-size:1.5rem;box-shadow:0 10px 30px #0000004d;max-width:800px;width:100%}.kiosk-form{max-width:1200px;width:100%;display:flex;flex-direction:column;gap:12px;flex:1;overflow-y:auto;padding-bottom:10px;box-sizing:border-box}.kiosk-meal-section{background:#fff;border-radius:15px;padding:15px 20px;box-shadow:0 5px 15px #0003;flex-shrink:0;display:flex;align-items:center;gap:20px}.kiosk-meal-header-section{flex:1;min-width:0}.kiosk-meal-header-section h2{font-size:1.8rem;margin:0 0 10px;color:#667eea;font-weight:700}.kiosk-meal-description{font-size:1.4rem;color:#333;line-height:1.5;margin:0;font-weight:500}.kiosk-rating-section{flex-shrink:0;display:flex;align-items:center}.kiosk-service-section{background:#fff;border-radius:15px;padding:15px 20px;box-shadow:0 5px 15px #0003;flex-shrink:0;display:flex;align-items:center;gap:20px}.kiosk-service-section h2{font-size:1.8rem;margin:0;color:#667eea;font-weight:700;flex:1}.kiosk-stars{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:nowrap}.kiosk-star{background:none;border:none;font-size:4rem;cursor:pointer;padding:8px;transition:all .2s ease;line-height:1;color:#000;filter:drop-shadow(0 0 2px rgba(0,0,0,.5))}.kiosk-star:hover:not(.active){transform:scale(1.2);color:#333}.kiosk-star.active{color:gold;filter:drop-shadow(0 0 8px rgba(255,215,0,.8));transform:scale(1.15)}.kiosk-submit-section{display:flex;justify-content:center;margin-top:10px;flex-shrink:0}.kiosk-submit-button{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:15px 50px;font-size:1.3rem;font-weight:700;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 5px 15px #10b98166;min-height:60px;min-width:300px}.kiosk-submit-button:hover:not(:disabled){transform:scale(1.05);box-shadow:0 8px 30px #10b98180}.kiosk-submit-button:active:not(:disabled){transform:scale(.98)}.kiosk-submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.kiosk-success-message{background:#fff;border-radius:15px;padding:40px 30px;text-align:center;box-shadow:0 5px 15px #0003;max-width:800px;width:100%;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.kiosk-success-message h2{font-size:2rem;color:#10b981;margin:0 0 15px}.kiosk-success-message p{font-size:1.2rem;color:#666;margin:0}@media (max-width: 768px){.kiosk-header h1{font-size:2.5rem}.kiosk-date{font-size:1.2rem}.kiosk-meal-section,.kiosk-service-section{padding:30px}.kiosk-meal-header-section h2,.kiosk-service-section h2{font-size:2rem}.kiosk-meal-description{font-size:1.3rem}.kiosk-star{font-size:4rem}.kiosk-submit-button{font-size:1.5rem;padding:25px 60px;min-width:300px;min-height:80px}}@media (max-width: 480px){.canteen-kiosk{padding:20px 10px}.kiosk-header h1{font-size:2rem}.kiosk-date{font-size:1rem}.kiosk-meal-section,.kiosk-service-section{padding:20px}.kiosk-meal-header-section h2,.kiosk-service-section h2{font-size:1.5rem}.kiosk-meal-description{font-size:1.1rem}.kiosk-rating-section h3{font-size:1.3rem}.kiosk-star{font-size:3rem}.kiosk-submit-button{font-size:1.3rem;padding:20px 40px;min-width:250px;min-height:70px}.kiosk-success-message{padding:40px 20px}.kiosk-success-message h2{font-size:2rem}.kiosk-success-message p{font-size:1.2rem}}.privacy-policy{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem 1rem}.privacy-policy-container{max-width:900px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;overflow:hidden}.privacy-policy-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;text-align:center}.privacy-policy-header h1{margin:.5rem 0;font-size:2rem;font-weight:600}.last-updated{margin:.5rem 0 0;opacity:.9;font-size:.9rem}.back-link{display:inline-block;color:#fff;text-decoration:none;margin-bottom:1rem;font-size:.95rem;opacity:.9;transition:opacity .2s}.back-link:hover{opacity:1;text-decoration:underline}.privacy-policy-content{padding:2rem;line-height:1.8;color:#333}.privacy-policy-content section{margin-bottom:2.5rem}.privacy-policy-content h2{color:#667eea;font-size:1.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e0e0e0}.privacy-policy-content p{margin-bottom:1rem;text-align:justify}.privacy-policy-content ul{margin:1rem 0;padding-left:2rem}.privacy-policy-content li{margin-bottom:.75rem}.privacy-policy-content strong{color:#667eea;font-weight:600}.consent-section{background:#f8f9fa;padding:1.5rem;border-radius:8px;border-left:4px solid #667eea;margin-top:2rem}.privacy-policy-footer{padding:1.5rem 2rem;background:#f8f9fa;border-top:1px solid #e0e0e0;text-align:center}.privacy-policy-footer .back-link{color:#667eea;font-weight:500}.privacy-policy-footer .back-link:hover{text-decoration:underline}@media (max-width: 768px){.privacy-policy{padding:1rem .5rem}.privacy-policy-header{padding:1.5rem 1rem}.privacy-policy-header h1{font-size:1.5rem}.privacy-policy-content{padding:1.5rem}.privacy-policy-content h2{font-size:1.25rem}.privacy-policy-footer{padding:1rem}}.school-employees{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:0;position:relative}.school-employees:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(20,184,166,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(15,118,110,.15) 0%,transparent 50%);pointer-events:none}.employees-container{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:3rem;max-width:1200px;width:100%;margin:2rem auto;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;position:relative;z-index:1;flex:1;overflow:hidden}.employees-content{padding:2rem}.search-section{margin-bottom:2rem;display:flex;flex-direction:column;gap:1rem}.export-buttons{display:flex;gap:1rem;flex-wrap:wrap}.export-button{padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;white-space:nowrap;display:inline-flex;align-items:center;gap:.5rem}.pdf-button{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff}.pdf-button:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);transform:translateY(-2px);box-shadow:0 4px 12px #dc26264d}.google-contacts-button{background:linear-gradient(135deg,#4285f4,#1a73e8);color:#fff}.google-contacts-button:hover{background:linear-gradient(135deg,#1a73e8,#1557b0);transform:translateY(-2px);box-shadow:0 4px 12px #4285f44d}.search-input{width:100%;padding:1rem;font-size:1rem;border:2px solid #e0e0e0;border-radius:8px;transition:border-color .3s}.search-input:focus{outline:none;border-color:#10b981}.employees-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.employee-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:10px;padding:1.5rem;display:flex;justify-content:space-between;align-items:center;transition:transform .2s,box-shadow .2s}.employee-card:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0000001a}.employee-info h3{margin:0 0 .5rem;color:#333;font-size:1.2rem}.employee-email{color:#666;margin:.25rem 0;font-size:.9rem}.employee-phone{color:#333;margin:.5rem 0 .25rem;font-size:.95rem}.employee-role{color:#666;margin:.25rem 0 0;font-size:.85rem}.phone-button{background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:500;transition:transform .2s,box-shadow .2s;white-space:nowrap}.phone-button:hover{transform:translateY(-2px);box-shadow:0 5px 15px #10b9814d}.loading{text-align:center;padding:3rem;font-size:1.2rem;color:#666}.error-message{text-align:center;padding:3rem;font-size:1.2rem;color:#dc3545;background:#f8d7da;border-radius:8px}.no-results{text-align:center;padding:3rem;font-size:1.1rem;color:#666;grid-column:1 / -1}.employees-table-container{overflow-x:auto;border-radius:8px;box-shadow:0 2px 8px #0000001a}.employees-table{width:100%;border-collapse:collapse;background:#fff;font-size:.95rem}.employees-table thead{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.employees-table th{padding:1rem;text-align:left;font-weight:600;font-size:.95rem;white-space:nowrap}.employees-table tbody tr{border-bottom:1px solid #e0e0e0;transition:background-color .2s}.employees-table tbody tr:hover{background-color:#f8f9fa}.employees-table tbody tr:last-child{border-bottom:none}.employees-table td{padding:1rem;vertical-align:middle}.employee-name{font-weight:500;color:#333}.employee-email{color:#666;word-break:break-word}.employee-phone{white-space:nowrap;min-width:120px}.phone-link{color:#10b981;text-decoration:none;font-weight:500;transition:color .2s;white-space:nowrap}.phone-link:hover{color:#059669;text-decoration:underline}.no-phone{color:#999;font-style:italic}.employee-role{color:#666;font-size:.9rem}.employee-actions{display:flex;gap:.5rem;align-items:center}.phone-button-small,.email-button-small{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;text-decoration:none;font-size:1.2rem;transition:transform .2s,box-shadow .2s;cursor:pointer}.phone-button-small{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.phone-button-small:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.email-button-small{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.email-button-small:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.employees-mobile{display:none}.employee-card-mobile{background:#fff;border-radius:10px;margin-bottom:.75rem;box-shadow:0 2px 6px #0000001a;overflow:hidden;transition:box-shadow .2s}.employee-card-mobile:hover{box-shadow:0 4px 12px #00000026}.employee-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer;-webkit-user-select:none;user-select:none}.employee-card-name{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.employee-title-mobile{font-size:.85rem;color:#666;font-weight:500}.employee-name-mobile{font-size:1.1rem;font-weight:600;color:#333;word-wrap:break-word}.employee-card-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.phone-button-mobile,.email-button-mobile{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;text-decoration:none;font-size:1.3rem;transition:transform .2s,box-shadow .2s;cursor:pointer}.phone-button-mobile{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.phone-button-mobile:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.email-button-mobile{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.email-button-mobile:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.expand-icon{font-size:.9rem;color:#666;margin-left:.5rem;transition:transform .2s}.employee-card-mobile.expanded .expand-icon{transform:rotate(0)}.employee-card-details{padding:1rem;border-top:1px solid #e0e0e0;margin-top:.5rem;animation:slideDown .2s ease-out}@media print{body *{visibility:hidden}.print-container,.print-container *{visibility:visible}.print-container{position:relative!important;left:0!important;top:0!important;width:calc(100% - 40px)!important;max-width:calc(100% - 40px)!important;height:auto!important;padding:15px 20px!important;margin:0 auto!important;background:#fff;overflow:visible!important;display:block!important;page-break-inside:auto;box-sizing:border-box}.print-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1.5px solid #333;page-break-after:avoid;page-break-inside:avoid}.print-logo-container{flex-shrink:0;margin-right:15px}.print-logo{max-height:45px;width:auto;display:block}.print-school-info{flex:1;text-align:right}.print-school-name{font-size:11pt;font-weight:700;color:#000;margin-bottom:3px;line-height:1.2}.print-school-address{font-size:8pt;color:#666;line-height:1.2}.print-title{font-size:16pt;font-weight:700;margin:10px 0 8px;text-align:center;color:#000;page-break-after:avoid}.print-table{width:100%!important;max-width:100%!important;border-collapse:collapse;font-size:8.5pt;color:#000;page-break-inside:auto;margin-top:5px;table-layout:fixed}.print-table thead{background-color:#14b8a6;display:table-header-group;color:#fff}.print-table thead th{position:sticky;top:0}.print-table th{padding:6px 5px;text-align:left;border-bottom:2px solid #0f766e;font-weight:700;color:#fff;white-space:nowrap;font-size:9pt}.print-table td{padding:5px;border-bottom:1px solid #e0e0e0;color:#000;word-wrap:break-word;vertical-align:middle;line-height:1.3}.print-table td:nth-child(2),.print-table td.phone-cell{white-space:nowrap!important;min-width:120px}.print-table tbody tr{page-break-inside:avoid;page-break-after:auto;height:auto}.print-table tbody tr:nth-child(2n){background-color:#f8f8f8}.print-table tbody tr:last-child td{border-bottom:none}@page{margin:1.5cm 2cm!important;size:A4 portrait}.print-container>*:first-child{margin-top:0}.print-table th:nth-child(1),.print-table td:nth-child(1){width:28%!important;min-width:0;word-wrap:break-word;overflow-wrap:break-word}.print-table th:nth-child(2),.print-table td:nth-child(2){width:15%!important;min-width:100px}.print-table th:nth-child(3),.print-table td:nth-child(3){width:30%!important;min-width:0;word-wrap:break-word;overflow-wrap:break-word}.print-table th:nth-child(4),.print-table td:nth-child(4){width:27%!important;min-width:0;word-wrap:break-word;overflow-wrap:break-word}.school-employees,.employees-container,.header,.search-section,.export-buttons{display:none!important}}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:200px}}.employee-detail-item{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.employee-detail-item:last-child{margin-bottom:0}.employee-detail-item strong{font-size:.85rem;color:#666;font-weight:600}.employee-detail-item span,.phone-link-mobile,.email-link-mobile{font-size:1rem;color:#333}.phone-link-mobile{color:#10b981;text-decoration:none;font-weight:500}.phone-link-mobile:hover{text-decoration:underline}.email-link-mobile{color:#10b981;text-decoration:none;font-weight:500;word-break:break-all}.email-link-mobile:hover{text-decoration:underline}@media (max-width: 768px){.school-employees{padding:0}.employees-container{border-radius:16px;padding:1.5rem;margin:1rem}.employees-header{padding:1rem}.employees-header h1{font-size:1.3rem}.employees-content{padding:1rem}.search-section{margin-bottom:1rem}.search-input{padding:.75rem;font-size:.9rem}.employees-table-desktop{display:none}.employees-mobile{display:block}.employees-table-container{overflow-x:visible}.no-results{padding:2rem 1rem;font-size:.9rem}}@media (min-width: 769px){.employees-mobile{display:none}.employees-table-desktop{display:table}}.it-admin-info{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:0;position:relative}.it-admin-info:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(20,184,166,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(15,118,110,.15) 0%,transparent 50%);pointer-events:none}.info-container{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:3rem;max-width:1200px;width:100%;margin:2rem auto;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;position:relative;z-index:1}.info-content{padding:2rem;width:100%;box-sizing:border-box;overflow-x:hidden}.info-section{margin-bottom:2rem}.info-section h2{color:#333;margin-bottom:1rem;font-size:1.5rem}.announcement-box,.support-box,.security-box,.services-box,.updates-box{background:#f8f9fa;border-left:4px solid #667eea;padding:1.5rem;border-radius:8px;margin-bottom:1rem}.support-box{border-left-color:#10b981}.security-box{border-left-color:#dc3545}.services-box{border-left-color:#f59e0b}.updates-box{border-left-color:#6366f1}.announcement-box h3,.support-box h3,.security-box h3,.services-box h3,.updates-box h3{margin-top:0;color:#333}.announcement-box ul,.security-box ul,.services-box ul{margin:1rem 0;padding-left:1.5rem}.announcement-box li,.security-box li,.services-box li{margin:.5rem 0;color:#555}.faq-box{display:flex;flex-direction:column;gap:1rem}.faq-item{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem}.faq-item h4{margin:0 0 .75rem;color:#667eea;font-size:1.1rem}.faq-item p{margin:0;color:#555;line-height:1.6}.wifi-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.wifi-item{background:#f8f9fa;border:1px solid #e0e0e0;border-left:4px solid #667eea;border-radius:8px;padding:1.5rem}.wifi-item h3{margin:0 0 1rem;color:#333;font-size:1.1rem}.wifi-item p{margin:.5rem 0;color:#555;font-size:.95rem}.wifi-item strong{color:#333}.license-box{background:#f8f9fa;border-left:4px solid #10b981;padding:1.5rem;border-radius:8px;margin-bottom:1rem}.license-box p{margin:.75rem 0;color:#555;line-height:1.6}.license-box a:hover{text-decoration:underline}.edit-textarea,.edit-input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;margin-bottom:.5rem;box-sizing:border-box}.edit-textarea{min-height:100px;resize:vertical}.edit-input{margin-top:.5rem}@media (max-width: 768px){.it-admin-info{padding:0;min-height:100vh;width:100%;box-sizing:border-box}.info-container{border-radius:16px;padding:1.5rem;width:100%;max-width:100%;margin:1rem auto;box-sizing:border-box}.info-content{padding:1rem;width:100%;box-sizing:border-box;overflow-x:hidden}.info-section{margin-bottom:1.5rem;width:100%;box-sizing:border-box}.info-section h2{font-size:1.1rem;margin-bottom:.75rem;word-wrap:break-word}.announcement-box,.support-box,.security-box,.services-box,.updates-box,.license-box{padding:1rem;margin-bottom:.75rem;width:100%;box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word}.announcement-box h3,.support-box h3,.security-box h3,.services-box h3,.updates-box h3{font-size:1rem}.announcement-box ul,.security-box ul,.services-box ul{padding-left:1.2rem;margin:.75rem 0}.announcement-box li,.security-box li,.services-box li{margin:.4rem 0;font-size:.9rem}.faq-item{padding:1rem}.faq-item h4{font-size:1rem;margin-bottom:.5rem}.faq-item p{font-size:.9rem;line-height:1.5}.wifi-box{grid-template-columns:1fr;gap:1rem}.wifi-item{padding:1rem}.wifi-item h3{font-size:1rem;margin-bottom:.75rem}.wifi-item p{font-size:.85rem;margin:.4rem 0}.license-box p{font-size:.9rem;margin:.5rem 0;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word}.license-box a{word-break:break-all;display:inline-block;max-width:100%}.edit-textarea,.edit-input{padding:.6rem;font-size:.9rem;width:100%;box-sizing:border-box}.edit-textarea{min-height:80px}.faq-item h3,.wifi-item h3{font-size:.95rem;word-wrap:break-word}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f766e,#14b8a6,#2dd4bf);padding:2rem;position:relative;overflow:hidden}.auth-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(20,184,166,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(15,118,110,.15) 0%,transparent 50%);pointer-events:none}.auth-card{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:3rem;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;max-width:420px;width:100%;text-align:center;position:relative;z-index:1;pointer-events:auto}.auth-logo{display:flex;justify-content:center;margin-bottom:1.5rem}.auth-logo .school-logo{height:70px;width:auto;max-width:180px;object-fit:contain}.auth-header h1{color:#1e293b;margin-bottom:.5rem;font-size:1.8rem;font-weight:700;letter-spacing:-.02em}.auth-header p{color:#475569;margin-bottom:2rem;font-size:1rem;font-weight:400}.office365-button{width:100%;padding:1rem;background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.5rem;box-shadow:0 4px 14px #0f766e66;position:relative;overflow:hidden;z-index:10;pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.office365-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s;pointer-events:none;z-index:-1}.office365-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #0f766e80}.office365-button:hover:not(:disabled):before{left:100%}.office365-button:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;padding:.875rem 1rem;border-radius:10px;margin-bottom:1rem;font-size:.9rem;font-weight:500;border:1px solid #fca5a5;box-shadow:0 2px 8px #dc26261a}.auth-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.auth-info p{color:#64748b;font-size:.85rem;margin:0;font-weight:400}@media (max-width: 768px){.auth-container{padding:1rem}.auth-card{padding:2rem 1.5rem;border-radius:10px}.auth-logo .school-logo{height:60px;max-width:150px}.auth-header h1{font-size:1.5rem}.auth-header p{font-size:.95rem}.office365-button{padding:.875rem;font-size:.95rem}}@media (max-width: 480px){.auth-container{padding:.75rem}.auth-card{padding:1.5rem 1rem;border-radius:8px}.auth-logo .school-logo{height:50px;max-width:120px}.auth-header h1{font-size:1.3rem}.auth-header p{font-size:.9rem}.office365-button{padding:.8rem;font-size:.9rem}}.pwa-update-prompt{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:10000;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:1rem 1.5rem;max-width:400px;width:calc(100% - 40px);animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translate(-50%) translateY(100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.pwa-update-content{display:flex;flex-direction:column;gap:1rem}.pwa-update-content p{margin:0;color:#333;font-size:.95rem}.pwa-update-buttons{display:flex;gap:.75rem;justify-content:flex-end}.pwa-update-button{padding:.5rem 1rem;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.pwa-update-button:hover{background-color:#1976d2}.pwa-update-dismiss{padding:.5rem 1rem;background-color:transparent;color:#666;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.pwa-update-dismiss:hover{background-color:#f5f5f5}@media (max-width: 480px){.pwa-update-prompt{bottom:10px;left:10px;right:10px;transform:none;max-width:none;width:auto}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.pwa-update-buttons{flex-direction:column}.pwa-update-button,.pwa-update-dismiss{width:100%}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10000;padding:1rem;animation:slideUp .3s ease-out;box-shadow:0 -4px 20px #0000004d}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.cookie-consent-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.cookie-consent-icon{flex-shrink:0;width:48px;height:48px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.cookie-consent-text{flex:1;min-width:250px;color:#fff}.cookie-consent-text h3{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:#fff}.cookie-consent-text p{margin:0;font-size:.9rem;line-height:1.5;color:#ffffffe6}.cookie-link{color:#667eea;text-decoration:underline;font-weight:500;transition:color .2s;background:none;border:none;padding:0;cursor:pointer;font-size:inherit}.cookie-link:hover{color:#764ba2}.cookie-consent-buttons{display:flex;gap:.75rem;flex-shrink:0;align-items:center}.cookie-button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;display:flex;align-items:center;justify-content:center}.cookie-button.accept{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.cookie-button.accept:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.cookie-button.settings{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3)}.cookie-button.settings:hover{background:#ffffff40}.cookie-button.decline{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3)}.cookie-button.decline:hover{background:#ffffff4d}.cookie-button.close{background:transparent;color:#ffffffb3;padding:.5rem;border:none}.cookie-button.close:hover{color:#fff;background:#ffffff1a}.cookie-button.revoke{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.cookie-button.revoke:hover{background:#fecaca}.cookie-manage-button{position:fixed;bottom:1rem;right:1rem;z-index:9999}.cookie-manage-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.75rem 1.25rem;border-radius:8px;border:none;font-size:.875rem;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #667eea66;transition:all .2s;display:flex;align-items:center;gap:.5rem}.cookie-manage-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.cookie-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10001;display:flex;align-items:center;justify-content:center;padding:1rem}.cookie-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:48rem;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.cookie-settings-modal{max-width:36rem}.cookie-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f0f4ff,#faf5ff)}.cookie-modal-header-content{display:flex;align-items:center;gap:.75rem}.cookie-modal-icon{width:40px;height:40px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.cookie-modal-header h2{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.cookie-modal-close{background:transparent;border:none;color:#9ca3af;cursor:pointer;padding:.25rem;transition:color .2s;display:flex;align-items:center;justify-content:center}.cookie-modal-close:hover{color:#4b5563}.cookie-modal-body{padding:1.5rem;overflow-y:auto;flex:1;font-size:.875rem;line-height:1.6;color:#374151}.cookie-policy-section{margin-bottom:1.5rem}.cookie-policy-section h3{font-size:1rem;font-weight:700;color:#111827;margin-bottom:.5rem}.cookie-policy-section p{margin-bottom:.75rem}.cookie-policy-subtitle{margin-top:.5rem;font-size:.875rem}.cookie-policy-section ul{list-style-type:disc;padding-left:1.5rem;margin-top:.5rem;margin-bottom:.75rem}.cookie-policy-section li{margin-bottom:.25rem}.cookie-policy-footer{padding-top:1rem;border-top:1px solid #e5e7eb;font-size:.75rem;color:#6b7280}.cookie-settings-section{margin-bottom:1.5rem}.cookie-settings-section h3{font-size:1rem;font-weight:700;color:#111827;margin-bottom:.5rem}.cookie-settings-description{font-size:.75rem;color:#6b7280;margin-bottom:.75rem}.cookie-settings-section ul{list-style-type:disc;padding-left:1.5rem;font-size:.75rem;margin-top:.5rem}.cookie-setting-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#f9fafb;border-radius:8px;margin-top:.5rem}.cookie-setting-status{font-size:.75rem;color:#6b7280}.cookie-revoke-section{padding-top:1rem;border-top:1px solid #e5e7eb;margin-top:1rem}.cookie-revoke-description{font-size:.75rem;color:#6b7280;margin-bottom:.75rem}.cookie-modal-footer{padding:1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb;display:flex;gap:.75rem}.cookie-settings-footer{justify-content:space-between}.cookie-settings-footer .cookie-button{flex:1}@media (max-width: 768px){.cookie-consent{padding:1rem}.cookie-consent-content{flex-direction:column;align-items:stretch}.cookie-consent-icon{margin:0 auto}.cookie-consent-text{min-width:100%;text-align:center}.cookie-consent-buttons{width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center}.cookie-button{flex:1;min-width:120px}.cookie-button.close{position:absolute;top:.5rem;right:.5rem;flex:none;min-width:auto}.cookie-modal{max-height:95vh}.cookie-modal-header,.cookie-modal-body{padding:1rem}.cookie-modal-footer{padding:1rem;flex-direction:column}.cookie-settings-footer .cookie-button{width:100%}.cookie-manage-button{bottom:.5rem;right:.5rem}.cookie-manage-btn{padding:.625rem 1rem;font-size:.8125rem}}.app{min-height:100vh;background-color:#f5f5f5}.app-header{background:linear-gradient(135deg,#0d9488,#14b8a6,#2dd4bf);color:#fff;padding:1.5rem 2rem;box-shadow:0 4px 20px #0f766e33;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:relative;overflow:hidden}.app-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}.app-header>*{position:relative;z-index:1}.app-header h1{font-size:1.5rem;color:#fff;font-weight:600;text-shadow:0 2px 4px rgba(0,0,0,.1)}.back-button{padding:.6rem 1.25rem;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:10;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.back-button:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.back-button:active{background:#fff6;transform:translateY(0)}.logout-button{padding:.6rem 1.25rem;background:#dc2626e6;color:#fff;border:1px solid rgba(220,38,38,1);border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #dc26264d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.logout-button:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 4px 12px #dc262666}@media (max-width: 768px){.app-header{padding:1rem;flex-wrap:nowrap;gap:.75rem}.app-header>div:first-child{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.app-header>div:last-child{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.app-header h1{font-size:1.1rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.back-button{padding:.5rem .75rem;font-size:.85rem;flex-shrink:0;min-width:auto;white-space:nowrap}.logout-button{padding:.5rem .75rem;font-size:.85rem;flex-shrink:0}.app-header>div:last-child span{display:none}}@media (max-width: 480px){.app-header{padding:.75rem;flex-direction:row;align-items:center;gap:.5rem;flex-wrap:nowrap}.app-header>div:first-child{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;overflow:hidden}.app-header>div:last-child{display:flex;align-items:center;flex-shrink:0}.app-header h1{font-size:.95rem;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.back-button{padding:.5rem .6rem;font-size:.8rem;flex-shrink:0;min-width:auto;white-space:nowrap}.back-button:before{content:"←";margin-right:.25rem}.back-button{padding-left:.4rem;padding-right:.6rem}.logout-button{padding:.5rem .6rem;font-size:.8rem;flex-shrink:0}.app-header>div:last-child span{display:none}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}#root{min-height:100vh}.loading-spinner{border:4px solid #f3f3f3;border-top:4px solid #2196f3;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){body{font-size:14px}.loading-spinner{width:32px;height:32px;border-width:3px}}@media (max-width: 480px){body{font-size:13px}.loading-spinner{width:28px;height:28px;border-width:2px}}
