:root {
    --page: #f5f7f2;
    --surface: #ffffff;
    --surface-soft: #fafbf7;
    --ink: #151816;
    --muted: #5d655f;
    --quiet: #89918b;
    --line: #e5e9e2;
    --line-strong: #d4dbd2;
    --brand: #17643f;
    --brand-soft: #e8f4ed;
    --accent: #d1f811;
    --accent-soft: #f3ffd1;
    --dark: #111311;
    --dark-2: #191c19;
    --blue: #155f75;
    --blue-soft: #e6f3f7;
    --amber: #805500;
    --amber-soft: #fff3d1;
    --red: #9a3434;
    --red-soft: #fbeaea;
    --violet: #69519a;
    --violet-soft: #f0ebfa;
    --charcoal: #1d211e;
    --radius: 8px;
    --shadow: 0 18px 50px rgba(19, 31, 23, .09);
    --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; min-width: 320px; background: var(--page); color: var(--ink); font-family: var(--sans); font-size: 14px; line-height: 1.45; letter-spacing: 0; }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
svg { width: 18px; height: 18px; stroke-width: 1.9; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 6px; font-size: 30px; line-height: 1.12; }
h2 { margin-bottom: 6px; font-size: 22px; line-height: 1.2; }
h3 { margin-bottom: 5px; font-size: 15px; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--brand) 28%, transparent); outline-offset: 2px; }
[hidden] { display: none !important; }

