:root {
    --ink: #172232;
    --muted: #657386;
    --brand: #20587a;
    --brand-dark: #173f59;
    --accent: #5ca4c7;
    --surface: #ffffff;
    --soft: #f3f7fa;
    --line: #dbe3ec;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: var(--soft); }
.partner-shell { width: min(1040px, calc(100% - 2rem)); margin-inline: auto; }
.partner-header { border-bottom: 1px solid var(--line); background: #fff; }
.header-inner { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.partner-brand { display: flex; align-items: center; gap: .8rem; color: var(--brand-dark); text-decoration: none; font-weight: 800; }
.partner-brand img { width: 148px; max-height: 42px; }
.partner-brand span { padding-left: .8rem; border-left: 1px solid var(--line); }
nav { display: flex; align-items: center; gap: 1rem; }
nav a, nav button { border: 0; color: var(--muted); background: transparent; font: inherit; font-size: .9rem; font-weight: 700; text-decoration: none; cursor: pointer; }
nav form { margin: 0; }
.page { padding-block: 3rem 5rem; }
.partner-hero {
    min-height: 390px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: clamp(1.7rem, 5vw, 4rem);
    border-radius: 26px;
    color: #fff;
    background:
        linear-gradient(120deg, rgba(23,63,89,.98), rgba(32,88,122,.87)),
        radial-gradient(circle at top right, #5ca4c7, transparent 26rem);
    box-shadow: 0 18px 50px rgba(23,34,50,.16);
}
.eyebrow { color: #a9d7eb; font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
h1 { max-width: 760px; margin: .8rem 0 1rem; font-size: clamp(2.2rem, 6vw, 4.5rem); line-height: 1.01; letter-spacing: -.045em; }
h2 { margin: 0 0 .5rem; }
p { color: var(--muted); line-height: 1.65; }
.partner-hero p { max-width: 660px; color: rgba(255,255,255,.78); font-size: 1.05rem; }
.notice, .welcome {
    width: min(620px, 100%);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem 1rem;
    margin-top: 1.1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 14px;
    background: rgba(255,255,255,.1);
}
.notice span { color: rgba(255,255,255,.72); }
.notice.error { color: #7d2020; border-color: #edc6c6; background: #fff0f0; }
.notice.error span { color: #995353; }
.primary-button {
    display: inline-flex;
    padding: .82rem 1.1rem;
    border-radius: 10px;
    color: var(--brand-dark);
    background: #fff;
    text-decoration: none;
    font-weight: 800;
}
.welcome .primary-button { margin-left: auto; }
.task-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.2rem; }
.task-grid article { padding: 1.5rem; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
.task-grid article > span { display: inline-grid; width: 36px; height: 36px; place-items: center; margin-bottom: 1rem; border-radius: 10px; color: var(--brand); background: #e7f3f8; font-weight: 850; }
.task-grid h2 { font-size: 1.05rem; }
.task-grid p { margin-bottom: 0; font-size: .9rem; }
.page-heading { max-width: 760px; margin-bottom: 2rem; }
.page-heading .eyebrow { color: var(--brand); }
.assignment-list { display: grid; gap: 1rem; }
.assignment-card { display: grid; grid-template-columns: 1fr auto; gap: 2rem; padding: 1.4rem; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.assignment-card h2 { margin-top: .35rem; font-size: 1.15rem; }
.assignment-card p { margin-bottom: 0; }
.request-number { color: var(--brand); font-size: .78rem; font-weight: 850; letter-spacing: .08em; }
.assignment-card dl { display: grid; grid-template-columns: repeat(3, auto); gap: 1.5rem; margin: 0; }
.assignment-card dl div { min-width: 90px; }
.assignment-card dt { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.assignment-card dd { margin: .3rem 0 0; font-weight: 750; }
.empty-state { padding: 2rem; border: 1px dashed #a9b9c9; border-radius: 16px; background: rgba(255,255,255,.6); }
.empty-state { display: grid; gap: .5rem; }
.empty-state span { color: var(--muted); }
footer { border-top: 1px solid var(--line); color: var(--muted); background: #fff; }
footer .partner-shell { min-height: 68px; display: flex; align-items: center; font-size: .85rem; }
@media (max-width: 760px) {
    .partner-brand span { display: none; }
    .task-grid { grid-template-columns: 1fr; }
    .assignment-card { grid-template-columns: 1fr; }
    .assignment-card dl { grid-template-columns: 1fr 1fr; }
}

.assignment-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;align-items:flex-start}.assignment-actions form{margin:0}.assignment-actions details{min-width:min(100%,22rem)}.decline-form{display:grid;gap:.65rem;margin-top:.65rem}.decline-form label{display:grid;gap:.35rem}.decline-form textarea{min-height:5.5rem;width:100%;padding:.7rem;border:1px solid var(--border,#cbd5e1);border-radius:.6rem}.button.danger{background:#b42318;color:#fff;border-color:#b42318}@media(max-width:640px){.assignment-actions,.assignment-actions form,.assignment-actions details,.assignment-actions .button{width:100%}}

/* Batch 1G.2 — mobile field execution */
button, input, select, textarea { font: inherit; }
button, .button { min-height: 44px; }
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .72rem 1rem;
    border: 1px solid transparent;
    border-radius: 10px;
    color: var(--ink);
    background: #fff;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}
.button.primary { color: #fff; border-color: var(--brand); background: var(--brand); }
.button.primary:hover { background: var(--brand-dark); }
.button.secondary { border-color: var(--line); background: #fff; }
.button.large { min-height: 50px; padding-inline: 1.25rem; }
.full-width { width: 100%; }
.flash-message { margin-bottom: 1.25rem; padding: 1rem 1.1rem; border: 1px solid; border-radius: 12px; font-weight: 750; }
.flash-message.success { color: #166534; border-color: #bbdfc6; background: #effaf2; }
.flash-message.error { color: #8a1c1c; border-color: #efc2c2; background: #fff2f2; }
.back-link { display: inline-flex; margin-bottom: 1rem; color: var(--brand); font-weight: 800; text-decoration: none; }
.detail-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; padding: clamp(1.3rem, 4vw, 2.2rem); border-radius: 22px; color: #fff; background: linear-gradient(125deg, var(--brand-dark), var(--brand)); box-shadow: 0 15px 40px rgba(23,34,50,.14); }
.detail-hero.compact { margin-bottom: 1rem; }
.detail-hero h1 { margin: .45rem 0 .65rem; font-size: clamp(1.75rem, 5vw, 3rem); }
.detail-hero p { margin: 0; color: rgba(255,255,255,.8); }
.detail-hero .request-number { color: #b9e2f3; }
.status-badge { display: inline-flex; align-items: center; min-height: 30px; padding: .32rem .65rem; border-radius: 999px; color: var(--brand-dark); background: #e7f3f8; font-size: .76rem; font-weight: 850; white-space: nowrap; }
.detail-hero .status-badge { color: #fff; border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.12); }
.status-badge.warning { color: #8a4b0b; background: #fff4d7; }
.status-badge.success { color: #166534; background: #e7f7eb; }
.card-heading-row, .section-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.section-heading-row { margin: 2rem 0 1rem; }
.section-heading-row h2 { margin: .25rem 0 0; }
.section-heading-row.compact-row { margin: 0 0 1rem; align-items: flex-start; }
.card-actions, .button-row { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; margin-top: 1rem; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr); gap: 1rem; }
.panel { padding: clamp(1.15rem, 3vw, 1.6rem); border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 5px 18px rgba(23,34,50,.035); }
.panel h2 { font-size: 1.15rem; }
.panel h3 { font-size: .95rem; }
.span-two { min-width: 0; }
.action-panel { margin-top: 1rem; }
.pre-line { white-space: pre-line; }
.information-box { display: grid; gap: .3rem; margin-top: 1rem; padding: .9rem 1rem; border-left: 4px solid var(--accent); border-radius: 8px; background: #f2f8fb; }
.information-box span { color: var(--muted); line-height: 1.5; }
.stacked-details, .compact-details { display: grid; gap: .85rem; margin: 0; }
.stacked-details div, .compact-details div { display: flex; justify-content: space-between; gap: 1rem; }
.stacked-details dt, .compact-details dt { color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.stacked-details dd, .compact-details dd { margin: 0; font-weight: 750; text-align: right; }
.package-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.package-card { display: grid; gap: 1rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.package-card h3 { margin: 0; }
.connection-status { position: sticky; top: .5rem; z-index: 20; display: inline-flex; align-items: center; gap: .5rem; margin-bottom: .8rem; padding: .48rem .72rem; border: 1px solid #b9dfc3; border-radius: 999px; color: #166534; background: rgba(239,250,242,.96); font-size: .78rem; box-shadow: 0 4px 14px rgba(23,34,50,.08); }
.connection-status.offline { color: #8a4b0b; border-color: #efcf8b; background: rgba(255,248,225,.97); }
.connection-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.queue-count { padding-left: .45rem; border-left: 1px solid currentColor; }
.execution-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.execution-steps li { display: flex; align-items: center; gap: .55rem; min-height: 50px; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: #fff; font-size: .8rem; font-weight: 800; }
.execution-steps li span { display: grid; width: 26px; height: 26px; place-items: center; flex: 0 0 auto; border-radius: 50%; color: var(--muted); background: var(--soft); }
.execution-steps li.active { color: var(--brand-dark); border-color: #9bc9dd; background: #f1f9fc; }
.execution-steps li.complete { color: #166534; border-color: #b9dfc3; background: #f0faf2; }
.execution-steps li.complete span { color: #fff; background: #238143; }
.success-panel { margin: 0 0 1rem; color: #166534; border-color: #b9dfc3; background: #effaf2; }
.success-panel span { color: #41704e; }
.execution-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 1rem; align-items: start; }
.execution-main { display: grid; gap: 1rem; min-width: 0; }
.execution-sidebar { min-width: 0; }
.sticky-panel { position: sticky; top: 4.5rem; }
.sticky-panel hr { margin: 1.2rem 0; border: 0; border-top: 1px solid var(--line); }
.field-label { display: grid; gap: .45rem; margin-bottom: 1rem; color: var(--ink); font-weight: 750; }
.field-label > span { font-size: .86rem; }
.field-label input, .field-label textarea, .field-label select, .decline-form textarea { width: 100%; min-height: 44px; padding: .72rem .8rem; border: 1px solid #bcc9d5; border-radius: 9px; color: var(--ink); background: #fff; }
.field-label textarea { resize: vertical; line-height: 1.5; }
.field-label input:focus, .field-label textarea:focus, .field-label select:focus { outline: 3px solid rgba(92,164,199,.2); border-color: var(--accent); }
.compact-field { margin: 0; }
.check-field { display: flex; align-items: center; gap: .65rem; margin: .25rem 0 1rem; font-weight: 750; }
.check-field input { width: 20px; height: 20px; }
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
fieldset:disabled { opacity: .64; }
.save-status { color: var(--muted); font-size: .78rem; font-weight: 750; }
.save-status.saved { color: #166534; }
.save-status.offline { color: #8a4b0b; }
.action-form { display: grid; gap: 1rem; }
.location-status { color: var(--muted); font-size: .82rem; }
.upload-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(150px, .7fr)); gap: .8rem; align-items: end; }
.file-drop { display: grid; gap: .25rem; min-height: 104px; padding: 1rem; border: 2px dashed #a8bdcd; border-radius: 12px; background: #f7fafc; cursor: pointer; }
.file-drop input { max-width: 100%; }
.file-drop span { color: var(--muted); font-size: .78rem; }
.upload-progress { height: 8px; margin-top: .8rem; overflow: hidden; border-radius: 999px; background: #e6edf3; }
.upload-progress span { display: block; width: 0; height: 100%; background: var(--brand); transition: width .2s ease; }
.upload-status { color: var(--muted); font-size: .82rem; }
.evidence-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .85rem; margin-top: 1rem; }
.evidence-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.evidence-preview { display: block; aspect-ratio: 4/3; background: #eaf0f4; }
.evidence-preview img { width: 100%; height: 100%; object-fit: cover; }
.evidence-meta { display: grid; gap: .35rem; padding: .75rem; }
.evidence-meta strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.evidence-meta span, .evidence-meta p { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.35; }
.safety-state { font-weight: 750; }
.text-button { min-height: 36px; padding: 0; border: 0; color: var(--brand); background: transparent; font-weight: 800; cursor: pointer; }
.danger-text { color: #a6261b; }
.compact-empty { padding: 1.1rem; }
.correction-panel { border-color: #efcf8b; }
.correction-list { display: grid; gap: .8rem; }
.correction-card { padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fafcfd; }
.correction-card.open { border-color: #efcf8b; background: #fffaf0; }
.correction-card .card-heading-row span { color: var(--muted); font-size: .78rem; }
.correction-form { margin-top: 1rem; }
.signature-field { display: grid; gap: .5rem; }
.signature-heading { display: flex; justify-content: space-between; align-items: center; font-weight: 750; }
.signature-field canvas { width: 100%; height: 150px; border: 1px solid #bcc9d5; border-radius: 10px; background: #fff; touch-action: none; }
.signature-field small { color: var(--muted); }
.submit-panel { border-color: #9bc9dd; background: #f7fcfe; }
@media (max-width: 900px) {
    .execution-layout { grid-template-columns: 1fr; }
    .execution-sidebar { order: -1; }
    .sticky-panel { position: static; }
    .upload-grid { grid-template-columns: 1fr 1fr; }
    .file-drop { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
    .detail-grid { grid-template-columns: 1fr; }
    .detail-hero { flex-direction: column; }
    .execution-steps { grid-template-columns: 1fr 1fr; }
    .assignment-card dl { grid-template-columns: 1fr 1fr; }
    .section-heading-row { align-items: flex-start; }
}
@media (max-width: 540px) {
    .partner-shell { width: min(100% - 1rem, 1040px); }
    .page { padding-block: 1.25rem 3rem; }
    .panel { border-radius: 14px; }
    .execution-steps { grid-template-columns: 1fr; }
    .upload-grid { grid-template-columns: 1fr; }
    .file-drop { grid-column: auto; }
    .button-row, .button-row .button, .action-form > .button, .submit-panel .button { width: 100%; }
    .evidence-grid { grid-template-columns: 1fr 1fr; }
    .card-heading-row { align-items: flex-start; }
}
@media (max-width: 390px) {
    .evidence-grid { grid-template-columns: 1fr; }
    .assignment-card dl { grid-template-columns: 1fr; }
}

/* SkedBase 0.8.6C — unified vendor operations */
.partner-shell { width: min(1280px, calc(100% - 2rem)); }
.partner-header { position: sticky; top: 0; z-index: 100; box-shadow: 0 6px 24px rgba(23,34,50,.05); }
.header-inner { min-height: 68px; }
.desktop-navigation { flex: 1; justify-content: center; gap: .25rem; }
.desktop-navigation a { padding: .6rem .7rem; border-radius: 9px; font-size: .82rem; }
.desktop-navigation a:hover, .desktop-navigation a.active { color: var(--brand-dark); background: #edf5f8; }
.signout-form button, .header-signin { min-height: 40px; padding: .55rem .8rem; border: 1px solid var(--line); border-radius: 9px; color: var(--brand-dark); background: #fff; font-weight: 800; text-decoration: none; }
.mobile-navigation { display: none; position: relative; }
.mobile-navigation summary { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; list-style: none; }
.mobile-navigation summary::-webkit-details-marker { display: none; }
.mobile-navigation-panel { position: absolute; top: 52px; right: 0; width: min(290px, calc(100vw - 1rem)); display: grid; gap: .2rem; padding: .65rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 18px 45px rgba(23,34,50,.16); }
.mobile-navigation-panel a { padding: .75rem; border-radius: 8px; }
.mobile-navigation-panel a.active { color: var(--brand-dark); background: #edf5f8; }
.page { padding-block: 2rem 5rem; }
.command-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1rem; padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: 24px; color: #fff; background: linear-gradient(125deg, #102f45, #20587a 67%, #337da2); box-shadow: 0 18px 45px rgba(23,63,89,.2); }
.command-hero h1 { margin: .45rem 0 .65rem; font-size: clamp(2rem, 5vw, 3.6rem); }
.command-hero p { max-width: 680px; margin: 0; color: rgba(255,255,255,.75); }
.command-hero .button.primary { color: var(--brand-dark); border-color: #fff; background: #fff; }
.metric-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.metric-grid.compact-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric-card { min-width: 0; display: grid; gap: .35rem; padding: 1.15rem; border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 15px; color: var(--ink); background: #fff; text-decoration: none; box-shadow: 0 4px 16px rgba(23,34,50,.035); }
.metric-card:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(23,34,50,.07); }
.metric-card span { overflow: hidden; color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.metric-card strong { font-size: 1.85rem; line-height: 1; }
.metric-card small { color: var(--muted); }
.metric-card.warning { border-left-color: #d99a1b; }
.metric-card.critical { border-left-color: #c84434; }
.dashboard-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, .8fr); gap: 1rem; align-items: start; }
.dashboard-main, .dashboard-side { display: grid; gap: 1rem; min-width: 0; }
.section-heading-row a, .text-link { color: var(--brand); font-weight: 800; text-decoration: none; }
.action-list { display: grid; gap: .55rem; }
.action-item { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: .8rem; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); text-decoration: none; }
.action-item:hover { border-color: #9bc9dd; background: #f7fbfd; }
.action-count { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; color: var(--brand-dark); background: #e7f3f8; font-weight: 900; }
.action-item.critical .action-count { color: #8a1c1c; background: #fff0f0; }
.action-item.warning .action-count { color: #8a4b0b; background: #fff4d7; }
.action-item span:nth-child(2) { display: grid; gap: .2rem; }
.action-item small { color: var(--muted); line-height: 1.4; }
.compact-table-scroll { overflow-x: auto; }
.compact-table { width: 100%; border-collapse: collapse; }
.compact-table th, .compact-table td { padding: .8rem .65rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.compact-table th { color: var(--muted); font-size: .7rem; text-transform: uppercase; }
.compact-table td > span, .compact-table td > small { display: block; margin-top: .2rem; color: var(--muted); font-size: .78rem; }
.compact-table .risk-row { background: #fffaf2; }
.inline-warning { color: #9a5c00 !important; }
.score-panel { display: grid; gap: .8rem; }
.score-row { display: flex; justify-content: space-between; gap: 1rem; }
.score-row strong { font-size: 1.15rem; }
.progress-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e7edf2; }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), var(--accent)); }
.summary-list, .profile-details { display: grid; gap: 0; margin: 0; }
.summary-list div, .profile-details div { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--line); }
.summary-list div:last-child, .profile-details div:last-child { border-bottom: 0; }
.summary-list dt, .profile-details dt { color: var(--muted); font-weight: 750; }
.summary-list dd, .profile-details dd { margin: 0; font-weight: 800; text-align: right; }
.profile-details dd small { display: block; margin-top: .2rem; color: var(--muted); font-weight: 500; }
.mini-schedule { display: grid; }
.mini-schedule a { display: grid; grid-template-columns: 50px 1fr; gap: .7rem; padding: .7rem 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.mini-schedule time { color: var(--brand); font-size: .75rem; font-weight: 850; }
.mini-schedule span { display: grid; }
.mini-schedule small { color: var(--muted); }
.action-heading { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.filter-bar { display: flex; flex-wrap: wrap; align-items: end; gap: .7rem; margin-bottom: 1rem; padding: .9rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.filter-bar label { display: grid; gap: .35rem; color: var(--muted); font-size: .72rem; font-weight: 800; }
.filter-bar input, .filter-bar select { min-height: 44px; padding: .65rem .75rem; border: 1px solid #bcc9d5; border-radius: 9px; background: #fff; }
.filter-search { flex: 1 1 230px; }
.toggle-filter { display: flex !important; grid-auto-flow: column; align-items: center; gap: .45rem !important; min-height: 44px; padding: .55rem .65rem; border: 1px solid var(--line); border-radius: 9px; }
.toggle-filter input { min-height: 0; width: 18px; height: 18px; }
.badge-row { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }
.assignment-card.overdue-card { border-left: 4px solid #c84434; }
.schedule-filter { max-width: 650px; }
.schedule-groups { display: grid; gap: 1rem; }
.schedule-day { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.schedule-day > header { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; color: #fff; background: var(--brand-dark); }
.schedule-day > header time { font-weight: 850; }
.schedule-day > header span { color: rgba(255,255,255,.7); font-size: .8rem; }
.schedule-items { display: grid; }
.schedule-card { display: grid; grid-template-columns: 80px minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.schedule-card:last-child { border-bottom: 0; }
.schedule-card:hover { background: #f7fbfd; }
.schedule-card > time, .schedule-card-main, .schedule-card-status { display: grid; gap: .2rem; }
.schedule-card > time strong { color: var(--brand); }
.schedule-card small { color: var(--muted); }
.schedule-card-status { justify-items: end; }
.operations-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: start; }
.card-list, .technician-grid { display: grid; gap: .7rem; }
.person-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .8rem; border: 1px solid var(--line); border-radius: 12px; }
.avatar { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; color: #fff; background: var(--brand); font-weight: 900; text-transform: uppercase; }
.person-card > div:nth-child(2) { display: grid; gap: .1rem; }
.person-card span, .person-card small { color: var(--muted); }
.person-status { display: grid; gap: .25rem; justify-items: end; }
.technician-card { display: grid; gap: .75rem; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; }
.technician-card .card-heading-row > div { display: grid; gap: .15rem; }
.technician-card .card-heading-row span:not(.status-badge) { color: var(--muted); }
.form-panel { margin-top: 1rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem 1rem; }
.form-grid .span-two { grid-column: 1 / -1; }
.validation-summary { margin-bottom: 1rem; color: #8a1c1c; }
.validation-summary:empty { display: none; }
.document-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: 1rem; }
.document-card { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 1rem; padding: 1.15rem; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.document-card.expiring { border-left: 4px solid #d99a1b; }
.document-card.expired { border-left: 4px solid #c84434; }
.document-icon { display: grid; width: 54px; height: 64px; place-items: center; border-radius: 8px; color: var(--brand-dark); background: #e7f3f8; font-size: .72rem; font-weight: 900; }
.document-main h2 { margin: .7rem 0 .2rem; font-size: 1.05rem; }
.document-main p { margin-top: 0; font-size: .82rem; }
.details-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.details-heading::-webkit-details-marker { display: none; }
.details-heading > span { display: grid; gap: .2rem; }
.details-heading small { color: var(--muted); font-weight: 500; }
details[open] .details-heading { margin-bottom: 1rem; }
.profile-layout { grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr); }
.capability-list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.capability-list span { padding: .35rem .6rem; border-radius: 999px; color: var(--brand-dark); background: #e7f3f8; font-size: .75rem; font-weight: 800; }
.pending-review-panel { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-top: 1rem; border-left: 4px solid #d99a1b; }
.pending-review-panel p { margin-bottom: 0; }
.notification-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .65fr); gap: 1rem; align-items: start; }
.notification-list { display: grid; }
.notification-item { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: .85rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.notification-item.unread { background: linear-gradient(90deg, #f2f9fc, transparent); }
.notification-severity { width: 6px; min-height: 100%; border-radius: 999px; background: var(--accent); }
.notification-severity.warning { background: #d99a1b; }
.notification-severity.critical, .notification-severity.error { background: #c84434; }
.notification-item p { margin: .45rem 0; }
.notification-item time { color: var(--muted); font-size: .72rem; }
.preference-panel { position: sticky; top: 85px; }
.preference-list { display: grid; gap: .65rem; margin-bottom: 1rem; }
.preference-list label { display: grid; grid-template-columns: 20px 1fr; gap: .65rem; align-items: start; }
.preference-list input { width: 19px; height: 19px; }
.preference-list span { display: grid; gap: .15rem; }
.preference-list small { color: var(--muted); line-height: 1.4; }
.channel-grid { display: flex; gap: 1rem; }
@media (max-width: 1120px) {
    .desktop-navigation { display: none; }
    .mobile-navigation { display: block; margin-left: auto; }
    .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .dashboard-layout, .notification-layout, .profile-layout { grid-template-columns: 1fr; }
    .preference-panel { position: static; }
    .operations-grid { grid-template-columns: 1fr; }
    .metric-grid.compact-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
    .command-hero, .action-heading, .pending-review-panel { align-items: stretch; flex-direction: column; }
    .command-hero .button, .action-heading > .button { width: 100%; }
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .schedule-card { grid-template-columns: 65px minmax(0, 1fr); }
    .schedule-card-status { grid-column: 2; justify-items: start; }
    .form-grid { grid-template-columns: 1fr; }
    .form-grid .span-two { grid-column: auto; }
    .document-grid { grid-template-columns: 1fr; }
    .person-card { grid-template-columns: 42px minmax(0, 1fr); }
    .person-status { grid-column: 2; justify-items: start; }
}
@media (max-width: 460px) {
    .partner-brand img { width: 115px; }
    .signout-form { display: none; }
    .metric-grid, .metric-grid.compact-metrics { grid-template-columns: 1fr 1fr; }
    .metric-card { padding: .9rem; }
    .metric-card strong { font-size: 1.45rem; }
    .filter-bar > * { width: 100%; }
    .schedule-card { grid-template-columns: 1fr; }
    .schedule-card-status { grid-column: auto; }
    .document-card { grid-template-columns: 1fr; }
    .document-icon { width: 48px; height: 52px; }
}

/* SkedBase 0.8.7A — vendor onboarding */
.onboarding-hero { align-items: center; }
.onboarding-score { min-width: 132px; display: grid; place-items: center; padding: 1.2rem; border: 1px solid rgba(255,255,255,.25); border-radius: 18px; background: rgba(255,255,255,.1); }
.onboarding-score strong { font-size: 2rem; }
.onboarding-score span { color: rgba(255,255,255,.78); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.metric-text { font-size: 1rem !important; line-height: 1.25 !important; }
.onboarding-section { margin-top: 1rem; scroll-margin-top: 90px; }
.onboarding-progress { margin: 1rem 0 1.25rem; height: 11px; }
.onboarding-step-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.onboarding-step { display: flex; align-items: center; gap: .8rem; padding: .9rem; border: 1px solid var(--line); border-radius: 13px; background: #f9fbfc; }
.onboarding-step.complete { border-color: #b9dfc3; background: #effaf2; }
.onboarding-step.attention { border-color: #efcf8b; background: #fff9ea; }
.onboarding-step div { min-width: 0; display: grid; gap: .15rem; }
.onboarding-step small { color: var(--muted); }
.step-index { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: var(--brand); background: #e7f3f8; font-weight: 850; }
.questionnaire-list { display: grid; gap: .85rem; margin: 1rem 0; }
.question-card { display: grid; gap: .55rem; margin: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 13px; }
.question-card legend { padding: 0 .25rem; font-weight: 800; }
.question-card legend span { color: #b42318; }
.question-card textarea, .question-card input, .question-card select, .policy-form input, .training-completion-form input { width: 100%; min-height: 44px; padding: .7rem .75rem; border: 1px solid #bdc9d5; border-radius: 9px; background: #fff; }
.question-card textarea { resize: vertical; }
.requirement-list { display: grid; gap: .65rem; }
.requirement-list article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--line); }
.requirement-list article:last-child { border-bottom: 0; }
.requirement-list article div { display: grid; gap: .2rem; }
.requirement-list small { color: var(--muted); }
.training-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.training-card { padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfd; }
.training-card h3 { margin-top: .8rem; }
.training-module { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-top: 1px solid var(--line); font-size: .86rem; }
.training-completion-form { display: grid; gap: .7rem; margin-top: .8rem; }
.policy-panel, .onboarding-submit { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.policy-form { min-width: min(100%, 360px); display: grid; gap: .7rem; }
.comment-timeline { display: grid; gap: .75rem; }
.comment-timeline article { padding-left: 1rem; border-left: 3px solid var(--accent); }
.comment-timeline time { margin-left: .5rem; color: var(--muted); font-size: .8rem; }
.comment-timeline p { margin-bottom: 0; }
@media (max-width: 760px) {
    .onboarding-hero, .policy-panel, .onboarding-submit, .requirement-list article { align-items: stretch; flex-direction: column; }
    .onboarding-score { width: 100%; }
    .onboarding-step-grid, .training-grid { grid-template-columns: 1fr; }
    .policy-form, .policy-form .button, .onboarding-submit form, .onboarding-submit .button { width: 100%; }
}

/* Secure partner invitation acceptance */
.invitation-landing { width: min(100%, 820px); margin: clamp(1.25rem, 7vh, 5rem) auto; padding: 0 1rem; }
.invitation-brand-panel { position: relative; overflow: hidden; display: grid; gap: 1.15rem; padding: clamp(1.35rem, 5vw, 3rem); border: 1px solid #2a4457; border-radius: 24px; color: #eef6fa; background: linear-gradient(145deg, #0d2430 0%, #123b4c 58%, #0f2d3b 100%); box-shadow: 0 28px 80px rgba(8, 24, 33, .28); }
.invitation-brand-panel::after { content: ""; position: absolute; right: -7rem; top: -8rem; width: 19rem; height: 19rem; border-radius: 50%; background: radial-gradient(circle, rgba(255, 184, 54, .24), transparent 68%); pointer-events: none; }
.invitation-brand-panel > * { position: relative; z-index: 1; }
.invitation-brand-panel h1 { margin: 0; max-width: 16ch; color: #fff; font-size: clamp(2rem, 6vw, 3.45rem); line-height: 1.05; }
.invitation-brand-panel > p { max-width: 64ch; margin: 0; color: #bfd0d9; line-height: 1.65; }
.invitation-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.invitation-detail-grid > div { display: grid; gap: .25rem; min-width: 0; padding: .9rem 1rem; border: 1px solid rgba(210, 232, 241, .16); border-radius: 13px; background: rgba(5, 20, 28, .32); }
.invitation-detail-grid span { color: #8fb0be; font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.invitation-detail-grid strong { overflow-wrap: anywhere; }
.invitation-security-note { display: grid; gap: .35rem; padding: 1rem; border-left: 4px solid #f7a600; border-radius: 10px; background: rgba(5, 20, 28, .38); }
.invitation-security-note p { margin: 0; color: #bfd0d9; }
.invitation-brand-panel .callout { border-color: rgba(210, 232, 241, .18); background: rgba(5, 20, 28, .35); }
.invitation-brand-panel .button.secondary { color: #eef6fa; border-color: rgba(238, 246, 250, .34); background: transparent; }
.invitation-result { text-align: center; justify-items: center; }
.invitation-result h1 { max-width: 22ch; }
.invitation-result.success { border-top: 4px solid #55b978; }
.invitation-result.warning { border-top: 4px solid #f7a600; }
.delivery-cell { display: grid; gap: .2rem; min-width: 11rem; }
.delivery-cell small { color: var(--muted); }
@media (max-width: 620px) {
    .invitation-landing { margin-top: 1rem; padding: 0 .65rem; }
    .invitation-brand-panel { border-radius: 18px; }
    .invitation-detail-grid { grid-template-columns: 1fr; }
    .invitation-brand-panel .button-row, .invitation-brand-panel .button-row .button { width: 100%; }
}

/* Vendor compliance lifecycle */
.compliance-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.requirement-status-stack { justify-items: end; text-align: right; }
.history-list { display: grid; gap: .65rem; }
.history-list article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.history-list article:last-child { border-bottom: 0; }
.history-list article > div { display: grid; gap: .2rem; }
.history-list small { color: var(--muted); }
@media (max-width: 760px) {
    .compliance-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .history-list article { align-items: stretch; flex-direction: column; }
    .requirement-status-stack { justify-items: start; text-align: left; }
}

/* SkedBase 0.8.7C — low-friction vendor onboarding funnel */
.onboarding-continue-card { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; margin-top: 1rem; border-left: 4px solid var(--accent); }
.onboarding-continue-card h2 { margin-bottom: .35rem; }
.onboarding-continue-card p { max-width: 62ch; color: var(--muted); }
.onboarding-return-note { margin-top: 1rem; }
.override-note { color: var(--brand-strong) !important; font-weight: 750; }
@media (max-width: 680px) {
    .onboarding-continue-card { align-items: stretch; flex-direction: column; }
    .onboarding-continue-card .button { width: 100%; }
}
