:root {
  --navy: #143c62;
  --navy-2: #0f3152;
  --brand-primary-rgb: 20 60 98;
  --brand-accent-rgb: 255 211 0;
  --ink: #143c62;
  --muted: #63758a;
  --line: #dce5eb;
  --canvas: #f7f9fa;
  --card: #ffffff;
  --blue: #143c62;
  --blue-soft: #eaf1f5;
  --yellow: #ffd300;
  --yellow-soft: #fff8d7;
  --orange: #ffd300;
  --orange-soft: #fff8d7;
  --red: #d64956;
  --red-soft: #fff0f1;
  --green: #2f9a74;
  --green-soft: #edfaf5;
  --shadow: 0 8px 30px rgba(20, 60, 98, .08);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--canvas); }
button, select, input, textarea { font: inherit; }
button { cursor: pointer; }

.auth-shell { min-height: 100vh; padding: 42px 18px; display: grid; place-items: center; background: radial-gradient(circle at top right, rgb(var(--brand-accent-rgb) / .18), transparent 32%), var(--navy); }
.auth-card { width: min(620px, 100%); overflow: hidden; border-radius: 15px; background: #fff; box-shadow: 0 28px 80px rgba(3,24,43,.36); }
.auth-brand { min-height: 96px; padding: 19px 28px 15px; display: flex; align-items: flex-start; flex-direction: column; gap: 4px; color: var(--yellow); background: var(--navy-2); font-size: 9px; font-weight: 800; letter-spacing: 1.5px; }
.auth-logo-frame { position: relative; width: 190px; height: 62px; display: block; }
.auth-logo-frame img { width:100%; height:100%; display:block; object-fit:contain; object-position:left center; filter:var(--company-logo-filter, none); }
.company-wordmark { color:#fff; font-size:25px; line-height:62px; letter-spacing:.08em; }
.auth-content { padding: 31px 34px 34px; }
.auth-content h1 { font-size: 28px; }
.auth-intro { margin: 8px 0 23px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.auth-form { display: grid; gap: 14px; }
.auth-form label { color: #56677d; font-size: 11px; font-weight: 750; }
.auth-form input, .auth-form select { width: 100%; margin-top: 6px; padding: 11px 12px; border: 1px solid #d6e0e7; border-radius: 7px; outline: 0; color: var(--ink); background: #fff; font-size: 13px; }
.auth-form input:focus, .auth-form select:focus { border-color: var(--navy); box-shadow: 0 0 0 3px rgb(var(--brand-primary-rgb) / .1); }
.auth-submit, .auth-secondary { width: 100%; min-height: 44px; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 22px 0 14px; color: #94a0ad; font-size: 9px; font-weight: 800; letter-spacing: .8px; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; flex: 1; background: #e4e9ed; }
.auth-error { margin: -2px 0 0; padding: 9px 11px; border-radius: 6px; color: #a92e3b; background: var(--red-soft); font-size: 11px; font-weight: 700; }
.auth-back { margin-top: 17px; padding: 0; border: 0; color: var(--navy); background: transparent; font-size: 12px; font-weight: 750; }
.demo-access { margin: 15px 0 0; padding: 10px 12px; border-radius: 7px; color: #5d7187; background: #f2f6f8; font-size: 10px; }
.demo-access strong, .demo-access span { display: block; }
.demo-access span { margin-top: 3px; }
.pending-icon { width: 50px; height: 50px; margin-bottom: 18px; display: grid; place-items: center; border-radius: 50%; color: var(--navy); background: var(--yellow); font-size: 23px; font-weight: 900; }

.app-shell { --sidebar-width:252px; position:relative; min-height:100vh; display:block; }
.sidebar { position:fixed; z-index:20; inset:0 auto 0 0; width:252px; min-height:100vh; padding:28px 16px 17px; background:var(--navy); color:#dbe6fa; display:flex; flex-direction:column; }
.brand { display: inline-flex; align-items: flex-start; flex-direction: column; gap: 6px; color: white; text-decoration: none; padding: 0 12px 29px; }
.brand-logo-frame { position: relative; width: 190px; height: 62px; border-radius: 4px; background: transparent; display: block; }
.brand-logo { width:100%; height:100%; display:block; object-fit:contain; object-position:left center; filter:var(--company-logo-filter, none); }
.brand-favicon { display:none; }
.brand-logo-frame .company-wordmark { line-height:62px; font-size:24px; }
.brand-product { color: var(--yellow); font-size: 8px; font-weight: 800; letter-spacing: 1.5px; }
.workspace-label { font-size: 10px; letter-spacing: 1.3px; color: #b9cbda; padding: 0 13px 11px; font-weight: 700; }
.workspace-label.spaced { margin-top: 27px; }
.nav-list { display: grid; gap: 4px; }
.nav-link, .help-link { border: 0; text-align: left; border-radius: 8px; background: transparent; color: #d7e3ec; padding: 11px 12px; display: flex; align-items: center; gap: 12px; font-size: 14px; line-height: 18px; }
.nav-link > span, .help-link > span { width: 16px; font-weight: 800; font-size: 18px; text-align: center; color: #b8cbd9; }
.nav-link:hover, .help-link:hover { background: rgba(255,255,255,.065); color: #fff; }
.nav-link.active { background: rgb(255 255 255 / .12); color: #fff; box-shadow: inset 3px 0 0 var(--yellow); }
.nav-link.active > span { color: var(--yellow); }
.nav-link b { margin-left: auto; min-width: 21px; padding: 1px 6px; border-radius: 20px; text-align: center; font-size: 11px; color: var(--navy); background: var(--yellow); }
.nav-link b.danger { color: #ffb7be; background: rgba(214, 73, 86, .2); }
.sidebar-bottom { position: relative; margin-top: auto; padding-top: 24px; }
.help-link { width: 100%; margin-bottom: 19px; }
.profile { width: 100%; padding: 13px 9px; display: flex; align-items: center; gap: 9px; color: #fff; text-align: left; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); border-radius: 9px; }
.profile strong { font-size: 12px; display: block; }
.profile small { font-size: 10px; opacity: .61; display: block; margin-top: 2px; }
.profile i { font-style: normal; opacity: .7; margin-left: auto; }
.avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--yellow); color: var(--navy); display: grid; place-items: center; font-size: 10px; font-weight: 800; }
.profile-menu { position: absolute; right: 0; bottom: 61px; left: 0; z-index: 5; padding: 9px; border: 1px solid rgba(255,255,255,.14); border-radius: 9px; background: var(--navy-2); box-shadow: 0 12px 26px rgb(var(--brand-primary-rgb) / .35); }
.profile-menu.hidden { display: none; }
.profile-menu p { margin: 2px 7px 7px; color: #b8cbd9; font-size: 9px; font-weight: 800; letter-spacing: 1px; }
.profile-menu button { width: 100%; padding: 9px 8px; border: 0; border-radius: 6px; color: #e4eef4; background: transparent; text-align: left; font-size: 12px; font-weight: 700; }
.profile-menu button:hover { background: rgba(255,255,255,.09); }
.profile-menu button:disabled { cursor: not-allowed; opacity: .38; }
.profile-menu button span { display: inline-block; width: 20px; color: var(--yellow); text-align: center; }
.app-build-version { display:block; margin:8px 7px 2px; color:#a9bbca; font-size:9px; font-weight:700; letter-spacing:.04em; }

.main-content { width:calc(100% - var(--sidebar-width)); min-width:0; margin:0 0 0 var(--sidebar-width); padding:31px 42px 50px; max-width:none; box-sizing:border-box; }
.topbar { display: flex; justify-content: space-between; align-items: flex-start; margin: 0 0 25px; }
.eyebrow { color: #8190a6; letter-spacing: 1.25px; font-weight: 750; font-size: 10px; margin: 0 0 6px; }
h1 { font-size: 29px; line-height: 1.2; letter-spacing: -.8px; margin: 0; }
h2 { font-size: 21px; letter-spacing: -.4px; margin: 0; }
.top-actions { display: flex; gap: 11px; align-items: center; }
.access-switcher { display: grid; gap: 2px; color: #718198; font-size: 9px; font-weight: 800; letter-spacing: .7px; }
.access-switcher select { min-width: 175px; padding: 7px 26px 7px 9px; border: 1px solid var(--line); border-radius: 7px; color: var(--navy); background: var(--card); font-size: 12px; font-weight: 700; letter-spacing: 0; }
.icon-button { height: 39px; width: 39px; position: relative; display: grid; place-items: center; background: var(--card); border: 1px solid var(--line); color: var(--navy); font-size: 20px; border-radius: 8px; }
.notification-count { position: absolute; top: -7px; right: -7px; min-width: 19px; height: 19px; padding: 0 5px; display: grid; place-items: center; border: 2px solid white; border-radius: 12px; color: white; background: var(--red); font-size: 9px; font-weight: 800; }
.button { border: 1px solid transparent; min-height: 39px; padding: 0 15px; border-radius: 7px; font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; gap: 7px; justify-content: center; }
.button-primary { color: var(--navy); background: var(--yellow); box-shadow: 0 5px 10px rgb(var(--brand-accent-rgb) / .2); }
.button-primary:hover { filter: brightness(.9); }
.button-secondary { color: var(--navy); background: var(--card); border-color: var(--line); }
.button-secondary:hover { background: #fafcff; }
.button-plain { color: #617087; background: transparent; }
.button-danger { margin-right: auto; color: #b32d3b; background: #fff5f5; border-color: #f2c9cd; }
.button-danger:hover { background: #fee9ea; border-color: #e99ba3; }
.sync-banner { min-height: 42px; padding: 10px 13px; display: flex; align-items: center; gap: 9px; border: 1px solid #d5e6fb; border-radius: 7px; color: #58708d; background: #f0f7ff; font-size: 12px; margin-bottom: 26px; }
.sync-banner strong { color: #37638f; }
.sync-icon { color: #4080c9; font-size: 17px; font-weight: 800; }
.sync-banner button { border: 0; margin-left: auto; color: #3575bd; font-weight: 750; font-size: 12px; background: transparent; }

.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 25px; }
.stat-card, .panel { background: var(--card); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
.stat-card { padding: 18px 18px 15px; min-height: 119px; position: relative; overflow: hidden; }
.stat-card .stat-top { display: flex; justify-content: space-between; align-items: center; color: #748198; font-size: 12px; font-weight: 650; }
.stat-icon { width: 31px; height: 31px; border-radius: 7px; display: grid; place-items: center; font-weight: 800; font-size: 17px; }
.stat-icon.blue { color: var(--blue); background: var(--blue-soft); }.stat-icon.red { color: var(--red); background: var(--red-soft); }.stat-icon.orange { color: #806900; background: var(--orange-soft); }.stat-icon.green { color: var(--green); background: var(--green-soft); }
.stat-value { margin: 12px 0 2px; font-size: 27px; line-height: 1; font-weight: 750; letter-spacing: -.7px; }
.stat-caption { color: #7d899c; font-size: 11px; }.stat-caption.up { color: var(--green); }.stat-caption.down { color: var(--red); }
.overview-grid { display: grid; grid-template-columns: minmax(445px, 1.45fr) minmax(270px, .8fr); gap: 19px; }
.panel { overflow: hidden; }
.panel-heading { padding: 19px 20px 14px; display: flex; align-items: center; justify-content: space-between; }
.panel-heading h2 { font-size: 16px; }
.panel-heading p { color: var(--muted); font-size: 11px; margin: 3px 0 0; }.panel-heading a { color: var(--blue); text-decoration: none; font-size: 12px; font-weight: 700; }
.priority-list { padding: 0 20px 8px; }
.record-row { display: flex; align-items: center; gap: 12px; border-top: 1px solid #edf0f4; padding: 13px 0; }
.record-symbol { height: 33px; width: 33px; border-radius: 8px; display: grid; place-items: center; font-size: 15px; font-weight: 800; flex: 0 0 auto; }.record-symbol.ncr { color: var(--red); background: var(--red-soft); }.record-symbol.check { color: var(--blue); background: var(--blue-soft); }.record-symbol.delivery { color: #806900; background: var(--orange-soft); }
.record-main { min-width: 0; flex: 1; }.record-main strong { font-size: 12px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.record-main small { display: block; font-size: 11px; color: var(--muted); margin-top: 3px; }
.record-meta { text-align: right; }.record-meta span { display: inline-block; padding: 3px 7px; border-radius: 14px; font-size: 10px; font-weight: 700; }.tag-red { color: #be3441; background: var(--red-soft); }.tag-orange { color: #806900; background: var(--orange-soft); }.tag-blue { color: var(--navy); background: var(--blue-soft); }.tag-green { color: #227a5b; background: var(--green-soft); }.record-meta small { display: block; color: #8b97a9; font-size: 10px; margin-top: 4px; }
.side-stack { display: grid; gap: 19px; }.compliance { padding: 17px 20px 18px; }.compliance-head { display: flex; align-items: center; justify-content: space-between; }.compliance h2 { font-size: 15px; }.donut-wrap { display: flex; align-items: center; gap: 17px; padding: 16px 0 14px; }.donut { width: 91px; height: 91px; position: relative; border-radius: 50%; background: conic-gradient(var(--green) 0 74%, #e8edf3 74% 100%); }.donut::after { content: ""; position: absolute; inset: 11px; background: white; border-radius: 50%; }.donut span { position: absolute; z-index: 2; inset: 0; display: grid; place-content: center; text-align: center; font-size: 18px; font-weight: 800; }.donut small { font-size: 8px; color: var(--muted); font-weight: 700; margin-top: -2px; }.compliance-copy strong { display: block; font-size: 12px; }.compliance-copy p { margin: 5px 0 0; color: var(--muted); line-height: 1.4; font-size: 11px; }.progress { height: 5px; background: #eaf0f3; border-radius: 20px; overflow: hidden; }.progress b { display: block; width: 74%; height: 100%; background: var(--green); border-radius: inherit; }
.deadline-list { padding: 0 20px 13px; }.deadline { display: flex; gap: 10px; align-items: center; border-top: 1px solid #edf0f4; padding: 11px 0; }.date-badge { width: 34px; height: 34px; border: 1px solid #e4e8f0; border-radius: 6px; text-align: center; overflow: hidden; flex: 0 0 auto; }.date-badge b { display: block; background: #fff0f1; color: var(--red); font-size: 8px; padding: 3px 0; letter-spacing: .5px; }.date-badge span { display: block; color: var(--ink); font-size: 14px; font-weight: 750; padding-top: 1px; }.deadline strong { display: block; font-size: 11px; }.deadline small { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }
.lower-grid { display: grid; grid-template-columns: minmax(0, 1.42fr) minmax(270px,.8fr); gap: 19px; margin-top: 19px; }.table-wrap { overflow-x: auto; }.data-table { border-collapse: collapse; width: 100%; min-width: 580px; }.data-table th { color: #8290a5; background: #fafbfd; font-size: 10px; letter-spacing: .5px; text-align: left; padding: 10px 16px; }.data-table td { padding: 13px 16px; border-top: 1px solid #edf0f4; font-size: 12px; }.data-table td strong { display: block; font-size: 12px; }.data-table td small { display: block; color: var(--muted); margin-top: 3px; font-size: 10px; }.data-table tr:hover td { background: #fcfdff; }.table-action { color: var(--blue); border: 0; background: none; font-weight: 750; font-size: 11px; }
.activity-list { padding: 1px 20px 15px; }.activity { position: relative; display: flex; gap: 11px; padding: 12px 0 11px; border-top: 1px solid #edf0f4; }.activity::before { content: ""; width: 7px; height: 7px; margin-top: 4px; border-radius: 50%; background: var(--navy); flex: 0 0 auto; }.activity.orange::before { background: var(--yellow); }.activity.red::before { background: #dd6871; }.activity p { margin: 0; font-size: 11px; line-height: 1.45; }.activity strong { font-weight: 750; }.activity small { color: #8793a4; font-size: 10px; display: block; margin-top: 3px; }

.section-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 18px; }.section-head h2 { font-size: 21px; }.section-head p { color: var(--muted); font-size: 12px; margin: 5px 0 0; }.filter-bar { display: flex; gap: 9px; align-items: center; }.search { width: 235px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); font-size: 12px; }.select-filter { min-width: 134px; padding: 9px 28px 9px 10px; border: 1px solid var(--line); background: #fff; border-radius: 7px; color: #536178; font-size: 12px; }
.dashboard-status-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:0 0 24px; }
.dashboard-status-card { min-height:116px; padding:16px; border:1px solid #dbe4ed; border-radius:10px; color:var(--navy); text-align:left; background:#fff; box-shadow:0 5px 16px rgb(var(--brand-primary-rgb) / .04); cursor:pointer; transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease; }
.dashboard-status-card:hover,.dashboard-status-card.active { border-color:var(--navy); box-shadow:0 9px 22px rgb(var(--brand-primary-rgb) / .12); transform:translateY(-1px); }
.dashboard-status-card>span,.dashboard-status-card>small { display:block; color:#6b7b90; font-size:10px; font-weight:800; }
.dashboard-status-card>strong { display:block; margin:9px 0 12px; font-size:28px; line-height:1; }
.dashboard-status-card.warning { border-color:#f1d487; background:#fffaf0; }.dashboard-status-card.warning>strong { color:#956d00; }
.dashboard-status-card.issue { border-color:#efc0c5; background:#fff7f7; }.dashboard-status-card.issue>strong { color:#b53843; }
.dashboard-status-card.complete { border-color:#b7dccd; background:#f5fbf8; }.dashboard-status-card.complete>strong { color:#16815d; }
.dashboard-list-head { margin-top:4px; }.dashboard-list-head h3 { margin:0; font-size:17px; }.dashboard-list-head p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.project-visibility-toggle { white-space: nowrap; }
.list-panel { background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); overflow: hidden; }.project-name { color: var(--blue); cursor: pointer; }.project-ref { color: #758299; font-size: 10px; font-weight: 700; }.empty-state { padding: 50px; text-align: center; color: var(--muted); }
.checks-layout { display: grid; grid-template-columns: 285px minmax(0,1fr); gap: 19px; }.filter-panel { padding: 19px; }.filter-panel h3 { margin: 0 0 16px; font-size: 13px; }.filter-check { display: flex; align-items: center; gap: 9px; font-size: 12px; color: #59667b; padding: 8px 0; }.filter-check input { accent-color: var(--blue); }.filter-panel hr { border: 0; border-top: 1px solid var(--line); margin: 17px 0; }.template-card { display: flex; align-items: center; padding: 16px 18px; gap: 12px; border-bottom: 1px solid #edf0f4; }.template-card:last-child { border-bottom: 0; }.template-icon { width: 35px; height: 35px; border-radius: 8px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; font-weight: 800; }.template-card strong { font-size: 12px; }.template-card small { color: var(--muted); display: block; font-size: 10px; margin-top: 4px; }.template-card button { margin-left: auto; }
.delivery-card { padding: 20px; }.delivery-overview { display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 18px; border-bottom: 1px solid var(--line); }.delivery-id { font-size: 17px; }.delivery-id small { display: block; margin-top: 5px; font-size: 11px; color: var(--muted); font-weight: 400; }.delivery-cols { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 25px; padding: 18px 0; }.delivery-cols dt { font-size: 10px; color: #8290a5; letter-spacing: .5px; font-weight: 750; }.delivery-cols dd { margin: 5px 0 0; font-size: 12px; font-weight: 650; }.delivery-lines { border-top: 1px solid var(--line); }.delivery-card footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--line); padding-top: 17px; }.delivery-card footer small { color: var(--muted); font-size: 11px; }
.report-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }.report-card { min-height: 214px; padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }.report-card h3 { font-size: 15px; margin: 0; }.report-card p { font-size: 12px; color: var(--muted); line-height: 1.5; }.bars { height: 80px; display: flex; align-items: end; gap: 8px; padding: 5px 0 0; }.bars span { flex: 1; background: #dce9ff; border-radius: 3px 3px 0 0; position: relative; }.bars span:nth-child(2), .bars span:nth-child(5) { background: #5c8ded; }.bars span:nth-child(3) { height: 67%!important; }.reports-note { padding: 18px 20px; margin-top: 18px; background: #eef6ff; color: #54708e; border: 1px solid #d4e8ff; border-radius: 9px; font-size: 12px; }.reports-note strong { color: #2f6096; }

.modal-backdrop { position: fixed; z-index: 20; inset: 0; padding: 35px 18px; overflow: auto; background: rgb(var(--brand-primary-rgb) / .82); display: grid; place-items: start center; }.modal-backdrop.modal-stack-parent { z-index: 20; background: rgb(var(--brand-primary-rgb) / .68); }.modal-backdrop.modal-stack-parent > .modal { filter:saturate(.72) brightness(.94); }.modal-backdrop.modal-stack-child { z-index: 60; background: rgb(var(--brand-primary-rgb) / .58); }.hidden { display: none !important; }.modal { position: relative; width: min(660px,100%); border-radius: 13px; background: white; box-shadow: 0 25px 90px rgb(var(--brand-primary-rgb) / .32); padding: 27px 29px 23px; animation: rise .2s ease-out; }.modal-close { position: absolute; right: 15px; top: 13px; border: 0; background: transparent; color: #7e8ba0; font-size: 28px; line-height: 1; }.modal-heading { margin-bottom: 20px; }.modal-heading h2 { font-size: 22px; }.modal-heading p:last-child { color: var(--muted); font-size: 12px; margin: 7px 0 0; }.record-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 19px; }.record-type { min-height: 101px; padding: 12px; background: #fff; text-align: left; border: 1px solid #dfe5ed; border-radius: 9px; }.record-type:hover { border-color: #a8bfce; }.record-type.selected { border: 2px solid var(--blue); padding: 11px; background: #f4f8fa; }.record-type strong { font-size: 12px; display: block; margin: 8px 0 3px; }.record-type small { color: var(--muted); font-size: 10px; line-height: 1.25; display: block; }.type-icon { height: 24px; width: 24px; display: grid; place-items: center; border-radius: 6px; font-weight: 800; }.type-icon.blue { color: var(--blue); background: var(--blue-soft); }.type-icon.red { color: var(--red); background: var(--red-soft); }.type-icon.orange { color: #806900; background: var(--orange-soft); }.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.field-grid.three { grid-template-columns: 1fr 1fr 1fr; margin-top: 14px; }.modal .field-grid { align-items:end; }.modal .field-grid > label { min-width:0; }.modal label { color: #5d6a7d; display: block; font-size: 11px; font-weight: 700; }.modal input, .modal select, .modal textarea { color: var(--ink); width: 100%; padding: 10px; margin-top: 6px; border: 1px solid #dbe2eb; outline: 0; border-radius: 6px; background: white; font-size: 12px; }.modal textarea { min-height: 64px; resize: vertical; }.modal input:focus, .modal select:focus, .modal textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgb(var(--brand-primary-rgb) / .1); }.attachment-field { margin-top: 15px; }.attachment-field > span:first-child { color: #98a4b4; font-weight: 500; margin-left: 4px; }.dropzone { display: block; padding: 12px; border: 1px dashed #b8c7dc; color: #738198; text-align: center; font-size: 11px; font-weight: 500; border-radius: 7px; margin-top: 6px; }.dropzone b { color: var(--blue); margin-right: 5px; font-size: 15px; }.dropzone u { color: var(--blue); }.dropzone small { display: block; font-size: 9px; color: #a0aab8; margin-top: 3px; }.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }.toast { position: fixed; z-index: 70; bottom: 25px; right: 28px; padding: 13px 17px; color: white; background: var(--navy); border-radius: 8px; box-shadow: 0 15px 34px rgb(var(--brand-primary-rgb) / .24); font-size: 12px; font-weight: 650; animation: fade-in .2s ease-out; }
.record-row.record-open { width: 100%; border: 0; background: transparent; cursor: pointer; }
.record-row.record-open:hover { background: #f8fbff; }
.record-row.record-open:focus-visible { outline: 3px solid rgba(47, 110, 232, .2); outline-offset: 2px; border-radius: 7px; }
.project-name { background: transparent; border: 0; padding: 0; text-align: left; font-weight: 750; }
.detail-modal { width: min(860px, calc(100vw - 32px)); }
.detail-value { display: block; min-height: 18px; margin-top: 6px; color: var(--ink); font-size: 12px; font-weight: 600; }
.detail-attachments { margin-top: 15px; padding: 12px; border: 1px dashed #b8c7dc; border-radius: 7px; color: #738198; font-size: 11px; }
.detail-attachments > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.detail-attachments > header strong { display: block; margin-bottom: 2px; color: #5d6a7d; }
.detail-attachments > header span { color: var(--muted); }
.attachment-upload-button { position: relative; display: inline-flex !important; align-items: center; width: auto; padding: 8px 11px; overflow: hidden; border: 1px solid #c9d5e3; border-radius: 6px; background: #fff; color: var(--blue) !important; cursor: pointer; font-size: 11px !important; font-weight: 750 !important; white-space: nowrap; }
.attachment-upload-button:hover { border-color: var(--blue); background: #f7faff; }
.attachment-upload-button input { position: absolute; width: 1px !important; height: 1px; margin: 0 !important; padding: 0 !important; opacity: 0; pointer-events: none; }
.attachment-list { margin: 11px 0 0; padding: 0; list-style: none; border-top: 1px solid #e5ebf2; }
.attachment-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #e5ebf2; }
.attachment-file { min-width: 0; }
.attachment-file-name { display: block; overflow: hidden; color: var(--navy) !important; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.attachment-file span { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }
.attachment-actions { display: flex; flex: 0 0 auto; gap: 6px; }
.attachment-action { padding: 5px 7px; border: 0; border-radius: 5px; background: #edf4fb; color: var(--blue); font-size: 10px; font-weight: 750; }
.attachment-action:hover { background: #dfeaf6; }
.attachment-action.danger { background: #fff0f0; color: #b53131; }
.attachment-empty { margin: 11px 0 0; padding: 11px; border-radius: 6px; background: #f8fafc; color: var(--muted); text-align: center; }
.attachment-guidance { display: block; margin-top: 9px; color: #8a97aa; font-size: 9px; }
.check-completion-audit { display: flex; align-items: center; gap: 12px; margin-top: 15px; padding: 13px 14px; border: 1px solid #bfe3d2; border-radius: 8px; background: #f1fbf6; }
.check-completion-icon { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #16815d; color: #fff; font-size: 17px; font-weight: 800; }
.check-completion-audit small { display: block; color: #5d7d6f; font-size: 9px; font-weight: 800; letter-spacing: .5px; }
.check-completion-audit strong { display: block; margin-top: 3px; color: #145d45; font-size: 12px; }
.check-completion-audit p { margin: 2px 0 0; color: #678177; font-size: 10px; }
.button-complete { color: #fff; background: #16815d; border-color: #16815d; }
.button-complete:hover { background: #116c4d; }
.project-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 0 0 16px; }
.project-summary-grid > div { padding: 11px; background: #f7faff; border: 1px solid #e0eafb; border-radius: 7px; }
.project-summary-grid small { display: block; color: #8290a5; font-size: 9px; letter-spacing: .5px; font-weight: 750; }
.project-summary-grid strong { display: block; margin-top: 5px; font-size: 15px; }
.attached-elements { margin-top: 14px; border-top: 1px solid var(--line); }
.project-elements-heading { padding: 16px 0 8px; }
.attached-elements h3 { margin: 0; font-size: 14px; }
.attached-elements p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.element-row { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-top: 1px solid #edf0f4; }
.element-row > span { border-radius: 6px; background: var(--blue-soft); color: var(--blue); font-size: 10px; font-weight: 750; padding: 5px 7px; }
.element-row > div { flex: 1; }
.element-row strong { display: block; font-size: 12px; }
.element-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.project-element-item { display: grid; grid-template-columns: max-content minmax(0, 1fr) max-content; align-items: center; gap: 10px; width: 100%; padding: 11px 8px; border: 0; border-top: 1px solid #edf0f4; background: #fff; color: var(--ink); text-align: left; }
.project-element-item:hover { background: #f8fbff; }
.project-element-item:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(20, 60, 98, .16); outline-offset: -3px; }
.project-element-item.selected { background: #fff9d6; box-shadow: inset 3px 0 0 var(--yellow); }
.project-element-number { border-radius: 6px; background: var(--blue-soft); color: var(--blue); font-size: 10px; font-weight: 750; padding: 5px 7px; }
.project-element-description { min-width: 0; font-size: 12px; overflow-wrap: anywhere; }
.project-element-selection-label { color: var(--blue); font-size: 10px; font-weight: 750; }
.project-elements-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0 2px; border-top: 1px solid #edf0f4; color: var(--muted); font-size: 11px; }
.project-elements-footer .button { min-width: 0; padding: 8px 12px; font-size: 11px; }
.project-elements-empty { padding: 22px 14px; border-top: 1px solid #edf0f4; color: var(--muted); text-align: center; font-size: 11px; }
.project-tabs { display: flex; gap: 4px; margin-top: 18px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.project-tabs::-webkit-scrollbar { display: none; width: 0; height: 0; }
.project-tab { position: relative; min-width: max-content; padding: 11px 15px; border: 0; background: transparent; color: #718096; font-size: 12px; font-weight: 750; }
.project-tab::after { content: ""; position: absolute; right: 12px; bottom: -1px; left: 12px; height: 3px; border-radius: 3px 3px 0 0; background: transparent; }
.project-tab:hover { color: var(--blue); background: #f8fbff; }
.project-tab[aria-selected="true"] { color: var(--blue); }
.project-tab[aria-selected="true"]::after { background: var(--yellow); }
.project-tab-panel[hidden] { display: none; }
.project-tab-panel > .attached-elements { margin-top: 0; border-top: 0; }
.project-tab-scroll { overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.project-element-scroll { max-height: 238px; border-bottom: 1px solid #edf0f4; }
.project-record-list { padding-top: 16px; }
.project-record-list > header { padding-bottom: 10px; }
.project-record-list h3 { margin: 0; color: var(--navy); font-size: 14px; }
.project-record-list p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.project-record-list .table-wrap { border: 1px solid var(--line); border-radius: 8px; }
.project-record-scroll { max-height: 238px; }
.project-record-scroll .table-wrap { overflow: visible; }
.project-record-scroll .data-table thead { position: sticky; z-index: 2; top: 0; background: #f8fafc; }
.project-installer-list { display:grid; gap:8px; padding:1px; }
.project-installer-row { display:flex; align-items:center; justify-content:space-between; width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--navy); text-align:left; cursor:pointer; }
.project-installer-row:hover { border-color:var(--blue); background:var(--blue-soft); }
.project-installer-row span { display:grid; gap:3px; }
.project-installer-row small { color:var(--muted); }
.project-installer-row b { font-size:11px; white-space:nowrap; }
.project-record-table { min-width: 650px; }
.project-tab-empty { padding: 30px 18px; border: 1px dashed #cad4e1; border-radius: 8px; background: #fbfcfe; color: var(--muted); text-align: center; font-size: 11px; }
.project-debug-stage { display: inline-flex; margin-top: 10px; border-radius: 999px; background: var(--yellow); color: var(--blue); padding: 5px 9px; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.project-debug-panel { margin: 12px 0; border: 1px solid #d9e2ec; border-left: 4px solid var(--yellow); border-radius: 8px; background: #f8fafc; padding: 12px; }
.project-debug-panel > strong { color: var(--blue); font-size: 12px; }
.project-debug-panel dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; margin: 10px 0 0; }
.project-debug-panel dl div { min-width: 0; }
.project-debug-panel dt { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.project-debug-panel dd { overflow-wrap: anywhere; margin: 2px 0 0; color: var(--ink); font-size: 11px; }
.template-tasks { margin-top: 20px; }
.template-tasks-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.template-tasks h3 { margin: 0; font-size: 14px; }
.template-tasks p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.task-add { white-space: nowrap; }
.template-task-list { list-style: none; padding: 0; margin: 12px 0 0; border-top: 1px solid var(--line); }
.template-task-row { display: flex; align-items: center; gap: 8px; padding: 9px 0; border-bottom: 1px solid #edf0f4; }
.task-order { flex: 0 0 23px; width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: var(--blue); background: var(--blue-soft); font-size: 10px; font-weight: 800; }
.template-task-row input { flex: 1; width: auto; min-width: 80px; margin-top: 0; }
.task-row-actions { display: flex; gap: 3px; }
.task-move, .task-remove { min-height: 32px; border: 1px solid #d9e1ec; border-radius: 6px; background: #fff; color: #60708a; font-size: 11px; font-weight: 700; }
.task-move { width: 28px; padding: 0; }
.task-move:disabled { cursor: not-allowed; opacity: .35; }
.task-remove { padding: 0 8px; }
.task-remove:hover, .task-move:not(:disabled):hover { border-color: #9ebce9; color: var(--blue); background: #f7faff; }
.template-preview { margin-top: 14px; padding: 12px 14px; border: 1px solid #d8e6fb; border-radius: 8px; background: #f7faff; }
.template-preview strong { display: block; color: #234e84; font-size: 12px; }
.template-preview span { display: block; margin-top: 3px; color: #687990; font-size: 10px; }
.template-preview ol { margin: 9px 0 0 17px; padding: 0; color: #5b6b82; font-size: 11px; line-height: 1.55; }
.record-tasks { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.record-tasks header { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.record-tasks h3 { margin: 0; font-size: 14px; }
.record-tasks p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.record-tasks header strong { color: var(--blue); font-size: 11px; white-space: nowrap; }
.record-tasks ol { list-style: none; margin: 10px 0 0; padding: 0; border-top: 1px solid #edf0f4; }
.record-tasks li { border-bottom: 1px solid #edf0f4; }
.record-tasks label { display: flex; align-items: center; gap: 9px; padding: 10px 2px; color: #4f5d70; font-weight: 500; font-size: 12px; cursor: pointer; }
.record-tasks input { width: auto; margin: 0; accent-color: var(--blue); }
.record-tasks input:checked + span { color: #8a96a7; text-decoration: line-through; }
.empty-record-tasks { padding: 13px; border: 1px dashed #cad4e1; border-radius: 8px; background: #fbfcfe; }
.record-task-tabs { display: flex; gap: 3px; margin: -4px 0 12px; border-bottom: 1px solid var(--line); }
.record-task-tabs button { position: relative; padding: 9px 12px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #60708a; font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.record-task-tabs button.active { border-bottom-color: var(--accent); color: var(--blue); }
.record-task-tabs b { display: inline-grid; min-width: 17px; height: 17px; margin-left: 5px; padding: 0 4px; place-items: center; border-radius: 99px; background: var(--accent); color: #172d48; font-size: 10px; }
.record-task-panel { display: none; }
.record-task-panel.active { display: block; }
.qc-task-discussion-layout { padding-top: 2px; }
.qc-task-discussion-thread-panel { min-width: 0; padding: 12px; border: 1px solid #dbe4ef; border-radius: 8px; background: #fbfcfe; }
.qc-task-discussion-thread-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.qc-task-discussion-thread-panel h3 { margin: 0; color: var(--blue); font-size: 13px; }
.qc-task-discussion-thread-panel header p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.4; }
.qc-task-discussion-thread-panel > header > span { color: #73829a; font-size: 10px; font-weight: 750; white-space: nowrap; }
.qc-task-discussion-thread { max-height: 222px; margin-top: 10px; overflow-y: auto; border-top: 1px solid #e5ebf2; border-bottom: 1px solid #e5ebf2; }
.qc-task-comment { padding: 9px 1px; border-bottom: 1px solid #edf1f5; }
.qc-task-comment:last-child { border-bottom: 0; }
.qc-task-comment header { display: flex; justify-content: space-between; gap: 10px; }
.qc-task-comment strong { color: #2d4869; font-size: 11px; }
.qc-task-comment time { color: #7f8da1; font-size: 10px; white-space: nowrap; }
.qc-task-comment p { margin: 5px 0 0; color: #45566f; font-size: 11px; line-height: 1.5; }
.qc-task-comment-empty { padding: 16px 4px; color: #77869c; font-size: 11px; line-height: 1.5; }
.qc-task-comment-entry { display: block; margin-top: 10px; color: #53647c; font-size: 11px; font-weight: 750; }
.qc-task-comment-entry textarea { min-height: 68px; margin-top: 5px; resize: vertical; }
.qc-task-comment-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.qc-task-comment-actions small, .qc-task-discussion-closed { color: #79889d; font-size: 10px; line-height: 1.35; }
.qc-task-discussion-closed { margin: 12px 0 0; }
.project-delivery-details { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.project-delivery-details header, .delivery-project-preview header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.project-delivery-details h3 { margin: 0; font-size: 14px; }
.project-delivery-details p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.delivery-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.delivery-detail-grid > div { min-height: 55px; padding: 10px; border: 1px solid #e2e8f0; border-radius: 7px; background: #fbfcfe; }
.delivery-detail-grid small { display: block; color: #8592a5; font-size: 9px; font-weight: 750; letter-spacing: .45px; }
.delivery-detail-grid strong { display: block; margin-top: 5px; color: #4d5b70; font-size: 11px; line-height: 1.35; }
.delivery-project-preview { margin-top: 15px; padding: 13px; border: 1px solid #d8e6fb; border-radius: 8px; background: #f7faff; }
.delivery-project-preview header strong { display: block; color: #234e84; font-size: 12px; }
.delivery-project-preview header span { display: block; margin-top: 3px; color: #687990; font-size: 10px; }
.delivery-project-preview .button-plain { color: var(--blue); font-size: 11px; white-space: nowrap; }
.delivery-preview-contacts { margin-top: 10px; color: #5b6b82; font-size: 11px; }
.delivery-preview-contacts strong { color: #3c4d65; }
.delivery-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.delivery-fields textarea { min-height: 76px; }
.delivery-record-details { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.delivery-record-details header h3 { margin: 0; font-size: 14px; }
.delivery-record-details header p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.bc-delivery-link { margin-top: 18px; padding: 13px; border: 1px solid #d8e6fb; border-radius: 8px; background: #f7faff; }
.bc-delivery-link header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.bc-delivery-link h3, .bc-delivery-link > strong { margin: 0; color: #234e84; font-size: 12px; }
.bc-delivery-link header p, .bc-delivery-link > p, .bc-delivery-link > span { margin: 4px 0 0; color: #687990; font-size: 11px; }
.bc-delivery-link header span { padding: 3px 6px; border-radius: 99px; color: #2b659d; background: #e4f0ff; font-size: 10px; font-weight: 700; }
.bc-delivery-link > strong { display: block; margin-top: 10px; }
.bc-delivery-link.missing { border-style: dashed; background: #fbfcfe; }
.user-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; margin: 0 0 18px; }
.user-summary > div { padding: 13px 15px; border: 1px solid #e0eafb; border-radius: 8px; background: #f7faff; }
.user-summary small { display: block; color: #8290a5; font-size: 9px; font-weight: 750; letter-spacing: .45px; }
.user-summary strong { display: block; margin-top: 6px; color: #234e84; font-size: 20px; }
.role-pill { display: inline-block; padding: 4px 7px; border-radius: 5px; color: #365e90; background: #edf4ff; font-size: 10px; font-weight: 700; }
.user-type { display: inline-block; padding: 4px 7px; border-radius: 5px; font-size: 10px; font-weight: 800; }
.user-type.internal { color: #315f4c; background: #e9f7f0; }
.user-type.external { color: #8a6512; background: #fff6d9; }
.permission-summary { display: block; max-width: 250px; color: #728096; font-size: 10px; line-height: 1.35; }
.tag-muted { display: inline-block; padding: 4px 7px; border-radius: 5px; color: #758299; background: #edf0f4; font-size: 10px; font-weight: 700; }
.permissions-note { display: flex; gap: 10px; align-items: center; margin-top: 17px; padding: 13px 15px; border: 1px solid #d6e7ff; border-radius: 8px; color: #58708d; background: #f1f7ff; font-size: 11px; }
.permissions-note strong { color: #2f6096; white-space: nowrap; }
.role-permissions { margin-top: 18px; padding: 14px; border: 1px solid #d8e6fb; border-radius: 8px; background: #f7faff; }
.role-permissions h3 { margin: 0; color: #234e84; font-size: 14px; }
.role-permissions p { margin: 4px 0 0; color: #687990; font-size: 11px; }
.role-permissions ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 13px 0 0; padding: 0; list-style: none; }
.role-permissions li { color: #4f6380; font-size: 11px; }
.user-work-summary { display: flex; justify-content: space-between; margin-top: 14px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 7px; color: #65738a; font-size: 11px; }
.user-work-summary strong { color: var(--blue); font-size: 15px; }
.header-actions { display: flex; gap: 8px; align-items: center; }
.role-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.role-card { min-height: 180px; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.role-card header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.role-card h3 { margin: 0; color: var(--navy); font-size: 15px; }
.role-card p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.role-card ul { margin: 15px 0 0; padding: 0; list-style: none; }
.role-card li { padding: 5px 0; color: #52647e; font-size: 11px; }
.role-card .button-secondary { min-height: 32px; padding: 0 10px; font-size: 11px; }
.permission-editor { margin-top: 18px; padding: 14px; border: 1px solid #d8e6fb; border-radius: 8px; background: #f7faff; }
.permission-editor header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.permission-editor h3 { margin: 0; color: #234e84; font-size: 14px; }
.permission-editor p { margin: 4px 0 0; color: #687990; font-size: 11px; }
.permission-editor header strong { color: #54708e; font-size: 11px; white-space: nowrap; }
.permission-checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 12px; margin-top: 14px; }
.permission-checklist label { display: flex; align-items: flex-start; gap: 8px; color: #52647e; font-size: 11px; font-weight: 500; }
.permission-checklist input { width: auto; margin: 1px 0 0; accent-color: var(--blue); }
.approval-admin-card label { display: block; margin-top: 17px; color: #5d6a7d; font-size: 11px; font-weight: 750; }
.approval-admin-card select { width: 100%; margin-top: 6px; padding: 10px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; font-size: 12px; }
.approval-admin-card > small { display: block; margin-top: 11px; color: var(--muted); font-size: 10px; }
.registration-requests { display: grid; gap: 13px; }
.registration-request { padding: 15px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfd; }
.registration-request > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.registration-request > header strong, .registration-request > header span { display: block; }
.registration-request > header strong { color: var(--navy); font-size: 14px; }
.registration-request > header div span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.registration-request dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.registration-request dl div { padding: 9px 10px; border-radius: 6px; background: #f2f6f8; }
.registration-request dt { color: #8997a6; font-size: 8px; font-weight: 800; letter-spacing: .5px; }
.registration-request dd { margin: 4px 0 0; color: #4e6379; font-size: 11px; font-weight: 700; }
.registration-request footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 13px; }
.empty-requests { padding: 28px; display: grid; gap: 5px; border: 1px dashed #cbd7df; border-radius: 9px; color: var(--muted); text-align: center; }
.empty-requests strong { color: var(--navy); font-size: 13px; }
.empty-requests span { font-size: 11px; }
@media (max-width: 760px) { .project-summary-grid { grid-template-columns: 1fr 1fr; } .element-row { align-items: flex-start; flex-wrap: wrap; } .element-row .table-action { margin-left: auto; } }
@media (max-width: 760px) { .delivery-detail-grid, .delivery-fields { grid-template-columns: 1fr; } .project-delivery-details header, .delivery-project-preview header { align-items: stretch; flex-direction: column; } .project-delivery-details .button-secondary, .delivery-project-preview .button-plain { width: fit-content; font-size: 12px; min-width: 0; padding: 9px 12px; } }
@media (max-width: 760px) { .user-summary { grid-template-columns: 1fr; } .permissions-note { align-items: flex-start; flex-direction: column; } .role-permissions ul { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .header-actions { align-items: stretch; flex-direction: column; } .header-actions .button-secondary { font-size: 12px; min-width: 0; padding: 9px 12px; } .role-grid, .permission-checklist { grid-template-columns: 1fr; } .role-card header, .permission-editor header { align-items: stretch; flex-direction: column; } }
@media (max-width: 760px) { .brand { align-items: center; padding-bottom: 24px; } .brand-logo-frame { width: 36px; height: 36px; display: block; overflow:visible; border-radius:5px; background:transparent; } .brand-logo { display: none; } .brand-favicon { display:block; width:36px; height:36px; } }
@keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } @keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.button:disabled, .table-action:disabled, .record-type:disabled { cursor: not-allowed; opacity: .45; }
.table-action:disabled { color: #8a98a9; }
.record-type:disabled:hover { border-color: #dfe5ed; }
.access-note { align-self: center; margin-right: auto; color: #7a5b18; font-size: 11px; font-weight: 700; }
@media (max-width: 1120px) { .main-content { padding: 28px 25px 40px; }.stats-grid { grid-template-columns: repeat(2,1fr); }.overview-grid,.lower-grid { grid-template-columns: 1fr; }.side-stack { grid-template-columns: 1fr 1fr; }.checks-layout { grid-template-columns: 220px 1fr; }.report-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .app-shell { --sidebar-width:64px; }.sidebar { width:64px; padding:21px 8px; }.brand { padding: 0 8px 24px; }.brand > span:last-child, .workspace-label, .nav-link:not(.active)::after, .nav-link:not(.active), .nav-link.active { font-size: 0; justify-content: center; padding: 11px 8px; }.nav-link > span, .help-link > span { font-size: 19px; }.nav-link b { display: none; }.workspace-label.spaced { margin-top: 20px; }.help-link { justify-content:center; font-size:0; padding:10px; }.profile { padding: 5px; background:transparent; border:0; }.profile > span:not(.avatar), .profile i { display:none; }.profile-menu { left: 0; right: auto; width: 205px; }.main-content { width:calc(100% - var(--sidebar-width)); margin-left:var(--sidebar-width); padding:21px 16px 32px; }.topbar { gap: 15px; }.topbar h1 { font-size: 22px; }.access-switcher { display: none; }.button-secondary { font-size: 0; min-width: 39px; padding: 0; }.button-secondary span { font-size: 18px; }.sync-banner { align-items:flex-start; }.sync-banner button { white-space: nowrap; }.stats-grid { grid-template-columns: 1fr 1fr; gap: 9px; }.stat-card { padding: 13px; min-height: 108px; }.stat-value { font-size: 23px; }.side-stack,.report-cards { grid-template-columns:1fr; }.section-head,.filter-bar { align-items: stretch; flex-direction: column; }.search { width: 100%; }.checks-layout { grid-template-columns: 1fr; }.filter-panel { display: none; }.record-types { grid-template-columns: 1fr; }.field-grid,.field-grid.three { grid-template-columns: 1fr; }.delivery-cols { grid-template-columns:1fr 1fr; gap:15px; }.delivery-card footer { gap: 12px; align-items:flex-start; flex-direction:column; }.modal { padding:24px 18px 18px; }.template-card .button-secondary, .modal-actions .button-secondary { font-size: 12px; min-width: 0; padding: 9px 12px; }.template-tasks-head { align-items: stretch; flex-direction: column; }.template-tasks-head .button-secondary { width: fit-content; }.template-task-row { align-items: center; flex-wrap: wrap; }.task-row-actions { margin-left: 31px; }.toast { right:16px; bottom:16px; } }
@media (max-width: 760px) { .project-visibility-toggle { min-width: 0; padding: 9px 12px; font-size: 12px; } }

/* Delivery and NCR workflow */
.delivery-detail-modal .detail-modal { width:min(1380px,calc(100vw - 32px)); padding:28px 32px 24px; overflow:hidden; box-sizing:border-box; }
.delivery-detail-modal .modal-heading { padding-right:44px; margin-bottom:18px; }
.delivery-record-layout { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); grid-template-areas:"setup lines" "lower lower"; gap:20px; align-items:start; }
.delivery-record-main { grid-area:setup; min-width:0; padding:20px; border:1px solid #dbe5ef; border-radius:10px; background:#fff; }
.delivery-record-lines { grid-area:lines; position:static; min-width:0; }
.delivery-record-lower { grid-area:lower; min-width:0; padding:20px; border:1px solid #dbe5ef; border-radius:10px; background:#fff; }
.delivery-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:16px; padding-bottom:13px; border-bottom:1px solid #e4ebf2; }
.delivery-section-heading h3 { margin:0; color:var(--navy); font-size:15px; }
.delivery-section-heading p { margin:4px 0 0; color:var(--muted); font-size:10px; }
.delivery-lock-message { margin:9px 0 0!important; padding:8px 10px; border:1px solid #ecd67f; border-radius:6px; color:#705900!important; background:#fff9e8; font-weight:700; }
.delivery-primary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.delivery-primary-grid>* { min-width:0; }
.delivery-title-field { grid-column:1/-1; }
.delivery-detail-modal input,.delivery-detail-modal select,.delivery-detail-modal textarea { min-width:0; }
.delivery-detail-modal select { overflow:hidden; text-overflow:ellipsis; }
.delivery-lines-panel { overflow:hidden; border:1px solid #cedbe8; border-radius:10px; background:#f9fbfd; box-shadow:0 6px 20px rgba(20,60,98,.05); }
.delivery-lines-panel>header { padding:17px 18px 14px; border-bottom:1px solid #dce6ef; background:#fff; }
.delivery-lines-panel h3,.notification-history h3,.notification-contacts h3 { margin:0; color:var(--navy); font-size:14px; }
.delivery-lines-panel p,.notification-history p { margin:4px 0 0; color:var(--muted); font-size:10px; }
.delivery-lines-scroll { max-height:640px; overflow:auto; }
.delivery-lines-panel table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:10px; }
.delivery-lines-panel th { position:sticky; top:0; z-index:1; padding:10px; background:#eef4f9; color:#718096; text-align:left; font-size:8px; }
.delivery-lines-panel th:nth-child(1){width:25%}.delivery-lines-panel th:nth-child(2){width:43%}.delivery-lines-panel th:nth-child(3){width:17%}.delivery-lines-panel th:nth-child(4){width:15%}
.delivery-lines-panel td { padding:12px 10px; border-top:1px solid #e1e8f0; vertical-align:top; overflow-wrap:anywhere; line-height:1.4; }
.delivery-lines-panel td strong,.delivery-lines-panel td small { display:block; }
.delivery-lines-panel td small { margin-top:3px; color:var(--muted); }
.delivery-element-picker { margin:16px 0 0; padding:14px; border:1px solid #dbe2eb; border-radius:8px; background:#fbfcfe; }
.delivery-element-picker legend { padding:0 5px; color:#5d6a7d; font-size:11px; font-weight:800; }
.delivery-element-picker>p { margin:0 0 8px; color:var(--muted); font-size:10px; }
.delivery-element-picker .delivery-element-search { width:100%; margin:0 0 9px; padding:8px 10px; border:1px solid #dbe4ed; border-radius:6px; font-size:11px; }
.delivery-element-picker>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:210px; overflow:auto; }
.delivery-element-picker label { display:flex; align-items:flex-start; gap:8px; min-width:0; padding:9px; border:1px solid #e2e8f0; border-radius:6px; background:#fff; }
.delivery-element-picker input { width:auto; margin:2px 0 0; }
.delivery-element-picker span { min-width:0; font-weight:500; overflow-wrap:anywhere; }
.delivery-element-picker strong { display:block; color:var(--navy); font-size:10px; }
.delivery-element-picker small { display:block; margin-top:3px; color:var(--muted); font-size:9px; font-weight:500; line-height:1.3; }
.delivery-element-picker footer { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; color:var(--muted); font-size:10px; }
.delivery-element-picker footer .button { min-width:0; padding:7px 10px; font-size:10px; }
.delivery-po-line-picker { margin:16px 0 0; padding:14px; border:1px solid #c9daec; border-radius:8px; background:#f7faff; }
.delivery-po-line-picker legend { padding:0 5px; color:var(--navy); font-size:11px; font-weight:800; }
.delivery-po-line-picker>p { margin:0 0 9px; color:var(--muted); font-size:10px; }
.delivery-po-line-picker>input { width:100%; margin:0 0 9px; padding:8px 10px; border:1px solid #d3dfeb; border-radius:6px; background:#fff; font-size:11px; }
.delivery-po-line-picker>div { display:grid; gap:6px; max-height:390px; overflow:auto; padding-right:3px; }
.delivery-po-line-picker label { display:grid; grid-template-columns:auto minmax(0,1fr) minmax(95px,.35fr); align-items:start; gap:9px; min-width:0; padding:9px 10px; border:1px solid #dfe7ef; border-radius:6px; background:#fff; }
.delivery-po-line-picker label:has(input:checked) { border-color:#e1bf00; background:#fffbea; }
.delivery-po-line-picker label>input { width:auto; margin:2px 0 0; }
.delivery-po-line-picker label span { min-width:0; overflow-wrap:anywhere; }
.delivery-po-line-picker label strong,.delivery-po-line-picker label small { display:block; }
.delivery-po-line-picker label strong { color:var(--navy); font-size:10px; }
.delivery-po-line-picker label small { margin-top:2px; color:var(--muted); font-size:9px; line-height:1.35; }
.delivery-po-line-meta { text-align:right; }
.delivery-po-line-picker footer { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:9px; color:var(--muted); font-size:10px; }
.delivery-po-line-picker footer strong { color:var(--navy); }
.delivery-record-lower .delivery-record-details { margin:0; padding:0; border:0; }
.delivery-record-lower .delivery-record-details header { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.delivery-compact-details { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; margin-top:12px; }
.delivery-compact-details>div { min-width:0; min-height:58px; padding:10px 11px; border:1px solid #e1e8f0; border-radius:7px; background:#f9fbfd; }
.delivery-compact-details small,.delivery-compact-details strong,.delivery-compact-details span { display:block; }
.delivery-compact-details small { color:#8290a5; font-size:8px; font-weight:800; letter-spacing:.04em; }
.delivery-compact-details strong { margin-top:5px; color:var(--navy); font-size:10px; line-height:1.35; overflow-wrap:anywhere; }
.delivery-compact-details span { margin-top:3px; color:var(--muted); font-size:9px; overflow-wrap:anywhere; }
.selected-delivery-contact { background:#f3f8fd!important; border-color:#cfddeb!important; }
.delivery-element-summary { margin-top:16px; padding:13px 14px; border:1px solid #dbe4ed; border-radius:8px; background:#fbfcfe; }
.delivery-element-summary header { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.delivery-element-summary h3 { margin:0; color:var(--navy); font-size:12px; }
.delivery-element-summary p { margin:3px 0 0; color:var(--muted); font-size:9px; }
.delivery-element-summary header .button-secondary { min-width:0; padding:7px 10px; font-size:10px; }
.delivery-element-summary>div { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.delivery-element-summary>div span { padding:5px 8px; border-radius:999px; background:#e8f1f8; color:var(--navy); font-size:9px; font-weight:800; }
.delivery-element-summary>div em { color:var(--muted); font-size:10px; font-style:normal; }
.delivery-evidence-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr); gap:18px; align-items:stretch; margin-top:20px; padding-top:18px; border-top:1px solid #e4ebf2; }
.delivery-notes-panel { display:flex; flex-direction:column; min-height:126px; padding:12px; border:1px dashed #bfd0e3; border-radius:8px; background:#fff; box-sizing:border-box; }
.delivery-notes-panel>strong { color:var(--navy); font-size:11px; }
.delivery-notes-panel textarea { flex:1; min-height:78px; margin-top:8px; padding:0; border:0; border-radius:0; background:#f7f9fb; }
.delivery-notes-panel textarea:focus { outline:2px solid #b9d1e7; outline-offset:2px; }
.delivery-attachment-column { min-width:0; }
.delivery-attachment-column .detail-attachments { height:100%; min-height:126px; margin:0; box-sizing:border-box; }
.record-source-link,.linked-ncrs,.delivery-exceptions { margin-top:16px; padding:13px 14px; border:1px solid #dbe5ef; border-radius:8px; background:#fbfcfe; }
.record-source-link { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.record-source-link small,.record-source-link strong,.record-source-link span { display:block; }
.record-source-link small { color:#8190a4; font-size:8px; font-weight:800; letter-spacing:.05em; }
.record-source-link strong { margin-top:3px; color:var(--navy); font-size:12px; }
.record-source-link span { margin-top:2px; color:var(--muted); font-size:10px; }
.record-source-link .button-secondary { min-width:0; padding:8px 10px; font-size:10px; }
.linked-ncrs header,.delivery-exceptions header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.linked-ncrs h3,.delivery-exceptions h3 { margin:0; color:var(--navy); font-size:12px; }
.linked-ncrs p,.delivery-exceptions p { margin:3px 0 0; color:var(--muted); font-size:10px; }
.linked-ncrs ul,.delivery-exceptions ul { margin:10px 0 0; padding:0; list-style:none; }
.linked-ncrs li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid #e5ebf1; }
.linked-ncrs li strong,.linked-ncrs li span { display:block; }
.linked-ncrs li strong { color:var(--navy); font-size:10px; }
.linked-ncrs li span { margin-top:3px; color:var(--muted); font-size:9px; }
.delivery-exceptions header>span { padding:5px 7px; border-radius:999px; background:#fff1f1; color:#a22b2b; font-size:9px; font-weight:800; }
.delivery-exceptions li { padding:8px 0; border-top:1px solid #e5ebf1; }
.delivery-exceptions li strong,.delivery-exceptions li span { display:block; }
.delivery-exceptions li strong { color:var(--navy); font-size:10px; }
.delivery-exceptions li span { margin-top:3px; color:#7a4450; font-size:9px; }
.typeahead-native { display:none!important; }
.typeahead-select { position:relative; margin-top:5px; }
.typeahead-input { width:100%; box-sizing:border-box; min-height:38px; padding:9px 34px 9px 10px; border:1px solid #cfdbe7; border-radius:6px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23143c62' stroke-width='2' d='m1 1 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center; color:var(--navy); font:inherit; }
.typeahead-input:focus { outline:2px solid #9ec3e1; outline-offset:1px; border-color:#143c62; }
.typeahead-select.is-disabled .typeahead-input { cursor:not-allowed; background-color:#f2f5f8; color:#8290a4; }
.typeahead-options { position:absolute; z-index:120; top:calc(100% + 4px); right:0; left:0; max-height:240px; overflow:auto; padding:5px; border:1px solid #cbd8e5; border-radius:7px; background:#fff; box-shadow:0 14px 30px rgba(20,60,98,.18); }
.typeahead-options button { display:block; width:100%; padding:9px 10px; border:0; border-radius:5px; background:transparent; color:var(--navy); font:inherit; font-size:11px; text-align:left; }
.typeahead-options button:hover,.typeahead-options button:focus { background:#edf5fb; outline:0; }
.typeahead-empty { display:block; padding:10px; color:var(--muted); font-size:11px; }
.delivery-record-lower>.notification-history { margin-top:18px; }
.delivery-detail-modal #detailForm>.modal-actions { position:static; margin:20px -32px -24px; padding:15px 32px; border-top:1px solid #dce5ee; border-radius:0 0 13px 13px; background:#fff; box-shadow:none; flex-wrap:wrap; }
.delivery-create-modal .modal { width:min(780px,calc(100vw - 32px)); }
.field-grid.single-field { grid-template-columns:1fr; }
.delivery-element-editor-backdrop { position:fixed; z-index:80; inset:0; display:grid; place-items:center; padding:24px; background:rgba(20,60,98,.78); }
.delivery-element-editor { position:relative; width:min(760px,100%); max-height:min(760px,calc(100vh - 48px)); overflow:auto; padding:25px; border-radius:12px; background:#fff; box-shadow:0 24px 80px rgba(20,60,98,.35); }
.delivery-element-editor>header { padding-right:38px; }
.delivery-element-editor>header h2 { margin:4px 0 0; color:var(--navy); font-size:21px; }
.delivery-element-editor>header p:last-child { margin:6px 0 0; color:var(--muted); font-size:11px; }
.delivery-element-editor .delivery-element-picker { margin-top:18px; }
.delivery-element-editor .delivery-element-picker>div { max-height:430px; }
.delivery-element-editor>footer { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; padding-top:14px; border-top:1px solid #e2e9f0; }
.notification-history { margin-top:15px; padding:13px; border:1px solid #dbe5f0; border-radius:8px; }
.notification-history ul { margin:9px 0 0; padding:0; list-style:none; }
.notification-history li { padding:8px 0; border-top:1px solid #e7edf4; }
.notification-history li strong,.notification-history li span { display:block; }
.notification-history li strong { color:var(--navy); font-size:10px; }
.notification-history li span { margin-top:2px; color:var(--muted); font-size:9px; }
.ncr-audit { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }
.ncr-audit>div { padding:11px; border:1px solid #dce6ef; border-radius:7px; background:#f8fafc; }
.ncr-audit small,.ncr-audit strong,.ncr-audit span { display:block; }
.ncr-audit small { color:#8290a5; font-size:8px; font-weight:800; }
.ncr-audit strong { margin-top:4px; color:var(--navy); font-size:11px; }
.ncr-audit span { margin-top:2px; color:var(--muted); font-size:9px; }
.ncr-detail-modal .detail-modal { width:min(1060px,calc(100vw - 32px)); padding:28px 32px 24px; box-sizing:border-box; }
.ncr-detail-modal .modal-heading { margin-bottom:14px; padding-right:44px; }
.ncr-detail-tabs { display:flex; gap:3px; margin:0 0 18px; border-bottom:1px solid #d9e4ee; overflow-x:auto; scrollbar-width:thin; }
.ncr-detail-tabs button { flex:0 0 auto; padding:11px 13px; border:0; border-bottom:3px solid transparent; background:transparent; color:#697a90; font:inherit; font-size:11px; font-weight:800; cursor:pointer; white-space:nowrap; }
.ncr-detail-tabs button:hover { color:#143c62; background:#f7f9fb; }
.ncr-detail-tabs button.active { color:#143c62; border-bottom-color:#ffd300; }
.ncr-detail-tab-panel { display:none; min-height:380px; }
.ncr-detail-tab-panel.active { display:block; }
.ncr-section-card { padding:18px; border:1px solid #dbe5ef; border-radius:10px; background:#fbfcfe; }
.ncr-section-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:17px; padding-bottom:14px; border-bottom:1px solid #e2e9f0; }
.ncr-section-card>header>div { display:flex; align-items:center; gap:10px; }
.ncr-section-card>header>div>span { display:grid; place-items:center; width:25px; height:25px; border-radius:7px; background:#143c62; color:#ffd300; font-size:11px; font-weight:900; }
.ncr-section-card h3 { margin:0; color:#143c62; font-size:14px; }
.ncr-section-card>header p { max-width:440px; margin:2px 0 0; color:#6d7d91; font-size:10px; text-align:right; }
.ncr-section-card>label+label,.ncr-section-card>.detail-attachments { margin-top:16px; }
.ncr-reference-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:15px 0; }
.ncr-reference-grid>div { min-width:0; min-height:62px; padding:11px 12px; border:1px solid #dce5ee; border-radius:8px; background:#fff; }
.ncr-reference-grid small,.ncr-reference-grid strong,.ncr-reference-grid span { display:block; }
.ncr-reference-grid small { color:#8290a5; font-size:8px; font-weight:850; letter-spacing:.06em; }
.ncr-reference-grid strong { margin-top:5px; color:#143c62; font-size:11px; }
.ncr-reference-grid span { margin-top:3px; color:#687990; font-size:9px; line-height:1.35; overflow-wrap:anywhere; }
.ncr-form-grid { align-items:end; }
.ncr-large-textarea { min-height:130px!important; line-height:1.5; }
.ncr-two-column-text { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.ncr-two-column-text textarea { min-height:230px; line-height:1.5; }
.ncr-disposition-field { width:min(430px,100%); margin-top:16px; }
.ncr-use-as-is { margin-top:15px; padding:14px; border:1px solid #e6c754; border-left:4px solid #ffd300; border-radius:8px; background:#fffbea; }
.ncr-use-as-is>strong { display:block; color:#143c62; font-size:11px; }
.ncr-use-as-is>p { margin:4px 0 12px; color:#756829; font-size:10px; line-height:1.45; }
.ncr-use-as-is textarea { min-height:88px; background:#fff; }
.ncr-closure-note { display:flex; align-items:flex-start; gap:12px; margin-top:16px; padding:12px 14px; border-radius:8px; background:#eef5fa; color:#143c62; }
.ncr-closure-note strong { flex:0 0 auto; font-size:10px; }
.ncr-closure-note span { color:#63758c; font-size:10px; line-height:1.45; }
.field-optional { color:#8795a7; font-size:9px; font-weight:550; }
.field-required { color:#cf2f3b; margin-left:2px; font-size:12px; font-weight:800; line-height:1; }
.currency-input { display:grid; grid-template-columns:34px minmax(0,1fr); margin-top:6px; }
.currency-input b { display:grid; place-items:center; border:1px solid #dbe2eb; border-right:0; border-radius:6px 0 0 6px; background:#edf3f7; color:#143c62; font-size:12px; }
.modal .currency-input input { margin-top:0; border-radius:0 6px 6px 0; }
.ncr-audit-panel .record-audit-trail { margin:0; padding:0; border:0; background:transparent; }
.ncr-detail-modal #detailForm>.modal-actions { margin:20px -32px -24px; padding:15px 32px; border-top:1px solid #dce5ee; border-radius:0 0 13px 13px; background:#fff; flex-wrap:wrap; }
.delivery-note-preview { overflow:hidden; border:1px solid #ccd8e5; border-radius:8px; background:#fff; color:var(--navy); }
.delivery-note-preview>header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; padding:25px; background:var(--navy); color:#fff; }
.delivery-note-preview>header>div { display:flex; flex-direction:column; gap:4px; }
.delivery-note-logo { width:150px; height:42px; object-fit:contain; object-position:left center; }
.delivery-note-preview>header small { color:var(--yellow); font-weight:800; letter-spacing:.16em; }
.delivery-note-preview>header>div:last-child { text-align:right; }
.delivery-note-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:#dbe4ed; }
.delivery-note-summary>div,.delivery-note-address { padding:13px 15px; background:#f7f9fb; }
.delivery-note-summary small,.delivery-note-address small { display:block; color:#7c899b; font-size:8px; font-weight:800; }
.delivery-note-summary strong,.delivery-note-address strong { display:block; margin-top:4px; font-size:11px; }
.delivery-note-address span { display:block; margin-top:4px; color:var(--muted); font-size:9px; }
.delivery-note-preview table { width:100%; border-collapse:collapse; font-size:9px; }
.delivery-note-preview th { padding:9px; background:#eaf0f5; color:#657489; text-align:left; }
.delivery-note-preview td { padding:10px 9px; border-top:1px solid #e2e8ef; vertical-align:top; }
.delivery-note-preview td small { display:block; margin-top:2px; color:var(--muted); }
.delivery-note-preview .receipt-entry { color:#9aa6b5; }
.delivery-note-confirmation { display:grid; grid-template-columns:2fr 1fr .7fr; gap:14px; padding:20px; }
.delivery-note-confirmation small { display:block; font-size:8px; font-weight:800; }
.delivery-note-confirmation span { display:block; height:25px; border-bottom:1px solid #9da9b7; }
.delivery-note-evidence { padding:14px 20px; border-top:1px solid #e2e8ef; background:#fbfcfd; }
.delivery-note-evidence small,.delivery-note-evidence strong,.delivery-note-evidence span { display:block; }
.delivery-note-evidence small { color:#7c899b; font-size:8px; font-weight:800; }
.delivery-note-evidence strong { margin-top:4px; font-size:10px; white-space:pre-wrap; }
.delivery-note-evidence span { margin-top:5px; color:var(--muted); font-size:9px; }
.courier-vehicle-picker { margin-top:16px; padding:14px; border:1px solid #dbe4ed; border-radius:8px; background:#fbfcfe; }
.courier-vehicle-picker legend { padding:0 5px; color:#5d6a7d; font-size:11px; font-weight:800; }
.courier-vehicle-picker>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.courier-vehicle-picker label { display:flex; gap:8px; align-items:center; padding:8px; border:1px solid #e2e8f0; border-radius:6px; background:#fff; color:var(--navy); font-size:11px; }
.courier-vehicle-picker input { width:auto; }
.notification-contacts { padding:14px; border:1px solid #dbe4ee; border-radius:8px; background:#f9fbfd; }
.notification-contacts>label:not(.manual-recipient) { display:grid; grid-template-columns:18px 1fr; gap:9px; padding:9px 0; border-top:1px solid #e3e9f0; }
.notification-contacts>h3+label { margin-top:8px; }
.notification-contacts>label>input[type=checkbox] { width:auto; margin-top:11px; }
.notification-contacts label span strong { display:block; margin-bottom:2px; color:var(--navy); }
.notification-contacts .manual-recipient { margin-top:9px; }
.pallet-label-allocation { padding:14px; border:1px solid #dbe4ee; border-radius:8px; background:#f9fbfd; }
.pallet-label-allocation h3 { margin:0 0 10px; color:var(--navy); font-size:14px; }
.pallet-label-allocation>label { display:grid; grid-template-columns:minmax(0,1fr) 116px; gap:14px; align-items:center; padding:11px 0; border-top:1px solid #e3e9f0; }
.pallet-label-allocation>label>span { min-width:0; }
.pallet-label-allocation strong,.pallet-label-allocation small { display:block; }
.pallet-label-allocation strong { color:var(--navy); font-size:12px; }
.pallet-label-allocation small { margin-top:3px; color:var(--muted); font-size:10px; font-weight:500; }
.pallet-label-allocation input { margin-top:0 !important; text-align:center; }
.pallet-label-allocation p { margin:0; color:var(--muted); font-size:12px; }
.notification-error { margin-top:12px; padding:10px; border:1px solid #f2b9b9; border-radius:6px; background:#fff4f4; color:#a22b2b; font-size:11px; }
.handover-explanation { margin-top:16px; padding:14px 16px; border:1px solid #d4e1ec; border-radius:8px; background:#f6f9fc; color:#143c62; }
.handover-explanation strong { display:block; margin-bottom:7px; }
.handover-explanation ol { margin:0; padding-left:20px; color:#586c82; font-size:11px; line-height:1.6; }

/* Public customer delivery note */
.customer-delivery-page { min-height:100vh; margin:0; background:#eef3f7; color:var(--navy); font-family:Inter,Arial,sans-serif; }
.customer-delivery-header { display:flex; align-items:center; gap:22px; padding:18px clamp(20px,5vw,70px); background:var(--navy); color:#fff; border-bottom:5px solid var(--yellow); }
.customer-header-logo { width:148px; height:40px; object-fit:contain; object-position:left center; padding-right:22px; border-right:2px solid #fff; }
.customer-header-wordmark,.customer-wordmark { display:inline-flex; align-items:center; min-height:40px; color:#fff; font-size:24px; font-weight:900; letter-spacing:.04em; }
.customer-header-wordmark { padding-right:22px; border-right:2px solid #fff; }
.customer-delivery-header strong,.customer-delivery-header span { display:block; }
.customer-delivery-header strong { font-size:14px; }
.customer-delivery-header span { margin-top:2px; color:#cad8e5; font-size:10px; }
.customer-delivery-shell { width:min(1400px,calc(100% - 32px)); margin:26px auto 50px; }
.customer-delivery-loading,.customer-delivery-error,.customer-delivery-success { padding:50px 30px; border-radius:12px; background:#fff; text-align:center; box-shadow:0 12px 40px rgba(20,60,98,.1); }
.customer-delivery-success>span { width:48px; height:48px; display:grid; place-items:center; margin:0 auto 12px; border-radius:50%; background:#16815d; color:#fff; font-size:24px; }
.customer-delivery-card,.customer-confirmation-card { overflow:hidden; border:1px solid #d4dee8; border-radius:11px; background:#fff; box-shadow:0 12px 38px rgba(20,60,98,.08); }
.customer-delivery-card>header { display:flex; justify-content:space-between; gap:20px; padding:24px 28px; background:#f8fafc; border-bottom:1px solid #dce4ec; }
.customer-delivery-card>header:first-child { background:var(--navy); color:#fff; border-bottom:5px solid var(--yellow); }
.customer-delivery-card>header:first-child p,.customer-delivery-card>header:first-child span { color:#d9e5ef; }
.customer-logo { width:156px; height:42px; object-fit:contain; object-position:left center; }
.customer-delivery-card h1 { margin:3px 0; font-size:25px; }
.customer-delivery-card header p,.customer-delivery-card header span { margin:0; color:var(--muted); font-size:10px; }
.customer-delivery-status { align-self:flex-start; padding:7px 10px; border-radius:999px; background:#fff4c2; color:#725e00; font-size:10px; font-weight:800; }
.customer-delivery-summary { display:grid; grid-template-columns:1.5fr 1fr .6fr 1.4fr; gap:1px; background:#dce4ec; }
.customer-delivery-summary>div,.customer-delivery-address { padding:14px 18px; background:#fff; }
.customer-delivery-summary small,.customer-delivery-address small { display:block; color:#8190a4; font-size:8px; font-weight:800; }
.customer-delivery-summary strong,.customer-delivery-address strong,.customer-delivery-address span { display:block; margin-top:4px; }
.customer-delivery-address span { color:var(--muted); font-size:10px; }
.customer-line-table { overflow:auto; }
.customer-line-table table { width:100%; min-width:1050px; border-collapse:collapse; }
.customer-line-table th { padding:10px; background:var(--navy); color:#fff; text-align:left; font-size:8px; }
.customer-line-table td { padding:10px; border-top:1px solid #e1e7ee; vertical-align:top; font-size:10px; }
.customer-line-table td strong,.customer-line-table td small { display:block; }
.customer-line-table td small { margin-top:3px; color:var(--muted); }
.customer-line-table input { width:100%; min-width:76px; padding:8px; border:1px solid #ccd7e3; border-radius:5px; }
.customer-receipt-audit,.customer-note-evidence { padding:14px 18px; border-bottom:1px solid #dce4ec; background:#f8fafc; }
.customer-receipt-audit strong,.customer-receipt-audit span,.customer-note-evidence small,.customer-note-evidence strong,.customer-note-evidence span { display:block; }
.customer-receipt-audit span,.customer-note-evidence span { margin-top:4px; color:var(--muted); font-size:10px; }
.customer-note-evidence small { color:#8190a4; font-size:8px; font-weight:800; }
.customer-note-evidence strong { margin-top:4px; font-size:11px; }
.customer-confirmation-card { margin-top:20px; padding:24px 28px; }
.customer-confirmation-card h2 { margin:0; font-size:20px; }
.customer-confirmation-card>p { color:var(--muted); font-size:11px; }
.customer-confirmation-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.customer-confirmation-card label { display:block; color:#5d6a7d; font-size:10px; font-weight:750; }
.customer-confirmation-card input,.customer-confirmation-card textarea { width:100%; margin-top:6px; padding:10px; border:1px solid #ccd7e3; border-radius:6px; }
.customer-confirmation-card textarea { min-height:80px; resize:vertical; }
.customer-confirm-checkbox { display:flex!important; align-items:flex-start; gap:8px; margin-top:15px; }
.customer-confirm-checkbox input { width:auto; margin-top:1px; }
.customer-submit { margin-top:16px; }
@media (max-width:1240px) { .delivery-compact-details{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:1080px) { .delivery-record-layout{grid-template-columns:1fr;grid-template-areas:"setup" "lines" "lower"}.delivery-record-lines{position:static}.delivery-note-summary,.customer-delivery-summary{grid-template-columns:1fr 1fr}.delivery-evidence-grid{grid-template-columns:1fr}.delivery-attachment-column .detail-attachments{min-height:0} }
@media (max-width:760px) { .delivery-detail-modal .detail-modal{padding:24px 18px 18px}.delivery-primary-grid{grid-template-columns:1fr}.delivery-title-field,.delivery-method-field{grid-column:auto}.delivery-record-main,.delivery-record-lower{padding:15px}.delivery-compact-details{grid-template-columns:1fr 1fr}.delivery-element-picker>div{grid-template-columns:1fr}.delivery-po-line-picker label{grid-template-columns:auto minmax(0,1fr)}.delivery-po-line-meta{grid-column:2;text-align:left}.delivery-detail-modal #detailForm>.modal-actions{margin:18px -18px -18px;padding:14px 18px}.delivery-lines-panel table{min-width:620px}.delivery-element-editor-backdrop{padding:12px}.delivery-element-editor{padding:20px} }

/* Project 38: live dashboards, record filtering and compact delivery detail tabs. */
.dashboard-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 14px; color:#6c7d91; font-size:12px; }
.dashboard-live-card { width:100%; border:1px solid #dfe7ef; font:inherit; text-align:left; cursor:pointer; }
.dashboard-live-card:hover { border-color:#143c62; transform:translateY(-1px); box-shadow:0 9px 22px rgba(20,60,98,.1); }
.dashboard-configurable:empty { display:none; }
.dashboard-config-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:18px 0; }
.dashboard-config-list label { display:flex; align-items:center; gap:10px; padding:12px; border:1px solid #dbe5ef; border-radius:8px; color:#143c62; font-weight:700; }
.dashboard-config-list input { width:16px; height:16px; accent-color:#143c62; }
.dashboard-empty { margin:0; padding:18px; color:#6c7d91; font-size:12px; }
.dashboard-deadline,.dashboard-activity { width:100%; border:0; background:transparent; text-align:left; cursor:pointer; }
.dashboard-deadline:hover,.dashboard-activity:hover { background:#f7faff; }
.dashboard-insights { min-width:0; }
.dashboard-insights .dashboard-signals { margin:0 20px 20px; }
.dashboard-signals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0; list-style:none; }
.dashboard-signals li { padding:12px; border:1px solid #dbe5ef; border-radius:8px; background:#f8fafc; }
.dashboard-signals strong,.dashboard-signals span { display:block; }
.dashboard-signals strong { color:#143c62; font-size:18px; }
.dashboard-signals span { margin-top:4px; color:#6c7d91; font-size:11px; }
.dashboard-signals li.warning { background:#fffaf0; border-color:#f1d487; }.dashboard-signals li.issue { background:#fff7f7; border-color:#efc0c5; }
.donut { background:conic-gradient(#2f9d78 var(--completion,266deg),#e8eef4 0)!important; }
.ncr-filter-panel { display:grid; grid-template-columns:minmax(240px,1.4fr) repeat(4,minmax(135px,.75fr)) auto; gap:9px; margin:0 0 18px; align-items:center; }
.ncr-filter-panel .search,.ncr-filter-panel select { width:100%; min-width:0; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--ink); font-size:12px; }
.po-search { width:min(390px,45vw); }
.movement-address-grid [hidden] { display:none!important; }
.movement-address-grid label>span { display:block; }
.delivery-detail-tabs { display:flex; gap:4px; margin:0 0 18px; border-bottom:1px solid #dbe5ef; overflow-x:auto; }
.delivery-detail-tabs button { flex:0 0 auto; padding:11px 14px; border:0; border-bottom:3px solid transparent; background:transparent; color:#687990; font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.delivery-detail-tabs button.active { color:#143c62; border-bottom-color:#ffd300; }
.delivery-detail-tab-panel { display:none; min-height:120px; }
.delivery-detail-tab-panel.active { display:block; }
.delivery-detail-tab-panel .delivery-record-details,.delivery-detail-tab-panel .notification-history,.delivery-detail-tab-panel .record-audit-trail { margin:0; padding:0; border:0; }
.delivery-attachments-below-tabs { margin-top:18px; padding-top:18px; border-top:1px solid #dbe5ef; }
.delivery-attachments-below-tabs .detail-attachments { min-height:0; }
.delivery-record-lower>.delivery-exceptions,.delivery-record-lower>.linked-ncrs { margin-bottom:18px; }
.button[disabled][data-remove-external-user] { opacity:.6; cursor:not-allowed; }
@media (max-width:1100px) { .ncr-filter-panel { grid-template-columns:repeat(2,minmax(0,1fr)); }.ncr-filter-panel .search { grid-column:1/-1; }.ncr-filter-panel .button { width:fit-content; } }
@media (max-width:760px) { .dashboard-config-list,.dashboard-signals,.ncr-filter-panel { grid-template-columns:1fr; }.ncr-filter-panel .search { grid-column:auto; }.dashboard-toolbar { align-items:stretch; flex-direction:column; }.po-search { width:100%; } }
@media (max-width:760px) { .ncr-detail-modal .detail-modal{padding:24px 18px 18px}.ncr-section-card{padding:14px}.ncr-section-card>header{display:block}.ncr-section-card>header p{margin-top:7px;text-align:left}.ncr-reference-grid,.ncr-two-column-text{grid-template-columns:1fr}.ncr-detail-tab-panel{min-height:0}.ncr-two-column-text textarea{min-height:150px}.ncr-detail-modal #detailForm>.modal-actions{margin:18px -18px -18px;padding:14px 18px}.ncr-closure-note{display:block}.ncr-closure-note span{display:block;margin-top:5px} }
@media (max-width:620px) { .customer-delivery-header{padding:14px 18px}.customer-wordmark{font-size:21px}.customer-delivery-summary,.customer-confirmation-grid,.delivery-note-summary,.delivery-note-confirmation,.delivery-compact-details{grid-template-columns:1fr}.customer-delivery-card>header{padding:18px}.customer-confirmation-card{padding:18px} }
/* Supplier workspace */
.supplier-company-pill { align-self: center; padding: 10px 14px; border: 1px solid #b9cbe0; border-radius: 999px; background: #eef5fc; color: #143c62; font-weight: 800; }
.supplier-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 24px; }
.supplier-kpis article { min-height: 104px; padding: 18px 20px; border: 1px solid #d4e0ed; border-radius: 12px; background: #fff; box-shadow: 0 10px 24px rgba(20, 60, 98, .05); }
.supplier-kpis small { display: block; margin-bottom: 9px; color: #73849a; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.supplier-kpis strong { color: #143c62; font-size: 30px; }
.partner-summary-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.supplier-welcome { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; padding: 22px 24px; border-radius: 14px; background: #143c62; color: #fff; }
.supplier-welcome h2,.supplier-welcome p { margin: 0; }
.supplier-welcome h2 { margin: 4px 0 6px; color: #fff; }
.supplier-welcome p:not(.eyebrow) { color: #d9e5f0; }
.supplier-welcome > span { padding: 8px 12px; border-radius: 999px; background: #ffd300; color: #143c62; font-weight: 800; white-space: nowrap; }
.supplier-dashboard-stats .stat-card { display: flex; flex-direction: column; }
.dashboard-inline-link { width: fit-content; margin-top: auto; padding: 8px 0 0; border: 0; background: transparent; color: #143c62; font-weight: 800; }
.date-badge.date-badge-uk { width: 76px; padding: 8px 6px; font-size: 11px; font-weight: 800; text-align: center; }
.supplier-action-panel { max-width: 1100px; }
.supplier-dashboard-empty { display: flex; flex-direction: column; gap: 4px; padding: 28px; color: #687a90; text-align: center; }
.partner-user-actions { display: flex; justify-content: flex-end; gap: 10px; white-space: nowrap; }
.invitation-error { display: block; max-width: 280px; margin-top: 4px; color: #be3441; white-space: normal; }
.partner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.partner-card { display: flex; min-height: 170px; flex-direction: column; padding: 20px; border: 1px solid #d4e0ed; border-radius: 12px; background: #fff; }
.partner-card header, .partner-card footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.partner-card header small { color: #74869b; font-weight: 800; letter-spacing: .06em; }
.partner-card h3 { margin: 3px 0 0; color: #143c62; }
.partner-card header > span { padding: 6px 9px; border-radius: 999px; background: #fff5bd; color: #6d5700; font-size: 12px; font-weight: 800; }
.partner-card p { flex: 1; color: #5f7187; }
.supplier-link-fields { margin: 18px 0; padding: 16px; border: 1px solid #c9daec; border-radius: 10px; background: #f7faff; }
.supplier-link-fields legend { padding: 0 7px; color: #143c62; font-weight: 800; }
.supplier-link-fields legend span { color: #7d8da1; font-size: 11px; font-weight: 600; }
.supplier-link-fields > p { margin: 0 0 14px; color: #66788e; font-size: 12px; }
.supplier-record-link { margin: 0 0 18px; padding: 15px 18px; border: 1px solid #bad1e8; border-left: 4px solid #ffd300; border-radius: 10px; background: #f5f9fd; }
.supplier-record-link header, .supplier-record-link header > div, .supplier-record-link > div { display: flex; align-items: center; gap: 12px; }
.supplier-record-link header { justify-content: space-between; }
.supplier-record-link header > div { align-items: flex-start; flex-direction: column; gap: 2px; }
.supplier-record-link small, .supplier-record-link > div span { color: #718398; font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.supplier-record-link > div { margin-top: 10px; display: grid; grid-template-columns: auto 1fr auto 1fr; }
.supplier-return-reason { margin: 12px 0 0; padding: 10px; border-radius: 7px; background: #fff0ef; color: #872c2c; }
.vendor-access-note { display: flex; gap: 10px; margin-top: 14px; padding: 12px 14px; border: 1px solid #c9daec; border-radius: 8px; background: #f5f9fd; }
.vendor-access-note span { color: #66788e; }
.po-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 20px; }
.po-summary > div { padding: 13px; border: 1px solid #d8e2ee; border-radius: 8px; background: #f8fafc; }
.po-summary small, .po-summary strong { display: block; }
.po-summary small { color: #74869b; font-size: 10px; font-weight: 800; }
.po-summary strong { margin-top: 5px; color: #143c62; }
.po-lines, .po-linked-work, .record-audit-trail { margin-top: 20px; border-top: 1px solid #d9e3ee; padding-top: 18px; }
.po-lines > header, .po-linked-work > header, .record-audit-trail > header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.po-lines h3, .po-linked-work h3, .record-audit-trail h3 { margin: 0; color: #143c62; }
.po-lines header p { margin: 3px 0 0; color: #6c7d91; font-size: 12px; }
.po-lines-scroll { max-height: 575px; overflow: auto; border: 1px solid #dfe7ef; border-radius: 8px; }
.po-lines-scroll .data-table { min-width: 690px; }
.po-lines-scroll .data-table thead { position: sticky; z-index: 2; top: 0; }
.po-lines-scroll .data-table th { background: #f6f8fb; }
.po-lines-scroll .data-table td { height: 54px; box-sizing: border-box; white-space: nowrap; }
.po-lines-scroll .data-table td.po-description { max-width: 250px; overflow: hidden; text-overflow: ellipsis; }
.po-lines-scroll .data-table tr.selected td { background: #fff9d9; }
.po-select-cell { width: 42px; padding-left: 12px !important; padding-right: 6px !important; text-align: center; }
.po-select-cell input { width: 16px; height: 16px; margin: 0; accent-color: #143c62; }
.po-action-bar { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 10px; padding: 12px 14px; border: 1px solid #d6e1ec; border-radius: 9px; background: #f8fafc; }
.po-action-bar > span { color: #62758b; font-size: 12px; font-weight: 700; }
.po-action-bar > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.po-create-context { display: flex; flex-direction: column; gap: 3px; margin-top: 14px; padding: 12px 14px; border: 1px solid #c9daec; border-left: 4px solid #ffd300; border-radius: 8px; background: #f7faff; }
.po-create-context small { color: #73859a; font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.po-create-context strong { color: #143c62; }
.po-create-context span { color: #62758b; font-size: 11px; }
.partner-detail-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.partner-detail-summary > div { min-width: 0; padding: 13px 14px; border: 1px solid #d8e2ee; border-radius: 8px; background: #f8fafc; }
.partner-detail-summary small,.partner-detail-summary strong { display: block; }
.partner-detail-summary small { color: #74869b; font-size: 9px; font-weight: 800; letter-spacing: .06em; }
.partner-detail-summary strong { margin-top: 5px; color: #143c62; overflow-wrap: anywhere; }
.partner-detail-section { margin-top: 20px; padding-top: 18px; border-top: 1px solid #d9e3ee; }
.partner-detail-section > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.partner-detail-section h3,.partner-detail-section p { margin: 0; }
.partner-detail-section h3 { color: #143c62; }
.partner-detail-section header p,.partner-detail-empty { margin-top: 3px; color: #6c7d91; font-size: 12px; }
.partner-po-list { display: grid; gap: 7px; }
.partner-po-list > button { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 14px; width: 100%; padding: 11px 13px; border: 1px solid #dfe7ef; border-radius: 8px; background: white; text-align: left; }
.partner-po-list > button:hover { border-color: #9fb9d2; background: #f8fbfe; }
.partner-po-list span strong,.partner-po-list span small { display: block; }
.partner-po-list span strong { color: #143c62; }
.partner-po-list span small { margin-top: 2px; color: #6c7d91; }
.partner-po-list b { color: #143c62; font-size: 11px; white-space: nowrap; }
.partner-table td:last-child { text-align: right; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.record-audit-trail ul { margin: 0; padding: 0; list-style: none; }
.record-audit-trail li { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid #e6edf4; }
.record-audit-trail li span { color: #6c7d91; font-size: 12px; }
.record-audit-trail ul { max-height: 180px; overflow-y: auto; padding-right: 6px; }
.record-audit-trail h3 { font-size: 14px; font-weight: 650; }
.record-audit-trail li { padding: 7px 0; font-size: 12px; }
.record-audit-trail li strong { color: #35516f; font-size: 12px; font-weight: 600; }
.record-audit-trail li span { font-size: 11px; }
.capability-check-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.capability-check-grid label { display:flex; align-items:center; gap:8px; min-height:42px; padding:9px 11px; border:1px solid #d8e2ee; border-radius:8px; background:#f8fafc; color:#143c62; font-weight:650; }
.capability-check-grid input { width:auto; }
.dispatch-lines-panel { min-width:0; }
.dispatch-lines-panel .delivery-lines-scroll { overflow:auto; }
.dispatch-lines-panel table { min-width:600px; table-layout:fixed; }
.dispatch-lines-panel col.dispatch-col-description { width:46%; }
.dispatch-lines-panel col.dispatch-col-element { width:18%; }
.dispatch-lines-panel col.dispatch-col-planned { width:12%; }
.dispatch-lines-panel col.dispatch-col-actual { width:12%; }
.dispatch-lines-panel col.dispatch-col-short { width:12%; }
.dispatch-lines-panel th:nth-child(n) { width:auto; }
.dispatch-lines-panel th,.dispatch-lines-panel td { padding-left:8px; padding-right:8px; }
.dispatch-lines-panel input { width:100%; min-width:0; box-sizing:border-box; padding:7px 6px; font-size:10px; }
.dispatch-lines-panel .dispatch-element,.dispatch-lines-panel .dispatch-quantity { white-space:nowrap; overflow-wrap:normal; }
.dispatch-shortage-banner { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 14px 12px; padding:11px 12px; border:1px solid #efc0c5; border-left:4px solid #d62f40; border-radius:8px; background:#fff7f7; }
.dispatch-shortage-banner.notified { border-color:#b8dbc9; border-left-color:#16815d; background:#f3fbf7; }
.dispatch-shortage-banner>div { min-width:0; }
.dispatch-shortage-banner strong,.dispatch-shortage-banner span { display:block; }
.dispatch-shortage-banner strong { color:#8e2834; font-size:11px; }
.dispatch-shortage-banner.notified strong { color:#116c4e; }
.dispatch-shortage-banner span { margin-top:2px; color:#687a90; font-size:10px; }
.dispatch-shortage-banner .button { flex:0 0 auto; padding:8px 10px; font-size:10px; }
.dispatch-shortage-editor-backdrop { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:24px; overflow:auto; background:rgba(10,34,57,.72); }
.dispatch-shortage-editor { position:relative; width:min(880px,100%); max-height:calc(100vh - 48px); overflow:auto; padding:26px 28px 22px; border-radius:13px; background:#fff; box-shadow:0 28px 95px rgba(10,34,57,.42); }
.dispatch-shortage-heading { padding-right:36px; }
.dispatch-shortage-heading h2 { margin:4px 0 6px; color:#143c62; font-size:22px; }
.dispatch-shortage-heading>p:last-child { margin:0; color:#66788e; font-size:12px; }
.dispatch-shortage-bulk { margin:18px 0; padding:14px; border:1px solid #c9daec; border-radius:9px; background:#f6faff; }
.dispatch-shortage-bulk>header { display:flex; justify-content:space-between; gap:12px; margin-bottom:10px; }
.dispatch-shortage-bulk>header strong { color:#143c62; }
.dispatch-shortage-bulk>header span,.dispatch-shortage-message>span { color:#8190a4; font-size:10px; font-weight:600; }
.dispatch-shortage-bulk>div { display:grid; grid-template-columns:minmax(180px,1.4fr) minmax(150px,.8fr) minmax(180px,1fr) auto; align-items:end; gap:10px; }
.dispatch-shortage-editor label { display:block; color:#5d6a7d; font-size:10px; font-weight:750; }
.dispatch-shortage-editor input,.dispatch-shortage-editor textarea { width:100%; margin-top:6px; padding:9px 10px; border:1px solid #d5e0eb; border-radius:6px; color:#143c62; }
.dispatch-shortage-list { display:grid; gap:9px; }
.dispatch-shortage-line { padding:13px 14px; border:1px solid #dbe5ef; border-radius:9px; background:#fff; }
.dispatch-shortage-line>header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:11px; }
.dispatch-shortage-line>header strong,.dispatch-shortage-line>header span { display:block; }
.dispatch-shortage-line>header strong { color:#143c62; }
.dispatch-shortage-line>header span { margin-top:3px; color:#718398; font-size:10px; }
.dispatch-shortage-line>header b { flex:0 0 auto; color:#a12735; font-size:11px; }
.dispatch-shortage-fields { display:grid; grid-template-columns:minmax(200px,1.5fr) minmax(170px,.8fr) minmax(190px,1fr); align-items:end; gap:11px; }
.dispatch-no-further { display:flex!important; align-items:center; min-height:38px; gap:8px; color:#143c62!important; }
.dispatch-no-further input { width:auto; margin:0; }
.dispatch-shortage-message { margin-top:15px; }
.dispatch-shortage-message textarea { min-height:70px; resize:vertical; }
.dispatch-shortage-editor>footer { display:flex; justify-content:flex-end; gap:9px; margin-top:18px; padding-top:16px; border-top:1px solid #dbe5ef; }
.notification-account-summary { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; padding:13px 14px; border:1px solid #c9daec; border-radius:9px; background:#f5f9fd; }
.notification-account-summary strong,.notification-account-summary span { display:block; }
.notification-account-summary strong { color:#143c62; }
.notification-account-summary span { margin-top:2px; color:#687a90; font-size:10px; }
.workspace-notification-list { display:grid; gap:10px; max-height:560px; overflow-y:auto; padding-right:5px; }
.workspace-notification { padding:14px; border:1px solid #d9e4ee; border-radius:10px; background:#fff; }
.workspace-notification.unread { border-left:4px solid #ffd300; background:#fffdf3; }
.workspace-notification>header,.workspace-notification>footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.workspace-notification>header>div { position:relative; min-width:0; }
.workspace-notification>header strong,.workspace-notification>header small { display:block; }
.workspace-notification>header strong { color:#143c62; }
.workspace-notification>header small { margin-top:3px; color:#718398; }
.workspace-notification-dot { display:none; position:absolute; top:3px; left:-13px; width:7px; height:7px; border-radius:50%; background:#d62f40; }
.workspace-notification.unread .workspace-notification-dot { display:block; }
.workspace-notification>p { margin:11px 0 8px; color:#53677e; font-size:11px; }
.workspace-notification blockquote,.supplier-shortage-notifications blockquote { margin:9px 0; padding:9px 11px; border-left:3px solid #ffd300; background:#f8fafc; color:#435a72; font-size:11px; }
.workspace-notification-email { display:grid; gap:3px; margin-top:9px; padding:9px 10px; border-radius:7px; background:#f4f7fa; color:#66798f; font-size:10px; }
.workspace-notification-email b.sent,.shortage-notification-status strong.sent { color:#16815d; }
.workspace-notification-email b.failed,.shortage-notification-status strong.failed { color:#b52c3a; }
.workspace-notification-error { margin:8px 0!important; padding:9px 10px; border:1px solid #efc0c5; border-radius:7px; background:#fff4f5; color:#a12735!important; font-size:10px!important; overflow-wrap:anywhere; }
.notification-clear-all { margin-top:12px; }
.workspace-notification>footer { margin-top:11px; }
.workspace-notification>footer>span { color:#687a90; font-size:10px; }
.supplier-shortage-notifications { margin-bottom:16px; padding:14px; border:1px solid #c8d9e9; border-radius:9px; background:#f8fbfe; }
.supplier-shortage-notifications>header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.supplier-shortage-notifications h3,.supplier-shortage-notifications p { margin:0; }
.supplier-shortage-notifications h3 { color:#143c62; font-size:14px; }
.supplier-shortage-notifications header p { margin-top:3px; color:#687a90; font-size:10px; }
.shortage-notification-status { display:grid; grid-template-columns:minmax(120px,.4fr) minmax(0,1.6fr); gap:10px; margin:12px 0; }
.shortage-notification-status>div { padding:10px; border:1px solid #dce6ef; border-radius:7px; background:#fff; }
.shortage-notification-status small,.shortage-notification-status strong { display:block; }
.shortage-notification-status small { color:#8090a3; font-size:8px; font-weight:800; }
.shortage-notification-status strong { margin-top:4px; color:#143c62; font-size:10px; overflow-wrap:anywhere; }
.shortage-notification-lines { display:grid; gap:6px; margin:10px 0; }
.shortage-notification-lines>div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 12px; padding:9px 10px; border:1px solid #e0e8f0; border-radius:7px; background:#fff; }
.shortage-notification-lines span { color:#143c62; font-size:10px; font-weight:700; }
.shortage-notification-lines strong { color:#a12735; font-size:10px; }
.shortage-notification-lines small { grid-column:1/-1; color:#687a90; }
.supplier-shortage-notifications>footer { display:flex; align-items:center; justify-content:flex-end; gap:9px; margin-top:12px; }
.supplier-shortage-notifications>footer>span { margin-right:auto; color:#60748b; font-size:10px; }
.supplier-shortage-notifications details { margin-top:12px; border-top:1px solid #dbe5ef; padding-top:10px; }
.supplier-shortage-notifications summary { color:#143c62; font-size:10px; font-weight:750; cursor:pointer; }
.supplier-shortage-notifications details ul { margin:8px 0 0; padding:0; list-style:none; }
.supplier-shortage-notifications details li { display:grid; grid-template-columns:auto 1fr; gap:2px 10px; padding:7px 0; border-top:1px solid #e5ecf3; font-size:9px; }
.supplier-shortage-notifications details li span { color:#687a90; text-align:right; }
.supplier-shortage-notifications details li small { grid-column:1/-1; color:#687a90; overflow-wrap:anywhere; }
.receipt-shortage-message { margin:10px 0; padding:10px 12px; border-left:3px solid #d62f40; background:#fff1f3; color:#9d1e2e; font-weight:700; }

.handover-page .customer-delivery-shell { max-width:760px; }
.handover-summary { margin:0 0 18px; overflow:hidden; border:1px solid #cfdae5; border-radius:14px; background:#fff; box-shadow:0 18px 42px rgba(20,60,98,.12); }
.handover-summary > header { display:flex; align-items:center; gap:20px; padding:22px 26px; background:var(--navy); color:#fff; border-bottom:4px solid var(--yellow); }
.handover-summary > header img { width:150px; height:auto; }
.handover-summary > header small { display:block; color:var(--yellow); font-size:11px; font-weight:800; letter-spacing:.14em; }
.handover-summary > header h1 { margin:3px 0 0; color:#fff; }
.handover-summary dl { display:grid; grid-template-columns:1fr 1fr; margin:0; padding:10px 26px 22px; }
.handover-summary dl div { padding:14px 10px 10px 0; border-bottom:1px solid #e3eaf0; }
.handover-summary dt { color:#72849a; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.handover-summary dd { margin:5px 0 0; color:#143c62; font-weight:700; }
.handover-form fieldset { margin:18px 0; padding:16px; border:1px solid #d8e2ec; border-radius:10px; }
.handover-form legend { padding:0 8px; color:#143c62; font-weight:800; }
@media (max-width:620px) {
  .handover-summary > header { align-items:flex-start; flex-direction:column; gap:12px; }
  .handover-summary dl { grid-template-columns:1fr; }
}
@media (max-width: 1050px) { .supplier-kpis, .po-summary, .partner-summary-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .supplier-kpis, .po-summary, .partner-grid, .partner-detail-summary, .partner-summary-kpis { grid-template-columns: 1fr; } .po-action-bar,.partner-detail-section > header,.supplier-welcome { align-items: stretch; flex-direction: column; } .po-action-bar > div { justify-content: flex-start; } }
@media (max-width: 680px) { .qc-task-comment-actions { align-items: stretch; flex-direction: column; } }
@media (max-width:760px) { .dispatch-shortage-editor-backdrop{padding:12px}.dispatch-shortage-editor{padding:22px 17px}.dispatch-shortage-bulk>div,.dispatch-shortage-fields,.shortage-notification-status{grid-template-columns:1fr}.dispatch-shortage-line>header,.dispatch-shortage-banner,.notification-account-summary,.workspace-notification>header,.workspace-notification>footer{align-items:stretch;flex-direction:column}.dispatch-shortage-banner .button{width:fit-content}.shortage-notification-lines>div{grid-template-columns:1fr}.shortage-notification-lines small{grid-column:auto}.supplier-shortage-notifications>footer{align-items:stretch;flex-direction:column}.supplier-shortage-notifications>footer>span{margin-right:0} }

/* Company profile colour overrides. Keep component accents tied to the active
   company profile rather than to the original Firma palette. */
:root .project-element-item:focus-visible { outline-color:rgb(var(--brand-primary-rgb) / .16); }
:root .delivery-lines-panel { box-shadow:0 6px 20px rgb(var(--brand-primary-rgb) / .05); }
:root .typeahead-input:focus { border-color:var(--navy); }
:root .typeahead-options { box-shadow:0 14px 30px rgb(var(--brand-primary-rgb) / .18); }
:root .delivery-element-editor-backdrop { background:rgb(var(--brand-primary-rgb) / .78); }
:root .delivery-element-editor { box-shadow:0 24px 80px rgb(var(--brand-primary-rgb) / .35); }
:root .ncr-detail-tabs button:hover,
:root .ncr-detail-tabs button.active,
:root .ncr-section-card h3,
:root .ncr-reference-grid strong,
:root .ncr-use-as-is>strong,
:root .ncr-closure-note,
:root .currency-input b,
:root .handover-explanation,
:root .dashboard-config-list label,
:root .dashboard-signals strong,
:root .delivery-detail-tabs button.active,
:root .supplier-kpis strong,
:root .dashboard-inline-link,
:root .partner-card h3,
:root .supplier-link-fields legend,
:root .po-summary strong,
:root .po-lines h3,
:root .po-linked-work h3,
:root .record-audit-trail h3,
:root .po-create-context strong,
:root .partner-detail-summary strong,
:root .partner-detail-section h3,
:root .partner-po-list span strong,
:root .partner-po-list b,
:root .capability-check-grid label,
:root .dispatch-shortage-heading h2,
:root .dispatch-shortage-bulk>header strong,
:root .dispatch-shortage-editor input,
:root .dispatch-shortage-editor textarea,
:root .dispatch-shortage-line>header strong,
:root .dispatch-no-further,
:root .notification-account-summary strong,
:root .workspace-notification>header strong,
:root .supplier-shortage-notifications h3,
:root .shortage-notification-status strong,
:root .shortage-notification-lines span,
:root .supplier-shortage-notifications summary,
:root .handover-summary dd,
:root .handover-form legend { color:var(--navy); }
:root .ncr-section-card>header>div>span { background:var(--navy); color:var(--yellow); }
:root .ncr-detail-tabs button.active,
:root .delivery-detail-tabs button.active { border-bottom-color:var(--yellow); }
:root .ncr-use-as-is,
:root .supplier-record-link,
:root .po-create-context { border-left-color:var(--yellow); }
:root .customer-delivery-loading,
:root .customer-delivery-error,
:root .customer-delivery-success,
:root .customer-delivery-card,
:root .customer-confirmation-card { box-shadow:0 12px 40px rgb(var(--brand-primary-rgb) / .1); }
:root .dashboard-live-card:hover { border-color:var(--navy); box-shadow:0 9px 22px rgb(var(--brand-primary-rgb) / .1); }
:root .dashboard-config-list input,
:root .po-select-cell input { accent-color:var(--navy); }
:root .supplier-company-pill { color:var(--navy); }
:root .supplier-welcome,
:root .handover-summary > header { background:var(--navy); }
:root .supplier-welcome > span { color:var(--navy); background:var(--yellow); }
:root .supplier-record-link,
:root .po-create-context { border-left-color:var(--yellow); }
:root .workspace-notification.unread { border-left-color:var(--yellow); }
:root .workspace-notification blockquote,
:root .supplier-shortage-notifications blockquote { border-left-color:var(--yellow); }
:root .handover-summary { box-shadow:0 18px 42px rgb(var(--brand-primary-rgb) / .12); }
:root .handover-summary > header { border-bottom-color:var(--yellow); }
:root .handover-summary > header small { color:var(--yellow); }
:root .dispatch-evidence-panel,
:root .dispatch-evidence-settings,
:root .notification-evidence { margin-top:16px; border:1px solid var(--line); border-radius:10px; background:#fbfdff; padding:14px; }
:root .dispatch-evidence-panel > header,
:root .dispatch-evidence-settings > header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:10px; border-bottom:1px solid var(--line); }
:root .dispatch-evidence-panel h3,
:root .dispatch-evidence-settings h3,
:root .notification-evidence h3 { margin:0; font-size:14px; color:var(--navy); }
:root .dispatch-evidence-panel p,
:root .dispatch-evidence-settings p,
:root .notification-evidence p { margin:4px 0 0; color:var(--muted); font-size:11px; line-height:1.45; }
:root .dispatch-evidence-grid,
:root .dispatch-evidence-settings-list { display:grid; gap:10px; margin-top:12px; }
:root .dispatch-evidence-card,
:root .dispatch-evidence-setting { border:1px solid var(--line); border-radius:8px; background:#fff; padding:12px; }
:root .dispatch-evidence-card > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
:root .dispatch-evidence-card strong { color:var(--navy); font-size:12px; }
:root .dispatch-evidence-card small { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
:root .dispatch-evidence-card > header > b { flex:none; border-radius:999px; background:var(--blue-soft); color:var(--navy); padding:4px 7px; font-size:10px; font-weight:800; white-space:nowrap; }
:root .dispatch-evidence-card:not(.complete) > header > b { background:#fff3da; color:#875c00; }
:root .dispatch-evidence-card > ul { margin:10px 0; padding:0; list-style:none; display:grid; gap:5px; }
:root .dispatch-evidence-card > ul li { display:flex; justify-content:space-between; gap:12px; color:var(--ink); font-size:11px; }
:root .dispatch-evidence-card > ul li small { margin:0; text-align:right; }
:root .dispatch-evidence-count { flex:none; border-radius:999px; background:var(--blue-soft); color:var(--navy); padding:4px 7px; font-size:10px; font-weight:800; white-space:nowrap; }
:root .dispatch-evidence-card.incomplete .dispatch-evidence-count { background:#fff3da; color:#875c00; }
:root .dispatch-evidence-files { margin:10px 0; padding:0; list-style:none; display:grid; gap:5px; }
:root .dispatch-evidence-files li { display:flex; justify-content:space-between; gap:12px; color:var(--ink); font-size:11px; }
:root .dispatch-evidence-files small { margin:0; text-align:right; }
:root .dispatch-evidence-card input[type=file] { width:100%; font-size:11px; }
:root .notification-evidence { display:grid; gap:8px; }
:root .notification-evidence label { display:flex; align-items:center; gap:9px; padding:8px 0; border-top:1px solid var(--line); }
:root .notification-evidence label:first-of-type { margin-top:3px; }
:root .notification-evidence strong,
:root .notification-evidence small { display:block; }
:root .notification-evidence strong { color:var(--navy); font-size:12px; }
:root .notification-evidence small { color:var(--muted); font-size:10px; margin-top:2px; }
:root .dispatch-evidence-setting { display:grid; gap:10px; }
:root .dispatch-evidence-flags { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
:root .dispatch-evidence-flags .checkbox-label { width:auto; margin:0; font-size:11px; }
:root .dispatch-evidence-flags .button-danger { margin-left:auto; margin-right:0; }
:root .dispatch-image-settings { margin-top:12px; }
@media (max-width: 680px) {
  :root .dispatch-evidence-panel > header,
  :root .dispatch-evidence-settings > header { flex-direction:column; }
  :root .dispatch-evidence-files li { display:grid; gap:2px; }
  :root .dispatch-evidence-files small { text-align:left; }
  :root .dispatch-evidence-flags .button-danger { margin-left:0; }
}
