/* Canonical Warm UI design system. All CRM surfaces use these semantic tokens.
   Accent paint is deliberately lighter than the accessible white-text CTA fill. */
:root {
  color-scheme: light;
  --crm-bg-page: #F4F3EE;
  --crm-bg-card: #FFFDF9;
  --crm-bg-soft: #F8F6F1;
  --crm-bg-subtle: #EFEEE8;
  --crm-text-primary: #2F3432;
  --crm-text-secondary: #66706C;
  --crm-text-muted: #929994;
  --crm-accent: #78958D;
  --crm-accent-hover: #6D8981;
  --crm-accent-strong: #58756E;
  --crm-accent-soft: #E7EEE8;
  --crm-accent-softer: #F0F4F1;
  --crm-accent-border: #AFC2BB;
  --crm-on-accent: #FFFFFF;
  --crm-border: #DDD8CD;
  --crm-border-soft: #E9E5DC;
  --crm-input-border: #D8D4CA;
  --crm-success: #3F8B65;
  --crm-success-text: #326E50;
  --crm-success-soft: #E7F2EB;
  --crm-warning: #C89532;
  --crm-warning-text: #80601C;
  --crm-warning-soft: #FAF0D8;
  --crm-info: #66869A;
  --crm-info-text: #4D6A7D;
  --crm-info-soft: #E7EFF3;
  --crm-purple: #8A7697;
  --crm-purple-soft: #F0EAF3;
  --crm-danger: #B65C4C;
  --crm-danger-text: #A24E40;
  --crm-danger-soft: #F8EAE6;
  --crm-terracotta: #B96B43;
  --crm-terracotta-text: #A05A35;
  --crm-terracotta-soft: #F6E9E0;
  --crm-table-head: #F0EFEA;
  --crm-table-text: #4C5551;
  --crm-table-hover: #F8F7F3;
  --crm-table-selected: #EDF2EE;
  --crm-radius-sm: 8px;
  --crm-radius-md: 12px;
  --crm-radius-lg: 16px;
  --crm-radius-xl: 20px;
  --crm-space-1: 4px;
  --crm-space-2: 8px;
  --crm-space-3: 12px;
  --crm-space-4: 16px;
  --crm-space-5: 20px;
  --crm-space-6: 24px;
  --crm-space-8: 32px;
  --crm-space-10: 40px;
  --crm-shadow-color: rgba(47,52,50,.08);
  --crm-shadow-card: 0 2px 8px rgba(47,52,50,.04);
  --crm-shadow-float: 0 8px 24px rgba(47,52,50,.09);
  --crm-overlay: rgba(47,52,50,.32);
  --crm-focus-ring: 0 0 0 3px rgba(120,149,141,.16);
  /* Compatibility aliases keep existing markup and interaction code intact. */
  --paper: var(--crm-bg-page);
  --card: var(--crm-bg-card);
  --ink: var(--crm-text-primary);
  --ink-soft: var(--crm-accent-soft);
  --ink-mid: var(--crm-accent);
  --text: var(--crm-text-primary);
  --sub: var(--crm-text-secondary);
  --rule: var(--crm-border);
  --ok: var(--crm-success-text);
  --ok-bg: var(--crm-success-soft);
  --warm: var(--crm-terracotta-text);
  --warm-bg: var(--crm-terracotta-soft);
  --late: var(--crm-terracotta-text);
  --late-bg: var(--crm-terracotta-soft);
  --accent: var(--crm-accent-strong);
  --warn: var(--crm-warning-soft);
}
*,*::before,*::after {box-sizing:border-box}
html {background:var(--crm-bg-page)}
body {background:var(--crm-bg-page);color:var(--crm-text-primary);accent-color:var(--crm-accent);-webkit-font-smoothing:antialiased}
body a {color:var(--crm-accent-strong)}
.crm-shell header#header{position:sticky;top:0;z-index:40;background:var(--card,var(--crm-bg-card));border-bottom:1px solid var(--rule,var(--crm-border))}
.crm-shell .bar{max-width:680px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:10px 16px 0;min-height:48px}
.crm-shell .brand{flex:1 1 auto;min-width:0;color:var(--ink,var(--crm-text-primary));font-size:15px;font-weight:600;line-height:1.35;white-space:nowrap}
.crm-shell .environment-badge{display:inline-block;margin-left:7px;padding:1px 6px;border-radius:var(--crm-radius-sm);background:var(--crm-terracotta-soft);color:var(--crm-terracotta);font-size:12px;font-weight:600;vertical-align:middle}
.crm-shell .identity{flex:0 1 auto;min-width:0;color:var(--sub,var(--crm-text-secondary));font-size:12.5px;line-height:1.3;text-align:right}
.crm-shell .identity b,.crm-shell .identity span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-shell .identity b{color:var(--text,var(--crm-text-primary));font-size:13px}
.crm-shell .manage{position:relative;flex:0 0 auto}
.crm-shell .manage summary{appearance:none;display:grid;place-items:center;width:36px;height:32px;border:1px solid var(--rule,var(--crm-border));border-radius:var(--crm-radius-sm);background:var(--card,var(--crm-bg-card));color:var(--ink,var(--crm-text-primary));font-size:21px;line-height:1;cursor:pointer;list-style:none}
.crm-shell .manage summary::-webkit-details-marker{display:none}
.crm-shell .manage-menu{position:absolute;right:0;top:38px;z-index:70;width:156px;padding:5px;background:var(--card,var(--crm-bg-card));border:1px solid var(--rule,var(--crm-border));border-radius:var(--crm-radius-md);box-shadow:var(--crm-shadow-float)}
.crm-shell .manage-menu button{display:block;width:100%;margin:0;padding:9px 10px;border:0;border-radius:var(--crm-radius-sm);background:none;color:var(--text,var(--crm-text-primary));font:inherit;font-size:14px;line-height:1.4;text-align:left;cursor:pointer}
.crm-shell .manage-menu button:hover{background:var(--ink-soft,var(--crm-accent-soft));color:var(--ink,var(--crm-text-primary))}
.crm-shell nav#primaryNav{width:100%;max-width:680px;margin:0 auto;display:flex;gap:20px;padding:0 16px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.crm-shell nav#primaryNav::-webkit-scrollbar{display:none}
.crm-shell nav#primaryNav button{flex:0 0 auto;min-width:44px;appearance:none;background:none;border:0;border-bottom:2px solid transparent;color:var(--sub,var(--crm-text-secondary));font:inherit;font-size:14.5px;padding:10px 4px;white-space:nowrap;cursor:pointer}
.crm-shell nav#primaryNav button[aria-selected=true]{color:var(--ink,var(--crm-text-primary));font-weight:600;border-bottom-color:var(--ink,var(--crm-text-primary))}
.crm-shell .nav-new-badge{display:inline-block;margin-left:4px;padding:0 4px;border-radius:var(--crm-radius-sm);background:var(--warm-bg,var(--crm-terracotta-soft));color:var(--warm,var(--crm-terracotta));font-size:10px;line-height:1.4}
.crm-shell .nav-count-badge{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:4px;padding:0 4px;border-radius:var(--crm-radius-md);background:var(--crm-terracotta);color:var(--crm-on-accent);font-size:11px;font-weight:700}
.crm-shell .hidden{display:none!important}
@media(max-width:520px){.crm-shell nav#primaryNav{gap:14px}.crm-shell .bar{padding-top:10px}}
@media(max-width:430px){.crm-shell nav#primaryNav{gap:12px}}
@media(max-width:420px){.crm-shell .brand{font-size:14px}.crm-shell .environment-badge{margin-left:4px;padding-inline:4px;font-size:11px}.crm-shell .identity{max-width:92px}}

.store-secondary{display:flex;gap:6px;justify-content:center;padding:6px 8px;background:var(--crm-bg-soft);border-bottom:1px solid var(--crm-border)}.store-secondary a{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:0 1 180px;min-width:0;text-decoration:none;color:var(--crm-text-secondary);font-size:13px;padding:7px 12px;border-radius:var(--crm-radius-sm);white-space:nowrap}.store-secondary a[aria-current=page]{background:var(--crm-accent-soft);color:var(--crm-accent-strong);font-weight:600}.store-secondary .nav-count-badge{margin-left:0}@media(max-width:430px){.store-secondary a{flex-basis:50%;padding-inline:6px;font-size:12.5px}}
.store-page-subtitle{margin:2px 0 0;color:var(--crm-text-secondary);font-size:13px;font-weight:400}
.announcement-filter{display:flex;gap:6px;margin:0 0 12px}.announcement-filter .chip{min-height:36px;padding:6px 12px}

/* Shared components: visual properties only; layout and interactive selectors
   (including handoff clamping and IME inputs) remain owned by their modules. */
main :is(h1,h2,h3),.pt :is(h1,h2,h3) {color:var(--crm-text-primary);font-weight:700;letter-spacing:-.015em}
main h1,.pt.pt-admin-main h1 {font-size:30px;line-height:1.3}
main :is(.heading,.today-head,.section-head,.performance-heading,.management-head,.editor-head) h1 {font-size:30px;line-height:1.3}
main h2,.pt h2 {font-size:23px;line-height:1.4}
main h3,.pt h3 {font-size:19px;line-height:1.4}
main :is(.card,.handoff-card,.announcement-card) h2 {font-size:19px}
main :is(.home-section-head,.work-section-head) h2 {font-size:22px}
main :is(.big,.performance-total,.today-stat b,.management-kpi b,.pt-score,.today-result b) {color:var(--crm-text-primary);font-variant-numeric:tabular-nums}

main :is(.card,.home-card,.panel,.form,.cust,.stat,.today-stat,.today-item,.work-card,.today-result,.today-service-card,.management-kpi,.personnel-card,.management-service-card,.audit-row,.performance-primary,.performance-section,.performance-summary>section,.service-summary>div,.day-card,.pt-card) {
  background:var(--crm-bg-card);border-color:var(--crm-border);border-radius:var(--crm-radius-lg);box-shadow:var(--crm-shadow-card);
}
.pt .pt-card {background:var(--crm-bg-card);border-radius:var(--crm-radius-lg);box-shadow:var(--crm-shadow-card)}
body .pt .pt-card {border-radius:var(--crm-radius-lg)}
.pt .pt-hero {background:var(--crm-bg-card);border-top:3px solid var(--crm-accent)}
.performance-primary {border-top:3px solid var(--crm-accent)}
.performance-breakdown>span {padding:var(--crm-space-3);border-radius:var(--crm-radius-md);background:var(--crm-bg-soft);line-height:1.7}
.performance-breakdown>span b {color:var(--crm-accent-strong)}
.performance-track>div,.deployment-progress-value,.pt .pt-bar i {background:var(--crm-accent)}
.today-stat {min-height:104px}
main .today-stat b {font-size:28px;color:var(--crm-text-primary)}
.today-stat span {color:var(--crm-text-secondary)}
.today-stat.warning {border-color:var(--crm-border)}
.today-stat.warning b {color:var(--crm-terracotta-text)}
.today-stat:hover {border-color:var(--crm-accent);background:var(--crm-bg-soft)}
.work-card.red {--work-color:var(--crm-terracotta)}

body :is(.btn,.chip,.pt button,.pt .pt-link,.schedule-link,.toolbar button,.switcher button,.choice button,.preset,.month-nav button,.view-toggle button) {
  border-radius:var(--crm-radius-md);border-color:var(--crm-border);background:var(--crm-bg-card);color:var(--crm-text-primary);
}
body :is(.btn.primary,.pt .pt-primary,button.primary) {
  background:var(--crm-accent-strong);border-color:var(--crm-accent-strong);color:var(--crm-on-accent);font-weight:600;
}
body :is(.btn.primary,.pt .pt-primary,button.primary):hover:not(:disabled) {background:var(--crm-text-primary);border-color:var(--crm-text-primary)}
body :is(.btn.ghost,.pt button,.schedule-link,.chip):hover:not(:disabled) {background:var(--crm-accent-softer)}
body .pt .pt-primary:hover:not(:disabled) {background:var(--crm-text-primary)}
body :is(.btn.danger,.pt .pt-close,.destructive,.btn.warm,.remove) {color:var(--crm-danger-text);border-color:var(--crm-danger);background:var(--crm-danger-soft)}
body :is(.chip[aria-pressed=true],.choice button[aria-pressed=true],.preset[aria-pressed=true],.view-toggle button[aria-pressed=true],.management-tabs button[aria-selected=true],.customer-picker-scope button[aria-pressed=true],.switcher button[aria-pressed=true]) {
  background:var(--crm-accent-soft);color:var(--crm-accent-strong);border-color:var(--crm-accent-border);font-weight:600;
}
.management-tabs {grid-template-columns:repeat(5,minmax(0,1fr));padding:var(--crm-space-1);border-radius:var(--crm-radius-md)}
.crm-shell nav#primaryNav button[aria-selected=true] {color:var(--crm-accent-strong);border-bottom-color:var(--crm-accent)}
.crm-shell nav#primaryNav button {border-radius:0}
.crm-shell .brand {color:var(--crm-text-primary)}
.crm-shell .environment-badge,.environment-badge,.stage {background:var(--crm-terracotta-soft);color:var(--crm-terracotta-text)}
.crm-shell .nav-new-badge {background:var(--crm-terracotta-soft);color:var(--crm-terracotta-text)}
.crm-shell .nav-count-badge {background:var(--crm-terracotta-text);color:var(--crm-on-accent)}
.store-secondary a[aria-current=page] {background:var(--crm-accent-soft);color:var(--crm-accent-strong)}

body :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea) {
  background:var(--crm-bg-card);color:var(--crm-text-primary);border:1px solid var(--crm-input-border);border-radius:var(--crm-radius-md);min-height:44px;font-size:16px;padding:10px 12px;
}
body :is(input,select,textarea):focus {border-color:var(--crm-accent);box-shadow:var(--crm-focus-ring)}
body #q {width:100%;min-height:48px}
main :is(.sec,.editor-section) {padding:var(--crm-space-5);margin-bottom:var(--crm-space-4);background:var(--crm-bg-card);border:1px solid var(--crm-border);border-radius:var(--crm-radius-lg)}
body :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible {
  outline:2px solid var(--crm-accent-strong);outline-offset:3px;box-shadow:var(--crm-focus-ring);
}
body input::placeholder,body textarea::placeholder {color:var(--crm-text-secondary);opacity:1}
body :is(button,input,select,textarea):disabled {cursor:not-allowed}
body :is(input[type=checkbox],input[type=radio]) {accent-color:var(--crm-accent-strong)}

main table {background:var(--crm-bg-card);color:var(--crm-text-primary)}
main :is(th,thead td) {background:var(--crm-table-head);color:var(--crm-table-text)}
main :is(td,th) {border-color:var(--crm-border-soft)}
main tbody tr:hover {background:var(--crm-table-hover)}
.month-grid thead th,.month-grid th:first-child {background:var(--crm-table-head)}
.month-grid .today-col {background:var(--crm-accent-softer)}
.month-grid .is-me {border-left-color:var(--crm-accent)}

.handoff-card.today {border-left-color:var(--crm-accent)}
.handoff-date-badge.today {background:var(--crm-info-soft);color:var(--crm-info-text)}
.handoff-card.tomorrow {border-left-color:var(--crm-warning)}
.handoff-date-badge.tomorrow {background:var(--crm-warning-soft);color:var(--crm-warning-text)}
.card.important {border-left-color:var(--crm-terracotta)}
.handoff-inline .actions>.btn,.announcement-card :is([data-home-ack-announcement],[data-ack-announcement]) {background:var(--crm-accent-softer);color:var(--crm-accent-strong);border-color:var(--crm-accent-border)}
.handoff-inline .actions>.btn:disabled {background:var(--crm-success-soft);color:var(--crm-success-text);opacity:1}
.handoff-success,.pt .pt-success {color:var(--crm-success-text)}
.WORK .dot {background:var(--crm-success)}
.OFF .dot,.UNASSIGNED .dot {background:var(--crm-text-muted)}
.TRAINING .dot {background:var(--crm-warning)}
.MEETING .dot {background:var(--crm-info)}
.SUPPORT .dot {background:var(--crm-terracotta)}
.LEAVE .dot {background:var(--crm-purple)}
.notification-card {background:var(--crm-warning-soft);border-left-color:var(--crm-warning)}

body :is(.customer-picker-sheet,.choice-dialog,.today-sheet) {background:var(--crm-bg-card);border-color:var(--crm-border);box-shadow:var(--crm-shadow-float)}
.customer-picker-sheet,.choice-dialog {border-radius:var(--crm-radius-xl)}
.today-sheet {border-radius:var(--crm-radius-xl) var(--crm-radius-xl) 0 0}
.customer-picker-backdrop,.choice-dialog-backdrop,.today-modal {background:var(--crm-overlay)}
.toast,#schedule-feedback:not(:empty) {background:var(--crm-accent-soft);color:var(--crm-text-primary);border:1px solid var(--crm-accent-border);box-shadow:var(--crm-shadow-float)}
.editor-error,.service-error,.error,.pt .pt-error {background:var(--crm-danger-soft);color:var(--crm-danger-text);border-color:var(--crm-danger);border-radius:var(--crm-radius-sm)}
.deployment-status.warn,.deployment-confirm {background:var(--crm-warning-soft);border-color:var(--crm-warning);color:var(--crm-warning-text)}
.deployment-progress-value.failed {background:var(--crm-danger)}
body #deploymentRollback {color:var(--crm-danger-text);border-color:var(--crm-danger);background:var(--crm-danger-soft)}
.notice,.warn {background:var(--crm-warning-soft);color:var(--crm-warning-text);border-color:var(--crm-border)}
.empty,.placeholder {background:var(--crm-bg-card);color:var(--crm-text-secondary);border-color:var(--crm-border);border-radius:var(--crm-radius-lg)}
@media(max-width:600px) {
  main h1,.pt.pt-admin-main h1,main :is(.heading,.today-head,.section-head,.performance-heading,.management-head,.editor-head) h1 {font-size:27px}
  main :is(.home-section-head,.work-section-head) h2 {font-size:21px}
  body :is(.btn,.chip,.pt button,.toolbar button,.switcher button) {min-height:44px}
  .today-stat {min-height:108px}
  .customer-picker-sheet,.choice-dialog {border-radius:var(--crm-radius-xl) var(--crm-radius-xl) 0 0}
}
@media(prefers-reduced-motion:reduce) {
  .toast,.deployment-progress-value,.today-stat {transition:none}
}
