*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { --navy: #1a1a2e; --navy-dark: #0f0f20; --gold: #c9a84c; --gold-light: #e8c96d; --surface: rgba(255,255,255,0.07); --surface-2: rgba(255,255,255,0.08); --text: rgba(255,255,255,0.88); --text-muted: rgba(255,255,255,0.48); --body-bg: #f4f5f7; --card-bg: #ffffff; --card-border: #e4e8ee; --text-dark: #1e293b; --text-mid: #64748b; --shadow-sm: 0 1px 3px rgba(0,0,0,0.07), 0 1px 2px rgba(0,0,0,0.04); --shadow-md: 0 4px 12px rgba(0,0,0,0.08); --danger: #dc2626; --success: #16a34a; --warning: #d97706; --hk-green: #2d6a4f; --radius: 10px; --font: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; } body { background: var(--body-bg); color: var(--text-dark); font-family: var(--font); min-height: 100dvh; } button { cursor: pointer; font-family: inherit; } input, textarea, select { font-family: inherit; } /* Planning tables */ .hk-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; table-layout: fixed; } .hk-table th { background: var(--navy); color: var(--text); padding: 0.45rem 0.5rem; text-align: center; font-weight: 600; white-space: nowrap; } .hk-table th.col-label { text-align: left; width: 140px; } .hk-table td { padding: 0.35rem 0.5rem; border-bottom: 1px solid var(--card-border); text-align: center; vertical-align: middle; } .hk-table td.col-label { text-align: left; font-weight: 600; color: var(--text-dark); background: var(--card-bg); } .hk-table tfoot td { font-weight: 600; background: #f8fafc; } /* Row accent colours for summary table */ .row-depart { background: #fff8f0; } .row-stay { background: #f0f7ff; } .row-arrive { background: #f0fff5; } .row-depart td, .row-stay td, .row-arrive td { border-bottom: none; } .row-group-last td { border-bottom: 2px solid var(--card-border) !important; } /* Pickup tag */ .pickup-tag { color: var(--hk-green); font-size: 0.75rem; font-weight: 600; } /* Delta badges */ .delta-new { color: var(--success); font-size: 0.72rem; } .delta-canc { color: var(--danger); font-size: 0.72rem; } /* Pickup +/- controls */ .pickup-ctrl { display: flex; align-items: center; justify-content: center; gap: 3px; margin-top: 2px; } .pickup-btn { background: none; border: 1px solid var(--card-border); border-radius: 3px; padding: 0 5px; line-height: 1.4; font-size: 0.8rem; color: var(--text-mid); } .pickup-btn:disabled { opacity: 0.35; cursor: not-allowed; } .pickup-num { min-width: 16px; text-align: center; font-size: 0.8rem; font-weight: 600; } /* Diff cells */ .diff-ok { color: var(--success); font-weight: 600; } .diff-under { color: var(--danger); font-weight: 600; } .diff-over { color: var(--warning); font-weight: 600; } /* Numeric inputs in tables */ .hk-num-input { width: 60px; border: 1px solid var(--card-border); border-radius: 4px; padding: 0.3rem 0.4rem; font-size: 0.82rem; text-align: center; background: var(--body-bg); color: var(--text-dark); } .hk-num-input:focus { outline: 2px solid var(--hk-green); border-color: transparent; } /* Text inputs in tables */ .hk-text-input { border: 1px solid var(--card-border); border-radius: 4px; padding: 0.3rem 0.5rem; font-size: 0.82rem; background: var(--body-bg); color: var(--text-dark); width: 100%; } .hk-text-input:focus { outline: 2px solid var(--hk-green); border-color: transparent; } /* Section wrapper with horizontal scroll */ .table-scroll { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--card-border); box-shadow: var(--shadow-sm); }