.travel-page { height: 100%; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr); gap: 14px; overflow: hidden; animation: fadeUp 220ms var(--ease) both; } .travel-list { min-height: 0; overflow: hidden; } .date-range-filter { position: relative; } .date-range-trigger { min-width: 160px; } .date-range-label { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .date-range-popover { position: absolute; top: calc(100% + 8px); left: 0; z-index: 40; width: 320px; display: grid; gap: 14px; padding: 16px; border: 1px solid #d7e0ea; border-radius: 4px; background: #fff; box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16); } .date-range-popover header, .date-range-popover footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .date-range-popover header strong { color: #0f172a; font-size: 15px; } .date-range-popover header button { width: 30px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 4px; background: transparent; color: #64748b; } .date-range-popover header button:hover { background: #f1f5f9; color: #0f172a; } .date-range-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .date-range-fields label { display: grid; gap: 6px; } .date-range-fields span { color: #64748b; font-size: 12px; font-weight: 700; } .date-range-fields input { width: 100%; height: 38px; padding: 0 9px; border: 1px solid #d7e0ea; border-radius: 4px; color: #0f172a; font-size: 13px; } .date-range-fields input:focus { border-color: var(--theme-primary); box-shadow: 0 0 0 3px var(--theme-focus-ring); outline: none; } .ghost-btn, .apply-btn { height: 36px; padding: 0 14px; border-radius: 4px; font-size: 13px; font-weight: 750; } .ghost-btn { border: 1px solid #d7e0ea; background: #fff; color: #334155; } .apply-btn { border: 0; background: var(--theme-primary); color: #fff; } .apply-btn:disabled { cursor: not-allowed; background: #cbd5e1; } .col-id { width: 13%; } .col-type { width: 12%; } .col-title { width: 19%; } .col-occurred, .col-apply { width: 13%; } .col-amount { width: 11%; } .col-node { width: 11%; } .col-approval { width: 8%; } .type-tag { min-height: 26px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 800; white-space: nowrap; } .type-tag.travel, .type-tag.hotel, .type-tag.transport { background: var(--theme-primary-light-9); color: var(--theme-primary-active); } .type-tag.entertainment { background: #fff7ed; color: #ea580c; } .type-tag.meal { background: #fef3c7; color: #b45309; } .type-tag.office { background: #eff6ff; color: #2563eb; } .type-tag.meeting, .type-tag.training { background: #eef2ff; color: #4f46e5; } .type-tag.other { background: #f8fafc; color: #475569; } .status-tag { min-height: 24px; display: inline-flex; align-items: center; padding: 0 9px; border: 1px solid transparent; border-radius: 4px; font-size: 12px; font-weight: 750; white-space: nowrap; } .status-tag.info { border-color: #bfdbfe; background: #eff6ff; color: #2563eb; } .status-tag.success { border-color: var(--success-line); background: var(--success-soft); color: var(--success-hover); } .status-tag.warning { border-color: #fed7aa; background: #fff7ed; color: #f97316; } .status-tag.draft { border-color: #fde68a; background: #fffbeb; color: #d97706; } .status-tag.danger { border-color: #fecaca; background: #fef2f2; color: #dc2626; } .status-tag.neutral { border-color: #cbd5e1; background: #f8fafc; color: #475569; } @media (max-width: 760px) { .date-range-filter, .date-range-trigger { width: 100%; } .date-range-popover { width: min(320px, calc(100vw - 48px)); } }