/* Shared appearance for the portal, local workspace and SUPERADMIN. */
:root[data-theme="light"] { color-scheme:light; }
.theme-toggle {
  display:inline-flex; align-items:center; justify-content:flex-start; gap:10px;
  min-height:44px; max-width:100%; padding:10px 12px; border:1px solid var(--line,#d5e3f0);
  border-radius:12px; background:var(--white,#fff); color:var(--ink,#17324f);
  font:inherit; font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap;
}
.theme-toggle:hover { border-color:var(--accent,#176cc0); }
.theme-toggle>svg { flex:none; }
.theme-toggle>span:not(.theme-switch) { flex:1; text-align:left; }
.theme-switch { position:relative; flex:none; width:36px; height:22px; border-radius:20px; background:#b5c7da; }
.theme-switch::after { content:""; position:absolute; width:16px; height:16px; top:3px; left:3px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #0003; transition:transform .15s; }
.theme-toggle[aria-checked="true"] .theme-switch { background:#3889e9; }
.theme-toggle[aria-checked="true"] .theme-switch::after { transform:translateX(14px); }
.sidebar-bottom>.theme-toggle { width:100%; margin-bottom:12px; }
.theme-topbar-toggle { margin-left:auto; padding:7px 10px; min-height:40px; }
.theme-topbar-toggle>span:not(.theme-switch) { display:none; }
.theme-page-tools { display:flex; justify-content:flex-end; gap:8px; margin-bottom:22px; }
.account-card>.theme-page-tools { margin:-8px -8px 16px; }
.theme-platform-tools { position:absolute; top:max(18px,env(safe-area-inset-top)); right:max(18px,env(safe-area-inset-right)); }
.login { position:relative; padding-top:85px; }
@media (max-width:600px) {
  .header-actions { flex-wrap:wrap; justify-content:flex-end; }
  .header-actions .theme-toggle { padding:8px; gap:7px; }
  .header-actions .theme-toggle>span:not(.theme-switch) { display:none; }
  .theme-platform-tools { top:14px; right:14px; }
}
@media (prefers-reduced-motion:reduce) { .theme-switch::after { transition:none; } }
@media (forced-colors:active) { .theme-switch { border:1px solid ButtonText; } .theme-switch::after { background:ButtonText; } }

/* One appearance chooser serves desktop, mobile, login and SUPERADMIN. */
.theme-toggle>.theme-chevron { display:inline-block; flex:none; font-size:16px; line-height:1; }
.theme-picker { width:min(520px,calc(100% - 24px)); max-width:calc(100% - 24px); max-height:calc(100dvh - 32px); overflow:auto; padding:24px; border:1px solid var(--line,#d5e3f0); border-radius:24px; color:var(--ink,#17324f); background:var(--white,#fff); box-shadow:0 24px 80px #101e2d33; }
.theme-picker::backdrop { background:#12291e66; backdrop-filter:blur(4px); }
.theme-picker-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.theme-picker-heading h2 { margin:0 0 6px; font-size:24px; letter-spacing:-.5px; }
.theme-picker-heading p,.theme-picker-note { margin:0; color:var(--muted,#4b6480); font-size:13px; line-height:1.5; }
.theme-picker-close { display:grid; place-items:center; flex:none; width:44px; height:44px; padding:0; border:1px solid var(--line,#d5e3f0); border-radius:50%; background:var(--white,#fff); color:var(--ink,#17324f); cursor:pointer; font:inherit; font-size:25px; }
.theme-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.theme-choice { display:flex; flex-direction:column; align-items:flex-start; position:relative; min-width:0; padding:8px 8px 32px; border:2px solid var(--line,#d5e3f0); border-radius:16px; color:var(--ink,#17324f); background:var(--white,#fff); text-align:left; cursor:pointer; font:inherit; }
.theme-choice>strong { margin:10px 2px 5px; max-width:100%; overflow-wrap:anywhere; font-size:14px; color:inherit; }
.theme-choice>small { margin:0 2px; max-width:100%; overflow-wrap:anywhere; font-size:11px; line-height:1.4; color:var(--muted,#4b6480); }
.theme-choice[aria-pressed=true] { border-color:var(--accent,#176cc0); box-shadow:0 0 0 1px var(--accent,#176cc0); }
.theme-choice:hover { border-color:var(--accent,#176cc0); }
.theme-choice-check { display:none; position:absolute; bottom:8px; right:9px; color:var(--accent,#176cc0); font-weight:800; }
.theme-choice[aria-pressed=true]>.theme-choice-check { display:block; }
.theme-preview { display:block; position:relative; width:100%; height:76px; overflow:hidden; border-radius:9px; background:#f2f7fd; border:1px solid #d5e3f0; }
.theme-preview>i { position:absolute; inset:0 auto 0 0; width:22%; background:#fff; border-right:1px solid #d5e3f0; }
.theme-preview>b { position:absolute; inset:14px 8px 15px 29%; background:#fff; border:1px solid #d5e3f0; border-radius:5px; }
.theme-preview>em { position:absolute; width:35%; height:9px; bottom:22px; right:14px; background:#176cc0; border-radius:5px; }
.theme-preview-dark { background:#101925; border-color:#34465d; }
.theme-preview-dark>i,.theme-preview-dark>b { background:#192638; border-color:#34465d; }
.theme-preview-dark>em { background:#80b9ff; }
.theme-preview-vv { background:#f5f8f4; border-color:#d6e5d6; }
.theme-preview-vv>i,.theme-preview-vv>b { border-color:#d6e5d6; }
.theme-preview-vv>i { box-shadow:inset 3px 0 #2dbe64; }
.theme-preview-vv>em { background:#2dbe64; }
.theme-preview-vv-dark { background:#151b17; border-color:#3a4e40; }
.theme-preview-vv-dark>i,.theme-preview-vv-dark>b { background:#202a23; border-color:#3a4e40; }
.theme-preview-vv-dark>em { background:#2dbe64; }
.theme-picker-note { margin-top:18px; }
.theme-picker :focus-visible { outline:3px solid var(--accent,#176cc0); outline-offset:3px; }
@media(max-width:460px) { .theme-picker { padding:18px 14px; border-radius:20px; }.theme-choices { gap:7px; }.theme-choice { padding:6px 6px 30px; }.theme-choice>strong { font-size:13px; }.theme-preview { height:65px; }.theme-picker-heading p { max-width:220px; } }
@media(max-width:760px) {
  #workspace nav[aria-label="Разделы платформы"] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  #workspace nav[aria-label="Разделы платформы"] .tab { min-width:0; margin:0; padding:10px 6px; overflow-wrap:anywhere; }
}

:root:is([data-theme="dark"],[data-theme="vv-dark"]), :root:is([data-theme="dark"],[data-theme="vv-dark"]) .portal {
  color-scheme:dark; --bg:#101925; --white:#192638; --ink:#e4edf7; --muted:#a9bad0;
  --text-secondary:#bdcde0; --line:#34465d; --accent:#80b9ff; --accent-dark:#a9cfff;
  --accent-light:#203d60; --surface-muted:#142031; --surface-raised:#223249;
  --surface-blue:#244563; --surface-blue-raised:#2d5579; --surface-blue-line:#52799e;
  --input-bg:#13283d; --input-focus-bg:#1b3853; --input-line:#577c9f;
  --positive-bg:#173c30; --positive-text:#9de2b6; --positive-line:#35664e;
  --negative-bg:#44252d; --negative-text:#ffb0b8; --negative-line:#80505a;
  --warning-bg:#45391f; --warning-text:#f5d68c; --warning-line:#79613b;
  --purple-bg:#34244b; --purple-text:#dec7ff; --purple-line:#73568f;
  color:var(--ink); background:var(--bg);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) body { color:var(--ink); background:var(--bg); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.sidebar,.topbar,.card,.panel,.account-card,.legal-page,dialog,
  .portal-menu,.portal-bottom-nav,.work-controls,.work-management,.work-move,.work-returns,
  .work-live,.work-sound-bar,.chat-panel,.chat-toolbar,.chat-compose,.direct-compose,.chat-bubble,
  .schedule-mobile-person,.schedule-mobile-day,.schedule-day-card,.notification-card,
  .schedule-summary>div,.screenshot-card,.direct-thread,.direct-inbox,.install-card,
  .app-install-dialog,.modal-actions,.work-return-actions,.work-free-actions) {
  color:var(--ink); background:var(--white); border-color:var(--line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.summary>div,.table-card,.form-actions,.legal-card,.legal-register-summary>div) { color:var(--ink); background:var(--white); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.explanation,.meter,.badge,.close) { color:var(--text-secondary); background:var(--surface-raised); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.badge.active,.legal-register-badge.accepted,.legal-register-summary>.accepted) { color:var(--positive-text); background:var(--positive-bg); border-color:var(--positive-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.badge.ready,.legal-register-badge.pending,.legal-register-summary>.pending) { color:var(--warning-text); background:var(--warning-bg); border-color:var(--warning-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.badge.error,.badge.suspended) { color:var(--negative-text); background:var(--negative-bg); border-color:var(--negative-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.account-page,.portal.account-page) { background:radial-gradient(ellipse at top,#1b3350,var(--bg) 65%); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(input,select,textarea) { color:var(--ink); background:var(--surface-muted); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) input::placeholder,html:is([data-theme="dark"],[data-theme="vv-dark"]) textarea::placeholder { color:#93a7bf; opacity:1; }
html:is([data-theme="dark"],[data-theme="vv-dark"]) input:autofill { color:var(--ink); background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :focus-visible { outline-color:#8dc3ff; }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(p,.muted,.small-muted,.eyebrow,.field-label,.nav-label,.breadcrumb,
  .account-footer,.account-login,.version,.workspace-footer,.queue-timestamp,.work-help,
  .chat-message time,.chat-day,.brand small,#account-description,.brand span) { color:var(--muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(small,dt,.schedule-mobile-person small,.schedule-weekday,.courier-map-legend) { color:var(--muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(h1,h2,h3,strong,label,.breadcrumb strong,.chat-bubble p,.chat-bubble header>strong) { color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.login .brand,#workspace>header .brand) { color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(a,.text-button,.backup-link,.work-manage-name,.app-install-link,.password button,.account-password-toggle) { color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.sidebar nav a,.portal-nav-group>summary,.portal-setting,.portal-bottom-nav a,.portal-bottom-nav button,.tab) { color:var(--text-secondary); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(nav a:hover,.portal-nav-group>summary:hover,.portal-setting:hover,.chat-more:hover,.account-password-toggle:hover) { background:var(--surface-raised); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(nav a.active,.portal-nav-group.has-active>summary,.portal-bottom-nav a.active,.tab.active) { color:var(--accent); background:var(--accent-light); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .portal-nav-children { border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.sidebar nav .portal-icon,.portal-nav-group>summary>.portal-icon) { color:var(--muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.sidebar nav .active .portal-icon,.portal-nav-group.has-active>summary>.portal-icon) { color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.local-card,.pill,.nav-count,.work-summary,.work-notice,.connection-notice,
  .schedule-mode,.chat-log,.chat-topic,.schedule-mobile-scope button,.queue-number-preview span,
  .schedule-mobile-person b,.work-return-countdown,.work-personal-summary,.chat-avatar,.chat-day span) {
  color:var(--text-secondary); background:var(--surface-muted); border-color:var(--line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.viewer-update,.schedule-week-rule,.notification-comparison>div,.schedule-export) {
  color:var(--text-secondary); background:var(--surface-muted); border-color:var(--line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) .notification-comparison>div:last-child { background:var(--accent-light); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.schedule-week-warnings,.schedule-week-warnings h2,.schedule-limit-badge) { color:var(--warning-text); background:var(--warning-bg); border-color:var(--warning-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.chat-own .chat-bubble,.chat-topic.active,.schedule-mobile-scope button[aria-pressed=true],.schedule-mode button.active) {
  color:var(--ink); background:var(--accent-light); border-color:#487bac;
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) .chat-more { color:var(--muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.button,.icon-button,.schedule-mobile-settings,.schedule-period-control button) { background:var(--surface-raised); border-color:var(--line); color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .account-row-actions .text-button { color:var(--accent); background:var(--surface-raised); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .account-row-actions .text-button:disabled { color:var(--muted); opacity:.55; }
html:is([data-theme="dark"],[data-theme="vv-dark"]) td::before { color:var(--muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.button.primary,.primary,.work-personal [data-work=choose]:enabled,
  .work-personal [data-work=choose]:disabled+[data-work=depart]:enabled,.schedule-mobile-day[aria-pressed=true]) {
  color:#fff; background:#226ec4; border-color:#438bdb;
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.button.primary,.primary):hover:enabled { background:#2b7bd3; }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .button:disabled { color:#93a7be; background:#223044; border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.form-error,.error,.danger-text) { color:var(--negative-text); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .button.danger { color:var(--negative-text); background:var(--negative-bg); border-color:var(--negative-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.account-blocked,.status.blocked,.badge.blocked) { color:var(--negative-text); background:var(--negative-bg); border-color:var(--negative-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(table,td,th,thead,.table-scroll,.table-wrap) { border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(th,thead,.schedule-name,.schedule-courier) { color:var(--muted); background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) td { color:var(--ink); background:var(--white); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) tbody tr:hover td { background:var(--surface-raised); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.schedule-cell,.schedule-day,.schedule-slot,.schedule-mobile-person) { border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.schedule-cell,.schedule-cell.off,.schedule-day-person) { color:var(--muted); background:var(--surface-muted); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-cell.shift { color:var(--accent); background:var(--accent-light); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-cell.start-eight :is(strong,small),html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-cell.start-ten :is(strong,small) { color:inherit; }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.schedule-cell,.schedule-day,.schedule-slot).start-eight,
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-mobile-person.start-eight b { color:var(--positive-text); background:var(--positive-bg); border-color:var(--positive-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.schedule-cell,.schedule-day,.schedule-slot).start-ten,
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-mobile-person.start-ten b { color:var(--warning-text); background:var(--warning-bg); border-color:var(--warning-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-day-person.start-eight .schedule-day-hours b { color:var(--positive-text); background:var(--positive-bg); border-color:var(--positive-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-day-person.start-ten .schedule-day-hours b { color:var(--warning-text); background:var(--warning-bg); border-color:var(--warning-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.available { color:var(--positive-text); background:var(--positive-bg); border-color:var(--positive-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.occupied { color:var(--negative-text); background:var(--negative-bg); border-color:var(--negative-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.available :is(h3,p,strong,.pill) { color:var(--positive-text); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.occupied :is(h3,p,strong,.pill) { color:var(--negative-text); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.available .pill { background:#214d3c; border-color:var(--positive-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.occupied .pill { background:#57303a; border-color:var(--negative-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.available .button:disabled { color:var(--positive-text); background:#244636; border-color:var(--positive-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.occupied .button:disabled { color:#d99ba3; background:#50323b; border-color:var(--negative-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-route.available .button.primary:enabled { color:#fff; background:#237248; border-color:#3d9865; }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-live-row.ready { background:var(--positive-bg); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.work-return-countdown.ready,.work-return-countdown.active) { color:var(--positive-text); background:var(--positive-bg); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.work-return-countdown.expired,.work-return-countdown.locked) { color:var(--negative-text); background:var(--negative-bg); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.leaflet-popup-content-wrapper,.leaflet-popup-tip,.leaflet-bar a) { color:var(--ink); background:var(--white); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .leaflet-popup-content { color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .courier-map-canvas .leaflet-control-attribution { color:var(--ink); background:var(--white); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .courier-map-canvas .leaflet-control-attribution a { color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) dialog::backdrop { background:#050c16b8; }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.modal-actions,.work-return-actions,.work-free-actions) { border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(#toast,.toast,#notice) { color:var(--ink); background:#29415e; border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) body>header,html:is([data-theme="dark"],[data-theme="vv-dark"]) #workspace>header { background:var(--white); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .theme-toggle { color:var(--ink); background:var(--white); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.app-install-link,.app-install-close,.app-install-platforms button) { color:var(--accent); background:var(--surface-raised); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .app-install-platforms button[aria-pressed=true] { color:var(--accent); background:var(--accent-light); border-color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .app-install-dialog .app-install-note { color:var(--muted); background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .app-install-status { color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.work-self-card,.work-self-card .work-return-countdown,.work-personal-card,
  .work-free-footer,.work-return-footer,.work-free-presets button,.work-return-presets button,
  .notification-item,.security-event,.screenshot-card,.courier-map-person,.courier-map-canvas,
  .schedule-day-card,.stat-card,.schedule-legend,.schedule-shortened) { color:var(--ink); background:var(--white); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.work-self-timer,.work-return-hint,.work-free-help,.work-self-help) { color:var(--muted); background:var(--surface-muted); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.work-self-facts dt,.work-self-facts dd>small,.work-self-heading p,.work-self-next,.work-self-timer>span,.work-free-fields>p,.work-free-consent) { color:var(--muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-free-presets button[aria-pressed=true] { color:var(--accent); background:var(--accent-light); border-color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.work-return-countdown>strong,.work-return-countdown>small,.courier-map-popup) { color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .work-summary :is(b,strong) { color:var(--accent); }
/* Component backgrounds and focused inputs must not fall back to the light palette. */
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.queue-position,.filter-bar,.queue-tabs,.chat-compose,
  .direct-compose,.chat-recorder,.direct-bubble,.claim-comment) {
  color:var(--ink); background:var(--surface-blue); border-color:var(--surface-blue-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) .queue-position :is(b,strong) { color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .queue-position b { background:var(--surface-blue-raised); border-color:var(--surface-blue-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.filter-bar .small-muted,.filter-bar label,.queue-timestamp,
  .queue-footnote,#chat-hint,.chat-count,.chat-timezone,.chat-recorder small,
  .chat-toolbar small,.chat-edited,.chat-bubble time,.chat-bubble em,.chat-empty,
  .direct-heading p,.direct-person small,.direct-bubble time,.direct-empty,
  .claim-comment header span,.claim-comment time,.chat-version small) { color:var(--text-secondary); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.queue-tabs button,.queue-check) { color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.queue-tabs button[aria-selected="true"],.queue-check.selected,
  .direct-person.active,.direct-person:hover,.direct-bubble.own,.claim-comment.own) {
  color:var(--ink); background:var(--surface-blue-raised); border-color:var(--surface-blue-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.direct-bubble p,.claim-comment p) { color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .chat-you { color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) #chat-status[data-failed="true"] { color:var(--negative-text); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .route-row.vacant { background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .route-row.vacant strong { color:var(--text-secondary); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.direct-heading,.direct-compose,.chat-version) { border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .chat-recorder strong { color:var(--negative-text); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(body,.portal) :is(input,select,textarea) {
  color:var(--ink); -webkit-text-fill-color:var(--ink); caret-color:var(--accent);
  background:var(--input-bg); border-color:var(--input-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(body,.portal) :is(input,select,textarea):focus {
  color:var(--ink); -webkit-text-fill-color:var(--ink); background:var(--input-focus-bg);
  border-color:var(--accent); outline-color:var(--accent);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(body,.portal) :is(input,textarea)::placeholder {
  color:var(--text-secondary); -webkit-text-fill-color:var(--text-secondary); opacity:1;
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(body,.portal) :is(input,select,textarea):disabled {
  color:var(--muted); -webkit-text-fill-color:var(--muted); background:var(--surface-muted);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(body,.portal) input:autofill {
  -webkit-text-fill-color:var(--ink); box-shadow:0 0 0 1000px var(--input-bg) inset;
}
/* Secondary views use the same surfaces as the main workspace. */
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.overview-strip,.route-center,.screenshot-submit,.voice-widget,.skip-link:focus) {
  color:var(--ink); background:var(--white); border-color:var(--line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.avatar,.metric-icon,.step-label,.list-title small,.hint,
  .route-node,.route-tag,.manual-badge,.empty-icon,.person-avatar,.voice-avatar,
  .role-preview-intro>.portal-icon,.role-preview-hint,.legal-note,
  .courier-map-number,.courier-map-kind,.work-order,.work-picker-option) {
  color:var(--ink); background:var(--surface-blue); border-color:var(--surface-blue-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.group-title,.cancelled-entry,.security-outcome,.overdue-count.pending) {
  color:var(--text-secondary); background:var(--surface-muted); border-color:var(--line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.courier-map-person:hover,.courier-map-person.selected,.work-picker-option:hover:enabled) {
  color:var(--ink); background:var(--surface-blue-raised); border-color:var(--surface-blue-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.courier-map-number.free,.courier-map-kind.free) {
  color:var(--purple-text); background:var(--purple-bg); border-color:var(--purple-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.security-outcome.success,.overdue-count.zero,.pill.green,
  .work-live-row.ready .work-order) {
  color:var(--positive-text); background:var(--positive-bg); border-color:var(--positive-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.security-outcome.denied,.security-outcome.failure,
  .overdue-count.positive,.voice-controls .danger) {
  color:var(--negative-text); background:var(--negative-bg); border-color:var(--negative-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.security-outcome.started,.pill.amber,.temporary-notice,
  .role-preview-banner,.overdue-trip-actions .overdue-manual) {
  color:var(--warning-text); background:var(--warning-bg); border-color:var(--warning-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) .role-preview-banner :is(strong,small) { color:var(--warning-text); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.role-preview-intro p,.role-preview-hint,.voice-widget p,
  .overdue-panel .panel-heading>span,.overdue-empty,.overdue-note,.overdue-edit-context,
  .overdue-edit-history time,.screenshot-card time,.screenshot-card small,
  .legal-register-pagination>span,.legal-hash) { color:var(--text-secondary); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.overdue-edit-context strong,.overdue-edit-history article>strong) { color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.overdue-edit-history article,.legal-status,.legal-documents a) { border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) #account-back { color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .screenshot-card>button { background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .bars progress { background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .bars progress::-webkit-progress-bar { background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-mode button { color:var(--text-secondary); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-mode button[aria-pressed=true] {
  color:var(--ink); background:var(--surface-blue); border-color:var(--surface-blue-line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-summary span { color:var(--text-secondary); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.schedule-table,.overdue-table) :is(th,td,tr) {
  color:var(--ink); background:var(--white); border-color:var(--line);
}
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.schedule-table thead th,.schedule-table tfoot th,.overdue-table thead th,
  .schedule-table .schedule-weekend) { color:var(--muted); background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-table .schedule-current { color:var(--ink); background:var(--accent-light); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) :is(.schedule-table .schedule-total,.schedule-table thead th:last-child) { color:var(--accent); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-cell-add { color:var(--muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-cell:hover:not(:disabled) { background:var(--surface-raised); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-cell.start-eight:hover:not(:disabled) { background:var(--positive-bg); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-cell.start-ten:hover:not(:disabled) { background:var(--warning-bg); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-legend i { border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-legend-eight { background:var(--positive-bg); border-color:var(--positive-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-legend-ten { background:var(--warning-bg); border-color:var(--warning-line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-legend-off { background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-day-heading { background:var(--surface-muted); border-color:var(--line); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-day-today .schedule-day-heading { background:var(--surface-blue); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-day-person:hover { background:var(--surface-raised); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-history-change>div { background:var(--surface-muted); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-history-change>div+div { background:var(--positive-bg); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-history-change :is(strong,small) { color:var(--ink); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .schedule-history-state.form-error { color:var(--negative-text); }
html:is([data-theme="dark"],[data-theme="vv-dark"]) .count-cell.has-count { color:var(--ink); background:var(--surface-blue); }

/* Graphite VV surfaces share the complete dark component coverage above. */
:root[data-theme="vv-dark"],:root[data-theme="vv-dark"] .portal {
  color-scheme:dark; --bg:#151b17; --white:#202a23; --ink:#edf4ee; --muted:#adbbb1;
  --text-secondary:#c3d2c7; --line:#3a4e40; --accent:#72df99; --accent-dark:#a2efba;
  --accent-light:#25432f; --vv-brand:#2dbe64; --vv-action-ink:#12321e;
  --surface:#202a23; --surface-muted:#19231d; --surface-raised:#2b3a30;
  --surface-blue:#233d2b; --surface-blue-raised:#2b4d36; --surface-blue-line:#4b7758;
  --input-bg:#17221b; --input-focus-bg:#203427; --input-line:#597562;
  --positive-bg:#1b3b29; --positive-text:#a6e8bc; --positive-line:#3e7550;
  --negative-bg:#40232d; --negative-text:#ffb4c5; --negative-line:#815063;
  --warning-bg:#423a24; --warning-text:#f4d993; --warning-line:#77663c;
  --purple-bg:#352b44; --purple-text:#dfc9f3; --purple-line:#735d89;
  color:var(--ink); background:var(--bg);
}
html[data-theme="vv-dark"] :is(.account-page,.portal.account-page) { background:radial-gradient(ellipse at top,#264232,var(--bg) 65%); }
html[data-theme="vv-dark"] dialog::backdrop { background:#050d08b8; }
html[data-theme="vv-dark"] .brand>img { filter:hue-rotate(-70deg); }
html[data-theme="vv-dark"] :focus-visible { outline-color:var(--accent); }
html[data-theme="vv-dark"] :is(.button.primary,.primary,.work-personal [data-work=choose]:enabled,
  .work-personal [data-work=choose]:disabled+[data-work=depart]:enabled,.schedule-mobile-day[aria-pressed=true]) {
  color:var(--vv-action-ink); background:var(--vv-brand); border-color:var(--vv-brand); box-shadow:none;
}
html[data-theme="vv-dark"] :is(.button.primary,.primary):hover:enabled { color:var(--vv-action-ink); background:#46cf7b; border-color:#46cf7b; }
html[data-theme="vv-dark"] .button:disabled { color:#a0b0a5; background:#2a372e; border-color:var(--line); box-shadow:none; }
html[data-theme="vv-dark"] :is(.chat-own .chat-bubble,.chat-topic.active,.schedule-mobile-scope button[aria-pressed=true],.schedule-mode button.active) { border-color:var(--surface-blue-line); }
html[data-theme="vv-dark"] :is(.notification-count,.nav-count) { color:var(--vv-action-ink); background:var(--vv-brand); }
html[data-theme="vv-dark"] .notification-new { color:var(--positive-text); background:var(--positive-bg); }
html[data-theme="vv-dark"] :is(#toast,.toast,#notice) { color:var(--ink); background:var(--surface-raised); border-color:var(--line); }
html[data-theme="vv-dark"] .account-row-actions .text-button { color:var(--accent); }

/* ВВ: brand green and graphite on white, with darker green for readable text. */
:root[data-theme="vv"],:root[data-theme="vv"] .portal {
  color-scheme:light; --bg:#f5f8f4; --white:#fff; --ink:#333333; --muted:#566359;
  --text-secondary:#46584b; --line:#d6e5d8; --accent:#14783b; --accent-dark:#0f602e;
  --accent-light:#e8f7ed; --vv-brand:#2dbe64; --vv-action-ink:#12321e;
  --surface-muted:#f0f5f0; --surface-raised:#e8f2e8;
  --surface-blue:#e8f7ed; --surface-blue-raised:#d8efdf; --surface-blue-line:#a6cdb0;
  --input-bg:#fff; --input-focus-bg:#fbfefb; --input-line:#b5cdbb;
  --positive-bg:#e3f3e7; --positive-text:#205c35; --positive-line:#9ac5a7;
  --negative-bg:#fff0f0; --negative-text:#923333; --negative-line:#eab8b8;
  --warning-bg:#fff3c7; --warning-text:#70520b; --warning-line:#d5bd65;
  --purple-bg:#f1e8fa; --purple-text:#63379b; --purple-line:#c9b1e3;
  color:var(--ink); background:var(--bg);
}
html[data-theme="vv"] body { color:var(--ink); background:var(--bg); }
html[data-theme="vv"] :is(.sidebar,.topbar,.card,.panel,.account-card,.legal-page,dialog,
  .portal-menu,.portal-bottom-nav,.work-controls,.work-management,.work-move,.work-returns,
  .work-live,.chat-panel,.chat-toolbar,.chat-compose,.direct-compose,.chat-bubble,
  .schedule-mobile-person,.schedule-day-card,.notification-card,.screenshot-card,
  .direct-thread,.direct-inbox,.install-card,.modal-actions,.work-free-footer,.work-return-footer,
  .work-self-card,.work-personal-card,.work-free-actions,.work-return-actions,.summary>div,.table-card,.legal-card) {
  color:var(--ink); background:var(--white); border-color:var(--line);
}
html[data-theme="vv"] :is(.panel,.account-card,.card) { box-shadow:0 4px 24px #183d1f05; }
html[data-theme="vv"] :is(.account-page,.portal.account-page) { background:radial-gradient(ellipse at top,#e0f5e5,var(--bg) 65%); }
html[data-theme="vv"] .brand>img { filter:hue-rotate(-70deg); }
html[data-theme="vv"] :is(h1,h2,h3,strong,label) { color:var(--ink); }
html[data-theme="vv"] :is(p,.eyebrow,.nav-label,.breadcrumb,.breadcrumb strong,.muted,.small-muted,
  .account-footer,.account-login,.version,.workspace-footer,.queue-timestamp,.brand small,
  .chat-day,.chat-count,.chat-timezone,.chat-edited,.direct-heading p,.claim-comment time) { color:var(--muted); }
html[data-theme="vv"] :is(a,.text-button,.backup-link,.work-manage-name,.app-install-link,
  .password button,.account-password-toggle,.chat-you,.count-cell.has-count) { color:var(--accent); }
html[data-theme="vv"] :is(.sidebar nav a,.portal-nav-group>summary,.portal-setting,.portal-bottom-nav a,.portal-bottom-nav button,.tab) { color:var(--text-secondary); }
html[data-theme="vv"] :is(nav a:hover,.portal-nav-group>summary:hover,.portal-setting:hover,.chat-more:hover,.account-password-toggle:hover) { background:var(--surface-muted); }
html[data-theme="vv"] :is(nav a.active,.portal-nav-group.has-active>summary,.portal-bottom-nav a.active,.tab.active) { background:var(--accent-light); color:var(--accent); }
html[data-theme="vv"] .sidebar nav a.active { box-shadow:inset 3px 0 var(--vv-brand); }
html[data-theme="vv"] .portal-nav-children { border-color:var(--line); }
html[data-theme="vv"] :is(.sidebar nav .portal-icon,.portal-nav-group>summary>.portal-icon) { color:#65776a; }
html[data-theme="vv"] :is(.sidebar nav .active .portal-icon,.portal-nav-group.has-active>summary>.portal-icon) { color:var(--accent); }
html[data-theme="vv"] :is(.button,.icon-button,.schedule-mobile-settings,.schedule-period-control button) { color:var(--ink); background:var(--white); border-color:var(--input-line); }
html[data-theme="vv"] :is(.button.primary,.primary,.work-personal [data-work=choose]:enabled,
  .work-personal [data-work=choose]:disabled+[data-work=depart]:enabled,.schedule-mobile-day[aria-pressed=true]) {
  color:var(--vv-action-ink); background:var(--vv-brand); border-color:var(--vv-brand); box-shadow:0 3px 8px #1f7c3510;
}
html[data-theme="vv"] :is(.button.primary,.primary):hover:enabled { background:#25af58; border-color:#25af58; }
html[data-theme="vv"] .button:disabled { color:#6a796f; background:#edf2ed; border-color:var(--line); box-shadow:none; }
html[data-theme="vv"] :is(.button.danger,.danger-text,.error,.form-error) { color:var(--negative-text); }
html[data-theme="vv"] .button.danger { background:var(--negative-bg); border-color:var(--negative-line); }
html[data-theme="vv"] :is(.notification-count,.nav-count) { color:var(--vv-action-ink); background:var(--vv-brand); }
html[data-theme="vv"] :is(.pill,.local-card,.queue-position,.filter-bar,.queue-tabs,.queue-check,
  .work-summary,.work-self-timer,.work-return-hint,.work-self-help,.work-free-help,
  .work-personal-summary,.overview-strip,.route-center,.viewer-update,.notification-comparison>div,
  .schedule-week-rule,.schedule-export,.schedule-mode,.chat-log,.chat-recorder,.direct-bubble,.claim-comment,
  .avatar,.metric-icon,.step-label,.route-node,.route-tag,.person-avatar,.voice-avatar,.group-title,
  .work-order,.work-picker-option,.schedule-summary>div,.security-event,.work-free-presets button) {
  color:var(--text-secondary); background:var(--surface-muted); border-color:var(--line);
}
html[data-theme="vv"] :is(.work-summary b,.work-summary strong,.work-self-facts dd,.queue-position strong,.queue-position b) { color:var(--ink); }
html[data-theme="vv"] :is(.queue-position b,.chat-avatar,.chat-day span,.manual-badge,.notification-comparison>div:last-child,
  .schedule-current,.schedule-day-today .schedule-day-heading,.count-cell.has-count) { background:var(--accent-light); border-color:var(--line); }
html[data-theme="vv"] :is(.chat-topic.active,.chat-own .chat-bubble,.direct-bubble.own,.claim-comment.own,
  .direct-person.active,.direct-person:hover,.queue-tabs button[aria-selected=true],.queue-check.selected,
  .work-free-presets button[aria-pressed=true],.schedule-mode button[aria-pressed=true],.schedule-mobile-scope button[aria-pressed=true]) {
  color:var(--accent-dark); background:var(--accent-light); border-color:#a6cdb0;
}
html[data-theme="vv"] :is(.chat-bubble p,.direct-bubble p,.claim-comment p,.chat-toolbar,.chat-compose,.direct-compose,.chat-recorder) { color:var(--ink); }
html[data-theme="vv"] :is(.chat-bubble time,.direct-bubble time,.chat-toolbar small,.chat-recorder small,#chat-hint,.queue-footnote,.filter-bar .small-muted) { color:var(--muted); }
html[data-theme="vv"] .notification-unread { background:#f0faf3; border-left-color:var(--vv-brand); }
html[data-theme="vv"] .notification-new { color:var(--accent-dark); background:#d8efdf; }
html[data-theme="vv"] :is(body,.portal) :is(input,select,textarea) { color:var(--ink); -webkit-text-fill-color:var(--ink); caret-color:var(--accent); background:var(--input-bg); border-color:var(--input-line); accent-color:var(--accent); }
html[data-theme="vv"] :is(body,.portal) :is(input,select,textarea):focus { color:var(--ink); -webkit-text-fill-color:var(--ink); background:var(--input-focus-bg); border-color:var(--accent); outline-color:var(--accent); }
html[data-theme="vv"] :is(body,.portal) :is(input,textarea)::placeholder { color:var(--muted); -webkit-text-fill-color:var(--muted); opacity:1; }
html[data-theme="vv"] :is(body,.portal) input:autofill { -webkit-text-fill-color:var(--ink); box-shadow:0 0 0 1000px var(--input-bg) inset; }
html[data-theme="vv"] :focus-visible { outline-color:var(--accent); }
html[data-theme="vv"] :is(table,thead,th,td,.table-scroll,.table-wrap,.schedule-legend) { border-color:var(--line); }
html[data-theme="vv"] :is(th,thead,.schedule-name,.schedule-courier,.schedule-weekend,.schedule-day-heading) { color:var(--muted); background:var(--surface-muted); }
html[data-theme="vv"] :is(td,.schedule-table td,.overdue-table td) { color:var(--ink); background:var(--white); }
html[data-theme="vv"] :is(.schedule-table .schedule-total,.schedule-table thead th:last-child,.schedule-summary span) { color:var(--accent); }
html[data-theme="vv"] :is(.schedule-cell,.schedule-cell.off) { color:var(--muted); background:var(--surface-muted); border-color:var(--line); }
html[data-theme="vv"] .schedule-cell.shift { color:var(--accent); background:var(--accent-light); }
html[data-theme="vv"] :is(.schedule-cell,.schedule-day,.schedule-slot).start-eight,
html[data-theme="vv"] .schedule-mobile-person.start-eight b { color:var(--positive-text); background:var(--positive-bg); border-color:var(--positive-line); }
html[data-theme="vv"] :is(.schedule-cell,.schedule-day,.schedule-slot).start-ten,
html[data-theme="vv"] .schedule-mobile-person.start-ten b { color:var(--warning-text); background:var(--warning-bg); border-color:var(--warning-line); }
html[data-theme="vv"] :is(.schedule-cell.start-eight,.schedule-cell.start-ten) :is(strong,small) { color:inherit; }
html[data-theme="vv"] .work-route.occupied { color:var(--negative-text); background:var(--negative-bg); border-color:var(--negative-line); }
html[data-theme="vv"] .work-route.available { color:var(--positive-text); background:var(--positive-bg); border-color:var(--positive-line); }
html[data-theme="vv"] :is(.work-route.occupied,.work-route.available) :is(h3,p,strong) { color:inherit; }
html[data-theme="vv"] :is(.schedule-week-warnings,.schedule-week-warnings h2,.schedule-limit-badge,.work-notice,.role-preview-banner,.temporary-notice) { color:var(--warning-text); background:var(--warning-bg); border-color:var(--warning-line); }
html[data-theme="vv"] :is(.overdue-count.positive,.security-outcome.denied,.security-outcome.failure) { color:var(--negative-text); background:var(--negative-bg); border-color:var(--negative-line); }
html[data-theme="vv"] :is(.overdue-count.zero,.security-outcome.success,.pill.green,.work-live-row.ready .work-order) { color:var(--positive-text); background:var(--positive-bg); border-color:var(--positive-line); }
html[data-theme="vv"] :is(.pill.amber,.security-outcome.started) { color:var(--warning-text); background:var(--warning-bg); border-color:var(--warning-line); }
html[data-theme="vv"] :is(.connection-notice,.app-install-note,.app-install-status,#toast,.toast,#notice) { color:var(--text-secondary); background:var(--accent-light); border-color:var(--line); }
html[data-theme="vv"] :is(body>header,#workspace>header) { color:var(--ink); background:var(--white); border-color:var(--line); }
html[data-theme="vv"] .login .brand,html[data-theme="vv"] #workspace>header .brand { color:var(--accent); }
html[data-theme="vv"] .bars progress { accent-color:var(--accent); background:var(--vv-brand); }
html[data-theme="vv"] .bars progress::-webkit-progress-value { background:var(--vv-brand); }
html[data-theme="vv"] .bars progress::-webkit-progress-bar { background:var(--surface-muted); }
html[data-theme="vv"] :is(.app-install-link,.app-install-close,.app-install-platforms button,.app-install-dialog .app-install-note) { color:var(--accent); background:var(--accent-light); border-color:var(--line); }
html[data-theme="vv"] .app-install-platforms button[aria-pressed=true] { color:var(--accent-dark); border-color:var(--accent); }
html[data-theme="vv"] .portal .schedule-period-control button { color:var(--ink); background:var(--white); border-color:var(--line); }
html[data-theme="vv"] :is(.schedule-day-empty,.queue-check,.work-self-heading p,.work-self-next,.work-self-facts dt,.screenshot-card time) { color:var(--muted); }
html[data-theme="vv"] :is(.work-route.occupied,.work-route.available,.schedule-week-warnings,.work-notice,.role-preview-banner,.temporary-notice) :is(p,small,strong) { color:inherit; }
@media print {
  .theme-toggle,.theme-picker,.theme-page-tools,.theme-platform-tools { display:none!important; }
  .theme-picker::backdrop { display:none!important; }
  :root:is([data-theme="dark"],[data-theme="vv-dark"]),:root:is([data-theme="dark"],[data-theme="vv-dark"]) .portal,:root[data-theme="vv"],:root[data-theme="vv"] .portal {
    color-scheme:light; --bg:#fff; --white:#fff; --ink:#17324f; --muted:#405e7d;
    --text-secondary:#405e7d; --line:#c6d9eb; --accent:#176cc0; --accent-light:#e8f3ff;
    --surface-muted:#f2f7fd; --surface-raised:#edf4fc;
    --surface-blue:#e8f3ff; --surface-blue-raised:#d5e9ff; --surface-blue-line:#9dbbd8;
    --input-bg:#fff; --input-focus-bg:#fff; --input-line:#9dbbd8;
    --positive-bg:#e3f3e7; --positive-text:#205c35; --positive-line:#9ac5a7;
    --negative-bg:#ffeded; --negative-text:#8f2525; --negative-line:#efa4a4;
    --warning-bg:#fff3c7; --warning-text:#70520b; --warning-line:#d5bd65;
    --purple-bg:#f1e8fa; --purple-text:#63379b; --purple-line:#c9b1e3;
    --vv-brand:#e3f3e7; --vv-action-ink:#205c35;
  }
}
