*{box-sizing:border-box}body{color:#1f2937;background:radial-gradient(circle at 100% 0,#2563eb1a,#0000 28%),#f3f6fb;min-width:1180px;margin:0;font-family:Inter,Microsoft YaHei,PingFang SC,Arial,sans-serif}.el-notification.booking-arrival-notification{border:1px solid #dbe7f4;border-radius:8px;width:356px;padding:0;overflow:hidden;box-shadow:0 12px 28px #0f172a29}.booking-realtime-popup-stack{z-index:2100;pointer-events:none;width:356px;height:1px;position:fixed;bottom:16px;right:16px}.booking-realtime-popup-stack>.el-notification.booking-arrival-notification{pointer-events:auto;transform-origin:100% 100%;margin:0;transition:opacity .2s,translate .2s,scale .2s;position:absolute!important;bottom:0!important;right:0!important}.booking-realtime-popup-stack>.booking-arrival-notification:nth-last-child(2){pointer-events:none;opacity:.9;translate:0 -8px;scale:.98;z-index:-1!important}.booking-realtime-popup-stack>.booking-arrival-notification:nth-last-child(3){pointer-events:none;opacity:.75;translate:0 -16px;scale:.96;z-index:-2!important}.booking-realtime-popup-stack>.booking-arrival-notification:nth-last-child(n+4){pointer-events:none;opacity:0;translate:0 -16px;scale:.96;z-index:-3!important}.booking-arrival-notification .el-notification__group{width:100%;margin:0}.booking-arrival-notification .el-notification__content{margin:0}.booking-arrival-notification .el-notification__closeBtn{color:#94a3b8;top:15px;right:14px}.booking-arrival-notification__content{color:#334155}.booking-arrival-notification__header{border-bottom:1px solid #edf2f7;align-items:center;gap:10px;padding:14px 42px 12px 16px;display:flex}.booking-arrival-notification__close-all{color:#475569;font:inherit;white-space:nowrap;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;flex:none;margin-left:auto;margin-right:8px;padding:4px 9px;font-size:12px;font-weight:500;line-height:1.4;display:none}.booking-arrival-notification__close-all:hover{color:#1e293b;background:#f1f5f9;border-color:#94a3b8}.booking-arrival-notification__close-all:focus-visible{outline-offset:1px;outline:2px solid #93c5fd}.booking-realtime-popup-stack:has(>.booking-arrival-notification:nth-child(2))>.booking-arrival-notification:last-child .booking-arrival-notification__close-all{display:inline-flex}.booking-arrival-notification__icon{color:#2f74c0;background:#eaf3ff;border-radius:7px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.booking-arrival-notification__icon svg{width:16px;height:16px}.booking-arrival-notification__heading{gap:2px;min-width:0;display:grid}.booking-arrival-notification__heading strong{color:#1e293b;font-size:14px;line-height:1.35}.booking-arrival-notification__heading span{color:#718096;font-size:12px;line-height:1.35}.booking-arrival-notification__details{gap:5px;padding:12px 16px;display:grid}.booking-arrival-notification__booking-no{color:#2563eb;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:1.35;overflow:hidden}.booking-arrival-notification__location,.booking-arrival-notification__schedule,.booking-arrival-notification__updated-at{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.booking-arrival-notification__changed-fields{color:#7e22ce;text-overflow:ellipsis;white-space:nowrap;background:#faf5ff;border:1px solid #e9d5ff;border-radius:4px;align-self:start;width:fit-content;max-width:100%;padding:3px 7px;font-size:12px;font-weight:600;line-height:1.4;overflow:hidden}.booking-arrival-notification__action{color:#2563eb;width:100%;font:inherit;text-align:left;cursor:pointer;background:#f8fbff;border:0;border-top:1px solid #edf2f7;justify-content:space-between;align-items:center;padding:10px 16px;font-size:12px;font-weight:600;display:flex}.booking-arrival-notification__action:hover{background:#eff6ff}.booking-arrival-notification__action svg{width:15px;height:15px}.booking-created-notification .booking-arrival-notification__heading strong{color:#1d4ed8}.booking-update-notification .booking-arrival-notification__icon{color:#7c3aed;background:#f5f3ff}.booking-update-notification .booking-arrival-notification__heading strong,.booking-update-notification .booking-arrival-notification__booking-no{color:#7e22ce}.booking-update-notification .booking-arrival-notification__action{color:#7e22ce;background:#fdfaff}.booking-update-notification .booking-arrival-notification__action:hover{background:#faf5ff}.booking-cancel-notification .booking-arrival-notification__icon{color:#dc2626;background:#fff1f2}.booking-cancel-notification .booking-arrival-notification__heading strong,.booking-cancel-notification .booking-arrival-notification__booking-no{color:#b91c1c}.booking-cancel-notification .booking-arrival-notification__action{color:#b91c1c;background:snow}.booking-cancel-notification .booking-arrival-notification__action:hover{background:#fff1f2}.muted{color:#6b7280;margin:6px 0 0;font-size:13px}.top-gap{margin-top:16px}.login-page{background:radial-gradient(circle at 20% 18%,#3b82f638,#0000 30%),radial-gradient(circle at 80% 82%,#0ea5e929,#0000 34%),linear-gradient(135deg,#eef5ff 0%,#f8fafc 100%);justify-content:center;align-items:center;min-height:100vh;padding:32px;display:flex}.login-card{border:0;border-radius:18px;width:420px;box-shadow:0 22px 60px #0f172a24}.login-security-tip{color:#64748b;margin:14px 0 0;font-size:12px;line-height:1.65}.login-preferences{align-items:center;gap:24px;margin:-4px 0 16px;display:flex}.login-preferences .el-checkbox{height:24px;margin-right:0}.login-title{align-items:center;gap:14px;margin-bottom:24px;display:flex}.login-title h2{margin:0 0 4px}.brand-mark{color:#fff;background:linear-gradient(135deg,#2563eb,#0f766e);border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;font-weight:800;display:inline-flex;box-shadow:0 10px 24px #2563eb3d}.brand-logo{object-fit:contain;object-position:left center;flex:none;display:block}.brand-logo-login{width:90px;height:40px}.admin-shell{min-height:100vh;display:flex}.admin-sidebar{background:#fff;border-right:1px solid #e5e7eb;width:238px;box-shadow:8px 0 28px #0f172a0a}.brand{border-bottom:1px solid #e5e7eb;align-items:center;gap:12px;height:88px;padding:18px 20px;display:flex}.brand-logo-sidebar{width:82px;height:36px}.brand strong{font-size:18px;display:block}.brand span{color:#6b7280;font-size:13px}.admin-main{flex:1;min-width:0}.admin-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe0;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;height:88px;padding:14px 28px;display:flex}.admin-header h1{margin:0;font-size:20px}.admin-header p{color:#6b7280;margin:6px 0 0}.user-area{align-items:center;gap:12px;display:flex}.time-clocks{border-right:1px solid #e5e7eb;align-items:center;gap:10px;padding-right:12px;display:flex}.time-clock{color:#475569;grid-template-columns:auto auto;align-items:center;column-gap:5px;font-size:12px;line-height:1.2;display:grid}.time-clock .el-icon{color:#409eff;grid-row:span 2}.time-clock__label{color:#64748b}.time-clock strong{color:#1e293b;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:600}@media (width<=1180px){.time-clock__label{display:none}.time-clock{grid-template-columns:auto auto}}@media (width<=920px){.admin-header{height:auto;min-height:88px}.time-clocks{display:none}}.admin-content{padding:26px 28px 42px}.content-card{border:0;border-radius:16px;box-shadow:0 12px 32px #0f172a14}.section-title{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.section-title h2{margin:0;font-size:20px}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-action-dropdown{display:inline-flex}.row-action-trigger{justify-content:center;min-width:82px;font-weight:600}.el-dropdown-menu__item.action-menu-danger{color:#dc2626}.el-dropdown-menu__item.action-menu-danger:not(.is-disabled):hover{color:#b91c1c;background:#fef2f2}.list-action-bar{border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;display:flex}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;display:grid}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.pagination-row{justify-content:flex-end;margin-top:18px;display:flex}.el-menu{border-right:0;padding:12px}.el-menu-item{border-radius:10px;margin-bottom:6px}.el-menu-item.is-active{background:#eff6ff;font-weight:700}.el-card{border-radius:16px}.el-table{border-radius:12px}.stat-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.stat-grid .el-card__body{flex-direction:column;gap:8px;display:flex}.stat-grid strong{color:#2563eb;font-size:24px}.stat-grid span{color:#6b7280}h3{margin:22px 0 12px;font-size:17px}.schedule-card .el-tabs__header{margin-bottom:18px}.schedule-panel{margin-bottom:16px}.schedule-panel h3{margin:0 0 12px}.schedule-list-table .el-table__cell{vertical-align:top}.schedule-list-table .el-select,.schedule-list-table .el-input,.schedule-list-table .el-date-editor.el-input{width:100%}.inline-time-range{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);align-items:center;gap:4px;display:grid}.inline-time-range span{color:#6b7280;text-align:center}.schedule-row-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.schedule-row-actions .el-button+.el-button{margin-left:0}.small-gap{margin-left:6px}.rule-form{max-width:1100px}.rule-form .el-input-number,.schedule-card .el-time-picker{width:100%}
