:root {
  --ink: #071927;
  --muted: #60717a;
  --line: #d7e0e5;
  --gold: #d5a928;
  --panel: #ffffff;
  --bg: #eef3f5;
  --danger: #a8332a;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--bg); font-family: Arial, Helvetica, sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.loading-shell, .app-shell { min-height: 100vh; }
.loading-shell { display: grid; place-content: center; text-align: center; }
.signed-out { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: var(--bg); }
.signed-out section { width: min(520px, 100%); border: 1px solid var(--line); background: white; padding: 24px; }
.signed-out h1 { margin: 5px 0 10px; }
.signed-out p:not(.eyebrow) { color: var(--muted); line-height: 1.45; }
.signed-out .home-link { display: inline-flex; margin-top: 8px; background: #061827; border-color: #061827; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 28px; background: #061827; color: white; }
.brand { display: grid; gap: 3px; }
.brand span, .eyebrow { color: var(--gold); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.brand h1 { margin: 0; font-size: 1.35rem; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.top-actions a, .home-link { border: 1px solid rgba(255,255,255,0.24); background: rgba(255,255,255,0.08); color: white; padding: 8px 12px; text-decoration: none; font-weight: 800; }
.user-pill { padding: 8px 12px; border: 1px solid rgba(255,255,255,0.22); color: #d9e3e8; }
.layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); min-height: calc(100vh - 73px); }
.sidebar { padding: 20px; border-right: 1px solid var(--line); background: #f9fbfb; }
.content { padding: 22px; overflow: auto; }
.panel { border: 1px solid var(--line); background: var(--panel); padding: 16px; }
.panel + .panel { margin-top: 14px; }
.panel h2, .panel h3 { margin: 0 0 12px; }
.form-grid { display: grid; gap: 10px; }
label { display: grid; gap: 5px; color: #41555e; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
input, select, textarea { width: 100%; border: 1px solid #cbd7dd; padding: 9px 10px; background: white; color: var(--ink); }
textarea { min-height: 84px; resize: vertical; }
.action-button { border: 0; background: #061827; color: white; padding: 10px 13px; font-weight: 800; }
.ghost-button { border: 1px solid #cbd7dd; background: white; color: var(--ink); padding: 8px 11px; font-weight: 800; }
.toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.tab { border: 1px solid #cbd7dd; background: white; padding: 9px 12px; font-weight: 800; }
.tab.active { background: #061827; color: white; border-color: #061827; }
.filter-row { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-row select, .filter-row input { width: auto; min-width: 150px; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 12px; margin-bottom: 16px; }
.kpi { border: 1px solid var(--line); background: white; padding: 13px; }
.kpi span { display: block; color: var(--muted); font-size: 0.78rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }
.kpi strong { display: block; margin-top: 5px; font-size: 1.6rem; }
.board { display: grid; grid-template-columns: repeat(5, minmax(230px, 1fr)); gap: 12px; align-items: start; overflow-x: auto; padding-bottom: 10px; }
.column { min-height: 220px; border: 1px solid var(--line); background: #f8fafb; }
.column header { display: flex; justify-content: space-between; padding: 12px; border-top: 4px solid var(--gold); border-bottom: 1px solid var(--line); font-weight: 800; }
.task-list { display: grid; gap: 10px; padding: 10px; }
.task-card { display: grid; gap: 8px; border: 1px solid #d8e1e5; background: white; padding: 11px; }
.task-card h3 { margin: 0; font-size: 1rem; }
.task-card p { margin: 0; color: #2d3d45; }
.task-template-panel { margin-top: 14px; padding-top: 14px; border-top: 1px solid #d8e1e5; display: grid; gap: 10px; }
.panel-heading { display: flex; align-items: end; justify-content: space-between; gap: 8px; }
.panel-heading strong { color: #071827; }
.task-template-list { display: grid; gap: 8px; }
.template-button { text-align: left; display: grid; gap: 3px; padding: 9px 10px; border: 1px solid #c8d7df; background: #f8fafb; color: #071827; cursor: pointer; }
.template-button:hover { border-color: #d9ae28; background: #fff8df; }
.template-button strong { font-size: 0.88rem; }
.template-button span { color: #4d6270; font-size: 0.76rem; line-height: 1.35; }
.linked-record-picker { display: grid; gap: 10px; padding: 11px; border: 1px solid #d8e1e5; background: #f8fafb; }
.linked-record-picker-head { display: flex; justify-content: space-between; gap: 10px; align-items: end; }
.linked-record-picker-head strong { color: #071827; }
.linked-record-picker-head small { color: #5b707b; text-align: right; }
.linked-record-picker-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.linked-record-group { display: grid; gap: 6px; }
.linked-record-group span { color: #526873; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.linked-record-group input { width: 100%; }
.linked-record-group select { width: 100%; min-height: 108px; background: white; }
.linked-records { display: flex; flex-wrap: wrap; gap: 5px; }
.linked-records a,
.linked-records div { max-width: 100%; display: grid; gap: 1px; padding: 5px 7px; border: 1px solid #d8e1e5; background: #f7fbfc; color: #0c2a3a; text-decoration: none; font-size: 0.74rem; }
.linked-records small { color: #607684; font-size: 0.68rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.meta { display: flex; flex-wrap: wrap; gap: 6px; color: var(--muted); font-size: 0.82rem; }
.badge { display: inline-flex; align-items: center; padding: 3px 7px; border-radius: 999px; background: #eef3f5; color: #445962; font-size: 0.76rem; font-weight: 800; }
.badge.high, .badge.urgent { background: #fde7e3; color: var(--danger); }
.badge.done { background: #e4f5e8; color: #216534; }
.card-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.table { border: 1px solid var(--line); background: white; overflow: auto; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th, td { padding: 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: #526873; font-size: 0.76rem; letter-spacing: 0.08em; text-transform: uppercase; }
.empty { padding: 18px; color: var(--muted); border: 1px dashed #cbd7dd; background: white; }
.error { margin: 12px 0; padding: 10px; border: 1px solid #f0aaa3; background: #fff0ee; color: var(--danger); }
.update-list { display: grid; gap: 8px; margin-top: 8px; }
.update { border-left: 3px solid var(--gold); padding: 7px 9px; background: #fffaf0; }
.activity-layout { display: grid; gap: 14px; }
.activity-list { display: grid; gap: 10px; margin-top: 12px; }
.activity-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 12px; border: 1px solid var(--line); background: white; }
.activity-card h3 { margin: 3px 0 5px; font-size: 1rem; }
.activity-card p { margin: 0; color: #2d3d45; line-height: 1.4; }
.activity-meta { display: grid; gap: 4px; justify-items: end; align-content: start; color: var(--muted); font-size: 0.78rem; white-space: nowrap; }
.activity-changes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.activity-changes span { padding: 3px 7px; background: #eef3f5; color: #41555e; font-size: 0.74rem; font-weight: 800; }

.goals-layout { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 14px; align-items: start; }
.goal-form-panel { position: sticky; top: 16px; }
.goal-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.goal-form .full-span, .goal-form .action-button { grid-column: 1 / -1; }
.goals-main { min-width: 0; }
.goal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.goal-card { display: grid; gap: 11px; border: 1px solid var(--line); background: white; padding: 14px; }
.goal-card header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.goal-card h3 { margin: 3px 0 0; font-size: 1rem; }
.goal-card p { margin: 0; color: #2d3d45; line-height: 1.4; }
.goal-progress-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.goal-progress-row strong { font-size: 1.55rem; }
.goal-progress-row span { color: var(--muted); font-weight: 800; }
.progress-track { height: 9px; overflow: hidden; background: #e7edf0; }
.progress-track span { display: block; height: 100%; background: var(--gold); }
.goal-inline-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 8px; align-items: end; }
.goal-inline-actions button { min-height: 39px; }

.goal-query-fields { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; border: 1px solid var(--line); background: #f8fafb; }
.goal-query-heading { grid-column: 1 / -1; display: grid; gap: 3px; }
.goal-filter-heading { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: end; }
.goal-filter-heading span { grid-column: 1; }
.goal-filter-heading button { grid-column: 2; grid-row: 1 / span 2; }
.goal-query-heading strong, .goal-filter-heading strong { color: var(--ink); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; }
.goal-query-heading span, .goal-filter-heading span { color: var(--muted); font-size: 0.82rem; font-weight: 700; }
.goal-filter-builder { grid-column: 1 / -1; display: grid; gap: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.goal-filter-list { display: grid; gap: 8px; }
.goal-filter-row { display: grid; grid-template-columns: minmax(130px, 1.2fr) minmax(120px, 0.9fr) minmax(140px, 1fr) auto; gap: 8px; align-items: end; padding: 8px; border: 1px solid var(--line); background: white; }
.goal-filter-row .compact { min-height: 37px; }
.goal-measure { display: flex; flex-wrap: wrap; gap: 6px; }
.goal-measure span { display: inline-flex; padding: 3px 7px; background: #f5ecd0; color: #604704; font-size: 0.74rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; }
.text-link-button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.employees-layout { display: grid; gap: 14px; }
.employees-header-panel { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.employees-header-panel h2 { margin: 3px 0 6px; }
.employees-header-panel p { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.45; }
.employee-roster { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; align-items: start; }
.employee-card { display: grid; gap: 12px; border: 1px solid var(--line); background: white; padding: 14px; }
.employee-card header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.employee-card h3 { margin: 3px 0 4px; font-size: 1.05rem; }
.employee-card p { margin: 0; color: #2d3d45; line-height: 1.35; }
.employee-card-meta { color: var(--muted); font-size: 0.86rem; }
.employee-load-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); background: #f8fafb; }
.employee-load-grid span { display: grid; gap: 2px; padding: 9px; border-right: 1px solid var(--line); color: var(--muted); font-size: 0.76rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; }
.employee-load-grid span:last-child { border-right: 0; }
.employee-load-grid strong { color: var(--ink); font-size: 1.15rem; }
.employee-next-work { display: grid; gap: 3px; padding: 10px; border-left: 3px solid var(--gold); background: #fffaf0; }
.employee-next-work span { color: #775c09; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.employee-next-work strong { font-size: 0.94rem; }
.employee-next-work small { color: var(--muted); }
.employee-next-work.muted { border-left-color: #cbd7dd; background: #f8fafb; }
.employee-roster-note { margin: 0; color: var(--muted); font-weight: 800; }
.employee-detail { display: grid; gap: 14px; }
.employee-summary-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; max-width: 420px; }
.employee-summary-pills span { display: inline-flex; padding: 5px 8px; background: #eef3f5; color: #41555e; font-size: 0.78rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; }
.employee-profile-panel { display: grid; gap: 12px; }
.employee-profile-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.employee-profile-grid span { display: grid; gap: 4px; padding: 10px; border: 1px solid var(--line); background: #f8fafb; color: #2d3d45; }
.employee-profile-grid strong { color: var(--muted); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; }
.employee-source-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.employee-source-form .full-span { grid-column: 1 / -1; }
.certification-layout { display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 14px; align-items: start; }
.certification-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.certification-form .full-span { grid-column: 1 / -1; }
.form-actions { display: flex; justify-content: flex-end; gap: 8px; }
.panel-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.panel-title-row h2 { margin: 3px 0 0; }
.panel-title-row > span { color: var(--muted); font-size: 0.82rem; font-weight: 800; }
.certification-list { display: grid; gap: 9px; }
.certification-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 11px; border: 1px solid var(--line); background: white; }
.certification-row-title { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.certification-row p { margin: 4px 0 0; color: #2d3d45; line-height: 1.35; }
.certification-row small { display: block; margin-top: 4px; color: var(--muted); }
.certification-row-actions { display: flex; gap: 6px; }
.proof-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.proof-slot { display: flex; align-items: center; gap: 7px; padding: 8px; border: 1px solid var(--line); background: #f8fafb; }
.proof-slot span { color: var(--ink); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.proof-slot small { margin: 0; }
.proof-form-grid { display: grid; gap: 8px; padding: 10px; border: 1px solid var(--line); background: #f8fafb; }
.form-section-label { color: var(--gold-dark); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.proof-form-field { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: center; padding: 8px; border: 1px solid var(--line); background: white; }
.proof-form-field strong { display: block; color: var(--ink); font-size: 0.82rem; }
.proof-form-field span { display: block; color: var(--muted); font-size: 0.78rem; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-input-button { position: relative; overflow: hidden; }
.file-input-button input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.calendar-stack { display: grid; gap: 14px; }



.ghost-button.compact { padding: 6px 9px; font-size: 0.82rem; }
.modal-backdrop { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 24px; background: rgba(6, 24, 39, 0.55); }
.modal { width: min(760px, 100%); max-height: min(820px, calc(100vh - 48px)); overflow: auto; border: 1px solid var(--line); background: white; box-shadow: 0 18px 55px rgba(6, 24, 39, 0.24); }
.modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 16px; border-bottom: 1px solid var(--line); }
.modal-header h2 { margin: 4px 0 0; font-size: 1.15rem; }
.edit-form { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px; }
.edit-form .full-span, .modal-actions { grid-column: 1 / -1; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; }

@media (max-width: 900px) {
  .goals-layout { grid-template-columns: 1fr; }
  .goal-form-panel { position: static; }
  .goal-form, .goal-inline-actions, .goal-query-fields, .goal-filter-row { grid-template-columns: 1fr; }
  .goal-filter-heading { grid-template-columns: 1fr; }
  .goal-filter-heading button { grid-column: 1; grid-row: auto; }
  .topbar { align-items: flex-start; flex-direction: column; }
  .top-actions { width: 100%; flex-wrap: wrap; }
  .layout { grid-template-columns: 1fr; }
  .sidebar { border-right: 0; border-bottom: 1px solid var(--line); }
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .employees-header-panel { flex-direction: column; }
  .employee-load-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-load-grid span:nth-child(2n) { border-right: 0; }
  .employee-profile-grid, .employee-source-form, .certification-layout, .certification-form, .certification-row, .proof-grid, .proof-form-field { grid-template-columns: 1fr; }
  .linked-record-picker-grid { grid-template-columns: 1fr; }
  .employee-summary-pills { justify-content: flex-start; }
  .activity-card { grid-template-columns: 1fr; }
  .activity-meta { justify-items: start; white-space: normal; }
  .edit-form { grid-template-columns: 1fr; }
}
