.timesheet-table{display:flex;flex-direction:column;width:100%;border-radius:var(--border-radius-md);overflow:hidden;box-shadow:var(--box-shadow-md);font-size:var(--font-size-base);background-color:var(--background-color-card);height:100%}.timesheet-table thead{flex:0 0 auto;width:100%}.timesheet-table thead tr{display:flex;width:100%}.timesheet-table tbody{flex:1 1 auto;display:block;overflow-y:auto;width:100%;padding-bottom:var(--spacing-sm)}.timesheet-table tr{display:flex;width:100%}.timesheet-table th,.timesheet-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;display:flex;align-items:center}.select-column{flex:0 0 5%!important;text-align:center}.select-checkbox{width:20px;height:20px;cursor:pointer;accent-color:var(--background-color-card)}.actions-column{width:15%}.action-buttons{display:flex;gap:var(--spacing-xs);align-items:center}.delete-button{background-color:var(--error-color);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--animation-duration-base),transform var(--animation-duration-fast);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);font-family:var(--font-family);box-shadow:var(--box-shadow-sm)}.delete-button:hover{background-color:var(--error-color);box-shadow:var(--box-shadow-md)}.delete-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.delete-button:disabled{background-color:var(--error-color-bg);cursor:not-allowed;opacity:.7;box-shadow:none}.timesheet-row.selected,.timesheet-row.selected:hover{background-color:var(--info-color-bg)!important}.timesheet-table th:nth-child(2),.timesheet-table td:nth-child(2){flex:0 0 20%}.timesheet-table th:nth-child(3),.timesheet-table td:nth-child(3){flex:0 0 18%}.timesheet-table th:nth-child(4),.timesheet-table td:nth-child(4){flex:0 0 22%}.timesheet-table th:nth-child(5),.timesheet-table td:nth-child(5){flex:0 0 20%}.timesheet-table th:nth-child(6),.timesheet-table td:nth-child(6){flex:0 0 15%}.timesheet-table th{background-color:var(--background-color-light);font-weight:var(--font-weight-bold);color:var(--text-color);position:sticky;top:0;z-index:var(--z-index-base);font-size:var(--font-size-md)}.timesheet-row{background-color:var(--background-color-card);transition:background-color var(--animation-duration-base);height:var(--bottom-menu-height)}.timesheet-row:hover{background-color:var(--background-color-light)}.attendance-row{display:block;background-color:var(--background-color-light);width:100%}.attendance-row td{padding:0;white-space:normal;display:block;width:100%}.toggle-button{background-color:var(--primary-color);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-xs);cursor:pointer;transition:background-color var(--animation-duration-base),transform var(--animation-duration-fast);font-size:var(--font-size-base);font-family:var(--font-family);box-shadow:var(--box-shadow-sm);width:100%;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle-button:hover{background-color:var(--primary-color-hover);box-shadow:var(--box-shadow-md)}.toggle-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.toggle-button:disabled{background-color:var(--text-color-disabled);cursor:not-allowed;opacity:.7;box-shadow:none}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--text-color-secondary)}.loading-spinner{border:4px solid var(--background-color-light);border-top:4px solid var(--primary-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:var(--spacing-sm)}.error-message{background-color:var(--error-color-bg);color:var(--error-color);padding:var(--spacing-lg);border-radius:var(--border-radius-sm);margin:var(--spacing-lg) auto;max-width:600px;text-align:center;box-shadow:var(--box-shadow-md)}.error-message h3{margin-top:0;font-size:var(--font-size-md)}.error-message button{background-color:var(--error-color);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-xs);margin-top:var(--spacing-sm);cursor:pointer}.error-message button:hover{background-color:var(--error-color);box-shadow:var(--box-shadow-md)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);background-color:var(--background-color-card);border-radius:var(--border-radius-md);text-align:center;height:100%}.empty-state h3{color:var(--text-color);margin-bottom:var(--spacing-sm);font-size:var(--font-size-lg)}.timesheet-row:nth-child(2n){background-color:var(--background-color-card)}.timesheet-row:nth-child(odd){background-color:var(--background-color-light)}.timesheet-row:hover{background-color:var(--info-color-bg)}.attendance-row{padding:var(--spacing-md)}.group-header:hover .group-title,.group-header:hover .expand-icon{color:var(--primary-color)}.loading-state{display:flex;justify-content:center;align-items:center;height:200px}.no-data-message{background-color:var(--background-color-light);padding:var(--spacing-lg);border-radius:var(--border-radius-sm);text-align:center;color:var(--text-color-secondary);margin:var(--spacing-lg) 0}.attendance-calendar{width:100%;background-color:var(--background-color-card);border-radius:var(--border-radius-md);overflow:hidden;padding:var(--spacing-md)}.calendar-container{overflow-x:auto;padding-bottom:var(--spacing-sm)}.calendar-table{width:100%;border-collapse:collapse;min-width:800px}.calendar-table th,.calendar-table td{padding:var(--spacing-sm);text-align:center;border:1px solid var(--border-color)}.calendar-table th{background-color:var(--background-color-light);font-weight:var(--font-weight-bold);position:sticky;top:0}.name-column{width:200px;text-align:left!important}.day-column{width:45px}.name-cell{font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-cell{position:relative;width:45px;height:45px}.day-cell.attended{background-color:var(--success-color-light)}.day-cell.absent{background-color:var(--error-color-bg)}.day-cell.no-data{background-color:var(--background-color-light)}.calendar-table tr{height:45px}.day-cell.attended:after{content:"✓";color:var(--success-color)}.day-cell.absent:after{content:"✗";color:var(--error-color)}.day-cell.no-data:after{content:"-";color:var(--text-color-light)}.timesheet-table tbody::-webkit-scrollbar{width:8px}.timesheet-table tbody::-webkit-scrollbar-track{background:var(--background-color-light);border-radius:var(--border-radius-xs)}.timesheet-table tbody::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:var(--border-radius-xs);border:2px solid var(--background-color-light)}.timesheet-table tbody::-webkit-scrollbar-thumb:hover{background-color:var(--text-color-light)}.attendance-view{background-color:var(--background-color-card);padding:var(--spacing-lg);border-radius:var(--border-radius-md);margin-top:var(--spacing-md);box-shadow:var(--box-shadow-md);height:100%;display:flex;flex-direction:column;overflow:hidden}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-sm)}.attendance-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.back-to-table-button{background-color:var(--primary-color);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-xs);cursor:pointer;transition:background-color var(--animation-duration-base);font-size:var(--font-size-base);font-family:var(--font-family);box-shadow:var(--box-shadow-sm)}.back-to-table-button:hover{background-color:var(--primary-color-hover);box-shadow:var(--box-shadow-md)}.back-to-table-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.attendance-view .attendance-calendar{flex:1;overflow:auto}.attendance-calendar{margin-top:10px;margin-bottom:20px;width:100%;height:100%;display:flex;flex-direction:column;font-family:var(--font-family)}.calendar-container{overflow:auto;width:100%;min-width:0;position:relative;max-height:70vh;flex:1}.calendar-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-base)}.calendar-table th,.calendar-table td{padding:12px;text-align:center;border:1px solid var(--border-color)}.calendar-table th{background-color:var(--background-color-light);font-weight:var(--font-weight-medium);color:var(--text-color);position:sticky;top:0;z-index:5}.name-column{min-width:200px;text-align:left;position:sticky;left:0;z-index:2;background-color:var(--background-color-card)}.day-column{min-width:50px;font-weight:var(--font-weight-bold);text-align:center}.name-cell{text-align:left;font-weight:var(--font-weight-medium);color:var(--text-color);background-color:var(--background-color-card);padding:8px}.name-cell-container{width:100%;display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap}.child-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.attendance-stats{font-weight:var(--font-weight-medium);color:var(--text-color);white-space:nowrap;margin-left:8px;flex-shrink:0}.calendar-table th.name-column{z-index:10;background-color:var(--background-color-light)}.day-cell.attended{background-color:var(--success-color-bg);color:var(--success-color);position:relative}.day-cell.attended:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--success-color)}.day-cell.absent{background-color:var(--error-color-bg);color:var(--error-color);position:relative}.day-cell.absent:after{content:"✗";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--error-color)}.day-cell.empty-cell{background-color:var(--background-color);color:var(--text-color-disabled)}.attendance-calendar th,.attendance-calendar td{padding:8px;text-align:center;border:1px solid var(--border-color)}.attendance-calendar th{background-color:var(--background-color-light);font-weight:var(--font-weight-medium);color:var(--text-color)}.attendance-calendar .child-name{text-align:left;font-weight:var(--font-weight-medium);color:var(--text-color);min-width:150px}.attendance-calendar .calendar-day{width:30px;height:30px}.attendance-calendar .attended{background-color:var(--success-color-bg);color:var(--success-color)}.attendance-calendar .absent{background-color:var(--error-color-bg);color:var(--error-color)}.attendance-calendar .weekend{background-color:var(--background-color-light);color:var(--text-color-secondary)}.attendance-calendar .today{font-weight:var(--font-weight-bold);border:2px solid var(--primary-color)}.attendance-calendar-summary{margin-top:10px;text-align:right;font-size:var(--font-size-sm);color:var(--text-color-secondary)}.no-data-message{text-align:center;color:var(--text-color-secondary);font-size:var(--font-size-md);font-family:var(--font-family)}.timesheet-filter{padding:var(--spacing-md);background-color:var(--background-color-card);border-radius:var(--border-radius-md);box-shadow:var(--box-shadow-md);position:relative;z-index:var(--z-index-base);height:100%}.filter-controls{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center;height:100%}.filter-group{display:flex;align-items:center;gap:var(--spacing-xs)}.filter-group label{font-weight:var(--font-weight-medium);margin-bottom:0;color:var(--text-color);font-size:var(--font-size-base)}.filter-group select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius-xs);background-color:var(--background-color-light);min-width:120px;font-size:var(--font-size-base);color:var(--text-color)}.month-select-group{display:flex;align-items:center}.month-select-wrapper{display:flex;align-items:center;gap:var(--spacing-xs)}.month-arrow{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:var(--background-color-light);color:var(--text-color-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-xs);cursor:pointer;transition:all var(--animation-duration-base);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);padding:0}.month-arrow:hover{background-color:var(--background-color);color:var(--text-color)}.month-arrow:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.prev-month{margin:0 var(--spacing-xs)}.next-month{margin:0 0 0 var(--spacing-xs)}.apply-filter-button{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius-xs);cursor:pointer;transition:background-color var(--animation-duration-base),transform var(--animation-duration-fast);font-size:var(--font-size-base);font-family:var(--font-family);box-shadow:var(--box-shadow-sm)}.apply-filter-button:hover{background-color:var(--primary-color-hover);box-shadow:var(--box-shadow-md)}.apply-filter-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.apply-filter-button:disabled{background-color:var(--text-color-disabled);cursor:not-allowed;box-shadow:none}@media (max-width: var(--breakpoint-desktop)){.filter-controls{flex-wrap:nowrap}.filter-group select{min-width:100px}}@media (max-width: var(--breakpoint-tablet)){.timesheet-filter{height:auto}}@media (max-width: var(--breakpoint-mobile)){.filter-controls{flex-direction:column;align-items:flex-start}.filter-group,.filter-group select,.month-select-group{width:100%}.month-select-wrapper{flex:1;flex-wrap:nowrap}.month-select-wrapper select{flex:1}.apply-filter-button{width:100%;margin-top:var(--spacing-sm)}}.action-toolbar{padding:var(--spacing-md);background-color:var(--background-color-card);border-radius:var(--border-radius-md);box-shadow:var(--box-shadow-md);display:flex;align-items:center;position:relative;z-index:var(--z-index-base);height:100%;flex:1}.selection-actions{display:flex;flex-direction:row;align-items:center;width:100%}.selection-info{font-weight:var(--font-weight-medium);margin-right:var(--spacing-md);color:var(--text-color);font-size:var(--font-size-base)}.action-buttons-container{display:flex;gap:var(--spacing-sm)}.delete-selected-button{background-color:var(--error-color);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--animation-duration-base),transform var(--animation-duration-fast);font-size:var(--font-size-base);box-shadow:var(--box-shadow-sm);font-family:var(--font-family)}.delete-selected-button:hover{background-color:var(--error-color);box-shadow:var(--box-shadow-md)}.delete-selected-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.delete-selected-button:disabled{background-color:var(--error-color-bg);cursor:not-allowed;opacity:.7;box-shadow:none}.export-selected-button{background-color:var(--success-color);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--animation-duration-base),transform var(--animation-duration-fast);font-size:var(--font-size-base);box-shadow:var(--box-shadow-sm);font-family:var(--font-family)}.export-selected-button:hover{background-color:var(--success-color);box-shadow:var(--box-shadow-md)}.export-selected-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.import-button{background-color:var(--primary-color);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--animation-duration-base),transform var(--animation-duration-fast);font-size:var(--font-size-base);box-shadow:var(--box-shadow-sm);font-family:var(--font-family)}.import-button:hover{background-color:var(--primary-color-hover);box-shadow:var(--box-shadow-md)}.import-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.confirmation-actions{display:flex;width:100%;align-items:center}.confirmation-text{font-weight:var(--font-weight-medium);color:var(--error-color);font-size:var(--font-size-base);margin-right:var(--spacing-md)}.confirmation-buttons{display:flex;gap:var(--spacing-sm)}.cancel-button{background-color:var(--background-color-light);color:var(--text-color);border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-base);box-shadow:var(--box-shadow-sm);font-family:var(--font-family)}.cancel-button:hover{background-color:var(--background-color);box-shadow:var(--box-shadow-md)}.cancel-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.confirm-button{background-color:var(--error-color);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--animation-duration-base),transform var(--animation-duration-fast);font-size:var(--font-size-base);box-shadow:var(--box-shadow-sm);font-family:var(--font-family)}.confirm-button:hover{background-color:var(--error-color);box-shadow:var(--box-shadow-md)}.confirm-button:active{transform:translateY(1px);box-shadow:var(--box-shadow-sm)}.confirm-button:disabled{background-color:var(--error-color-bg);cursor:not-allowed;opacity:.7;box-shadow:none}.export-progress{width:100%;display:flex;flex-direction:row;gap:var(--spacing-md);align-items:center}.export-progress-text{font-weight:var(--font-weight-medium);color:var(--text-color);font-size:var(--font-size-base);text-align:left}.export-success{width:100%;text-align:left}.export-success-text{font-weight:var(--font-weight-medium);color:var(--success-color);font-size:var(--font-size-base)}.loading-info{display:flex;flex-direction:row;width:100%;padding:var(--spacing-sm);gap:var(--spacing-md);align-items:center}.loading-text{font-weight:var(--font-weight-medium);color:var(--text-color);font-size:var(--font-size-base);text-align:left}.loading-spinner{border:4px solid var(--background-color-light);border-top:4px solid var(--primary-color);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: var(--breakpoint-desktop)){.action-buttons-container{flex-wrap:wrap}}@media (max-width: var(--breakpoint-tablet)){.action-toolbar{height:auto}.selection-actions{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.selection-info{margin-right:0}.action-buttons-container{margin-top:var(--spacing-xs);width:100%}.confirmation-actions{flex-direction:column;align-items:flex-start}.confirmation-text{margin-right:0;margin-bottom:var(--spacing-xs)}.confirmation-buttons{margin-top:var(--spacing-xs);width:100%}}@media (max-width: var(--breakpoint-mobile)){.action-toolbar{padding:var(--spacing-sm)}.delete-selected-button,.export-selected-button,.import-button,.cancel-button,.confirm-button{width:100%;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.export-progress-text,.export-success-text,.loading-text,.selection-info,.confirmation-text{font-size:var(--font-size-sm)}.confirmation-buttons{flex-direction:column;width:100%}.loading-spinner{width:30px;height:30px}}.login-form-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:var(--background-color);padding:var(--spacing-lg)}.login-form-card{width:400px;padding:var(--spacing-lg);background-color:var(--background-color-card);border-radius:var(--border-radius-md);box-shadow:var(--box-shadow-md)}.login-form-card h2{text-align:center;margin-bottom:var(--spacing-xs);color:var(--text-color);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.login-form-card h3{text-align:center;margin-bottom:var(--spacing-lg);color:var(--text-color-secondary);font-weight:var(--font-weight-normal);font-size:var(--font-size-base)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-size:var(--font-size-sm);color:var(--text-color-secondary)}.form-group input{padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-base);transition:border-color var(--animation-duration-base)}.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #4a90e233}.login-button{padding:var(--spacing-sm);background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius-sm);font-size:var(--font-size-base);font-family:var(--font-family);cursor:pointer;transition:background-color var(--animation-duration-base)}.login-button:hover:not(:disabled){background-color:var(--primary-color-hover)}.login-button:disabled{background-color:var(--disabled-color);cursor:not-allowed}.error-message{color:var(--error-color);font-size:var(--font-size-sm);margin-top:calc(-1 * var(--spacing-xs))}.App{display:grid;grid-template-rows:auto 1fr auto;grid-template-areas:"header" "main" "footer";height:100vh;width:100%;max-width:100%;background-color:var(--background-color);overflow:hidden}.App-header{grid-area:header;background-color:var(--header-color);padding:var(--spacing-md) var(--spacing-lg);color:#fff;text-align:center;box-shadow:var(--box-shadow-sm);width:100%;z-index:var(--z-index-fixed)}.App-header h1{margin:0;font-size:var(--font-weight-base);font-weight:var(--font-weight-normal)}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;width:100%}.logout-button{background-color:transparent;color:#fff;border:1px solid white;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-xs);cursor:pointer;transition:background-color var(--animation-duration-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);font-family:var(--font-family)}.logout-button:hover{background-color:#fff3}main{grid-area:main;overflow:hidden;padding:0 var(--spacing-lg)}.main-content{display:grid;grid-template-rows:auto auto 1fr;grid-gap:var(--spacing-md);height:100%;overflow:hidden;padding-bottom:var(--spacing-md);padding-top:var(--spacing-md)}.tools-container{display:flex;flex-direction:row;gap:var(--spacing-md);width:100%}.tools-container>*{min-height:78px;display:flex;align-items:center}@media (max-width: var(--breakpoint-tablet)){.tools-container{flex-direction:column}}.App-footer{grid-area:footer;background-color:var(--header-color);padding:var(--spacing-xs) var(--spacing-md);text-align:center;color:#fff;font-size:var(--font-size-sm);width:100%;height:var(--bottom-menu-height-mobile);display:flex;align-items:center;justify-content:center}.empty-state{text-align:center;padding:var(--spacing-xl) var(--spacing-lg);background-color:var(--background-color-card);border-radius:var(--border-radius-md);box-shadow:var(--box-shadow-md);margin-top:var(--spacing-lg)}.empty-state h3{color:var(--text-color);margin-bottom:var(--spacing-sm)}.empty-state p{color:var(--text-color-secondary);margin-bottom:var(--spacing-lg)}:root{--primary-color: #1890ff;--success-color: #52c41a;--warning-color: #faad14;--error-color: #ff4d4f;--info-color: #1890ff;--text-color: #000000d9;--text-color-secondary: #00000073;--disabled-color: #00000040;--border-color: #d9d9d9;--background-color: #f5f5f5;--component-background: #fff;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--border-radius-sm: 2px;--border-radius-base: 4px;--border-radius-lg: 8px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--animation-duration-slow: .3s;--animation-duration-base: .2s;--animation-duration-fast: .1s;--animation-timing-function-ease: cubic-bezier(.25, .1, .25, 1);--animation-timing-function-ease-in: cubic-bezier(.42, 0, 1, 1);--animation-timing-function-ease-out: cubic-bezier(0, 0, .58, 1);--animation-timing-function-ease-in-out: cubic-bezier(.42, 0, .58, 1);--box-shadow-base: 0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05);--box-shadow-sm: 0 1px 2px -2px rgba(0, 0, 0, .16), 0 3px 6px 0 rgba(0, 0, 0, .12), 0 5px 12px 4px rgba(0, 0, 0, .09);--box-shadow-lg: 0 6px 16px -8px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03);--z-index-base: 1;--z-index-dropdown: 1050;--z-index-fixed: 1030;--z-index-modal: 1060;--z-index-tooltip: 1070;--z-index-popover: 1080}:root{--primary-color: #4a90e2;--primary-color-hover: #3a7bc8;--primary-color-light: #a0c1e8;--primary-color-bg: #f0f9ff;--header-color: #2c3e50;--success-color: #28a745;--success-color-bg: #d9f7be;--success-color-light: #f6ffed;--error-color: #ff4d4f;--error-color-bg: #fff2f0;--warning-color: #faad14;--warning-color-bg: #fff3cd;--info-color: #1890ff;--info-color-bg: #e6f7ff;--text-color: #333;--text-color-secondary: #666;--text-color-disabled: #999;--text-color-light: #8c8c8c;--border-color: #ddd;--border-color-light: #e8e8e8;--border-color-dark: #ccc;--background-color: #f5f5f5;--background-color-light: #f9f9f9;--background-color-card: #ffffff;--link-color: #646cff;--link-color-hover: #535bf2;--shadow-color: rgba(0, 0, 0, .1);--shadow-color-medium: rgba(0, 0, 0, .15);--overlay-color: rgba(0, 0, 0, .5)}:root{--font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-md: 18px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-xxl: 28px;--font-size-title: 3.2em;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.1;--line-height-base: 1.5;--letter-spacing-normal: normal;--letter-spacing-wide: .05em;--text-transform-uppercase: uppercase}:root{--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 15px;--spacing-lg: 20px;--spacing-xl: 30px;--border-radius-xs: 4px;--border-radius-sm: 6px;--border-radius-md: 8px;--border-radius-lg: 12px;--border-radius-circle: 50%;--box-shadow-sm: 0 1px 3px rgba(0, 0, 0, .03);--box-shadow-md: 0 2px 8px rgba(0, 0, 0, .15);--box-shadow-lg: 0 4px 12px rgba(0, 0, 0, .15);--box-shadow-top: 0 -2px 10px rgba(0, 0, 0, .1);--bottom-menu-height: 60px;--bottom-menu-height-mobile: 50px;--icon-size-base: 20px;--icon-size-lg: 24px;--container-width: 800px;--grid-gap-sm: 5px;--grid-gap-md: 10px;--grid-gap-lg: 15px;--transition-fast: .1s;--transition-base: .2s;--transition-slow: .3s;--breakpoint-mobile: 600px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px}:root{--animation-duration-fast: .1s;--animation-duration-base: .2s;--animation-duration-slow: .3s;--animation-timing-linear: linear;--animation-timing-ease: ease;--animation-timing-ease-in: ease-in;--animation-timing-ease-out: ease-out;--animation-timing-ease-in-out: ease-in-out;--animation-iteration-infinite: infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.fade-in{animation:fadeIn var(--animation-duration-base) var(--animation-timing-ease)}.fade-out{animation:fadeOut var(--animation-duration-base) var(--animation-timing-ease)}.spin{animation:spin var(--animation-duration-slow) var(--animation-timing-linear) var(--animation-iteration-infinite)}.slide-up{animation:slideUp var(--animation-duration-base) var(--animation-timing-ease-out)}.slide-down{animation:slideDown var(--animation-duration-base) var(--animation-timing-ease-out)}.pulse{animation:pulse var(--animation-duration-slow) var(--animation-timing-ease-in-out)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-normal);color:var(--text-color);background-color:var(--background-color)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;overflow-x:hidden}button,input,select,textarea{font-family:var(--font-family)}#root{width:100%;max-width:100%}