.eyebrow { margin-bottom: 6px; color: var(--quiet); font-family: var(--mono); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.muted { color: var(--muted); }
.quiet { color: var(--quiet); }
.mono { font-family: var(--mono); }

.button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--ink); font-weight: 700; text-decoration: none; cursor: pointer; }
.button:hover { border-color: var(--ink); }
.button--primary { border-color: var(--ink); background: var(--ink); color: white; }
.button--primary:hover { background: #2a302c; }
.button--danger { border-color: #ddb6b6; color: var(--red); }
.button--small { min-height: 32px; padding: 0 10px; font-size: 12px; }
.button--wide { width: 100%; min-height: 44px; }
.icon-button { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 38px; padding: 0; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--ink); cursor: pointer; }
.icon-button:hover { border-color: var(--ink); }

.auth-page { min-height: 100vh; background: linear-gradient(90deg, #eef3ef 0 50%, #f8f9f8 50%); }
.auth-page--admin { background: linear-gradient(90deg, var(--charcoal) 0 50%, #f4f6f4 50%); }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.auth-panel { width: min(100%, 430px); padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.auth-brand { display: flex; align-items: baseline; gap: 8px; margin-bottom: 44px; }
.auth-brand strong { font-size: 25px; line-height: 1; }
.auth-brand span { color: var(--brand); font-family: var(--mono); font-size: 11px; font-weight: 700; }
.auth-panel h1 { font-size: 28px; }
.auth-intro { margin-bottom: 24px; color: var(--muted); }
.auth-links { display: flex; justify-content: center; gap: 18px; margin-top: 22px; }
.auth-admin-link { color: var(--muted); font-size: 12px; text-align: center; }
.auth-admin-link:hover { color: var(--ink); }

.stack-form { display: grid; gap: 15px; }
label { display: grid; gap: 6px; color: #3d443f; font-size: 12px; font-weight: 700; }
input, select, textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--ink); }
input, select { height: 42px; padding: 0 11px; }
textarea { min-height: 96px; padding: 10px 11px; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--quiet); }
.form-error { margin-bottom: 16px; padding: 10px 12px; border: 1px solid #e0b7b7; border-radius: 6px; background: var(--red-soft); color: var(--red); font-size: 12px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-grid .span-2 { grid-column: 1 / -1; }
.form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px; }
.field-note { color: var(--quiet); font-size: 11px; font-weight: 400; }
.toggle-field { min-height: 58px; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 6px; background: #f8faf8; }
.toggle-field input { width: 16px; height: 16px; margin-top: 2px; }
.toggle-field span { display: grid; gap: 2px; }
.toggle-field small { color: var(--quiet); font-weight: 400; }

.flash { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding: 11px 13px; border: 1px solid #b9d6c5; border-radius: 6px; background: var(--brand-soft); color: var(--brand); }
.flash--error { border-color: #e0b7b7; background: var(--red-soft); color: var(--red); }
.flow-notice { width: min(420px, calc(100% - 28px)); position: fixed; right: 18px; bottom: 18px; z-index: 120; display: grid; gap: 3px; padding: 13px 14px; border: 1px solid #b9d6c5; border-radius: var(--radius); background: var(--surface); color: var(--brand); box-shadow: var(--shadow); opacity: 0; transform: translateY(10px); transition: opacity 180ms ease, transform 180ms ease; }
.flow-notice.is-visible { opacity: 1; transform: translateY(0); }
.flow-notice strong { color: var(--ink); font-size: 13px; }
.flow-notice span { color: var(--muted); font-size: 12px; }
.flow-notice--adjustment { border-color: #e0b7b7; }
.flow-notice--adjustment strong { color: var(--red); }

.app-frame { min-height: 100vh; display: grid; grid-template-columns: 238px minmax(0, 1fr); }
.sidebar { width: 238px; height: 100vh; position: fixed; inset: 0 auto 0 0; z-index: 40; display: flex; flex-direction: column; padding: 20px 14px 14px; background: var(--charcoal); color: #f4f7f5; }
.sidebar__brand { display: flex; align-items: baseline; gap: 7px; padding: 4px 9px 22px; text-decoration: none; }
.sidebar__brand strong { font-size: 22px; }
.sidebar__brand span { color: #72c697; font-family: var(--mono); font-size: 10px; font-weight: 700; }
.workspace-switcher { display: grid; gap: 5px; margin-bottom: 15px; padding: 10px; border: 1px solid #39403b; border-radius: 6px; background: #262b27; }
.workspace-switcher label { color: #9da6a0; font-family: var(--mono); font-size: 9px; text-transform: uppercase; }
.workspace-switcher select { width: 100%; min-width: 0; height: 32px; padding: 0 27px 0 8px; border-color: #485049; background-color: #1d211e; color: white; font-size: 12px; font-weight: 700; text-overflow: ellipsis; }
.sidebar__nav { display: grid; gap: 3px; }
.sidebar__nav a, .sidebar__footer a { min-height: 40px; display: flex; align-items: center; gap: 11px; padding: 0 10px; border-radius: 5px; color: #b9c1bc; font-size: 13px; font-weight: 600; text-decoration: none; }
.sidebar__nav a:hover, .sidebar__footer a:hover { background: #292f2a; color: white; }
.sidebar__nav a.is-active { background: #f2f5f3; color: var(--ink); }
.sidebar__nav svg, .sidebar__footer svg { width: 17px; height: 17px; }
.sidebar__footer { display: grid; gap: 3px; margin-top: auto; padding-top: 14px; border-top: 1px solid #373d38; }

.admin-main { min-width: 0; grid-column: 2; }
.admin-topbar { height: 58px; position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 26px; border-bottom: 1px solid var(--line); background: rgba(244, 246, 244, .94); backdrop-filter: blur(14px); }
.admin-topbar > div:first-of-type { display: grid; gap: 1px; }
.admin-topbar > div:first-of-type span { color: var(--quiet); font-family: var(--mono); font-size: 9px; text-transform: uppercase; }
.admin-topbar > div:first-of-type strong { font-size: 13px; }
.admin-identity { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 12px; }
.avatar { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: white; font-weight: 800; }
.sidebar-toggle { display: none; }
.admin-content { width: min(1480px, calc(100% - 52px)); margin: 0 auto; padding: 27px 0 70px; }

.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.page-head p:last-child { margin-bottom: 0; color: var(--muted); }
.page-actions { display: flex; align-items: center; gap: 8px; }
.page-actions form { display: flex; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 28px 0 11px; }
.section-head p { margin-bottom: 0; color: var(--muted); font-size: 12px; }

.metric-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.metric { min-height: 82px; padding: 14px 16px; border-right: 1px solid var(--line); }
.metric:last-child { border-right: 0; }
.metric span { display: block; color: var(--muted); font-size: 11px; }
.metric strong { display: block; margin-top: 4px; font-family: var(--mono); font-size: 24px; }
.metric small { display: block; margin-top: 2px; color: var(--quiet); font-size: 10px; }

.split-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .7fr); gap: 18px; align-items: start; margin-top: 18px; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.panel__head { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.panel__head h2 { margin: 0; font-size: 15px; }
.panel__head span { color: var(--quiet); font-family: var(--mono); font-size: 10px; }
.panel__body { padding: 15px; }
.automation-settings { max-width: 920px; }
.automation-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.automation-actions form { display: flex; }
.automation-metrics .metric strong { font-size: 18px; line-height: 1.2; overflow-wrap: anywhere; }
.automation-table { min-width: 960px; }
.automation-table td:nth-child(5) { width: 220px; }

.data-table-shell { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow-x: auto; }
.data-table { width: 100%; min-width: 840px; border-collapse: collapse; table-layout: fixed; }
.data-table th { height: 38px; padding: 0 11px; background: #edf0ed; color: #707871; font-family: var(--mono); font-size: 9px; text-align: left; text-transform: uppercase; }
.data-table td { padding: 12px 11px; border-top: 1px solid var(--line); color: #444b46; vertical-align: top; overflow-wrap: anywhere; }
.data-table tbody tr:hover { background: #fafbfa; }
.data-table .cell-code { width: 76px; color: var(--ink); font-family: var(--mono); font-size: 11px; font-weight: 700; }
.data-table .cell-title { width: 30%; }
.data-table .cell-status { width: 142px; }
.data-table .cell-owner { width: 128px; }
.data-table .cell-date { width: 105px; }
.data-table .cell-actions { width: 54px; text-align: right; }
.item-title { display: block; color: var(--ink); font-weight: 700; line-height: 1.35; }
.item-meta { display: block; margin-top: 3px; color: var(--quiet); font-size: 11px; }
.next-text { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.status, .scope, .tag { min-height: 24px; display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; line-height: 1.2; }
.status--done { background: var(--brand-soft); color: var(--brand); }
.status--doing { background: var(--blue-soft); color: var(--blue); }
.status--waiting_client, .status--review { background: var(--amber-soft); color: var(--amber); }
.status--blocked { background: var(--red-soft); color: var(--red); }
.status--planned, .status--backlog { background: #ecefed; color: #59615b; }
.scope { border: 1px solid var(--line-strong); background: var(--surface-soft); color: var(--muted); }
.scope--extra_courtesy { border-color: #b9d6c5; background: var(--brand-soft); color: var(--brand); }
.scope--extra_billable { border-color: #d6c08a; background: var(--amber-soft); color: var(--amber); }
.scope--commercial_review { border-color: #cbbce6; background: var(--violet-soft); color: var(--violet); }
.scope--backlog { border-style: dashed; }
.tag { background: #edf0ed; color: var(--muted); }
.overdue { color: var(--red); font-weight: 800; }

.toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 11px; }
.search-input { position: relative; flex: 1; }
.search-input svg { position: absolute; left: 11px; top: 11px; color: var(--quiet); }
.search-input input { padding-left: 38px; }
.filter-tabs { display: flex; gap: 4px; margin-bottom: 14px; padding-bottom: 2px; overflow-x: auto; }
.filter-tabs a { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; padding: 0 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--muted); font-size: 12px; font-weight: 700; text-decoration: none; }
.filter-tabs a.is-active { border-color: var(--ink); background: var(--ink); color: white; }
.filter-tabs small { font-family: var(--mono); opacity: .7; }

.action-list, .event-list, .dependency-list, .suggestion-list { margin: 0; padding: 0; list-style: none; }
.action-list li, .event-list li, .dependency-list li { padding: 13px 14px; border-top: 1px solid var(--line); }
.action-list li:first-child, .event-list li:first-child, .dependency-list li:first-child { border-top: 0; }
.action-list a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: start; text-decoration: none; }
.action-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 6px; background: var(--amber-soft); color: var(--amber); }
.action-icon svg { width: 15px; }
.action-list strong, .dependency-list strong { display: block; font-size: 12px; }
.action-list p, .dependency-list p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.action-list time { color: var(--quiet); font-family: var(--mono); font-size: 9px; }

.event-list li { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 10px; }
.event-marker { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px var(--blue-soft); }
.event-list strong { display: block; font-size: 12px; }
.event-list p { margin: 3px 0; color: var(--muted); font-size: 11px; }
.event-list small { color: var(--quiet); font-size: 10px; }

.empty-state { padding: 44px 20px; color: var(--muted); text-align: center; }
.empty-state svg { width: 28px; height: 28px; margin-bottom: 8px; color: var(--quiet); }
.empty-state strong, .empty-state span { display: block; }
.empty-state span { margin-top: 4px; font-size: 12px; }
.empty-inline { padding: 18px !important; color: var(--quiet); font-size: 12px; text-align: center; }

.suggestion-list { display: grid; gap: 9px; }
.suggestion { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.suggestion__meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 7px; }
.suggestion h3 { margin-bottom: 5px; }
.suggestion p { margin-bottom: 0; color: var(--muted); font-size: 12px; }
.suggestion__actions { display: flex; gap: 6px; align-items: center; }
.confidence { color: var(--violet); font-family: var(--mono); font-size: 10px; }

.dependency-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.dependency-row__meta { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 7px; color: var(--quiet); font-size: 10px; }
.dependency-impact { margin-top: 7px !important; padding-left: 9px; border-left: 2px solid #d6c08a; }
.dependency-files { display: grid; gap: 6px; margin-top: 11px; }
.dependency-files__title { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.dependency-files__title svg { width: 13px; height: 13px; }
.dependency-files a { min-width: 0; display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 7px; align-items: center; padding: 8px 9px; border: 1px solid var(--line); border-radius: 5px; background: #fafbfa; color: var(--ink); font-size: 11px; font-weight: 700; text-decoration: none; }
.dependency-files a:hover { border-color: var(--line-strong); background: var(--surface); }
.dependency-files a svg { width: 14px; height: 14px; color: var(--blue); }
.dependency-files a span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dependency-files a small { color: var(--quiet); font-size: 9px; font-weight: 500; white-space: nowrap; }

.meeting-upload { display: grid; grid-template-columns: minmax(250px, 1fr) 180px minmax(220px, 290px) auto; gap: 9px; align-items: end; }
.file-picker { height: 42px; display: flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--muted); font-weight: 600; cursor: pointer; }
.file-picker:hover { border-color: var(--ink); color: var(--ink); }
.file-picker svg { width: 16px; height: 16px; }
.file-picker span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-picker--large { min-height: 54px; height: auto; margin-top: 6px; padding: 11px 13px; }
.field-hint { display: block; margin-top: 6px; color: var(--quiet); font-size: 10px; font-weight: 500; line-height: 1.45; }
.meeting-row { display: grid; grid-template-columns: minmax(0, 1fr) 130px 120px; gap: 15px; align-items: center; padding: 13px 14px; border-top: 1px solid var(--line); }
.meeting-row:first-child { border-top: 0; }
.meeting-row strong { display: block; }
.meeting-row small { color: var(--quiet); }

dialog { width: min(680px, calc(100% - 28px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: var(--radius); background: var(--surface); box-shadow: 0 28px 90px rgba(13, 24, 16, .24); }
dialog[open] { display: block; position: fixed; inset: 50% auto auto 50%; transform: translate(-50%, -50%); z-index: 1000; }
dialog::backdrop { background: rgba(20, 27, 22, .52); backdrop-filter: blur(3px); }
.dialog-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.dialog-head h2 { margin: 0; font-size: 17px; }
.dialog-body { max-height: calc(100vh - 122px); padding: 17px; overflow-y: auto; }
.dialog-section { margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--line); }
.dialog-section h3 { margin-bottom: 10px; }
.completion-fields { display: none; }
.completion-fields.is-visible { display: contents; }

.client-topbar { border-bottom: 1px solid var(--line); background: rgba(244, 246, 244, .94); position: sticky; top: 0; z-index: 30; backdrop-filter: blur(14px); }
.client-topbar__inner { width: min(1380px, calc(100% - 44px)); min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 auto; }
.client-brand { display: flex; align-items: baseline; gap: 12px; text-decoration: none; }
.client-brand strong { font-size: 22px; }
.client-brand span { font-size: 13px; font-weight: 800; }
.client-nav { display: flex; align-items: center; gap: 4px; }
.client-nav a { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; padding: 0 10px; border-radius: 5px; color: var(--muted); font-size: 12px; font-weight: 700; text-decoration: none; }
.client-nav a:hover { background: var(--surface); color: var(--ink); }
.client-nav a.is-active { background: var(--surface); color: var(--ink); }
.client-nav small { min-width: 18px; height: 18px; display: inline-grid; place-items: center; padding: 0 5px; border-radius: 9px; background: var(--amber-soft); color: var(--amber); font-family: var(--mono); font-size: 9px; }
.client-shell { width: min(1380px, calc(100% - 44px)); margin: 0 auto; padding: 28px 0 70px; }
.client-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 19px; }
.client-intro p:last-child { margin-bottom: 0; color: var(--muted); }
.client-intro--dashboard { margin-bottom: 15px; }
.updated-label { min-width: 160px; color: var(--quiet); font-family: var(--mono); font-size: 10px; text-align: right; }

.client-command-center { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 12px; margin-bottom: 15px; }
.command-card { min-width: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 14px 38px rgba(19, 31, 23, .055); }
.command-card--primary { background: linear-gradient(135deg, #111311, #262b27); color: white; }
.command-card--primary .command-card__icon { background: var(--accent); color: #111311; }
.command-card--primary span, .command-card--primary p { color: #cbd4c8; }
.command-card__icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 7px; background: var(--accent-soft); color: #516900; }
.command-card__icon svg { width: 19px; height: 19px; }
.command-card span { display: block; color: var(--muted); font-size: 11px; font-weight: 750; }
.command-card strong { display: block; margin: 1px 0; font-family: var(--mono); font-size: 28px; line-height: 1.05; }
.command-card p { margin: 0; color: var(--quiet); font-size: 11px; }
.command-card .button { white-space: nowrap; }

.decision-workbench { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .7fr); gap: 14px; align-items: start; margin: 0 0 16px; }
.decision-workbench__main,
.activity-panel { border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255, 255, 255, .88); box-shadow: 0 14px 38px rgba(19, 31, 23, .055); overflow: hidden; }
.panel__head--plain { background: rgba(250, 251, 247, .72); }
.decision-queue { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 12px; }
.decision-card { min-width: 0; display: grid; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); overflow: hidden; }
.decision-card__preview { aspect-ratio: 4 / 3; display: grid; place-items: center; overflow: hidden; border-bottom: 1px solid var(--line); background: #edf0ed; text-decoration: none; }
.decision-card__preview img, .decision-card__preview video, .decision-card__preview iframe { width: 100%; height: 100%; display: block; border: 0; object-fit: contain; background: #e7ebe8; pointer-events: none; }
.decision-card__preview .launch-preview, .decision-card__preview .audio-preview, .decision-card__preview .text-preview, .decision-card__preview .structured-preview, .decision-card__preview .digital-preview { width: 100%; height: 100%; min-height: 0; border-radius: 0; pointer-events: none; }
.decision-card__body { display: grid; gap: 6px; padding: 10px; }
.decision-card__body strong { font-size: 12px; line-height: 1.3; overflow-wrap: anywhere; }
.decision-card__body p { min-height: 32px; display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: 11px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.decision-card__body .button { margin-top: 2px; }
.decision-empty { grid-column: 1 / -1; padding: 30px 16px; }
.activity-list { margin: 0; padding: 3px 0; list-style: none; }
.activity-list li { display: grid; gap: 3px; padding: 12px 14px; border-top: 1px solid var(--line); }
.activity-list li:first-child { border-top: 0; }
.activity-list span { color: var(--quiet); font-family: var(--mono); font-size: 9px; }
.activity-list strong { font-size: 12px; line-height: 1.3; }
.activity-list p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: 11px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.client-item-list { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.client-item { width: 100%; display: grid; grid-template-columns: 76px minmax(280px, 1.5fr) 145px 140px 105px minmax(220px, 1fr) 38px; gap: 10px; align-items: start; padding: 13px 12px; border: 0; border-top: 1px solid var(--line); background: transparent; color: inherit; text-align: left; cursor: pointer; }
.client-item:first-child { border-top: 0; }
.client-item:hover { background: #fafbfa; }
.client-item--head { min-height: 38px; align-items: center; padding-top: 0; padding-bottom: 0; border: 0; background: #e9edea; color: #707871; font-family: var(--mono); font-size: 9px; text-transform: uppercase; cursor: default; }
.client-item--head:hover { background: #e9edea; }
.client-item .code { color: var(--ink); font-family: var(--mono); font-size: 11px; font-weight: 800; }
.client-item .title { color: var(--ink); font-weight: 700; line-height: 1.35; }
.client-item .sub { display: block; margin-top: 3px; color: var(--quiet); font-size: 11px; font-weight: 400; }
.client-item .detail-icon { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); }
.client-item .detail-icon svg { width: 15px; }

.detail-summary { color: var(--muted); }
.detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 16px 0; border: 1px solid var(--line); border-radius: 7px; background: var(--line); overflow: hidden; }
.detail-grid div { padding: 11px; background: var(--surface-soft); }
.detail-grid span { display: block; color: var(--quiet); font-size: 10px; }
.detail-grid strong { display: block; margin-top: 4px; font-size: 12px; }
.next-action { padding: 12px; border-left: 3px solid var(--brand); background: var(--brand-soft); }
.next-action span { display: block; margin-bottom: 4px; color: var(--brand); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.next-action p { margin: 0; }
.timeline { margin: 0; padding: 0; list-style: none; }
.timeline li { display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 9px; padding: 0 0 18px; }
.timeline li:last-child { padding-bottom: 0; }
.timeline__dot { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px var(--blue-soft); }
.timeline time, .timeline small { display: block; color: var(--quiet); font-size: 10px; }
.timeline strong { display: block; margin: 3px 0; font-size: 12px; }
.timeline p { margin: 0 0 3px; color: var(--muted); font-size: 12px; }

.approval-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 180px)); gap: 1px; width: fit-content; margin-bottom: 15px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--line); overflow: hidden; }
.approval-summary > div { min-width: 150px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 11px 13px; background: var(--surface); }
.approval-summary span { color: var(--muted); font-size: 11px; }
.approval-summary strong { font-family: var(--mono); font-size: 17px; }
.approval-toolbar { margin: 18px 0 12px; }
.folder-sync-bar { display: grid; grid-template-columns: minmax(300px, 1fr) auto auto; gap: 24px; align-items: center; margin-top: 12px; padding: 11px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.folder-sync-bar > div { min-width: 0; }
.folder-sync-bar > div > span, .folder-sync-bar__path > div > span { display: block; color: var(--quiet); font-size: 10px; }
.folder-sync-bar strong { display: block; margin-top: 2px; font-family: var(--mono); font-size: 10px; }
.folder-sync-bar__path { display: flex; align-items: center; gap: 10px; }
.folder-sync-bar__path code { display: block; margin-top: 2px; overflow: hidden; color: var(--ink); font-family: var(--mono); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.folder-sync-bar__path .action-icon { flex: 0 0 auto; background: var(--brand-soft); color: var(--brand); }
.approval-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.approval-grid--admin { grid-template-columns: repeat(3, minmax(260px, 1fr)); }
.approval-card { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.approval-preview { aspect-ratio: 16 / 10; position: relative; display: grid; place-items: center; overflow: hidden; border-bottom: 1px solid var(--line); background: #edf0ed; }
.approval-preview[data-preview-url] { cursor: zoom-in; }
.approval-preview[data-preview-url]:hover img, .approval-preview[data-preview-url]:hover video { filter: brightness(.94); }
.approval-preview img, .approval-preview video, .approval-preview iframe { width: 100%; height: 100%; display: block; border: 0; object-fit: contain; background: #e7ebe8; }
.approval-preview__open { width: 36px; height: 36px; position: absolute; right: 10px; top: 10px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255, 255, 255, .64); border-radius: 6px; background: rgba(21, 24, 22, .86); color: white; cursor: pointer; box-shadow: 0 5px 18px rgba(0, 0, 0, .18); }
.approval-preview__open:hover { background: var(--ink); }
.approval-preview__open svg { width: 16px; height: 16px; }
.approval-card__body { padding: 14px; }
.approval-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.approval-card__heading > div { min-width: 0; }
.approval-card__heading h2 { margin: 0; font-size: 15px; overflow-wrap: anywhere; }
.approval-card__heading .eyebrow { margin-bottom: 4px; }
.approval-card__badges { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 7px; }
.approval-card__badges .eyebrow { margin: 0; }
.artifact-format-badge { min-height: 25px; display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border: 1px solid #cfd7d2; border-radius: 999px; background: #f8faf8; color: #202524; font-size: 10px; font-weight: 900; line-height: 1.15; text-transform: uppercase; }
.artifact-format-badge svg { width: 13px; height: 13px; }
.artifact-format-badge--pdf { border-color: #f0cbc6; background: #fff1ef; color: #a73525; }
.artifact-format-badge--site, .artifact-format-badge--url { border-color: #b8d8e5; background: #e8f6fa; color: #155f75; }
.artifact-format-badge--reel, .artifact-format-badge--motion, .artifact-format-badge--video, .artifact-format-badge--edited_video { border-color: #cbbce6; background: #f0ebfa; color: #594484; }
.artifact-format-badge--video_script, .artifact-format-badge--storyboard { border-color: #d7c9a7; background: #fff8e6; color: #735214; }
.artifact-format-badge--photo, .artifact-format-badge--image, .artifact-format-badge--album, .artifact-format-badge--feed, .artifact-format-badge--story, .artifact-format-badge--carousel { border-color: #bfd9c8; background: #eef8f0; color: #27603c; }
.artifact-format-badge--stock_photo { border-color: #c9d9bd; background: #f3faed; color: #3e632d; }
.artifact-format-badge--blog_post, .artifact-format-badge--email_marketing { border-color: #d7c9a7; background: #fff8e6; color: #7b5a13; }
.artifact-format-badge--meta_lead_ad, .artifact-format-badge--meta_message_ad { border-color: #b8d1ff; background: #edf4ff; color: #1d4a96; }
.artifact-format-badge--google_search_ad, .artifact-format-badge--google_display_ad, .artifact-format-badge--google_performance_ad { border-color: #f4cf8f; background: #fff7e7; color: #89520d; }
.approval-state { min-height: 24px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 3px 8px; border-radius: 999px; font-size: 9px; font-weight: 800; line-height: 1.2; }
.approval-state--pending { background: var(--amber-soft); color: var(--amber); }
.approval-state--viewed { background: var(--blue-soft); color: var(--blue); }
.approval-state--approved { background: var(--brand-soft); color: var(--brand); }
.approval-state--changes_requested { background: var(--red-soft); color: var(--red); }
.approval-item-link { margin: 8px 0 0; color: var(--muted); font-size: 11px; }
.approval-caption { margin: 10px 0 0; color: #414843; font-size: 12px; }
.approval-meta { display: flex; flex-wrap: wrap; gap: 5px 11px; margin-top: 12px; color: var(--quiet); font-family: var(--mono); font-size: 9px; }
.approval-meta span + span { position: relative; }
.approval-meta span + span::before { content: ""; width: 2px; height: 2px; position: absolute; left: -7px; top: 6px; border-radius: 50%; background: var(--quiet); }
.approval-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.approval-actions form, .approval-actions .button { width: 100%; }
.approval-actions--admin { display: flex; flex-wrap: wrap; justify-content: flex-end; }
.approval-actions--admin .button { width: auto; }
.approval-feedback { margin-top: 11px; padding: 10px; border-left: 3px solid var(--red); background: var(--red-soft); }
.approval-feedback span { color: var(--red); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.approval-feedback p { margin: 4px 0 0; color: #5e3636; font-size: 11px; }
.approval-empty { grid-column: 1 / -1; }
.approval-file { display: grid; gap: 8px; place-items: center; color: var(--muted); text-decoration: none; }
.approval-file svg { width: 34px; height: 34px; }
.print-link { width: fit-content; min-height: 28px; display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 800; text-decoration: none; }
.print-link:hover { color: var(--ink); }
.print-link svg { width: 14px; height: 14px; }
.launch-preview { width: 100%; height: 100%; display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 15px; align-content: center; align-items: center; padding: 20px; background: #f6f8f6; color: var(--ink); text-align: left; }
.launch-preview__icon { width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface); color: var(--ink); }
.launch-preview__icon svg { width: 25px; height: 25px; }
.launch-preview__body { min-width: 0; display: grid; gap: 7px; justify-items: start; }
.launch-preview__body .eyebrow { margin: 0; }
.launch-preview__body strong { display: -webkit-box; overflow: hidden; font-size: 15px; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.launch-preview__body p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: 11px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.launch-preview__body .button { width: auto; min-height: 34px; padding: 0 11px; font-size: 12px; }
.launch-preview--pdf .launch-preview__icon { border-color: #f0cbc6; background: #fff1ef; color: #a73525; }
.launch-preview--site .launch-preview__icon, .launch-preview--url .launch-preview__icon { border-color: #b8d8e5; background: #e8f6fa; color: #155f75; }
.launch-preview--full { width: min(720px, calc(100% - 40px)); height: auto; min-height: 320px; padding: 34px; border-radius: 8px; }
.launch-preview--full .launch-preview__icon { width: 72px; height: 72px; }
.launch-preview--full .launch-preview__body strong { display: block; overflow: visible; font-size: 23px; }
.launch-preview--full .launch-preview__body p { display: block; overflow: visible; font-size: 13px; }
.version-history { margin-top: 11px; border-top: 1px solid var(--line); }
.version-history summary { padding: 10px 0 0; color: var(--muted); font-size: 10px; font-weight: 700; cursor: pointer; }
.version-history > div { display: grid; gap: 5px; padding-top: 8px; }
.version-history__item { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-soft); font-size: 10px; text-decoration: none; }
.version-history__item strong { color: var(--muted); font-size: 9px; }
.version-history__item small { grid-column: 1 / -1; color: var(--red); }
.media-dialog { width: min(1080px, calc(100% - 28px)); }
.media-dialog__body { height: min(76vh, 760px); display: grid; place-items: center; padding: 0; overflow: auto; background: #e7ebe8; }
.media-dialog__body img, .media-dialog__body video, .media-dialog__body iframe { width: 100%; height: 100%; display: block; border: 0; object-fit: contain; }
.media-dialog__body .approval-file { width: 100%; height: 100%; }
.preview-page { min-height: 100vh; background: #090b09; color: #f8faf3; }
.preview-shell { min-height: 100vh; display: grid; grid-template-rows: auto 1fr; }
.preview-topbar { min-height: 72px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 14px 18px; border-bottom: 1px solid rgba(248, 250, 243, .12); background: #0f120f; }
.preview-topbar h1 { margin: 2px 0 0; color: #fff; font-size: 20px; letter-spacing: 0; }
.preview-topbar > span { color: rgba(248, 250, 243, .64); font-size: 12px; font-weight: 800; }
.preview-stage { min-height: 0; display: grid; place-items: center; padding: 18px; background: #050706; }
.preview-stage > img, .preview-stage > video, .preview-stage > iframe, .preview-stage > .video-preview, .preview-stage > .carousel-preview, .preview-stage > .text-preview, .preview-stage > .structured-preview, .preview-stage > .launch-preview, .preview-stage > .audio-preview { width: 100%; height: calc(100vh - 108px); max-width: 1280px; }
.preview-stage img, .preview-stage video, .preview-stage iframe { object-fit: contain; }
.carousel-preview { width: 100%; height: 100%; min-height: 0; display: grid; background: #e7ebe8; }
.carousel-preview__stage { position: relative; min-height: 0; display: grid; place-items: center; overflow: hidden; }
.carousel-preview__slide { width: 100%; height: 100%; display: none; place-items: center; margin: 0; }
.carousel-preview__slide.is-active { display: grid; }
.carousel-preview__slide img { width: 100%; height: 100%; object-fit: contain; background: #e7ebe8; }
.carousel-preview__slide figcaption { position: absolute; left: 14px; bottom: 14px; max-width: calc(100% - 28px); padding: 7px 9px; border-radius: 6px; background: rgba(21, 24, 22, .84); color: white; font-size: 11px; font-weight: 700; }
.carousel-preview__counter { position: absolute; right: 10px; top: 10px; min-height: 24px; display: inline-flex; align-items: center; padding: 0 8px; border-radius: 999px; background: rgba(21, 24, 22, .86); color: white; font-family: var(--mono); font-size: 10px; font-weight: 800; }
.carousel-preview__nav { position: absolute; top: 50%; transform: translateY(-50%); border-color: rgba(255, 255, 255, .68); background: rgba(21, 24, 22, .86); color: white; }
.carousel-preview__nav:hover { background: var(--ink); }
.carousel-preview__nav--prev { left: 12px; }
.carousel-preview__nav--next { right: 12px; }
.carousel-preview__dots { min-height: 42px; display: flex; align-items: center; justify-content: center; gap: 7px; border-top: 1px solid var(--line); background: var(--surface); }
.carousel-preview__dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: var(--line-strong); cursor: pointer; }
.carousel-preview__dots button.is-active { width: 22px; border-radius: 999px; background: var(--ink); }
.carousel-preview:not(.carousel-preview--full) .carousel-preview__counter { right: 8px; top: 8px; }
.carousel-preview:not(.carousel-preview--full) .carousel-preview__slide:not(.is-active) { display: none; }
.carousel-preview--full .carousel-preview__slide img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }

.calendar-intro { gap: 16px; }
.calendar-month-nav { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.calendar-month-nav strong { min-width: 142px; font-size: 14px; text-align: center; }
.calendar-summary { margin-bottom: 14px; }
.approval-focus { margin-bottom: 22px; }
.approval-focus__head { min-height: 46px; display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.approval-focus__head h2 { margin: 0; font-size: 18px; }
.approval-focus__head .eyebrow { margin-bottom: 3px; }
.approval-focus__head > span { min-height: 28px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--muted); font-family: var(--mono); font-size: 10px; font-weight: 800; }
.approval-focus-grid { display: grid; grid-template-columns: repeat(3, minmax(280px, 1fr)); gap: 14px; align-items: start; }
.approval-focus-grid--compact { grid-template-columns: repeat(auto-fill, minmax(178px, 1fr)); gap: 11px; }
.approval-focus-grid .calendar-card { border-radius: var(--radius); box-shadow: 0 12px 34px rgba(19, 31, 23, .08); }
.approval-focus-grid .calendar-card__preview { aspect-ratio: 4 / 3; }
.approval-focus-grid--compact .calendar-card__preview { aspect-ratio: 1 / 1; }
.approval-focus-grid .calendar-card__body { gap: 9px; padding: 13px; }
.approval-focus-grid--compact .calendar-card__body { gap: 6px; padding: 10px; }
.approval-focus-grid .calendar-card strong { font-size: 14px; -webkit-line-clamp: 2; }
.approval-focus-grid--compact .calendar-card strong { font-size: 12px; -webkit-line-clamp: 2; }
.approval-focus-grid .calendar-card p { min-height: 34px; font-size: 11px; -webkit-line-clamp: 2; }
.approval-focus-grid--compact .calendar-card p { min-height: 0; font-size: 10px; -webkit-line-clamp: 1; }
.approval-focus-grid .calendar-card__actions { grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: 8px; padding-top: 5px; }
.approval-focus-grid .calendar-card__actions .button { min-width: 0; min-height: 38px; padding: 0 11px; white-space: nowrap; }
.approval-focus-grid--compact .calendar-card__chips, .approval-focus-grid--compact .print-link { display: none; }
.approval-focus-grid--compact .calendar-card__actions { grid-template-columns: 1fr; }
.approval-focus-grid--compact .calendar-card__actions .button { min-height: 34px; }
.approval-focus__empty { min-height: 180px; display: grid; place-items: center; gap: 6px; padding: 28px; border: 1px dashed var(--line-strong); border-radius: var(--radius); background: var(--surface); color: var(--muted); text-align: center; }
.approval-focus__empty svg { color: var(--brand); }
.approval-focus__empty strong { color: var(--ink); }
.calendar-map-section { margin-top: 2px; }
.calendar-admin-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 18px 0 14px; }
.calendar-admin-toolbar .filter-tabs { margin: 0; }
.content-calendar { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.content-calendar__weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.content-calendar__weekdays span { min-height: 34px; display: grid; place-items: center; color: var(--quiet); font-family: var(--mono); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.content-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-day { min-width: 0; min-height: 118px; padding: 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fbfcfb; }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day > header { min-height: 24px; display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 6px; }
.calendar-day > header span { color: var(--muted); font-family: var(--mono); font-size: 11px; font-weight: 800; }
.calendar-day > header small { min-width: 20px; height: 20px; display: grid; place-items: center; padding: 0 6px; border-radius: 999px; background: var(--ink); color: white; font-family: var(--mono); font-size: 9px; }
.calendar-day--muted { background: #f3f5f3; }
.calendar-day--muted > header span { color: #a3aaa5; }
.calendar-day--today { box-shadow: inset 0 0 0 2px var(--ink); }
.calendar-day__items { display: grid; gap: 7px; }
.calendar-marker { width: 100%; display: grid; gap: 5px; padding: 7px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--ink); text-align: left; cursor: pointer; transition: border-color 160ms ease, transform 160ms ease; }
.calendar-marker:hover { border-color: var(--ink); transform: translateY(-1px); }
.calendar-marker > span { min-width: 0; display: flex; align-items: center; gap: 5px; }
.calendar-marker small { color: var(--quiet); font-family: var(--mono); font-size: 9px; font-weight: 800; }
.calendar-marker strong { display: -webkit-box; overflow: hidden; font-size: 11px; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.calendar-marker--approved { background: var(--brand-soft); }
.calendar-marker--changes_requested { background: var(--red-soft); }
.calendar-marker--more { border-style: dashed; background: var(--accent-soft); color: #516900; text-decoration: none; }
.calendar-marker--more span { justify-content: space-between; }
.calendar-marker--more svg { width: 15px; height: 15px; }
.calendar-card { min-width: 0; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); overflow: hidden; transition: opacity 180ms ease, transform 180ms ease; }
.calendar-card--done { opacity: 0; transform: scale(.98); }
.calendar-card__preview { aspect-ratio: 16 / 10; position: relative; display: grid; place-items: center; overflow: hidden; border-bottom: 1px solid var(--line); background: #edf0ed; cursor: pointer; }
.calendar-card__preview:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.calendar-card__preview img, .calendar-card__preview video, .calendar-card__preview iframe { width: 100%; height: 100%; display: block; border: 0; object-fit: cover; background: #e7ebe8; pointer-events: none; }
.calendar-card__preview .video-preview { pointer-events: none; }
.calendar-card--format-stock_photo .calendar-card__preview img { object-fit: contain; padding: 8px; }
.calendar-card__preview .carousel-preview__slide img { object-fit: contain; }
.calendar-card__preview .launch-preview, .calendar-card__preview .audio-preview, .calendar-card__preview .text-preview, .calendar-card__preview .structured-preview, .calendar-card__preview .digital-preview { pointer-events: none; }
.calendar-card__preview .button, .calendar-card__preview audio, .calendar-card__preview a { display: none; }
.calendar-card__body { display: grid; gap: 7px; padding: 9px; }
.calendar-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.calendar-card__meta > span:not(.artifact-format-badge) { color: var(--quiet); font-family: var(--mono); font-size: 9px; font-weight: 800; }
.calendar-card strong { display: -webkit-box; overflow: hidden; font-size: 12px; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.calendar-card p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.calendar-card__chips { display: flex; flex-wrap: wrap; gap: 4px; }
.calendar-card__chips span { min-height: 20px; display: inline-flex; align-items: center; padding: 2px 6px; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: 9px; font-weight: 800; }
.calendar-card__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding-top: 2px; }
.calendar-card__actions form, .calendar-card__actions .button { width: 100%; }
.calendar-card .approval-state { width: fit-content; }
.calendar-dialog__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border-top: 1px solid var(--line); background: var(--line); }
.calendar-dialog__details div { min-width: 0; padding: 12px 14px; background: var(--surface); }
.calendar-dialog__details span { display: block; color: var(--quiet); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.calendar-dialog__details p { margin: 4px 0 0; color: var(--ink); font-size: 12px; line-height: 1.5; }
.dialog-print-action { display: flex; justify-content: flex-end; padding: 12px 14px; border-top: 1px solid var(--line); background: var(--surface); }
.quick-adjusts { display: flex; flex-wrap: wrap; gap: 6px; }
.calendar-empty { margin-top: 14px; }
.bulk-posts-input { min-height: 220px; font-family: var(--mono); font-size: 12px; line-height: 1.55; }
.bulk-example { display: grid; gap: 5px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); }
.bulk-example span { color: var(--quiet); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.bulk-example code { overflow-x: auto; color: var(--ink); font-family: var(--mono); font-size: 10px; white-space: nowrap; }

.artifact-fields { display: grid; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-soft); }
.artifact-fields--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.artifact-fields--grid .span-2 { grid-column: 1 / -1; }
.artifact-no-file { width: 100%; height: 100%; display: grid; place-items: center; gap: 7px; color: var(--quiet); }
.artifact-no-file svg { width: 30px; height: 30px; }

.video-preview { width: 100%; height: 100%; position: relative; display: grid; place-items: center; overflow: hidden; background: #050706; }
.video-preview video, .video-preview__poster { width: 100%; height: 100%; display: block; object-fit: cover; background: #050706; }
.video-preview__poster { position: absolute; inset: 0; z-index: 1; }
.video-preview--format-story video, .video-preview--format-story .video-preview__poster, .video-preview--format-reel video, .video-preview--format-reel .video-preview__poster { object-fit: contain; }
.video-preview--full { background: #050706; }
.video-preview--full video, .video-preview--full .video-preview__poster { object-fit: contain; }
.video-preview--is-playing .video-preview__poster, .video-preview--is-playing .video-preview__play { opacity: 0; visibility: hidden; pointer-events: none; }
.video-preview__play { width: 42px; height: 42px; display: grid; place-items: center; position: absolute; left: 50%; top: 50%; z-index: 2; transform: translate(-50%, -50%); border: 1px solid rgba(255, 255, 255, .36); border-radius: 50%; background: rgba(10, 12, 11, .76); color: white; box-shadow: 0 10px 28px rgba(0, 0, 0, .22); }
.video-preview__play svg { width: 18px; height: 18px; margin-left: 2px; fill: currentColor; }

.audio-preview { width: 100%; height: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px 14px; align-content: center; align-items: center; padding: 20px; background: #202524; color: white; }
.audio-preview__icon { width: 52px; height: 52px; display: grid; place-items: center; grid-row: 1 / span 2; border-radius: 50%; background: #d2a942; color: #202524; }
.audio-preview__icon svg { width: 24px; height: 24px; }
.audio-preview__info { min-width: 0; display: grid; gap: 3px; }
.audio-preview__info .eyebrow { margin: 0; color: #aeb8b1; }
.audio-preview__info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.audio-preview__info small { overflow: hidden; color: #cbd2cd; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.audio-preview audio { width: 100%; height: 36px; grid-column: 1 / -1; color-scheme: dark; }
.audio-preview--full { width: min(760px, calc(100% - 40px)); height: auto; min-height: 260px; padding: 34px; border-radius: 8px; }
.audio-preview--full .audio-preview__icon { width: 72px; height: 72px; }

.text-preview { width: 100%; height: 100%; padding: 20px; overflow: hidden; background: #fffefb; color: #2d332f; text-align: left; }
.text-preview > div { display: -webkit-box; overflow: hidden; font-family: Georgia, "Times New Roman", serif; font-size: 15px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 7; }
.text-preview > a { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; color: var(--blue); font-size: 11px; font-weight: 700; text-decoration: none; }
.text-preview--full { width: min(780px, calc(100% - 40px)); height: auto; min-height: 100%; padding: 42px; }
.text-preview--full > div { display: block; overflow: visible; font-size: 19px; line-height: 1.7; }

.structured-preview { width: 100%; height: 100%; display: grid; gap: 11px; align-content: start; padding: 17px; overflow: hidden; color: #28302b; text-align: left; }
.structured-preview--campaign { background: #edf5f4; }
.structured-preview--paid-ad { background: #f6f8fb; }
.structured-preview--meta_lead_ad, .structured-preview--meta_message_ad { background: #edf4ff; }
.structured-preview--google_search_ad, .structured-preview--google_display_ad, .structured-preview--google_performance_ad { background: #fff8ea; }
.structured-preview--visual { background: #f5f1f8; }
.structured-preview__header { display: flex; align-items: center; gap: 10px; min-width: 0; }
.structured-preview__header > div { min-width: 0; }
.structured-preview__header .eyebrow { margin: 0; }
.structured-preview__header strong { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.artifact-kind-icon { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 36px; border-radius: 6px; background: var(--blue); color: white; }
.structured-preview--meta_lead_ad .artifact-kind-icon, .structured-preview--meta_message_ad .artifact-kind-icon { background: #2667c9; }
.structured-preview--google_search_ad .artifact-kind-icon, .structured-preview--google_display_ad .artifact-kind-icon, .structured-preview--google_performance_ad .artifact-kind-icon { background: #d48210; }
.structured-preview--visual .artifact-kind-icon { background: var(--violet); }
.artifact-kind-icon svg { width: 18px; height: 18px; }
.structured-preview__lead { padding-left: 10px; border-left: 3px solid var(--blue); }
.structured-preview--meta_lead_ad .structured-preview__lead, .structured-preview--meta_message_ad .structured-preview__lead { border-left-color: #2667c9; }
.structured-preview--google_search_ad .structured-preview__lead, .structured-preview--google_display_ad .structured-preview__lead, .structured-preview--google_performance_ad .structured-preview__lead { border-left-color: #d48210; }
.structured-preview--visual .structured-preview__lead { border-left-color: var(--violet); }
.structured-preview__lead span, .structured-fields dt { color: var(--quiet); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.structured-preview__lead p { display: -webkit-box; margin: 2px 0 0; overflow: hidden; font-size: 12px; font-weight: 700; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.structured-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin: 0; }
.structured-fields div { min-width: 0; }
.structured-fields dd { display: -webkit-box; margin: 2px 0 0; overflow: hidden; color: var(--muted); font-size: 10px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.palette-row { display: flex; gap: 5px; }
.palette-row > span { width: 30px; height: 30px; position: relative; flex: 0 0 30px; border: 1px solid rgba(0, 0, 0, .12); border-radius: 5px; background: var(--swatch); }
.palette-row small { display: none; }
.structured-attachment { height: 80px; min-height: 0; overflow: hidden; border: 1px solid rgba(0, 0, 0, .08); border-radius: 5px; background: white; }
.structured-attachment img, .structured-attachment video, .structured-attachment iframe { width: 100%; height: 100%; object-fit: cover; }
.structured-preview--has-attachment:not(.structured-preview--full) { grid-template-columns: minmax(0, 1fr) 40%; grid-template-rows: auto auto 1fr; }
.structured-preview--has-attachment:not(.structured-preview--full) > :not(.structured-attachment) { grid-column: 1; }
.structured-preview--has-attachment:not(.structured-preview--full) .structured-fields { grid-template-columns: 1fr; }
.structured-preview--has-attachment:not(.structured-preview--full) .structured-fields > div:nth-child(n+3) { display: none; }
.structured-preview--has-attachment:not(.structured-preview--full) .structured-attachment { height: auto; grid-column: 2; grid-row: 1 / -1; }
.structured-preview--full { width: min(900px, calc(100% - 40px)); height: auto; min-height: 100%; align-content: start; padding: 38px; overflow: visible; }
.structured-preview--full .structured-preview__header strong { font-size: 23px; white-space: normal; }
.structured-preview--full .structured-preview__lead p { display: block; font-size: 17px; }
.structured-preview--full .structured-fields { gap: 18px 28px; }
.structured-preview--full .structured-fields dd { display: block; overflow: visible; font-size: 13px; }
.structured-preview--full .palette-row > span { width: 52px; height: 52px; flex-basis: 52px; }
.structured-preview--full .palette-row small { display: block; position: absolute; top: calc(100% + 3px); left: 0; color: var(--quiet); font-family: var(--mono); font-size: 8px; }

.digital-preview { width: 100%; height: 100%; display: grid; grid-template-rows: minmax(0, 58%) minmax(0, 42%); overflow: hidden; background: #0d100e; color: #fff; text-align: left; }
.digital-preview__media { min-height: 0; background: #030403; }
.digital-preview__media iframe { width: 100%; height: 100%; display: block; border: 0; }
.digital-preview__cover { display: grid; place-items: center; align-content: center; gap: 8px; background: #191f14; color: #c6ff00; }
.digital-preview__cover span { width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid rgba(198, 255, 0, .4); border-radius: 50%; }
.digital-preview__cover svg { width: 24px; height: 24px; }
.digital-preview__cover small { color: #a9b0a5; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.digital-preview__body { min-height: 0; padding: 12px 15px; overflow: hidden; }
.digital-preview__body .eyebrow { margin: 0 0 3px; color: #c6ff00; }
.digital-preview__body > strong { display: block; overflow: hidden; font-size: 14px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.digital-preview__body p { display: -webkit-box; margin: 4px 0 0; overflow: hidden; color: #a9b0a5; font-size: 10px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.digital-preview__body > a { display: inline-flex; align-items: center; gap: 6px; margin-top: 7px; color: #c6ff00; font-size: 10px; font-weight: 700; text-decoration: none; }
.digital-preview__body > a svg { width: 13px; height: 13px; }
.digital-preview--full { width: min(900px, calc(100% - 40px)); height: auto; min-height: 100%; grid-template-rows: auto auto; align-content: start; }
.digital-preview--full .digital-preview__media { aspect-ratio: 16 / 9; }
.digital-preview--full .digital-preview__body { padding: 24px 28px 30px; overflow: visible; }
.digital-preview--full .digital-preview__body > strong { font-size: 23px; white-space: normal; }
.digital-preview--full .digital-preview__body p { display: block; margin-top: 8px; font-size: 13px; }
.digital-preview--full .digital-preview__body > a { margin-top: 16px; font-size: 13px; }
.structured-attachment--full { height: min(52vh, 520px); margin-top: 16px; overflow: hidden; }
.structured-attachment--full img, .structured-attachment--full video { object-fit: contain; }

@media (max-width: 1100px) {
    .client-item { grid-template-columns: 70px minmax(250px, 1.5fr) 135px 120px 95px 34px; }
    .client-item > :nth-child(6) { display: none; }
    .split-layout { grid-template-columns: 1fr; }
    .approval-grid, .approval-grid--admin { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .approval-focus-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
    .content-calendar__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .content-calendar__weekdays { display: none; }
    .calendar-day:nth-child(7n) { border-right: 1px solid var(--line); }
    .calendar-day:nth-child(2n) { border-right: 0; }
}

@media (max-width: 860px) {
    .app-frame { display: block; }
    .sidebar { transform: translateX(-100%); transition: transform 180ms ease; box-shadow: 14px 0 40px rgba(0, 0, 0, .18); }
    .sidebar-open .sidebar { transform: translateX(0); }
    .admin-main { width: 100%; }
    .sidebar-toggle { display: inline-flex; }
    .admin-topbar { padding: 0 16px; }
    .admin-topbar > div:first-of-type { margin-right: auto; }
    .admin-content { width: min(100% - 28px, 760px); }
    .metric-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .client-command-center { grid-template-columns: 1fr; }
    .decision-workbench { grid-template-columns: 1fr; }
    .decision-queue { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .metric:nth-child(2) { border-right: 0; }
    .metric:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .meeting-upload { grid-template-columns: 1fr; }
    .client-nav a span { display: none; }
    .client-nav a { padding: 0 8px; }
    .client-item { grid-template-columns: 64px minmax(0, 1fr) 125px 34px; }
    .client-item > :nth-child(4), .client-item > :nth-child(5), .client-item > :nth-child(6) { display: none; }
    .calendar-admin-toolbar { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 620px) {
    h1 { font-size: 25px; }
    .auth-page, .auth-page--admin { background: var(--page); }
    .auth-shell { padding: 0; align-items: stretch; }
    .auth-panel { width: 100%; min-height: 100vh; padding: 28px 22px; border: 0; border-radius: 0; box-shadow: none; }
    .auth-brand { margin-bottom: 56px; }
    .auth-links { align-items: center; flex-direction: column; gap: 10px; }
    .admin-identity > span:first-child { display: none; }
    .page-head, .client-intro { align-items: flex-start; flex-direction: column; }
    .page-actions { width: 100%; }
    .page-actions form { flex: 1; }
    .page-actions form .button { width: 100%; }
    .page-actions .button { flex: 1; }
    .metric-strip { grid-template-columns: 1fr 1fr; }
    .metric { min-height: 76px; padding: 12px; }
    .metric strong { font-size: 21px; }
    .command-card { grid-template-columns: 38px minmax(0, 1fr); align-items: start; }
    .command-card__icon { width: 38px; height: 38px; }
    .command-card .button { grid-column: 1 / -1; width: 100%; }
    .decision-queue { grid-template-columns: 1fr; }
    .decision-card { grid-template-columns: 104px minmax(0, 1fr); }
    .decision-card__preview { height: 100%; min-height: 132px; aspect-ratio: auto; border-right: 1px solid var(--line); border-bottom: 0; }
    .decision-card__body p { min-height: 0; -webkit-line-clamp: 1; }
    .automation-table { min-width: 0; table-layout: auto; }
    .automation-table th:nth-child(4), .automation-table td:nth-child(4),
    .automation-table th:nth-child(5), .automation-table td:nth-child(5),
    .automation-table th:nth-child(6), .automation-table td:nth-child(6) { display: none; }
    .automation-table .cell-code { width: 48px; }
    .automation-table .cell-status { width: 76px; }
    .form-grid { grid-template-columns: 1fr; }
    .form-grid .span-2 { grid-column: auto; }
    .suggestion { grid-template-columns: 1fr; }
    .suggestion__actions { justify-content: flex-end; }
    .client-topbar__inner, .client-shell { width: calc(100% - 28px); }
    .client-brand { gap: 8px; }
    .client-brand span { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .updated-label { text-align: left; }
    .client-item { grid-template-columns: 55px minmax(0, 1fr) 32px; gap: 8px; }
    .client-item > :nth-child(3), .client-item > :nth-child(4), .client-item > :nth-child(5), .client-item > :nth-child(6) { display: none; }
    .client-item--head { display: none; }
    .client-item .title { font-size: 12px; }
    .client-item .sub { display: block; }
    .detail-grid { grid-template-columns: 1fr; }
    .detail-grid div { border-top: 1px solid var(--line); }
    .detail-grid div:first-child { border-top: 0; }
    .meeting-row { grid-template-columns: 1fr; gap: 4px; }
    .dependency-row { grid-template-columns: 1fr; }
    .dependency-row > div:last-child .button { width: 100%; justify-content: center; }
    .dependency-files a { grid-template-columns: 16px minmax(0, 1fr); }
    .dependency-files a small { grid-column: 2; }
    .approval-summary { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .folder-sync-bar { grid-template-columns: 1fr; gap: 10px; }
    .approval-summary > div { min-width: 0; display: grid; gap: 2px; padding: 9px; }
    .approval-grid, .approval-grid--admin { grid-template-columns: 1fr; }
    .approval-focus__head { align-items: flex-start; flex-direction: column; gap: 8px; }
    .approval-focus-grid { grid-template-columns: 1fr; }
    .content-calendar__grid { grid-template-columns: 1fr; }
    .calendar-day { min-height: 0; border-right: 0; }
    .calendar-day:nth-child(2n) { border-right: 0; }
    .calendar-day--muted:empty { display: none; }
    .calendar-month-nav { width: 100%; justify-content: space-between; }
    .calendar-dialog__details { grid-template-columns: 1fr; }
    .approval-card__heading { display: grid; }
    .approval-state { width: fit-content; }
    .approval-actions { grid-template-columns: 1fr; }
    .media-dialog__body { height: 72vh; }
    .preview-topbar { grid-template-columns: 1fr; align-items: flex-start; }
    .preview-stage { padding: 10px; }
    .preview-stage > img, .preview-stage > video, .preview-stage > iframe, .preview-stage > .video-preview, .preview-stage > .carousel-preview, .preview-stage > .text-preview, .preview-stage > .structured-preview, .preview-stage > .launch-preview, .preview-stage > .audio-preview { height: calc(100vh - 150px); }
    .artifact-fields--grid { grid-template-columns: 1fr; }
    .artifact-fields--grid .span-2 { grid-column: auto; }
    .audio-preview { padding: 16px; }
    .audio-preview--full, .text-preview--full, .structured-preview--full, .digital-preview--full, .launch-preview--full { width: 100%; min-height: 100%; border-radius: 0; }
    .text-preview--full, .structured-preview--full { padding: 24px 18px; }
    .structured-fields { grid-template-columns: 1fr; }
}

@media print {
    .client-topbar, .filter-tabs, .toolbar, .detail-icon, .approval-actions, dialog { display: none !important; }
    body { background: white; }
    .client-shell { width: 100%; padding: 0; }
    .metric-strip, .client-item-list { break-inside: avoid; }
}

.readonly-field {
    background: rgba(255, 255, 255, .78);
    border: 1px solid var(--line);
    border-radius: 16px;
    display: grid;
    gap: 5px;
    padding: 14px 15px;
}

.readonly-field span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.readonly-field strong {
    color: var(--text);
    font-size: 15px;
}

/* EchoAI-inspired Flow refresh */
body {
    background:
        radial-gradient(circle at 84% 8%, rgba(209, 248, 17, .22), transparent 24rem),
        radial-gradient(circle at 6% 90%, rgba(23, 100, 63, .10), transparent 22rem),
        var(--page);
}

h1 { font-size: 28px; letter-spacing: 0; }
h2 { font-size: 19px; }
h3 { font-size: 14px; }

.button,
.icon-button,
input,
select,
textarea,
.file-picker,
.filter-tabs a,
.client-nav a,
.panel,
.approval-card,
.calendar-card,
.content-calendar,
.client-item-list,
.data-table-shell,
.folder-sync-bar,
.approval-summary,
.metric-strip,
dialog {
    border-radius: 8px;
}

.button {
    min-height: 40px;
    border-color: transparent;
    background: #f0f2ed;
    color: #20251f;
    font-size: 12px;
    font-weight: 800;
    box-shadow: inset 0 0 0 1px rgba(21, 24, 22, .06);
    transition: background 160ms ease, color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}
.button:hover {
    border-color: transparent;
    background: #e8ebe4;
    transform: translateY(-1px);
}
.button--primary {
    border-color: transparent;
    background: var(--dark);
    color: white;
    box-shadow: 0 10px 24px rgba(17, 19, 17, .16);
}
.button--primary:hover {
    background: #050605;
    box-shadow: 0 12px 28px rgba(17, 19, 17, .22);
}
.button--primary svg,
.button--primary i { color: var(--accent); }
.button--danger {
    background: #fff0ef;
    color: var(--red);
}
.icon-button {
    border-color: transparent;
    background: #f0f2ed;
    box-shadow: inset 0 0 0 1px rgba(21, 24, 22, .06);
    transition: background 160ms ease, transform 160ms ease;
}
.icon-button:hover {
    border-color: transparent;
    background: #e8ebe4;
    transform: translateY(-1px);
}

input,
select,
textarea {
    border-color: transparent;
    background: #f7f8f4;
    box-shadow: inset 0 0 0 1px rgba(21, 24, 22, .08);
}
input:focus,
select:focus,
textarea:focus {
    outline: 0;
    background: #ffffff;
    box-shadow: inset 0 0 0 1px rgba(21, 24, 22, .18), 0 0 0 4px rgba(209, 248, 17, .22);
}
label {
    color: #454d46;
    font-size: 11px;
}
.field-hint {
    color: #8c958b;
}

.app-frame {
    grid-template-columns: 248px minmax(0, 1fr);
}
.sidebar {
    width: 248px;
    padding: 13px 10px;
    border-right: 1px solid rgba(255, 255, 255, .06);
    background:
        radial-gradient(circle at 18% 86%, rgba(209, 248, 17, .18), transparent 9rem),
        linear-gradient(180deg, #0c0e0c, #151815 48%, #0d0f0d);
}
.sidebar__brand {
    min-height: 48px;
    align-items: center;
    padding: 0 10px 13px;
}
.sidebar__brand strong {
    font-size: 17px;
    letter-spacing: 0;
}
.sidebar__brand span {
    color: #aeb8aa;
    font-family: var(--sans);
    font-size: 13px;
    font-style: italic;
    letter-spacing: 0;
}
.workspace-switcher {
    margin: 0 4px 13px;
    padding: 8px;
    border-color: rgba(255, 255, 255, .08);
    background: rgba(255, 255, 255, .045);
}
.workspace-switcher label {
    color: #7f897e;
}
.workspace-switcher select {
    height: 34px;
    border-color: transparent;
    background-color: #080a08;
    color: #f3f6ef;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}
.sidebar__nav,
.sidebar__footer {
    gap: 4px;
}
.sidebar__nav a,
.sidebar__footer a {
    min-height: 39px;
    gap: 10px;
    padding: 0 10px;
    color: #a9b2aa;
    font-size: 12px;
    font-weight: 750;
}
.sidebar__nav a:hover,
.sidebar__footer a:hover {
    background: rgba(255, 255, 255, .055);
}
.sidebar__nav a.is-active {
    background: #f3f6ef;
    color: #111311;
}
.sidebar__nav a.is-active svg {
    color: #516900;
}
.sidebar__nav svg,
.sidebar__footer svg {
    width: 16px;
    height: 16px;
    stroke-width: 2.05;
}

.admin-topbar,
.client-topbar {
    min-height: 64px;
    border-bottom-color: rgba(21, 24, 22, .08);
    background: rgba(250, 251, 247, .82);
    backdrop-filter: blur(18px);
}
.admin-topbar {
    height: 64px;
    padding: 0 28px;
}
.admin-content,
.client-shell {
    padding-top: 26px;
}
.admin-content {
    width: min(1500px, calc(100% - 56px));
}
.admin-topbar > div:first-of-type strong,
.client-brand span {
    font-size: 13px;
}
.avatar {
    background: #111311;
    color: var(--accent);
}

.client-topbar__inner {
    min-height: 64px;
}
.client-brand strong {
    font-size: 23px;
}
.client-nav {
    gap: 6px;
}
.client-nav a {
    min-height: 38px;
    padding: 0 12px;
    color: #697168;
}
.client-nav a:hover,
.client-nav a.is-active {
    background: #ffffff;
    color: #111311;
    box-shadow: 0 10px 26px rgba(19, 31, 23, .07);
}
.client-nav a.is-active svg {
    color: #516900;
}
.client-nav small {
    background: var(--accent-soft);
    color: #516900;
}

.page-head,
.client-intro {
    margin-bottom: 18px;
}
.page-head h1,
.client-intro h1 {
    margin-bottom: 5px;
}
.page-head p:last-child,
.client-intro p:last-child {
    max-width: 720px;
    color: #70786f;
    font-size: 13px;
}

.panel,
.metric-strip,
.data-table-shell,
.client-item-list,
.approval-card,
.calendar-card,
.content-calendar,
.folder-sync-bar {
    border-color: rgba(21, 24, 22, .08);
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 14px 38px rgba(19, 31, 23, .055);
}
.panel__head {
    min-height: 54px;
    padding: 12px 15px;
    border-bottom-color: rgba(21, 24, 22, .07);
    background: rgba(250, 251, 247, .68);
}
.panel__head h2 {
    font-size: 14px;
}
.panel__body {
    padding: 16px;
}
.metric {
    min-height: 88px;
    border-right-color: rgba(21, 24, 22, .07);
}
.metric strong {
    font-size: 25px;
}

.data-table th,
.client-item--head,
.content-calendar__weekdays {
    background: #f2f4ef;
}
.data-table td,
.client-item,
.action-list li,
.event-list li,
.dependency-list li,
.meeting-row {
    border-top-color: rgba(21, 24, 22, .07);
}
.data-table tbody tr:hover,
.client-item:hover {
    background: #fbfcf8;
}

.filter-tabs {
    gap: 7px;
}
.filter-tabs a {
    min-height: 36px;
    border-color: transparent;
    background: rgba(255, 255, 255, .84);
    color: #687166;
    box-shadow: inset 0 0 0 1px rgba(21, 24, 22, .07);
}
.filter-tabs a.is-active {
    border-color: transparent;
    background: #111311;
    color: #ffffff;
    box-shadow: 0 10px 26px rgba(17, 19, 17, .16);
}
.filter-tabs a.is-active small {
    color: var(--accent);
}
.search-input svg {
    color: #788176;
}

.status,
.scope,
.tag,
.artifact-format-badge,
.approval-state {
    border-radius: 999px;
    font-weight: 850;
}
.status--done,
.approval-state--approved,
.scope--extra_courtesy {
    background: #ecf8ee;
    color: #17643f;
}
.status--waiting_client,
.status--review,
.approval-state--pending {
    background: var(--accent-soft);
    color: #627b00;
}

.approval-grid,
.approval-grid--admin,
.approval-focus-grid {
    gap: 16px;
}
.approval-focus-grid--compact {
    grid-template-columns: repeat(auto-fill, minmax(178px, 1fr));
    gap: 11px;
}
.approval-focus-grid--compact .calendar-card__preview {
    aspect-ratio: 1 / 1;
}
.approval-focus-grid--compact .calendar-card__body {
    gap: 6px;
    padding: 10px;
}
.approval-focus-grid--compact .calendar-card strong {
    font-size: 12px;
}
.approval-focus-grid--compact .calendar-card p {
    min-height: 0;
    -webkit-line-clamp: 1;
}
.approval-focus-grid--compact .calendar-card__chips,
.approval-focus-grid--compact .print-link {
    display: none;
}
.approval-focus-grid--compact .calendar-card__actions {
    grid-template-columns: 1fr;
}
.approval-focus-grid--compact .calendar-card__actions .button {
    min-height: 34px;
}
.approval-card,
.calendar-card {
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, opacity 180ms ease;
}
.approval-card:hover,
.calendar-card:hover {
    border-color: rgba(21, 24, 22, .14);
    box-shadow: 0 18px 46px rgba(19, 31, 23, .09);
    transform: translateY(-2px);
}
.approval-preview,
.calendar-card__preview {
    border-bottom-color: rgba(21, 24, 22, .07);
    background:
        radial-gradient(circle at 88% 10%, rgba(209, 248, 17, .18), transparent 10rem),
        #eef1eb;
}
.approval-card__body,
.calendar-card__body {
    padding: 14px;
}
.calendar-card__body {
    gap: 8px;
}
.approval-card__heading h2,
.calendar-card strong {
    color: #151816;
}
.approval-actions,
.version-history,
.dialog-print-action {
    border-top-color: rgba(21, 24, 22, .07);
}

.calendar-day {
    background: rgba(255, 255, 255, .68);
    border-color: rgba(21, 24, 22, .07);
}
.calendar-day--muted {
    background: rgba(245, 247, 242, .74);
}
.calendar-day--today {
    box-shadow: inset 0 0 0 2px #111311;
}
.calendar-marker {
    border-color: rgba(21, 24, 22, .08);
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(19, 31, 23, .045);
}
.calendar-marker:hover {
    border-color: rgba(21, 24, 22, .18);
    transform: translateY(-1px);
}
.calendar-marker--approved {
    background: #ecf8ee;
}
.calendar-marker--changes_requested {
    background: #fff0ef;
}
.calendar-marker--more {
    border-style: dashed;
    background: var(--accent-soft);
    color: #516900;
    text-decoration: none;
}
.calendar-marker--more span {
    justify-content: space-between;
}
.calendar-marker--more svg {
    width: 15px;
    height: 15px;
}
.calendar-card--format-stock_photo .calendar-card__preview img {
    object-fit: contain;
    padding: 8px;
}
.approval-focus__empty {
    border-color: rgba(21, 24, 22, .10);
    background: rgba(255, 255, 255, .80);
    box-shadow: 0 14px 38px rgba(19, 31, 23, .05);
}

.artifact-fields,
.bulk-example,
.toggle-field,
.detail-grid div,
.calendar-dialog__details div {
    background: #fafbf7;
}
.file-picker {
    border-color: transparent;
    background: #f7f8f4;
    box-shadow: inset 0 0 0 1px rgba(21, 24, 22, .08);
}
.file-picker:hover {
    border-color: transparent;
    background: #ffffff;
    box-shadow: inset 0 0 0 1px rgba(21, 24, 22, .16), 0 0 0 4px rgba(209, 248, 17, .18);
}

dialog {
    box-shadow: 0 30px 100px rgba(17, 19, 17, .28);
}
dialog::backdrop {
    background: rgba(8, 10, 8, .62);
    backdrop-filter: blur(5px);
}
.dialog-head {
    border-bottom-color: rgba(21, 24, 22, .08);
    background: #fbfcf8;
}

.structured-preview,
.digital-preview,
.text-preview,
.launch-preview,
.audio-preview {
    border-radius: inherit;
}

@media (max-width: 860px) {
    .app-frame { grid-template-columns: 1fr; }
    .sidebar {
        width: min(288px, calc(100vw - 38px));
        box-shadow: 20px 0 60px rgba(0, 0, 0, .28);
    }
    .admin-content {
        width: min(100% - 28px, 760px);
    }
}

.approval-summary {
    grid-template-columns: repeat(4, minmax(0, 180px));
}
.approval-state--rejected,
.status--rejected {
    background: var(--red-soft);
    color: var(--red);
}
.calendar-marker--rejected {
    background: #fff0ef;
}
.approval-feedback--rejected {
    border-left-color: var(--red);
    background: #fff0ef;
}
.button--danger {
    border-color: #e6bbbb;
    background: #fff0ef;
    color: var(--red);
}
.button--danger:hover {
    background: #fbe3e1;
    color: #7d2424;
}
.approval-actions,
.calendar-card__actions,
.approval-focus-grid .calendar-card__actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.approval-focus-grid--compact .calendar-card__actions {
    grid-template-columns: 1fr;
}
@media (max-width: 620px) {
    body {
        overflow-x: hidden;
    }
    .client-topbar {
        overflow: hidden;
    }
    .client-topbar__inner {
        width: calc(100% - 28px);
        max-width: calc(100vw - 28px);
        gap: 8px;
    }
    .client-brand {
        min-width: 0;
        flex: 1 1 auto;
    }
    .client-brand strong {
        flex: 0 0 auto;
    }
    .client-brand span {
        min-width: 0;
        max-width: min(150px, calc(100vw - 220px));
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .client-nav {
        max-width: 142px;
        flex: 0 0 auto;
        gap: 4px;
        overflow: hidden;
    }
    .client-nav a {
        width: 42px;
        min-width: 42px;
        padding: 0;
        justify-content: center;
    }
    .client-nav a span {
        display: none;
    }
    .client-nav a[href*="logout"] {
        display: none;
    }
    .approval-toolbar {
        max-width: 100%;
        overflow: hidden;
    }
    .filter-tabs {
        width: 100%;
        max-width: 100%;
        flex-wrap: wrap;
        overflow: visible;
    }
    .approval-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .approval-actions,
    .calendar-card__actions,
    .approval-focus-grid .calendar-card__actions {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    body {
        background:
            radial-gradient(circle at 90% 0, rgba(209, 248, 17, .18), transparent 18rem),
            var(--page);
    }
    .auth-page,
    .auth-page--admin {
        background: var(--page);
    }
    .button:hover,
    .icon-button:hover,
    .approval-card:hover,
    .calendar-card:hover {
        transform: none;
    }
}
