body{margin:0;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}#root{min-height:100vh}.reservation-grid .ant-table{border-collapse:collapse!important}.reservation-grid .ant-table-thead>tr>th{padding:4px 2px!important;border-right:1px solid #f0f0f0!important;border-bottom:1px solid #d9d9d9!important;background:#fafafa!important;font-size:11px!important;color:#666!important}.reservation-grid .ant-table-thead>tr:first-child>th{font-size:13px!important;font-weight:500!important;color:#262626!important}.reservation-grid .ant-table-thead>tr:last-child>th{font-size:10px!important;font-weight:400!important;color:#8c8c8c!important;padding:2px 1px!important}.reservation-grid .ant-table-tbody>tr>td{padding:1px!important;border-right:1px solid #f0f0f0!important;border-bottom:1px solid #f0f0f0!important;vertical-align:middle!important}.reservation-grid .ant-table-cell{padding:0!important}.reservation-grid .reservation-block-wrapper{position:relative;height:100%}.reservation-grid .reservation-block{margin:1px;height:38px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-radius:3px;background:#1890ff;color:#fff;font-size:11px;font-weight:500;padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;transition:all .2s ease}.reservation-grid .reservation-block.confirmed{background:#52c41a}.reservation-grid .reservation-block.overdue{background:#ff4d4f}.reservation-grid .reservation-block.anonymous{background:repeating-linear-gradient(45deg,#8c8c8c,#8c8c8c 10px,#737373 10px,#737373 20px);opacity:.7;cursor:default}.reservation-grid .reservation-block-wrapper:hover .reservation-block{background:#096dd9}.reservation-grid .reservation-block-wrapper:hover .reservation-block.confirmed{background:#389e0d}.reservation-grid .reservation-block-wrapper:hover .reservation-block.overdue{background:#cf1322}.reservation-grid .reservation-block-wrapper:hover .reservation-block.anonymous{background:repeating-linear-gradient(45deg,#8c8c8c,#8c8c8c 10px,#737373 10px,#737373 20px);opacity:.7}.reservation-grid .reservation-info{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.reservation-grid .reservation-actions{position:absolute;top:2px;right:2px;display:none;gap:2px}.reservation-grid .reservation-block-wrapper:hover .reservation-actions{display:flex}.reservation-grid .reservation-actions .ant-btn{height:20px;width:20px;min-width:20px;padding:0!important;display:flex;align-items:center;justify-content:center;background:#0003;border-radius:2px;border:none}.reservation-grid .reservation-actions .ant-btn:hover{background:#0006!important}.reservation-grid .reservation-actions .anticon{font-size:12px}.reservation-grid .empty-slot{background:#fafafa;height:38px;margin:1px;cursor:pointer;transition:background .2s;-webkit-user-select:none;user-select:none}.reservation-grid .empty-slot:hover{background:#e6f7ff;border:1px dashed #1890ff;margin:0}.reservation-grid .empty-slot.dragging{cursor:grabbing}.reservation-grid .empty-slot.selected{background:#bae7ff;border:2px solid #1890ff;margin:0}.reservation-grid.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.reservation-grid.is-dragging *{cursor:grabbing!important}.reservation-grid.is-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.reservation-grid.is-resizing *{cursor:ew-resize!important}.reservation-grid.is-resizing .empty-slot:hover{background:#fafafa;border:none;margin:1px}.reservation-grid .resize-handle{position:absolute;top:0;bottom:0;width:10px;z-index:10;cursor:ew-resize;transition:background .2s}.reservation-grid .resize-handle-left{left:0;background:linear-gradient(to right,rgba(255,255,255,.3),transparent)}.reservation-grid .resize-handle-right{right:0;background:linear-gradient(to left,rgba(255,255,255,.3),transparent)}.reservation-grid .resize-handle:hover{background:#ffffff80}.reservation-grid .resize-handle-left:hover{background:linear-gradient(to right,rgba(255,255,255,.6),transparent)}.reservation-grid .resize-handle-right:hover{background:linear-gradient(to left,rgba(255,255,255,.6),transparent)}.reservation-grid .reservation-block.confirmed .resize-handle{display:none}.confirmed-row{background-color:#f6ffed!important}.confirmed-row:hover>td{background-color:#d9f7be!important}.pending-row{background-color:#e6f7ff!important}.pending-row:hover>td{background-color:#bae7ff!important}.overdue-row{background-color:#fff1f0!important}.overdue-row:hover>td{background-color:#ffccc7!important}.date-separator{background-color:#fafafa!important;cursor:default!important;pointer-events:none}.date-separator:hover>td{background-color:#fafafa!important}.date-separator-today{background-color:#e6f7ff!important;cursor:default!important;pointer-events:none}.date-separator-today:hover>td{background-color:#e6f7ff!important}.reservation-grid .ant-table-tbody>tr.date-header-row>td{background:#fafafa!important;font-weight:700;border-top:2px solid #d9d9d9!important;border-bottom:1px solid #d9d9d9!important;padding:8px!important}.reservation-grid .ant-table-body{overflow-x:auto!important;overflow-y:auto!important;scrollbar-width:auto!important;scrollbar-color:#bfbfbf #f0f0f0!important}.reservation-grid .ant-table-content{padding-bottom:20px}.reservation-grid .ant-table-body::-webkit-scrollbar{height:16px!important;width:16px!important;background-color:#f0f0f0}.reservation-grid .ant-table-body::-webkit-scrollbar-track{background:#f0f0f0;border-radius:8px;border:1px solid #d9d9d9;margin:4px}.reservation-grid .ant-table-body::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:8px;border:2px solid #f0f0f0;transition:background .2s}.reservation-grid .ant-table-body::-webkit-scrollbar-thumb:hover{background:#8c8c8c}.reservation-grid .ant-table-body::-webkit-scrollbar-thumb:active{background:#595959}.reservation-grid .ant-table-body::-webkit-scrollbar-button{width:16px;height:16px;background:#d9d9d9;border:1px solid #bfbfbf}.reservation-grid .ant-table-body::-webkit-scrollbar-button:hover{background:#bfbfbf}.reservation-grid .ant-table-body::-webkit-scrollbar-button:horizontal:decrement{background:#d9d9d9 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><path fill="%23595959" d="M8 2L4 6l4 4V2z"/></svg>') center no-repeat}.reservation-grid .ant-table-body::-webkit-scrollbar-button:horizontal:increment{background:#d9d9d9 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><path fill="%23595959" d="M4 2v8l4-4-4-4z"/></svg>') center no-repeat}.reservation-grid .ant-table-body::-webkit-scrollbar-button:vertical:decrement{background:#d9d9d9 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><path fill="%23595959" d="M2 8h8L6 4 2 8z"/></svg>') center no-repeat}.reservation-grid .ant-table-body::-webkit-scrollbar-button:vertical:increment{background:#d9d9d9 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><path fill="%23595959" d="M2 4l4 4 4-4H2z"/></svg>') center no-repeat}.reservation-grid .ant-table-body::-webkit-scrollbar-button:active{background-color:#bfbfbf!important}.reservation-grid .ant-table-body::-webkit-scrollbar-corner{background:#f0f0f0}
