:root {
  --wine: #000; --wine-dark: #242424;
  --brick: #8c3b28; --muted-green: #807668; --warm-white: #d7d1c3;
  --bs-danger-rgb: 0, 0, 0;
  --bs-warning: #8c3b28; --bs-warning-rgb: 140, 59, 40;
  --bs-success: #807668; --bs-success-rgb: 128, 118, 104;
  --bs-white: #d7d1c3; --bs-white-rgb: 215, 209, 195;
  --bs-body-bg: #d7d1c3;
}
body.bg-light, .bg-light { background-color: var(--warm-white) !important; }
.card, .card-body, .card-footer, .dropdown-menu, .table,
.form-control, .form-select, .simple-search-cancel { background-color: var(--warm-white) !important; }
.bg-white { background-color: var(--warm-white) !important; }
.navbar-dark .navbar-brand, .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { color: var(--warm-white); }
.topbar-control:hover, .topbar-control:focus { color: #000; background: var(--warm-white); border-color: var(--warm-white); }
.text-bg-warning, .bg-warning { color: var(--warm-white) !important; background-color: var(--brick) !important; }
.btn-warning {
  --bs-btn-color: #d7d1c3; --bs-btn-bg: #8c3b28; --bs-btn-border-color: #8c3b28;
  --bs-btn-hover-color: #d7d1c3; --bs-btn-hover-bg: #743122; --bs-btn-hover-border-color: #743122;
}
.alert-warning { --bs-alert-color: #d7d1c3; --bs-alert-bg: #8c3b28; --bs-alert-border-color: #8c3b28; }
.text-warning { color: var(--brick) !important; }
.text-bg-success, .bg-success { color: var(--warm-white) !important; background-color: var(--muted-green) !important; }
.btn-success {
  --bs-btn-color: #d7d1c3; --bs-btn-bg: #807668; --bs-btn-border-color: #807668;
  --bs-btn-hover-color: #d7d1c3; --bs-btn-hover-bg: #6d6559; --bs-btn-hover-border-color: #6d6559;
}
.alert-success { --bs-alert-color: #d7d1c3; --bs-alert-bg: #807668; --bs-alert-border-color: #807668; }
.text-success { color: var(--muted-green) !important; }
.alert-info {
  --bs-alert-color: #d7d1c3;
  --bs-alert-bg: #8c3b28;
  --bs-alert-border-color: #8c3b28;
}
.bg-wine { background-color: #000; }
.btn-danger {
  --bs-btn-bg: #000; --bs-btn-border-color: #000;
  --bs-btn-hover-bg: #242424; --bs-btn-hover-border-color: #242424;
  --bs-btn-active-bg: #242424; --bs-btn-active-border-color: #242424;
}
.btn-outline-danger {
  --bs-btn-color: #000; --bs-btn-border-color: #000;
  --bs-btn-hover-bg: #000; --bs-btn-hover-border-color: #000;
  --bs-btn-active-bg: #242424; --bs-btn-active-border-color: #242424;
}
.alert-danger {
  --bs-alert-color: #d7d1c3; --bs-alert-bg: #000; --bs-alert-border-color: #000;
}
.logout-form { flex: 0 0 auto; margin-left: auto; }
.navbar.sticky-top { z-index: 1030; box-shadow: 0 2px 10px rgba(0, 0, 0, .16); }
.navbar .container.app-navbar-grid {
  display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px;
  align-items: center; gap: 10px;
}
.app-navbar-grid .navbar-brand { justify-self: center; margin: 0; white-space: nowrap; }
.app-menu-wrap { justify-self: start; }
.topbar-control {
  display: grid; place-items: center; width: 36px; height: 36px; min-height: 36px;
  padding: 0; border: 1px solid var(--warm-white); border-radius: 9px;
  color: var(--warm-white); background: transparent;
}
.topbar-control svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.menu-toggle .bottle-icon { width: 25px; height: 25px; }
.logout-button .wine-glass-icon { width: 25px; height: 25px; }
.app-menu { min-width: 190px; margin-top: 8px !important; padding: 8px; border-radius: 12px; }
.app-menu .dropdown-item { padding: 9px 12px; border-radius: 8px; font-size: .92rem; }
.app-menu .dropdown-item:active { color: var(--warm-white); background: #000; }
.brand-main { font-size: 1.4em; line-height: 1; }
.brand-connector { font-size: 1em; font-weight: 500; }
.staff-progress-title { font-size: 1.05rem; font-weight: 600; }
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: #8c3b28;
  box-shadow: 0 0 0 .25rem rgba(140, 59, 40, .25);
}
.form-check-input:checked { background-color: #8c3b28; border-color: #8c3b28; }
.form-range { accent-color: #8c3b28; }
.btn:focus-visible, a:focus-visible, [role="button"]:focus-visible {
  outline: 2px solid #8c3b28;
  outline-offset: 2px;
  box-shadow: 0 0 0 .2rem rgba(140, 59, 40, .2);
}
.lesson-create-icon {
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px;
  color: var(--warm-white); text-decoration: none; transition: transform .15s ease, background-color .15s ease;
}
.lesson-create-icon:hover, .lesson-create-icon:focus { color: var(--warm-white); transform: translateY(-1px); }
.lesson-create-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.lesson-create-manual { background: var(--brick); border: 1px solid var(--brick); }
.lesson-create-manual:hover, .lesson-create-manual:focus { background: #743122; }
.lesson-create-ai { background: var(--muted-green); border: 1px solid var(--muted-green); }
.lesson-create-ai:hover, .lesson-create-ai:focus { background: #6d6559; }
.lesson-filter-icon, .lesson-search-icon {
  display: grid; place-items: center; width: 36px; height: 36px; padding: 0;
  color: #8c3b28; background: transparent; border: 1px solid #8c3b28; border-radius: 9px;
}
.lesson-filter-icon:hover, .lesson-filter-icon:focus, .lesson-filter-icon.is-active,
.lesson-search-icon:hover, .lesson-search-icon:focus, .lesson-search-icon.is-active {
  color: var(--warm-white); background: #8c3b28;
}
.lesson-filter-icon svg, .lesson-search-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.lesson-filter-menu { min-width: 130px; padding: 7px; border-radius: 10px; }
.lesson-filter-menu .dropdown-item { padding: 8px 11px; border-radius: 7px; }
.lesson-filter-menu .dropdown-item.active, .lesson-filter-menu .dropdown-item:active { color: var(--warm-white); background: #8c3b28; }
.lesson-search-panel { width: 100%; }
.lesson-search-field { display: flex; align-items: center; height: 48px; padding: 0 14px; color: var(--warm-white); background: var(--muted-green); border-radius: 999px; }
.lesson-search-field svg { flex: 0 0 auto; width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.lesson-search-field input { flex: 1 1 auto; min-width: 0; height: 100%; padding: 0 9px; color: var(--warm-white); background: transparent; border: 0; outline: 0; font-size: 16px; }
.lesson-search-field input::placeholder { color: var(--warm-white); opacity: .78; }
.lesson-search-field input::-webkit-search-cancel-button { filter: grayscale(1); }
.management-action-icon {
  display: inline-grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px;
  padding: 0; border-radius: 9px; text-decoration: none; background: transparent;
}
.management-action-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.edit-action-icon { color: #8c3b28; border: 1px solid #8c3b28; }
.edit-action-icon:hover, .edit-action-icon:focus { color: var(--warm-white); background: #8c3b28; }
.delete-action-icon { color: #000; border: 1px solid #000; }
.delete-action-icon:hover, .delete-action-icon:focus { color: var(--warm-white); background: #000; }
.publish-status-published { color: var(--warm-white) !important; background: #8c3b28 !important; border: 1px solid #8c3b28 !important; opacity: 1 !important; }
.publish-status-unpublished { color: var(--warm-white) !important; background: var(--muted-green) !important; border: 1px solid var(--muted-green) !important; opacity: 1 !important; }
.publish-settings-icon { color: var(--warm-white); background: #000; border: 1px solid #000; }
.publish-settings-icon:hover, .publish-settings-icon:focus { color: #000; background: var(--warm-white); }
.unpublish-action-icon { color: #8c3b28; background: transparent; border: 1px solid #8c3b28; }
.unpublish-action-icon:hover, .unpublish-action-icon:focus { color: var(--warm-white); background: #8c3b28; }
.logout-button { font-size: .58rem; line-height: 1; white-space: nowrap; }
.query-button { background-color: #000; border-color: #000; }
.query-button:hover, .query-button:focus { background-color: #242424; border-color: #242424; }
.simple-search-row { display: flex; align-items: center; gap: 12px; width: 100%; }
.simple-search-field {
  display: flex; align-items: center; flex: 1 1 auto; min-width: 0; height: 52px;
  padding: 0 14px; border-radius: 999px; background: var(--muted-green);
}
.simple-search-submit {
  display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 40px;
  padding: 0; border: 0; color: var(--warm-white); background: transparent;
}
.simple-search-submit svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.simple-search-field input {
  flex: 1 1 auto; min-width: 0; height: 100%; padding: 0 6px; border: 0; outline: 0;
  color: var(--warm-white); background: transparent; font-size: 17px;
}
.simple-search-field input::placeholder { color: var(--warm-white); opacity: .78; }
.simple-search-field select {
  flex: 0 0 auto; max-width: 92px; height: 34px; padding: 0 24px 0 10px;
  border: 0; border-left: 1px solid var(--warm-white); outline: 0; color: var(--warm-white);
  background-color: transparent; font-size: 14px;
}
.growth-progress { color: var(--warm-white) !important; font-size: .62em; vertical-align: middle; }
.monthly-training-score { color: #D7D1C3 !important; background: #8C3B28 !important; font-size: .62em; vertical-align: middle; }
.training-score-history { padding: .85rem; border: 1px solid #8C3B28; border-radius: .9rem; }
.monthly-score-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(4.5rem,1fr)); gap: .45rem; }
.monthly-score-item { display: flex; flex-direction: column; align-items: center; padding: .5rem .25rem; border: 1px solid #807668; border-radius: .65rem; color: #000; text-decoration: none; }
.monthly-score-item.active { color: #D7D1C3; background: #8C3B28; border-color: #8C3B28; }
.monthly-score-item span { font-size: .72rem; }
.monthly-score-item strong { font-size: .86rem; }
.annual-score-list { display: grid; gap: .45rem; }
.annual-score-list div { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: .65rem; padding: .65rem .75rem; border-radius: .65rem; background: #807668; }
.annual-score-list small { color: #D7D1C3; }
.btn-wine { color: var(--warm-white); background-color: var(--wine); border-color: var(--wine); }
.btn-wine:hover { color: var(--warm-white); background-color: var(--wine-dark); border-color: var(--wine-dark); }
.text-wine { color: var(--wine); }
.task-card { overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; border-left: 5px solid transparent !important; }
.task-card:hover { transform: translateY(-2px); }
.admin-lesson-card { cursor: pointer; }
.admin-lesson-card .task-image-wrap { background: #8c3b28; border: 3px solid #8c3b28; }
.status-border-unread { border-left-color: var(--muted-green) !important; }
.status-border-opened { border-left-color: var(--brick) !important; }
.status-border-completed { border-left-color: #000 !important; }
.staff-task-list .status-border-unread .task-image-wrap { background: #807668; }
.staff-task-list .status-border-completed .task-image-wrap { background: #000; }
.staff-task-list .task-status-unread { color: var(--warm-white) !important; background: #807668 !important; }
.lesson-image { display: block; width: 100%; height: auto; object-fit: contain; }
.content-text { white-space: pre-line; font-size: 17px; line-height: 1.7; }
.paste-recognize-panel { background: #f2f2f2; border: 1px dashed #8c8c8c; }
.lesson-pitch-preview { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.quiz-panel { color: var(--warm-white); background: var(--brick); border: 1px solid var(--brick); }
.quiz-option { color: #212529; background: var(--warm-white); border: 1px solid #aaa294; cursor: pointer; }
.quiz-option:has(input:checked) { border-color: var(--wine); background: #f2f2f2; }
.quiz-option-correct, .quiz-option-correct:has(input:checked) { color: var(--warm-white); border-color: var(--muted-green); background: var(--muted-green); }
.task-image-wrap { position: relative; overflow: hidden; background: #eee; border: .5px solid #111; box-sizing: border-box; }
.task-wine-image {
  display: block; width: 100%; height: 220px; object-fit: cover; object-position: center bottom;
  object-position: var(--card-image-x, 50%) var(--card-image-y, 80%);
  transform: scale(var(--card-image-scale, 1)) rotate(var(--card-image-rotation, 0deg));
}
.task-wine-placeholder { height: 220px; background: linear-gradient(135deg, #f2f2f2, #ddd); font-size: 4rem; }
.admin-lesson-card .task-image-wrap.dish-empty-card,
.task-image-wrap.dish-empty-card { border: 2px solid var(--wine); background: #eee9df; }
.dish-empty-card .task-wine-placeholder,
.lesson-image-placeholder.dish-placeholder-surface { background: #eee9df; }
.dish-placeholder-icon { width: min(42%, 132px); height: auto; fill: none; stroke: #343434; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.dish-placeholder-dots { stroke-width: 7; }
.dish-empty-card .winery-name-overlay { background: transparent; color: #292724; text-shadow: none; }
.dish-empty-card .card-winery-name { color: #292724; }
.dish-empty-card .card-wine-name { color: #6f675d; opacity: 1; }
.dish-empty-card .lesson-editor-credit { position: absolute; right: .9rem; bottom: .75rem; color: #6f675d; }
.winery-name-overlay {
  position: absolute; left: 0; right: 0; bottom: 0; padding: .7rem .9rem;
  color: var(--warm-white); font-weight: 700; line-height: 1.25;
  background: linear-gradient(transparent, rgba(25, 9, 15, .88));
  text-shadow: 0 1px 2px rgba(0, 0, 0, .55);
}
.card-winery-name { font-size: 1.15rem; font-weight: 800; margin-bottom: .2rem; }
.card-wine-name { font-size: .9rem; font-weight: 600; opacity: .9; }
.lesson-editor-credit { display: flex; align-items: center; justify-content: flex-end; gap: .2rem; margin-top: .3rem; font-size: .66rem; font-weight: 500; opacity: .78; }
.lesson-editor-credit svg { width: .78rem; height: .78rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.admin-photo-preview { width: 140px; height: 140px; object-fit: cover; }
.card-image-gesture-frame { position: relative; height: 260px; overflow: hidden; background: #ddd; border: .5px solid #111; touch-action: none; cursor: grab; user-select: none; }
.card-image-gesture-frame:active { cursor: grabbing; }
.card-image-position-preview {
  display: block; width: 100%; height: 100%; object-fit: cover;
  object-position: var(--card-image-x, 50%) var(--card-image-y, 80%);
  transform: scale(var(--card-image-scale, 1)) rotate(var(--card-image-rotation, 0deg));
  pointer-events: none; user-select: none;
}
.card-image-position-panel { background: #f4f4f4; border: 1px solid #dedede; }
.btn-outline-wine { color: var(--wine); border-color: var(--wine); }
.btn-outline-wine:hover { color: var(--warm-white); background: var(--wine); border-color: var(--wine); }
.pronunciation-button {
  width: 28px; min-width: 28px; min-height: 28px;
  padding: .18rem;
  font-size: .7rem;
  line-height: 1;
  font-weight: 700;
  border-radius: 50%;
  touch-action: manipulation;
}
.regulation-pronunciation { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin: .8rem 0; }
.regulation-pronunciation .pronunciation-message { flex-basis: 100%; }
.english-introduction { padding-top: 1rem; border-top: 1px solid #e4e4e4; }
.english-speech-button { min-height: 28px; padding: .18rem .42rem; font-size: .7rem; line-height: 1.15; }
.detail-winery-name { color: #212529; font-size: 1.75rem; font-weight: 750; line-height: 1.2; }
.detail-wine-name { color: #6c757d; font-size: 1rem; font-weight: 600; }
.compendium-document { overflow-x: auto; line-height: 1.7; overflow-wrap: anywhere; }
.compendium-document table { border-collapse: collapse; width: 100%; margin: 1rem 0; font-size: .9rem; }
.compendium-document th,.compendium-document td { border: 1px solid #807668; padding: .5rem; min-width: 90px; }
.compendium-document img { max-width: 100%; height: auto; }
.compendium-document h1,.compendium-document h2,.compendium-document h3 { margin-top: 1.5rem; }
.lesson-swipe-stage { position: relative; width: 100%; perspective: 1200px; }
.lesson-swipe-stage.has-adjacent::before,.lesson-swipe-stage.has-adjacent::after { content: ""; position: absolute; inset: .45rem -.15rem -.45rem .45rem; z-index: 0; border: 1px solid #807668; border-radius: 1.1rem; background: #D7D1C3; box-shadow: 0 .35rem .9rem rgba(0,0,0,.12); pointer-events: none; }
.lesson-swipe-stage.has-adjacent::after { inset: .85rem -.35rem -.85rem .85rem; z-index: -1; opacity: .55; }
.learning-flip-card { position: relative; z-index: 1; perspective: 1400px; width: 100%; border-radius: 1rem; transform-origin: center bottom; will-change: transform, opacity; }
.learning-flip-card.is-swipe-dragging,.learning-flip-card.is-swipe-committing { box-shadow: 0 0 0 4px #8C3B28, 0 .8rem 1.8rem rgba(0,0,0,.24); }
.learning-flip-card.is-swipe-returning { transition: transform .22s cubic-bezier(.2,.8,.3,1), opacity .22s ease; }
.learning-flip-card.is-swipe-committing { transition: transform .24s cubic-bezier(.4,0,.8,.4), opacity .2s ease; }
.learning-flip-inner { position: relative; width: 100%; height: clamp(760px, calc(100dvh - 1rem), 980px); transform-style: preserve-3d; transition: transform .65s cubic-bezier(.2,.75,.25,1); }
.learning-flip-card.is-flipped .learning-flip-inner { transform: rotateY(180deg); }
.learning-card-face { position: absolute; inset: 0 auto auto 0; width: 100%; height: 100%; overflow-y: auto; overscroll-behavior: contain; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.learning-card-front { transform: rotateY(0deg); }
.learning-card-back { transform: rotateY(180deg); }
.learning-card-face[aria-hidden="true"] { pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .learning-flip-card.is-swipe-returning,.learning-flip-card.is-swipe-committing { transition-duration: .01ms; } }
.lesson-image-placeholder { width: 100%; height: 360px; background: linear-gradient(135deg, #f2f2f2, #ddd); font-size: 5rem; }
.lesson-image-placeholder .dish-placeholder-icon { width: min(36%, 180px); }
.task-filter-controls { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(120px, .8fr); gap: .6rem; align-items: end; }
.task-filter-actions { display: flex; gap: .5rem; justify-content: flex-end; }
.publishing-employee-card { transition: transform .15s ease, box-shadow .15s ease; }
.publishing-employee-card:hover { transform: translateY(-2px); }
.publish-employee-groups { display: grid; gap: .7rem; }
.publish-employee-group { overflow: hidden; border: 1px solid #b76350; border-radius: .85rem; background: rgba(255,255,255,.2); }
.publish-employee-group summary { display: flex; align-items: center; gap: .75rem; min-height: 3.2rem; padding: .75rem 1rem; color: #242424; cursor: pointer; list-style: none; font-weight: 800; }
.publish-employee-group summary::-webkit-details-marker { display: none; }
.publish-employee-group summary::after { content: "⌄"; margin-left: .1rem; color: #8c3b28; font-size: 1.15rem; line-height: 1; transition: transform .18s ease; }
.publish-employee-group[open] summary::after { transform: rotate(180deg); }
.publish-employee-group summary small { margin-left: auto; color: #6f675d; font-size: .85rem; font-weight: 500; }
.publish-employee-group summary:focus-visible { outline: 3px solid #8c3b28; outline-offset: -3px; }
.publish-employee-group-body { display: grid; gap: .65rem; padding: .8rem 1rem 1rem; border-top: 1px solid rgba(140,59,40,.22); }
.publish-group-select-all { position: relative; display: grid; place-items: center; flex: 0 0 auto; width: 1.15rem; height: 1.15rem; padding: 0; border: 1px solid #a35240; border-radius: .3rem; background: transparent; color: transparent; font-size: .72rem; font-weight: 800; line-height: 1; }
.publish-group-select-all::before { content: ""; position: absolute; inset: -.4rem; }
.publish-group-select-all[aria-pressed="true"] { background: #8c3b28; color: #fff; }
.publish-group-select-all:hover { border-color: #8c3b28; background: rgba(140,59,40,.08); }
.publish-group-select-all[aria-pressed="true"]:hover { background: #743221; }
.publish-group-select-all:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
.publish-employee-option { margin: 0; min-width: 0; }
.publish-employee-option .form-check-label { overflow-wrap: anywhere; }
.publish-employee-empty { color: #6f675d; font-size: .88rem; }
.publish-stat { flex: 1 1 0; display: flex; align-items: baseline; gap: .45rem; padding: .65rem .75rem; border-radius: 10px; }
.publish-stat strong { font-size: 1.35rem; }
.publish-stat span { font-size: .82rem; }
.publish-stat.received { color: var(--warm-white); background: var(--muted-green); }
.publish-stat.unreceived { color: var(--warm-white); background: #8c3b28; }
.publishing-unreceived-badge { color: var(--warm-white); background: #8c3b28; opacity: 1; }
.publishing-view-button { color: var(--warm-white) !important; background: #807668 !important; border-color: #807668 !important; }
.task-status-unread { color: var(--warm-white) !important; background: #8c3b28 !important; }
.task-status-completed { color: var(--warm-white) !important; background: #000 !important; }
.dashboard-page .progress { background-color: #8c3b28 !important; border: .5px solid #8c3b28; }
.dashboard-page .progress-bar { background-color: #807668 !important; border-color: #807668 !important; }
.dashboard-page .table > :not(caption) > * > * { border-bottom-color: #8c3b28; }
.dashboard-page .task-card { border: .5px solid #8c3b28 !important; background: #8c3b28 !important; }
.dashboard-page .task-image-wrap, .dashboard-page .task-wine-placeholder { background: #8c3b28; border-color: #8c3b28; }
.admin-growth-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.admin-growth-month { display: flex; align-items: center; gap: .65rem; }
.admin-growth-month a { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border: 1px solid #8c3b28; border-radius: .65rem; color: #8c3b28; font-size: 1.45rem; line-height: 1; text-decoration: none; }
.admin-growth-summary { display: grid; grid-template-columns: repeat(auto-fit,minmax(130px,1fr)); gap: .75rem; margin-bottom: 1rem; }
.admin-growth-summary article { min-width: 0; padding: .8rem .9rem; border: 1px solid #8c3b28; border-radius: .8rem; background: #d7d1c3; }
.admin-growth-summary span, .admin-growth-summary strong { display: block; }
.admin-growth-summary span { color: #615950; font-size: .76rem; }
.admin-growth-summary strong { margin-top: .15rem; color: #252525; font-size: clamp(1.05rem,2.5vw,1.45rem); }
.admin-growth-incomplete strong, .admin-growth-incomplete-count { color: #8c3b28; }
.admin-growth-completed strong, .admin-growth-completed-count { color: #456451; }
.admin-growth-folders { margin-top: 1.5rem; }
.admin-growth-folders-heading { margin-bottom: .5rem; }
.admin-task-folder-label { display: inline-block; margin: 0 .25rem .35rem; color: #d7d1c3; font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.store-department-groups { display: grid; gap: .75rem; }
.store-department-group { overflow: hidden; border: 1px solid #8c3b28; border-radius: .85rem; }
.store-department-group > summary { display: grid; grid-template-columns: minmax(0,1fr) minmax(190px,.8fr) auto; align-items: center; gap: 1rem; padding: .85rem 1rem; cursor: pointer; list-style: none; background: #d7d1c3; }
.store-department-group > summary::-webkit-details-marker { display: none; }
.store-department-group > summary::marker { content: ''; }
.store-department-group > summary > span:first-child { display: grid; gap: .15rem; }
.store-department-group > summary strong { font-size: 1.05rem; }
.store-department-group > summary small { color: #615950; }
.store-department-group > summary::after { content: '⌄'; justify-self: end; color: #8c3b28; font-size: 1.25rem; }
.store-department-group[open] > summary::after { transform: rotate(180deg); }
.store-department-rate { display: grid; grid-template-columns: minmax(100px,1fr) auto; align-items: center; gap: .55rem; }
.store-department-rate .progress { min-width: 100px; }
.store-department-empty { margin: 0; padding: 1rem; color: #615950; }
.store-department-group .table-responsive { border-top: 1px solid #8c3b28; }
@media (max-width: 767px) { .admin-growth-heading { align-items: flex-start; flex-direction: column; } .admin-growth-summary { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 575px) { .store-department-group > summary { grid-template-columns: minmax(0,1fr) auto auto; gap: .55rem; } .store-department-rate { grid-template-columns: auto; } .store-department-rate .progress { display: none; } }
.dashboard-back-icon {
  display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px;
  color: var(--warm-white); background: #8c3b28; border: 1px solid #8c3b28; border-radius: 10px;
}
.dashboard-back-icon:hover, .dashboard-back-icon:focus { color: var(--warm-white); background: #743122; }
.dashboard-back-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.back-arrow-only { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; flex: 0 0 auto; }
.work-group-heading-icon { display: block; width: 56px; height: 56px; fill: none; stroke: #8c3b28; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.lesson-floating-back { position: fixed; z-index: 1040; right: max(.55rem, env(safe-area-inset-right)); bottom: max(.55rem, env(safe-area-inset-bottom)); width: 2.5rem; height: 2.5rem; min-height: 2.5rem !important; border-radius: .75rem; box-shadow: 0 .2rem .55rem rgba(0,0,0,.26); }
.lesson-floating-back svg { width: 1.25rem; height: 1.25rem; }
.lesson-floating-back:focus-visible { outline: 3px solid #000; outline-offset: 3px; }
.lesson-editor-page .card, .lesson-editor-page .card-body, .lesson-editor-page .card-footer,
.lesson-editor-page .form-control, .lesson-editor-page .form-control.bg-light,
.lesson-editor-page .paste-recognize-panel, .lesson-editor-page .card-image-position-panel {
  color: #212529;
  background: #d7d1c3 !important;
  border-color: #d7d1c3 !important;
}
.lesson-editor-page .form-control { border: 1px solid #000 !important; }
.lesson-editor-page .form-control.bg-light,
.lesson-editor-page #sales_pitch_en { border: 1px solid #000 !important; }
.lesson-editor-page .form-control:focus { border-color: #000 !important; box-shadow: 0 0 0 .2rem rgba(0, 0, 0, .18); }
.lesson-editor-page .paste-recognize-panel, .lesson-editor-page .card-image-position-panel,
.lesson-editor-page .card-image-gesture-frame { border: 1px solid #000 !important; }
.lesson-editor-page .form-control::placeholder { color: #6c665b; opacity: .8; }
.lesson-editor-page .form-text, .lesson-editor-page .text-muted { color: #5f5a50 !important; opacity: 1; }
.lesson-editor-page .recognize-fill-button {
  color: var(--warm-white) !important;
  background: #807668 !important;
  border-color: #807668 !important;
}
.lesson-editor-page .recognize-fill-button:hover,
.lesson-editor-page .recognize-fill-button:focus {
  color: var(--warm-white) !important;
  background: #6f685b !important;
  border-color: #6f685b !important;
}
.lesson-editor-page input[type="file"]::file-selector-button {
  color: #212529 !important;
  background: #d7d1c3 !important;
  border-color: #d7d1c3 !important;
}
.ai-lesson-create-page input[type="file"]::file-selector-button {
  color: var(--warm-white) !important;
  background: #8c3b28 !important;
  border-color: #8c3b28 !important;
}
.lesson-editor-page input[type="file"]::-webkit-file-upload-button {
  color: #212529 !important;
  background: #d7d1c3 !important;
  border-color: #d7d1c3 !important;
}
.ai-lesson-create-page input[type="file"]::-webkit-file-upload-button {
  color: var(--warm-white) !important;
  background: #8c3b28 !important;
  border-color: #8c3b28 !important;
}
.publish-check-placeholder { display: inline-grid; place-items: center; width: 1.25rem; height: 1.25rem; border-radius: 50%; color: var(--warm-white); background: var(--muted-green); font-size: .75rem; flex: 0 0 auto; }
.min-width-0 { min-width: 0; }
.permission-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.store-access-fieldset { padding: 1rem; border: 1px solid rgba(139, 72, 48, .22); border-radius: 1rem; }
.schedule-scope-controls { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; flex-wrap: wrap; }
.store-scope-selector label { display: flex; align-items: center; gap: .55rem; color: var(--muted); font-weight: 700; }
.store-scope-selector select { min-height: 2.75rem; padding: .45rem 2.2rem .45rem .8rem; border: 1px solid var(--wine); border-radius: .75rem; background: var(--paper); color: var(--ink); }
.store-scope-name { color: var(--wine); }
.permission-choice { margin: 0; padding: .75rem .75rem .75rem 3rem; border: 1px solid #dee2e6; border-radius: 10px; }
.permission-summary { display: flex; flex-wrap: wrap; gap: .3rem; }
.permission-summary span { color: var(--warm-white) !important; padding: .18rem .42rem; border-radius: 999px; background: #8c3b28; font-size: .75rem; white-space: nowrap; }
.navbar .container { flex-wrap: nowrap; }
.nav-actions { min-width: 0; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
.nav-actions::-webkit-scrollbar { display: none; }
.nav-actions .btn { flex: 0 0 auto; white-space: nowrap; font-size: clamp(.68rem, 1.15vw, .875rem); padding: clamp(.22rem, .45vw, .36rem) clamp(.34rem, .7vw, .62rem); }
@media (max-width: 575.98px) {
  .navbar .container { align-items: center; flex-wrap: nowrap; }
  .navbar-brand { font-size: 1rem; padding-top: .45rem; }
  .card-body { padding: 1rem; }
}

/* iPhone 15 Pro Max and similarly sized phones: 430 CSS px wide. */
@media (max-width: 430px) {
  html { font-size: 16px; }
  body { padding-bottom: env(safe-area-inset-bottom); overflow-x: hidden; }
  .container { width: 100%; max-width: 100%; padding-left: 12px; padding-right: 12px; }
  .navbar { padding-top: max(.6rem, env(safe-area-inset-top)); margin-bottom: 1rem !important; }
  .navbar .container { display: flex; align-items: center; gap: 8px; }
  .navbar .container.app-navbar-grid { display: grid; grid-template-columns: 36px minmax(0, 1fr) 36px; gap: 8px; }
  .navbar-brand { display: block; flex: 0 0 auto; margin: 0; font-size: clamp(.76rem, 3.4vw, 1rem); }
  .staff-progress-title { font-size: .95rem; gap: .35rem !important; }
  .nav-actions { flex: 1 1 auto; min-width: 0; justify-content: flex-start; gap: 6px !important; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .nav-actions::-webkit-scrollbar { display: none; }
  .nav-actions > span { display: none !important; }
  .nav-actions .btn { min-height: 30px; white-space: nowrap; padding: .28rem clamp(.3rem, 1.4vw, .48rem); font-size: clamp(.62rem, 2.65vw, .76rem); }
  .nav-actions form { flex: 0 0 auto; }
  .logout-form { justify-self: end; margin-left: 0; }
  .topbar-control { width: 34px; height: 34px; min-height: 34px; border-radius: 8px; }
  .logout-button { font-size: .56rem; }

  h1.h3 { font-size: 1.45rem; }
  .card { border-radius: 14px; }
  .card-body { padding: 14px; }
  .task-card { border-radius: 16px; }
  .task-wine-image, .task-wine-placeholder { height: 245px; }
  .winery-name-overlay { padding: 1.8rem .9rem .75rem; }
  .card-winery-name { font-size: 1.18rem; }
  .card-wine-name { font-size: .9rem; }
  .task-card .card-body { padding: 14px; }
  .task-card h2 { font-size: 1.15rem; }

  .form-control, .form-select { min-height: 46px; font-size: 16px; }
  textarea.form-control { min-height: 130px; }
  .btn:not(.btn-sm) { min-height: 46px; }
  .btn-lg { min-height: 50px !important; font-size: 1.05rem; }
  .quiz-option { padding: 12px !important; line-height: 1.45; }
  .quiz-option .form-check-input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; }
  .pronunciation-button { min-height: 26px; padding: .16rem .34rem; font-size: .66rem; }
  .detail-winery-name { font-size: 1.5rem; }
  .detail-wine-name { font-size: .95rem; }
  .learning-flip-inner { height: max(760px, calc(100dvh - 5rem)); transition-duration: .5s; }
  .lesson-image-placeholder { height: 245px; }
  .task-filter-controls { grid-template-columns: minmax(0, 1.55fr) minmax(112px, .9fr); gap: 8px; }
  .task-filter-controls .form-label { font-size: .85rem; margin-bottom: 4px; }
  .task-filter-actions .btn { flex: 1 1 0; }

  .table { font-size: .9rem; }
  .table > :not(caption) > * > * { padding: .7rem .55rem; }
  .progress { min-width: 92px; height: 12px; }
  .employee-progress-row td:first-child { min-width: 130px; }
  main.container { padding-bottom: calc(2rem + env(safe-area-inset-bottom)); }
  .permission-grid { grid-template-columns: 1fr; }
  .simple-search-row { gap: 8px; }
  .simple-search-field { height: 48px; padding: 0 9px; }
  .simple-search-submit { width: 30px; }
  .simple-search-submit svg { width: 24px; height: 24px; }
  .simple-search-field input { padding: 0 4px; font-size: 16px; }
  .simple-search-field select { max-width: 76px; padding-left: 7px; padding-right: 18px; font-size: 12px; }
}
.brick-icon-button { width: 2.6rem; height: 2.6rem; border-radius: .7rem; display: inline-flex; align-items: center; justify-content: center; background: #8C3B28; color: #D7D1C3; font-size: 1.8rem; line-height: 1; text-decoration: none; }
.supplier-index-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.supplier-title-summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: .3rem 1rem; min-width: 0; }
.supplier-total-counts { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2rem .45rem; color: #5d574d; font-size: .85rem; }
.supplier-total-counts span { white-space: nowrap; }
.supplier-total-counts strong { color: #292724; font-weight: 600; }
.supplier-index-heading > .brick-icon-button { flex: 0 0 auto; }
.supplier-open-folder { position: relative; width: 100%; min-width: 0; padding: 2.7rem clamp(.65rem,2.5vw,1.25rem) 1.15rem; border-radius: 1.25rem; background: #000; box-shadow: 0 .7rem 1.5rem rgba(0,0,0,.25); }
.supplier-folder-label { position: absolute; top: .65rem; left: clamp(.9rem,3vw,1.5rem); color: #D7D1C3; font-size: .9rem; font-weight: 800; letter-spacing: .08em; }
.supplier-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: .55rem; width: 100%; }
.supplier-letter-group { position: relative; min-width: 0; }
.supplier-letter-group:not([open]) { padding-bottom: .35rem; }
.supplier-letter-group:not([open])::before,.supplier-letter-group:not([open])::after { content: ""; position: absolute; left: .25rem; right: .25rem; top: .15rem; height: 3.35rem; border: 1px solid #807668; border-radius: .65rem; clip-path: polygon(0 0,27% 0,36% 30%,98% 30%,100% 37%,98% 100%,2% 100%,0 91%); background: #c7c0b2; pointer-events: none; }
.supplier-letter-group:not([open])::before { transform: translateY(.45rem); opacity: .7; }
.supplier-letter-group:not([open])::after { left: .12rem; right: .12rem; transform: translateY(.22rem); opacity: .9; }
.supplier-letter-summary { position: relative; z-index: 1; display: block; width: 100%; height: 3.35rem; padding: .4rem .75rem; border: 1px solid #807668; border-radius: .65rem; clip-path: polygon(0 0,27% 0,36% 30%,98% 30%,100% 37%,98% 100%,2% 100%,0 91%); background: #D7D1C3; color: #000; cursor: pointer; list-style: none; }
.supplier-letter-summary::-webkit-details-marker { display: none; }
.supplier-letter-summary::marker { display: none; content: ""; }
.supplier-letter-summary:focus-visible { outline: 3px solid #8C3B28; outline-offset: 2px; }
.supplier-letter-preview { display: block; width: 60%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(.75rem,2.7vw,.92rem); font-weight: 800; }
.supplier-letter-initial { position: absolute; top: .95rem; right: .05rem; display: grid; place-items: center; width: 31%; height: 1.65rem; padding-left: 10%; clip-path: polygon(22% 0,100% 0,96% 100%,0 100%); background: #000; color: #D7D1C3; font-size: .78rem; }
.supplier-letter-group[open] .supplier-letter-summary { background: #8C3B28; border-color: #8C3B28; color: #D7D1C3; }
.supplier-letter-group[open] .supplier-letter-preview { display: none; }
.supplier-letter-items { display: grid; grid-template-columns: minmax(0,1fr); padding: .15rem .1rem .45rem; }
.supplier-card { position: relative; display: flex; align-items: end; gap: clamp(.6rem,2vw,1rem); min-width: 0; min-height: 5.25rem; margin-top: -.3rem; padding: 1.65rem clamp(.75rem,2vw,1rem) .7rem; border: 0; border-radius: .65rem; clip-path: polygon(0 0,27% 0,36% 22%,98% 22%,100% 28%,98% 100%,2% 100%,0 92%); background: #D7D1C3; color: #000; box-shadow: 0 -.12rem .25rem rgba(0,0,0,.16); }
.supplier-card:first-child { margin-top: 0; }
.supplier-card:nth-child(even) { background: #e3ded4; }
.supplier-card:focus-within { outline: 3px solid #8C3B28; outline-offset: 2px; }
.supplier-card-link { flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: clamp(.6rem,2vw,1rem); color: #000; text-decoration: none; }
.supplier-card-link strong { min-width: 0; overflow-wrap: anywhere; font-size: clamp(1rem,1.4vw,1.15rem); }
.supplier-card-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: .15rem .45rem; min-width: 0; }
.supplier-updated { max-width: 100%; color: #5d574d; font-size: .74rem; line-height: 1.5; font-weight: 400; }
.supplier-updated time { white-space: nowrap; }
.supplier-card-link span { white-space: nowrap; }
.supplier-card span,.supplier-wine-meta,.supplier-wine-name-en { color: #5d574d; font-size: .84rem; }
/* Keep the supplier controls in place; only the results pane scrolls. */
body.supplier-detail-page { display: flex; flex-direction: column; height: 100vh; height: 100dvh; overflow: hidden; padding-bottom: 0; }
.supplier-detail-page > .navbar { flex: 0 0 auto; margin-bottom: .75rem !important; }
.supplier-detail-page > main.container { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; padding-bottom: max(.5rem, env(safe-area-inset-bottom)) !important; }
.supplier-detail-page > main > .alert { flex: 0 0 auto; max-height: 20vh; overflow: auto; }
.supplier-detail-layout { display: flex; flex-direction: column; flex: 1 1 0; min-width: 0; min-height: 0; gap: .75rem; }
.supplier-detail-toolbar { display: flex; flex-direction: column; flex: 0 1 auto; min-height: 0; max-height: 65%; overflow: auto; gap: .75rem; }
.supplier-detail-toolbar > * { flex-shrink: 0; margin-bottom: 0 !important; }
.supplier-detail-toolbar h1 { overflow-wrap: anywhere; }
.supplier-detail-toolbar .supplier-add-file { min-width: 0; }
.supplier-detail-toolbar #supplier-more-status { overflow-wrap: anywhere; }
.supplier-detail-results { flex: 1 1 0; min-height: 0; min-width: 0; overflow: auto; overscroll-behavior-y: contain; scrollbar-gutter: stable; padding: .2rem .2rem .75rem; scroll-padding-block: .25rem; -webkit-overflow-scrolling: touch; }
.supplier-detail-results:focus-visible { outline: 2px solid #8C3B28; outline-offset: -2px; border-radius: .5rem; }
@media (max-width: 575px) {
  .supplier-detail-page > .navbar { margin-bottom: .5rem !important; }
  .supplier-detail-layout, .supplier-detail-toolbar { gap: .5rem; }
  .supplier-detail-toolbar .supplier-add-file { gap: .45rem; }
  .supplier-detail-toolbar .supplier-add-file > .form-check-label { flex: 1 1 12rem; min-width: 0; }
  .supplier-detail-toolbar .supplier-add-file > .btn { padding: .4rem .7rem; font-size: .85rem; }
}
.supplier-wine-list { display: grid; gap: .75rem; }
.supplier-wine-card { padding: 1rem; border: 1px solid #8C3B28; border-radius: 1rem; background: #D7D1C3; }
.supplier-wine-name-en-primary { font-size: 1.03rem; font-weight: 700; overflow-wrap: anywhere; }
.supplier-wine-title-line { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; }
.supplier-name-badge { display: inline-flex; padding: .16rem .48rem; border-radius: 999px; background: #8C3B28; color: #D7D1C3; font-size: .68rem; font-weight: 600; white-space: nowrap; }
.supplier-wine-name-cn-secondary { margin-top: .18rem; color: #5d574d; font-size: .88rem; }
.supplier-delete-icon { flex: none; width: 2.75rem; height: 2.75rem; font-size: 1.15rem; }
.supplier-add-file { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.supplier-add-file input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.supplier-file-button { width: 2.5rem; height: 2.5rem; border-radius: .65rem; display: inline-flex; align-items: center; justify-content: center; background: #8C3B28; color: #D7D1C3; font-size: 1.7rem; cursor: pointer; }
.supplier-bulk-actions { display: flex; align-items: center; gap: .7rem; padding: .55rem .7rem; border: 1px solid #8C3B28; border-radius: .8rem; }
.supplier-select-all { padding: .38rem .7rem; color: #D7D1C3; background: #807668; border: 0; border-radius: .6rem; font-size: .8rem; }
.supplier-wine-checkbox { flex: none; width: 1.15rem; height: 1.15rem; border-color: #8C3B28; }
.supplier-wine-checkbox:checked { background-color: #8C3B28; border-color: #8C3B28; }
.supplier-wine-meta { margin-top: .45rem; }
.supplier-price-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .8rem; }
.supplier-price-grid div { display: flex; flex-direction: column; padding: .65rem .75rem; border-radius: .7rem; background: #807668; color: #D7D1C3; }
.supplier-price-grid span { font-size: .72rem; }
.supplier-price-grid strong { margin-top: .1rem; font-size: 1.05rem; color: #000; }
.supplier-price-history { margin-top: .7rem; padding-top: .65rem; border-top: 1px solid #8C3B28; font-size: clamp(.72rem, 2.8vw, .86rem); }
.supplier-history-title { font-weight: 700; margin-bottom: .35rem; }
.supplier-history-row { display: grid; grid-template-columns: minmax(7.6rem, 1.2fr) minmax(5.2rem, .8fr) minmax(5.2rem, .8fr); gap: .45rem; padding: .22rem 0; }
.supplier-history-row time { color: #5f5a52; }

.regulation-shell { max-width: 760px; margin: 0 auto; }
/* Incomplete folder: a photo mosaic rather than the completed photo carousel. */
.task-photo-folders #task-status-incomplete .task-mosaic-tile > strong,.task-photo-folders #task-status-incomplete .task-mosaic-tile > span { display: none; }
.task-photo-folders #task-status-incomplete .task-mosaic { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); grid-auto-flow: row dense; grid-auto-rows: calc(var(--folder-height,75dvh) / 3); gap: 4px; overflow-x: hidden; overflow-y: auto; scroll-snap-type: none; touch-action: pan-y; background: #212529; border-radius: .5rem; }
.task-photo-folders #task-status-incomplete .task-mosaic { grid-auto-rows: auto; align-content: start; }
.task-photo-folders #task-status-incomplete .task-file-item { grid-column: span 3; width: auto; min-width: 0; height: auto; aspect-ratio: 7 / 10; }
.task-photo-folders #task-status-incomplete .task-file-item:nth-child(4n + 1),.task-photo-folders #task-status-incomplete .task-file-item:nth-child(4n + 4) { grid-column: span 3; }
.task-photo-folders #task-status-incomplete .task-file-item:nth-child(4n + 2),.task-photo-folders #task-status-incomplete .task-file-item:nth-child(4n + 3) { grid-column: span 3; }
.task-photo-folders #task-status-incomplete .task-mosaic-tile { border-radius: .3rem; padding: .75rem; justify-content: flex-start; }
.task-photo-folders #task-status-incomplete .task-mosaic-tile strong { font-size: 1.05rem; line-height: 1.2; }
.task-photo-folders #task-status-incomplete .task-mosaic-tile:has(.task-folder-photo)::after { background: linear-gradient(rgba(0,0,0,.72),rgba(0,0,0,.05) 55%,rgba(0,0,0,.28)); }
.task-photo-folders #task-status-incomplete .task-mosaic-symbol { min-height: 70px; order: 0; }
.task-photo-folders { padding: .3rem 0; }
.task-photo-folders .task-status-panel { width: 96%; height: var(--folder-height,75dvh); min-height: 0; padding: .5rem; overflow: hidden; display: flex; flex-direction: column; }
.task-photo-folders .task-status-panel.is-active { transform: none; }
.task-photo-folders .task-status-panel.is-behind { transform: translate3d(4%,.3rem,-4rem) scale(.98); }
.task-folder-controls { display: flex; gap: .4rem; padding: .25rem 0 .6rem; flex: none; }
.task-folder-controls button { border: 1px solid #D7D1C3; border-radius: .5rem; padding: .3rem .65rem; background: transparent; color: #D7D1C3; }
.task-folder-controls button[aria-pressed=true] { background: #D7D1C3; color: #212529; }
.task-photo-folders .task-mosaic { flex: 1; min-height: 0; display: flex; gap: 5px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; touch-action: pan-x; padding: 0; }
.task-photo-folders .task-letter-group,.task-photo-folders .task-letter-items { display: contents; }
.task-photo-folders .task-letter-summary { display: none; }
.task-photo-folders .task-file-item { flex: 0 0 88%; min-width: 0; height: 100%; scroll-snap-align: start; }
.task-photo-folders .task-mosaic-tile { position: relative; height: 100%; min-height: 0; justify-content: flex-end; padding: 1rem; background: #D7D1C3; border: 0; isolation: isolate; }
.task-folder-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.task-photo-folders .task-mosaic-tile:has(.task-folder-photo)::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 45%,rgba(0,0,0,.85)); z-index: -1; }
.task-photo-folders .task-mosaic-tile:has(.task-folder-photo) strong,.task-photo-folders .task-mosaic-tile:has(.task-folder-photo) > span { color: #fff; }
.task-photo-folders .task-mosaic-tile:has(.task-folder-photo) .task-mosaic-symbol { display: none; }
.task-photo-folders .task-mosaic-symbol { order: -1; }
.task-mosaic .task-letter-group { margin: 0 0 .8rem; padding: 0; }
.task-mosaic .task-letter-summary { height: auto; padding: .25rem .1rem .5rem; clip-path: none; border: 0; border-radius: 0; box-shadow: none; background: transparent !important; color: #D7D1C3 !important; }
.task-mosaic .task-letter-preview { display: none; }
.task-mosaic .task-file-letter { position: static; display: block; width: auto; height: auto; padding: 0; clip-path: none; background: transparent; color: #D7D1C3; }
.task-mosaic .task-letter-items { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; padding: 0; }
.task-mosaic .task-file-item { margin: 0; padding: 0; transform: none; }
.task-mosaic .task-mosaic-tile { display: flex; flex-direction: column; min-height: 230px; height: 100%; padding: .8rem; clip-path: none; border: 2px solid #212529; border-radius: .35rem; box-shadow: none; color: #212529; overflow: hidden; }
.task-mosaic .task-mosaic-tile strong { display: block; position: static; max-width: 100%; font-size: 1rem; line-height: 1.2; white-space: normal; overflow-wrap: anywhere; }
.task-mosaic .task-mosaic-tile > span { display: block; margin-top: .25rem; font-size: .85rem; line-height: 1.3; color: #414541; white-space: normal; }
.task-mosaic-symbol { display: grid; place-items: center; flex: 1; min-height: 115px; margin-top: .7rem; opacity: .65; }
.task-mosaic-symbol svg { width: 90px; height: 90px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.task-mosaic .tile-tone-0 { background: #a7b4df; }
.task-mosaic .tile-tone-1 { background: #eaeae1; }
.task-mosaic .tile-tone-2 { background: #b984e8; }
.task-mosaic .tile-tone-3 { background: #c9e889; }
.task-mosaic .tile-tone-4 { background: #a9cdc1; }
.task-mosaic .tile-tone-5 { background: #ebbcdb; }
.task-mosaic-tile:focus-visible { outline: 3px solid #D7D1C3; outline-offset: 1px; }
@media (min-width: 768px) { .task-mosaic .task-letter-items { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.regulation-page-contents { padding: .75rem 1rem; margin: 0 0 1.8rem; background: rgba(128,118,104,.17); }
.regulation-page-contents a { display: block; padding: .45rem 0; color: #212529; text-decoration: none; font-size: 1.08rem; line-height: 1.5; }
.regulation-page-contents a:hover,.regulation-page-contents a:focus { color: #8C3B28; text-decoration: underline; }
.regulation-page-contents h2 { margin: 1rem 0 .3rem; color: #8C3B28; }
.regulation-page-contents summary { display: flex; align-items: baseline; gap: .55rem; padding: .35rem 0; cursor: pointer; list-style: none; font-size: 1.08rem; }
.regulation-page-contents summary::-webkit-details-marker { display: none; }
.regulation-page-contents summary::before { content: '›'; font-size: 1.5rem; line-height: 1; transform-origin: center; }
.regulation-page-contents details[open] > summary::before { transform: rotate(90deg); }
.regulation-page-contents summary a { display: inline; padding: 0; }
.regulation-tree-children { margin-left: 1.3rem; }
.regulation-page-contents .regulation-tree-leaf { padding: .35rem 0 .35rem 1.25rem; }
.regulation-tree-root > summary { padding: .45rem .55rem; color: #D7D1C3; background: #8C3B28; border-radius: .35rem; }
.regulation-tree-group { color: #8C3B28; font-size: .85rem; margin: .8rem 0 .25rem; }
.regulation-shell .icon-back-button { color: #8C3B28; text-decoration: none; }
.regulation-shell .icon-back-button:hover,.regulation-shell .icon-back-button:focus { color: #743122; }
.regulations-minimal.bg-light { background: #D7D1C3 !important; }
.regulations-minimal .regulation-shell { padding: .5rem .25rem; }
.regulation-main-title { margin: 0 0 1.4rem; color: #212529; font-family: inherit; font-size: clamp(1.35rem, 4vw, 1.65rem); font-weight: 700; }
.regulation-search { display: flex; align-items: center; gap: .65rem; margin-bottom: 2rem; padding: .6rem .8rem; min-height: 52px; border-radius: .8rem; background: #807668; }
.regulation-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: #D7D1C3; font-size: 1.05rem; }
.regulation-search input::placeholder { color: #D7D1C3; }
.regulation-search-submit { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; flex: none; border: 0; background: transparent; color: #D7D1C3; }
.regulation-search-submit svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.3; }
.regulation-search:focus-within { outline: 2px solid #8C3B28; outline-offset: 2px; }
.regulation-search-clear { color: #D7D1C3; font-size: 1.5rem; text-decoration: none; }
.regulation-browse-label { margin: 0 0 .6rem; color: #8C3B28; font-size: .85rem; font-weight: 700; }
.regulations-minimal .regulation-country-grid { gap: 0; }
.regulations-minimal .regulation-country-card,.regulations-minimal .regulation-list a { padding: .85rem .15rem; min-height: 48px; border: 0; border-radius: 0; background: transparent; color: #242629; font-size: 1.15rem; }
.regulations-minimal .regulation-country-card:hover,.regulations-minimal .regulation-list a:hover { color: #8C3B28; background: rgba(128,118,104,.1); }
.regulations-minimal .regulation-directory-entry { padding: .75rem .15rem; border-bottom: 1px solid rgba(128,118,104,.3); }
.regulations-minimal .regulation-directory-entry summary { cursor: pointer; font-weight: 500 !important; }
.regulations-minimal .regulation-reading-card { border: 0; background: transparent; padding: 0; border-radius: 0; }
.regulation-country-grid { display: grid; gap: .8rem; }
.regulation-country-card,.regulation-list a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #8C3B28; border-radius: 1rem; background: #D7D1C3; color: #000; text-decoration: none; }
.regulation-country-code { display: grid; place-items: center; width: 3rem; height: 3rem; flex: none; border-radius: 50%; color: #D7D1C3; background: #8C3B28; font-weight: 800; }
.regulation-country-card span:nth-child(2) { display: flex; flex: 1; flex-direction: column; }
.regulation-country-card small,.regulation-list small { display: block; margin-top: .15rem; color: #5d574d; font-size: .78rem; }
.regulation-section h2,.regulation-reading-card h2,.regulation-sources h2 { font-size: 1rem; font-weight: 800; }
.regulation-list { display: grid; gap: .55rem; }
.regulation-list a { padding: .85rem 1rem; border-radius: .75rem; }
.regulation-eyebrow { color: #8C3B28; font-size: .72rem; font-weight: 800; letter-spacing: .06em; }
.regulation-lead { padding: 1rem; border-left: 4px solid #8C3B28; background: #807668; color: #D7D1C3; line-height: 1.75; }
.regulation-reading-card { padding: 1rem; border: 1px solid #000; border-radius: .9rem; background: #D7D1C3; }
.regulation-reading-card li { margin: .65rem 0; line-height: 1.65; }
.regulation-memory-card { margin-top: 1rem; padding: 1rem; border-radius: .9rem; background: #8C3B28; color: #D7D1C3; }
.regulation-memory-card span { font-size: .72rem; font-weight: 800; }
.regulation-memory-card p { margin: .35rem 0 0; line-height: 1.65; }
.regulation-sources { display: grid; gap: .5rem; margin-top: 1.25rem; }
.regulation-sources a { color: #000; text-decoration-color: #8C3B28; }
.regulation-disclaimer { margin-top: 1.5rem; color: #5d574d; font-size: .72rem; line-height: 1.6; }
.content-type-grid { position: relative; z-index: 1; display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: clamp(.45rem, 2vw, .75rem); width: 100%; overflow-x: auto; scrollbar-width: none; }
.content-type-grid::-webkit-scrollbar { display: none; }
.work-groups { max-width: 960px; margin: 1.25rem auto 3rem; }
.work-groups-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 0 0 1.1rem; }
.work-groups-eyebrow { margin: 0 0 .25rem; color: #8c3f2e; font-size: .72rem; font-weight: 800; letter-spacing: .18em; }
.work-groups-heading h2 { margin: 0; color: #222; font-size: clamp(1.55rem, 4vw, 2.35rem); font-weight: 750; }
.work-groups-heading > span { color: #766f65; font-size: .88rem; white-space: nowrap; }
.work-groups-list { display: grid; gap: .65rem; }
.work-group { overflow: hidden; border: 1px solid #a35240; border-radius: 18px; background: #e8e3d7; }
.work-group summary { display: flex; align-items: center; gap: 1rem; min-height: 82px; padding: 1rem 1.35rem; cursor: pointer; list-style: none; }
.work-group summary::-webkit-details-marker { display: none; }
.work-group summary:focus-visible, .work-group-task:focus-visible { outline: 3px solid #a35240; outline-offset: -3px; }
.work-group-number { color: #9b4b38; font-size: .8rem; font-weight: 800; letter-spacing: .08em; }
.work-group summary strong { min-width: 0; flex: 1; color: #252525; font-size: clamp(1.15rem, 3vw, 1.45rem); }
.work-group-count { color: #726b62; font-size: .86rem; white-space: nowrap; }
.work-group-chevron { color: #8c3f2e; font-size: 1.7rem; line-height: 1; transition: transform .2s; }
.work-group[open] .work-group-chevron { transform: rotate(180deg); }
.work-group-body { padding: 0 1.35rem 1.2rem 3.55rem; }
.work-group-task { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 0; border-top: 1px solid #cbc2b4; color: #292929; text-decoration: none; }
.work-group-task:hover { color: #8c3f2e; }
.work-group-task small, .work-group-empty { color: #756d63; }
.work-group-empty { margin: 0; padding: .85rem 0; border-top: 1px solid #cbc2b4; }
.work-group-schedule-link { color: #8c3f2e; font-weight: 700; }
.admin-work-folder-cabinet { gap: .2rem; padding: 1.15rem 1rem 1.35rem; border-radius: 1.5rem; background: #050505; box-shadow: 0 .8rem 1.8rem rgba(0,0,0,.18); }
.admin-work-folder { overflow: visible; border: 0; border-radius: 0; background: transparent; }
.admin-work-folder > summary { position: relative; min-height: 4.25rem; padding: .75rem 1.15rem .95rem; overflow: hidden; border: 1px solid #807668; border-radius: .7rem .7rem .5rem .5rem; background: #d7d1c3; clip-path: polygon(0 0,27% 0,36% 24%,98% 24%,100% 31%,98% 100%,2% 100%,0 91%); box-shadow: 0 -.12rem .25rem rgba(0,0,0,.22); }
.admin-work-folder > summary strong { align-self: flex-start; padding-top: .05rem; font-size: clamp(.95rem,2.5vw,1.2rem); }
.admin-work-folder > summary .work-group-count { margin-left: auto; padding: 1rem 2.2rem 0 .5rem; color: #514c45; }
.admin-work-folder > summary .work-group-chevron { position: absolute; right: 1.15rem; bottom: .7rem; font-size: 1.35rem; }
.admin-work-folder[open] > summary { background: #eee9df; }
.admin-work-folder > .work-group-body { margin: -.15rem .65rem .35rem; padding: .45rem 1rem .65rem; border-radius: 0 0 .75rem .75rem; background: #d7d1c3; }
.admin-work-folder .work-group-task,.admin-work-folder .work-group-empty { border-top-color: #a79f92; }
.admin-store-feature-list { display: grid; gap: .75rem; }
.admin-store-feature { overflow: hidden; border: 1px solid #9d412d; border-radius: 1rem; background: #d7d1c3; }
.admin-store-feature > summary { display: flex; align-items: center; gap: .8rem; padding: 1rem 1.15rem; cursor: pointer; list-style: none; background: #9d412d; color: #f4efe6; }
.admin-store-feature > summary::-webkit-details-marker,.admin-store-data-folder > summary::-webkit-details-marker { display: none; }
.admin-store-feature > summary strong { flex: 1; font-size: 1.15rem; }
.admin-store-feature > summary small { opacity: .82; }
.admin-store-feature > summary > span,.admin-store-data-folder > summary > span { transition: transform .2s; }
.admin-store-feature[open] > summary > span,.admin-store-data-folder[open] > summary > span { transform: rotate(180deg); }
.admin-store-feature-body { display: grid; gap: .35rem; padding: .7rem; background: #090909; }
.admin-store-data-folder { margin-top: .35rem; overflow: hidden; border: 1px solid #aaa193; border-radius: .55rem; background: #e9e4da; }
.admin-store-data-folder > summary { display: flex; align-items: center; gap: .7rem; padding: .65rem .75rem; cursor: pointer; list-style: none; }
.admin-store-data-folder > summary strong { flex: 1; }
.admin-store-data-folder > summary small { color: #756d63; }
.admin-store-data-folder > div { display: grid; gap: .45rem; padding: .65rem; border-top: 1px solid #c5bcad; }
.admin-store-data-item { display: grid; grid-template-columns: auto 1fr; gap: .65rem; padding: .55rem; border-radius: .55rem; background: #f4efe6; }
.admin-store-data-item img { width: 4.5rem; height: 4.5rem; border-radius: .35rem; object-fit: cover; }
.admin-store-data-item p { margin: .12rem 0; color: #655e55; font-size: .76rem; overflow-wrap: anywhere; }
.admin-store-data-link { white-space: pre-wrap; }
.admin-learning-store-list { display: grid; gap: .8rem; margin-top: 1rem; }
.admin-learning-store-body { display: grid; gap: .55rem; padding: .7rem; background: #090909; }
.admin-learning-status { overflow: hidden; border: 1px solid #9f9587; border-radius: .75rem; background: #d7d1c3; }
.admin-learning-status > summary { display: flex; align-items: center; gap: .7rem; padding: .75rem .9rem; cursor: pointer; list-style: none; background: #e9e4da; }
.admin-learning-status > summary::-webkit-details-marker { display: none; }
.admin-learning-status > summary strong { flex: 1; }
.admin-learning-status > summary small { color: #756d63; }
.admin-learning-status > summary > span { color: #8c3f2e; transition: transform .2s; }
.admin-learning-status[open] > summary > span { transform: rotate(180deg); }
.admin-learning-status > .task-file-deck { min-height: 12rem; padding: .7rem; }
.staff-work-groups { max-width: 760px; }
.staff-work-folder-cabinet { gap: .1rem; padding: .8rem .75rem .9rem; border-radius: 1.15rem; }
.staff-work-folder > summary { min-height: 3.55rem; padding: .58rem .95rem .76rem; transition: background-color .18s ease, border-color .18s ease; }
.staff-work-folder > summary strong { font-size: clamp(1.08rem,2.7vw,1.28rem); font-weight: 800; letter-spacing: -.01em; }
.staff-work-folder > summary .work-group-count { padding-top: .7rem; padding-right: 1.85rem; font-size: .76rem; }
.staff-work-folder > summary .work-group-chevron { right: .85rem; bottom: .5rem; font-size: 1.15rem; }
.staff-work-folder[open] > summary { border-color: #9d412d; background: #9d412d; }
.staff-work-folder[open] > summary strong,
.staff-work-folder[open] > summary .work-group-count,
.staff-work-folder[open] > summary .work-group-chevron { color: #f4efe6; }
.staff-work-folder > .work-group-body { margin-bottom: .22rem; padding-top: .3rem; padding-bottom: .45rem; }
.maintenance-folder-list { display: grid; gap: .34rem; margin: .08rem .18rem 0 .48rem; }
.maintenance-subfolder { overflow: hidden; border: 1px solid #aaa193; border-radius: .5rem; background: #e9e4da; }
.maintenance-subfolder > summary { display: flex; align-items: center; gap: .58rem; min-height: 2.55rem; padding: .46rem .68rem .5rem; cursor: pointer; list-style: none; background: #e9e4da; }
.maintenance-subfolder > summary::-webkit-details-marker { display: none; }
.maintenance-subfolder > summary strong { min-width: 0; flex: 1; overflow-wrap: anywhere; color: #34312d; font-size: clamp(.86rem,2vw,.98rem); font-weight: 700; letter-spacing: 0; }
.maintenance-subfolder > summary small { flex: 0 0 auto; padding-top: .05rem; color: #7b7369; font-size: .68rem; }
.maintenance-subfolder > summary > span { color: #8c3f2e; font-size: .9rem; transition: transform .2s; }
.maintenance-subfolder[open] > summary > span { transform: rotate(180deg); }
.maintenance-subfolder-body { display: grid; gap: .6rem; padding: .65rem .75rem .8rem; border-top: 1px solid #c5bcad; background: #d7d1c3; }
.maintenance-item-card { position: relative; display: grid; grid-template-columns: 6rem 1fr; gap: .75rem; overflow: hidden; border: 1px solid #aaa092; border-radius: .65rem; background: #f4efe6; }
.maintenance-item-card.no-image { grid-template-columns: 1fr; }
.maintenance-item-card.no-image .maintenance-item-info { padding-left: .65rem; }
.maintenance-image-view { width: 6rem; height: 6rem; padding: 0; overflow: hidden; border: 0; background: #c8c0b3; cursor: zoom-in; }
.maintenance-image-view img { width: 100%; height: 100%; object-fit: cover; }
.maintenance-image-view:focus-visible { outline: 3px solid #9d412d; outline-offset: -3px; }
.maintenance-item-info { min-width: 0; padding: .55rem 4.4rem .55rem 0; }
.maintenance-item-info > strong { display: block; margin-bottom: .3rem; overflow-wrap: anywhere; }
.maintenance-item-info dl { display: grid; gap: .15rem; margin: 0 0 .3rem; font-size: .76rem; }
.maintenance-item-info dl div { display: flex; gap: .4rem; }
.maintenance-item-info dt { color: #756d63; font-weight: 500; }
.maintenance-item-info dd { margin: 0; overflow-wrap: anywhere; }
.maintenance-item-info a { color: #8c3f2e; font-size: .78rem; font-weight: 700; text-decoration: none; }
.maintenance-item-actions { position: absolute; top: .48rem; right: .48rem; display: flex; align-items: center; gap: .25rem; }
.maintenance-item-actions form { margin: 0; }
.maintenance-edit-toggle, .maintenance-delete-button, .maintenance-rename-toggle { padding: .3rem .55rem; border: 1px solid #9d412d; border-radius: .4rem; background: transparent; color: #8c3f2e; font-size: .72rem; font-weight: 700; }
.maintenance-delete-button { border-color: #9b4b43; color: #8b3028; }
.maintenance-item-actions button { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; padding: 0; border-radius: 50%; background: rgba(255,253,248,.8); }
.maintenance-item-actions button:hover { background: #fffdf8; }
.maintenance-item-actions svg { width: .95rem; height: .95rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.maintenance-edit-form { grid-column: 1 / -1; margin: 0 .65rem .65rem; border: 1px solid #b7ac9d; }
.maintenance-edit-buttons { display: flex; gap: .45rem; align-items: center; }
.maintenance-edit-buttons > button { padding: .45rem .7rem; border: 1px solid #9d412d; border-radius: .4rem; background: #9d412d; color: #fff; font-weight: 700; }
.maintenance-edit-buttons .maintenance-edit-cancel { background: transparent; color: #8c3f2e; }
.maintenance-remove-image { display: flex !important; grid-auto-flow: column; justify-content: start; align-items: center; }
.maintenance-remove-image input { width: auto; }
.maintenance-purchase-copy { display: flex; align-items: flex-end; gap: .4rem; margin-top: .4rem; }
.maintenance-purchase-copy p { min-width: 0; max-height: 3.2rem; flex: 1; margin: 0; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; color: #655e55; font-size: .72rem; line-height: 1.35; }
.maintenance-copy-button { flex: 0 0 auto; padding: .3rem .55rem; border: 1px solid #9d412d; border-radius: .4rem; background: transparent; color: #8c3f2e; font-size: .72rem; font-weight: 700; }
.maintenance-item-empty { margin: 0; padding: .25rem 0; color: #756d63; font-size: .8rem; }
.maintenance-folder-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .25rem; border-top: 1px solid #b8ae9f; }
.maintenance-item-toggle { display: grid; place-items: center; width: 2rem; height: 2rem; padding: 0; border: 1px solid #9d412d; border-radius: 50%; background: transparent; color: #8c3f2e; font-size: 1.35rem; line-height: 1; }
.maintenance-item-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; padding: .7rem; border-radius: .65rem; background: #eee9df; }
.maintenance-item-form[hidden] { display: none; }
.maintenance-item-form label { display: grid; gap: .25rem; color: #514c45; font-size: .75rem; font-weight: 700; }
.maintenance-item-form input, .maintenance-item-form textarea { min-width: 0; width: 100%; padding: .48rem .58rem; border: 1px solid #a79f92; border-radius: .42rem; background: #fffdf8; color: #292929; }
.maintenance-item-form textarea { resize: vertical; }
.maintenance-item-form .maintenance-item-url { grid-column: 1 / -1; }
.maintenance-item-form > button { width: fit-content; padding: .5rem .85rem; border: 0; border-radius: .45rem; background: #9d412d; color: #fff; font-weight: 700; }
.maintenance-folder-actions { display: flex; align-items: center; justify-content: flex-end; gap: .25rem; }
.maintenance-folder-actions form { margin: 0; }
.maintenance-folder-actions button { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; padding: 0; border: 1px solid #a79f92; border-radius: 50%; background: rgba(255,253,248,.55); color: #766f65; }
.maintenance-folder-actions button:hover { border-color: #9d412d; background: #fffdf8; color: #8c3f2e; }
.maintenance-folder-actions svg { width: .85rem; height: .85rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.maintenance-subfolder > summary .maintenance-folder-actions { flex: 0 0 auto; gap: .2rem; }
.maintenance-subfolder > summary .maintenance-folder-actions button { width: 1.45rem; height: 1.45rem; }
.maintenance-image-dialog { width: min(92vw, 920px); max-height: 90vh; padding: 2.5rem .75rem .75rem; border: 0; border-radius: 1rem; background: #171512; box-shadow: 0 1rem 3rem #0009; }
.maintenance-image-dialog::backdrop { background: #000b; }
.maintenance-image-dialog img { display: block; max-width: 100%; max-height: calc(90vh - 3.25rem); margin: auto; object-fit: contain; }
.maintenance-image-dialog-close { position: absolute; top: .45rem; right: .55rem; display: grid; place-items: center; width: 2rem; height: 2rem; padding: 0; border: 1px solid #eee; border-radius: 50%; background: #292622; color: #fff; font-size: 1.35rem; }
.maintenance-rename-form { display: flex; gap: .35rem; align-items: center; }
.maintenance-rename-form[hidden] { display: none; }
.maintenance-rename-form input { min-width: 0; width: 11rem; padding: .35rem .5rem; border: 1px solid #a79f92; border-radius: .4rem; background: #fffdf8; }
.maintenance-rename-form button { padding: .35rem .55rem; border: 0; border-radius: .4rem; background: #9d412d; color: #fff; font-weight: 700; }
.maintenance-folder-add { display: flex; align-items: center; gap: .55rem; margin-top: .55rem; }
.maintenance-folder-add > button { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; padding: 0; border: 0; border-radius: .45rem; background: #9d412d; color: #fff; font-size: 1.45rem; font-weight: 500; line-height: 1; }
.maintenance-folder-add > button:hover { background: #7f3324; }
.maintenance-folder-add > button:focus-visible, .maintenance-folder-form input:focus-visible, .maintenance-folder-form button:focus-visible { outline: 3px solid #fff; box-shadow: 0 0 0 5px #9d412d; }
.maintenance-folder-form { display: flex; align-items: stretch; gap: .4rem; min-width: 0; }
.maintenance-folder-form[hidden] { display: none; }
.maintenance-folder-form input { min-width: 0; width: min(16rem, 52vw); padding: .4rem .65rem; border: 1px solid #8e8475; border-radius: .45rem; background: #f6f2e9; color: #292929; }
.maintenance-folder-form button { padding: .4rem .75rem; border: 1px solid #9d412d; border-radius: .45rem; background: #9d412d; color: #fff; font-weight: 700; }
@media (max-width:575px) {
  .admin-work-folder-cabinet { padding: .85rem .65rem 1rem; border-radius: 1.1rem; }
  .admin-work-folder > summary { min-height: 3.8rem; padding-left: .85rem; }
  .admin-work-folder > summary .work-group-count { padding-right: 1.8rem; font-size: .72rem; }
  .admin-work-folder > summary .work-group-chevron { right: .8rem; }
  .admin-work-folder > .work-group-body { margin-left: .4rem; margin-right: .4rem; padding-left: .75rem; padding-right: .75rem; }
  .staff-work-folder-cabinet { padding: .62rem .48rem .72rem; border-radius: .9rem; }
  .staff-work-folder > summary { min-height: 3.3rem; padding: .5rem .72rem .68rem; }
  .staff-work-folder > summary strong { font-size: 1.08rem; }
  .staff-work-folder > summary .work-group-count { padding-top: .62rem; padding-right: 1.55rem; }
  .staff-work-folder > summary .work-group-chevron { right: .62rem; bottom: .42rem; }
  .maintenance-folder-list { margin-left: .3rem; margin-right: .08rem; }
  .maintenance-subfolder > summary { min-height: 2.42rem; padding: .4rem .58rem .44rem; }
  .maintenance-subfolder > summary strong { font-size: .88rem; }
  .maintenance-folder-add { align-items: flex-start; }
  .maintenance-folder-form { flex: 1; flex-wrap: wrap; }
  .maintenance-folder-form input { width: 100%; }
  .maintenance-item-card { grid-template-columns: 5rem 1fr; }
  .maintenance-image-view { width: 5rem; height: 5rem; }
  .maintenance-item-form { grid-template-columns: 1fr; }
  .maintenance-item-form .maintenance-item-url { grid-column: auto; }
}
.schedule-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.schedule-heading h1 { margin: .35rem 0 0; font-size: clamp(1.8rem, 4vw, 2.5rem); font-weight: 750; }
.schedule-group-heading { display: flex; align-items: center; gap: .75rem; }
.schedule-group-heading h1 { margin: 0; }
.schedule-heading p { margin: 0; color: #746d63; }
.schedule-back { color: #8c3f2e; text-decoration: none; font-weight: 650; }
.schedule-month-nav { display: flex; align-items: center; gap: .6rem; white-space: nowrap; }
.schedule-month-nav a { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid #a35240; border-radius: 12px; color: #8c3f2e; font-size: 1.7rem; text-decoration: none; }
.schedule-holiday-note { margin: 0 0 .75rem; color: #514c45; }
.schedule-holiday-note a { color: #8c3f2e; }
.schedule-holiday-verified { display: inline-flex; align-items: center; margin-left: .55rem; padding: .2rem .5rem; border: 1px solid #9f927f; border-radius: 999px; color: #5f574e; font-size: .7rem; font-weight: 650; white-space: nowrap; }
.schedule-holiday-warning { padding: .75rem 1rem; border-radius: 12px; background: #f4dfbd; }
.schedule-legend { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-bottom: .9rem; color: #685f55; font-size: .88rem; }
.schedule-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.schedule-legend i { display: inline-block; width: .75rem; height: .75rem; border-radius: 3px; }
.schedule-edit-toolbar { display: flex; align-items: center; gap: .6rem; margin: 0 0 .9rem; }
.schedule-edit-lock { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid #a35240; border-radius: 11px; background: #e8e3d7; color: #743c2f; }
.schedule-edit-lock[aria-pressed="true"] { background: #8c3f2e; color: #fff; }
.schedule-edit-lock svg { width: 1.2rem; height: 1.2rem; }
.schedule-edit-lock .schedule-lock-open, .schedule-edit-lock[aria-pressed="true"] .schedule-lock-closed { display: none; }
.schedule-edit-lock[aria-pressed="true"] .schedule-lock-open { display: block; }
.schedule-edit-lock:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
.schedule-below-table { margin-top: 1rem; }
.schedule-below-table #schedule-save-status { margin: 0 0 .75rem; color: #685f55; font-size: .88rem; }
.schedule-person-manager input, .schedule-add-row input { min-width: 0; width: 150px; padding: .55rem .7rem; border: 1px solid #b9a99a; border-radius: 9px; background: #f9f6f0; }
.schedule-person-manager button, .schedule-add-row td button { padding: .58rem .8rem; border: 0; border-radius: 9px; background: #8c3f2e; color: white; font-weight: 700; white-space: nowrap; }
.schedule-person-manager { margin: .3rem 0 1rem; color: #514c45; }
.schedule-person-manager summary { width: fit-content; cursor: pointer; font-size: .86rem; }
.schedule-person-manager > div { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .65rem; }
.schedule-person-manager form { display: flex; gap: .35rem; }
.schedule-add-row .schedule-name-cell { background: #e8e3d7; }
.schedule-roster-actions { display: flex; align-items: center; gap: .35rem; }
.schedule-add-row .schedule-name-cell button { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid #a35240; border-radius: 8px; background: #8c3f2e; color: white; font-size: 1.5rem; line-height: 1; }
.schedule-add-row .schedule-roster-manage[aria-pressed="true"] { background: #5f2e23; box-shadow: inset 0 0 0 2px #f5eee7; }
.schedule-add-row .schedule-roster-manage:disabled { opacity: .45; cursor: not-allowed; }
.schedule-table .schedule-add-row td { text-align: left; }
.schedule-add-row td span { display: inline-flex; align-items: center; gap: .4rem; }
.schedule-add-row td span[hidden] { display: none; }
.schedule-table .schedule-add-row input { display: inline-block; width: 170px; max-width: none; height: auto; margin: 0; text-align: left; }
.schedule-add-row button:focus-visible, .schedule-add-row input:focus-visible, .schedule-person-manager input:focus-visible, .schedule-person-manager button:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
.schedule-legend-holiday { background: #ecd4c9; }
.schedule-legend-makeup { background: #e7d5a6; }
.schedule-legend-work, .schedule-table td.schedule-shift-work { background: #dce9d9; }
.schedule-legend-rest, .schedule-table td.schedule-shift-rest { background: #f1d8d0; }
.schedule-table-scroll { width: calc(100vw - 24px); max-width: none; height: auto; min-height: 0; margin-left: calc(50% - 50vw + 12px); overflow-x: auto; overflow-y: visible; border: 1px solid #a35240; border-radius: 16px; background: #e8e3d7; touch-action: none; overscroll-behavior: contain; }
.schedule-table { width: max-content; min-width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; transform-origin: top left; }
.schedule-table th, .schedule-table td { min-width: 76px; height: 62px; padding: .35rem; border-right: 1px solid #d4cabe; border-bottom: 1px solid #d4cabe; text-align: center; }
.schedule-table td { position: relative; }
.schedule-table td.schedule-fill-preview { box-shadow: inset 0 0 0 3px #8c3f2e; }
.schedule-fill-handle { position: absolute; right: 2px; bottom: 2px; z-index: 2; display: none; place-items: center; width: 20px; height: 20px; padding: 0; border: 1px solid #a35240; border-radius: 5px; background: #faf7f1; color: #8c3f2e; font-size: 16px; font-weight: 700; line-height: 1; cursor: crosshair; touch-action: none; }
.schedule-cell-selected .schedule-fill-handle, .schedule-table td:focus-within .schedule-fill-handle { display: grid; }
.schedule-is-locked .schedule-table .schedule-fill-handle { display: none; }
.schedule-fill-handle:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
.schedule-table thead th { height: 78px; background: #dcd5c8; vertical-align: top; }
.schedule-table thead th span, .schedule-table thead th small, .schedule-table thead th em { display: block; }
.schedule-table thead th small { color: #6d655b; font-size: .75rem; }
.schedule-table thead th em { max-width: 75px; color: #8c3f2e; font-size: .65rem; font-style: normal; line-height: 1.15; white-space: normal; }
.schedule-table .schedule-note-heading,
.schedule-table .schedule-note-cell { min-width: 118px; max-width: 118px; background: #e2dbcf; }
.schedule-table .schedule-note-heading { color: #5f574e; }
.schedule-table .schedule-note-heading small { margin-top: .2rem; font-size: .65rem; font-weight: 500; }
.schedule-table .schedule-note-cell { position: relative; padding: 0; }
.schedule-table .schedule-note-input { position: absolute; inset: 0; width: 100%; max-width: none; height: 100%; margin: 0; padding: .3rem .45rem; border: 0; border-radius: 0; background: transparent; color: #5f2e23; caret-color: #8c3f2e; text-align: center; touch-action: manipulation; user-select: text; -webkit-user-select: text; }
.schedule-table .schedule-note-input:focus { outline: none; background: #fffdf8; box-shadow: inset 0 0 0 2px #a35240; }
.schedule-is-locked .schedule-table .schedule-note-input { pointer-events: none; user-select: none; }
.schedule-table .schedule-day-holiday { background: #ecd4c9; }
.schedule-table .schedule-day-makeup { background: #e7d5a6; }
.schedule-table .schedule-name-cell { position: sticky; left: 0; z-index: 2; min-width: 132px; width: 132px; max-width: 132px; padding: .5rem .7rem; background: #dcd5c8; text-align: left; box-shadow: 1px 0 0 #b9ab9a; }
.schedule-table tbody .schedule-name-cell { position: sticky; padding-right: 2rem; }
.schedule-person-name { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-roster-remove { position: absolute; top: 50%; right: .35rem; display: none; width: 1.45rem; height: 1.45rem; padding: 0; border: 1px solid #a35240; border-radius: 50%; background: #faf7f1; color: #8c3f2e; font-size: 1.1rem; font-weight: 700; line-height: 1; transform: translateY(-50%); }
.schedule-roster-managing .schedule-roster-remove:not(:disabled):not([hidden]) { display: grid; place-items: center; }
.schedule-roster-remove:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
.schedule-table .schedule-current-user-row > th,
.schedule-table .schedule-current-user-row > td { background-image: linear-gradient(rgba(163,82,64,.24),rgba(163,82,64,.24)); box-shadow: inset 0 2px #a35240,inset 0 -2px #a35240; }
.schedule-table .schedule-current-user-row > .schedule-name-cell { background-color: #d9bcb2; color: #5f2e23; font-weight: 800; }
.schedule-table thead .schedule-name-cell { z-index: 3; }
.schedule-table input { display: block; width: 58px; max-width: 100%; min-width: 0; height: 42px; margin: auto; padding: .25rem; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #252525; text-align: center; }
.schedule-table td .schedule-shift-input { color: transparent !important; -webkit-text-fill-color: transparent; caret-color: transparent; }
.schedule-shift-label { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; padding: .15rem; color: #252525; font-size: 1rem; line-height: 1; white-space: nowrap; pointer-events: none; }
.schedule-table .schedule-shift-work .schedule-shift-label { color: #28513d; font-weight: 700; }
.schedule-table .schedule-shift-rest .schedule-shift-label { color: #743c2f; font-weight: 700; }
.schedule-is-locked .schedule-table tbody .schedule-shift-input { pointer-events: none; user-select: none; }
.schedule-table .schedule-shift-work input { color: #28513d; font-weight: 700; }
.schedule-table .schedule-shift-rest input { color: #743c2f; font-weight: 700; }
.schedule-table input:hover, .schedule-table input:focus { border-color: #a35240; outline: none; background: #faf7f1; }
.schedule-table input:focus-visible, .schedule-month-nav a:focus-visible, .schedule-actions button:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
.schedule-shift-picker[hidden] { display: none; }
.schedule-shift-picker { position: fixed; inset: 0; z-index: 1100; }
.schedule-shift-picker-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: transparent; }
.schedule-shift-picker-panel { position: absolute; left: var(--picker-left, 12px); top: var(--picker-top, 12px); width: min(256px, calc(100vw - 24px)); max-height: min(70dvh, 460px); overflow-y: auto; padding: .65rem; border: 1px solid #767676; border-radius: 14px; background: #494949; box-shadow: 0 10px 24px #0005; }
.schedule-shift-picker-heading { display: flex; justify-content: end; min-height: 26px; }
.schedule-shift-picker-heading strong { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.schedule-shift-picker-close { width: 26px; height: 26px; padding: 0; border: 0; background: transparent; color: #eee; font-size: 1.3rem; line-height: 1; }
.schedule-shift-picker-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-items: center; gap: .45rem .2rem; padding: .25rem .1rem .4rem; }
.schedule-shift-picker-options button { display: grid; place-items: center; width: 46px; height: 46px; max-width: 100%; padding: .1rem; border: 1.5px solid #b8b8b8; border-radius: 50%; background: transparent; color: #f7f7f7; font-size: .8rem; font-weight: 750; line-height: 1; overflow-wrap: anywhere; }
.schedule-shift-picker-options button:hover, .schedule-shift-picker-options button[aria-pressed="true"] { border-color: #bd705b; background: #a95543; color: white; }
.schedule-shift-picker button:focus-visible { outline: 3px solid #f2c2ad; outline-offset: 2px; }
@media (pointer: coarse) { .schedule-shift-picker-backdrop { background: #0008; } .schedule-shift-picker-panel { position: absolute; top: auto; left: 50%; bottom: 0; transform: translateX(-50%); width: min(100%, 420px); max-height: 80dvh; padding: .9rem .9rem calc(.9rem + env(safe-area-inset-bottom)); border-radius: 18px 18px 0 0; } .schedule-shift-picker-options button { width: 52px; height: 52px; } }
.schedule-no-staff { padding: 1.5rem !important; color: #6d655b; }
.schedule-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .8rem; color: #746d63; font-size: .85rem; }
.schedule-actions button { padding: .7rem 1.1rem; border: 0; border-radius: 12px; background: #8c3f2e; color: white; font-weight: 700; }
.schedule-code-guide { margin: 1.3rem 0 3rem; color: #514c45; }
.schedule-code-guide summary { cursor: pointer; font-weight: 650; }
.schedule-code-guide p { max-width: 740px; margin-top: .55rem; }
.schedule-code-rows { display: grid; gap: .5rem; max-width: 740px; }
.schedule-code-row { display: grid; grid-template-columns: minmax(5rem, 9rem) minmax(0, 1fr) auto; align-items: end; gap: .5rem; }
.schedule-code-row label { display: grid; gap: .25rem; min-width: 0; font-size: .82rem; }
.schedule-code-row input { width: 100%; min-height: 40px; padding: .45rem .6rem; border: 1px solid #b9a99a; border-radius: 8px; background: #faf7f1; color: #252525; }
.schedule-code-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .75rem; }
.schedule-code-row button, .schedule-code-actions button { min-height: 40px; padding: .4rem .75rem; border: 1px solid #a35240; border-radius: 8px; background: #faf7f1; color: #743c2f; font-weight: 700; }
.schedule-code-actions button[type="submit"] { background: #8c3f2e; color: #fff; }
.schedule-code-guide button:focus-visible, .schedule-code-guide input:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
@media (max-width: 575px) { .schedule-code-row { grid-template-columns: minmax(4rem, 6rem) minmax(0, 1fr) auto; gap: .3rem; } .schedule-code-row button { padding: .4rem; } }
.health-records { max-width: 1060px; margin: 0 auto 3rem; }
.health-records-heading { margin-bottom: 1.25rem; }
.health-export-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem;padding:1.1rem;border:1px solid #b5aa9a;border-radius:16px;background:#f0ebe2}
.health-export-toolbar p{margin:.35rem 0 0;font-size:.9rem;color:#625b52}
.health-export-actions{display:flex;flex-wrap:wrap;gap:.65rem;max-width:100%}
.health-export-actions a,.health-export-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.7rem 1rem;border:1px solid #933e2a;border-radius:10px;background:#933e2a;color:white;font:inherit;font-weight:700;text-decoration:none;text-align:center}
.health-export-actions .health-print-link{background:transparent;color:#873923}
.health-export-actions button:disabled{opacity:.5;cursor:not-allowed}
.health-export-actions :focus-visible{outline:3px solid #235d8e;outline-offset:3px}
@media(max-width:575px){.health-export-actions{width:100%}.health-export-actions a,.health-export-actions button{flex:1 1 130px}}
.health-records-heading h1 { margin: .35rem 0 0; font-size: clamp(1.8rem, 4vw, 2.4rem); }
.health-reminders { display: grid; gap: .3rem; margin-bottom: .7rem; }
.health-alert-link { display: block; margin: 0 0 .55rem; padding: .15rem 0; border: 0; background: transparent; color: #743c2f; font-size: .72rem; font-weight: 700; line-height: 1.2; text-decoration: none; }
.health-reminder { padding: .15rem 0; border: 0; background: transparent; color: #743c2f; font-size: .72rem; line-height: 1.2; }
.health-reminders a.health-reminder { display: block; text-decoration: none; }
.health-reminder-marquee { overflow: hidden; white-space: nowrap; }
.health-reminder-track { display: flex; width: max-content; min-width: 100%; animation: health-reminder-scroll 16s linear infinite; }
.health-reminder-track > span { flex: 0 0 auto; min-width: 100%; padding-inline: 0 2.4rem; }
.health-reminder-marquee:hover .health-reminder-track, .health-reminder-marquee:focus-visible .health-reminder-track { animation-play-state: paused; }
@keyframes health-reminder-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .health-reminder-track { width: auto; animation: none; } .health-reminder-track > span { min-width: auto; padding-inline: .2rem; } .health-reminder-track > span[aria-hidden="true"] { display: none; } }
.health-reminder button { padding: .4rem .75rem; border: 0; border-radius: 8px; background: #8c3f2e; color: white; white-space: nowrap; }
.health-record-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 1rem; }
.health-record { min-width: 0; padding: 1rem; border: 1px solid #a35240; border-radius: 16px; background: #e8e3d7; }
.health-record h2 { margin: 0 0 .7rem; font-size: 1.15rem; }
.health-record-image { display: grid; place-items: center; width: 100%; height: 220px; overflow: hidden; border-radius: 10px; background: #d6d0c4; }
.health-record-image img { width: 100%; height: 100%; object-fit: contain; }
.health-display-action { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .5rem; }
.health-display-action button { min-height: 34px; padding: .3rem .55rem; border: 1px solid #a35240; border-radius: 8px; background: #faf7f1; color: #743c2f; font-size: .82rem; font-weight: 700; }
.health-display-action span { color: #615950; font-size: .78rem; }
.health-display-action button:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
.health-record-empty { border: 1px dashed #a99c8e; }
.health-expiry { margin: .75rem 0; font-weight: 700; }
.health-record-form { display: grid; gap: .7rem; }
.health-recognition-status { margin: 0; color: #615950; font-size: .85rem; }
.health-record-form label { display: grid; gap: .3rem; color: #514c45; font-size: .85rem; }
.health-record-form input { max-width: 100%; padding: .55rem; border: 1px solid #b9a99a; border-radius: 9px; background: #faf7f1; color: #252525; }
.health-record-form button { min-height: 42px; border: 0; border-radius: 9px; background: #8c3f2e; color: white; font-weight: 700; }
.health-record-form input:focus-visible, .health-record-form button:focus-visible, .health-reminder button:focus-visible { outline: 3px solid #a35240; outline-offset: 2px; }
.health-record { scroll-margin-top: 6.5rem; }
.health-record:target { outline: 3px solid #a35240; outline-offset: 4px; box-shadow: 0 0 0 .45rem rgba(163,82,64,.15),0 .8rem 1.8rem rgba(0,0,0,.14); animation: health-record-target 1.4s ease-out; }
@keyframes health-record-target { from { background-color: #efd3ca; } to { background-color: transparent; } }
@media (prefers-reduced-motion: reduce) { .health-record:target { animation: none; } }
@media (max-width: 575px) { .schedule-heading { align-items: start; flex-direction: column; } .schedule-table-scroll { width: calc(100vw - 12px); margin-left: calc(50% - 50vw + 6px); border-radius: 14px; } .schedule-table .schedule-name-cell { min-width: 96px; max-width: 96px; } .schedule-table th, .schedule-table td { min-width: 68px; } }
@media (max-width: 575px) { .work-groups-heading > span { display: none; } .work-group summary { min-height: 74px; padding: .85rem 1rem; gap: .75rem; } .work-group-body { padding-left: 2.7rem; padding-right: 1rem; } }
.content-type-card { position: relative; width: clamp(3.15rem, 14vw, 4rem); height: clamp(3.15rem, 14vw, 4rem); min-width: clamp(3.15rem, 14vw, 4rem); flex: 0 0 auto; display: flex; align-items: center; justify-content: center; padding: .58rem; border: 0; border-radius: 1rem; color: #6D6559; background: transparent; text-decoration: none; font-weight: 700; text-align: center; font-size: 1.55rem; box-shadow: none; }
.content-type-card.active, .content-type-card:hover, .content-type-card:focus-visible { color: #8C3B28; }
.content-type-card svg { width: 100%; height: 100%; max-width: 2.15rem; max-height: 2.15rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.content-type-count { position: absolute; z-index: 2; top: .22rem; left: .22rem; display: grid; place-items: center; min-width: 1.32rem; height: 1.32rem; padding: 0 .28rem; border: 1px solid #D7D1C3; border-radius: 999px; color: #D7D1C3; background: #8C3B28; font-size: .68rem; font-weight: 800; line-height: 1; box-shadow: 0 .1rem .22rem rgba(0,0,0,.2); }
.content-type-icon { font-size: 1.45rem; line-height: 1; }
@media (max-width: 430px) { .content-type-card { border-radius: .82rem; font-size: 1.3rem; padding: .5rem; } }
.task-status-rail { position: relative; z-index: 10; isolation: isolate; display: grid; grid-template-columns: 1fr; width: 100%; margin-top: .65rem; padding: 1rem .45rem 1.5rem; overflow: visible; perspective: 950px; perspective-origin: center top; touch-action: pan-y; }
.task-status-panel { position: relative; grid-area: 1 / 1; align-self: start; width: 88%; height: max-content; min-height: 8rem; padding: .75rem; border-radius: 1.25rem; background: #807668; transform-origin: center left; transition: transform .32s ease, filter .32s ease, opacity .32s ease; box-shadow: 0 .7rem 1.5rem rgba(0,0,0,.28); }
.task-status-panel.is-active { z-index: 3; transform: translate3d(0,0,0) rotateY(0) scale(1); filter: brightness(1); opacity: 1; }
.task-status-panel.is-behind { z-index: 2; cursor: pointer; filter: brightness(.78); opacity: .94; }
.task-status-panel-incomplete { background: #807668; transform-origin: center left; }
.task-status-panel-completed { background: #000; transform-origin: center left; }
.task-status-panel-incomplete.is-active { transform: translate3d(0,0,0) rotateY(0) scale(1); }
.task-status-panel-completed.is-active { transform: translate3d(12%,0,0) rotateY(0) scale(1); }
.task-status-panel-completed.is-behind { transform: translate3d(66%,.35rem,-4rem) rotateY(0) scale(.94); }
.task-status-panel-incomplete.is-behind { transform: translate3d(-66%,.35rem,-4rem) rotateY(0) scale(.94); }
@media (min-width: 768px) { .task-status-panel { width: min(78%,58rem); } }
@media (prefers-reduced-motion: reduce) { .task-status-panel { transition: none; } }
.task-status-empty { display: grid; place-items: center; min-height: 17rem; padding: 1rem; border: 1px solid rgba(215,209,195,.55); border-radius: 1rem; color: #D7D1C3; text-align: center; }
.task-file-deck { height: auto; padding: .5rem .25rem 1rem; overflow: visible; }
.task-file-deck:has(.deck-expand-button) { max-height: 70dvh; overflow-y: auto; overscroll-behavior-y: contain; touch-action: pan-y; }
.deck-expand-button { display: block; width: 100%; padding: .35rem; margin-bottom: .5rem; border: 0; background: transparent; color: #D7D1C3; font-size: .75rem; }
.deck-expand-button[hidden] { display: none; }
.deck-compact .task-letter-group { margin-top: -.2rem; }
.task-file-deck.deck-compact { height: 70dvh; padding-top: 30dvh; box-sizing: border-box; transition: padding-top .35s ease; }
.task-file-deck.deck-compact.deck-raised { padding-top: .5rem; }
.task-file-deck.deck-compact:not(.deck-raised) .deck-expand-button { position: sticky; top: 0; }
@media (prefers-reduced-motion: reduce) { .task-file-deck.deck-compact { transition: none; } }
.deck-compact .task-letter-summary { height: 1.8rem; background: #D7D1C3 !important; color: #000 !important; padding-top: .25rem; }
.deck-compact .task-letter-items .task-file-item,.deck-compact .task-letter-items .task-file-card { height: 1.8rem; }
.deck-compact .task-file-item { margin-top: -.15rem; }
.deck-compact .task-file-card span { display: none; }
.deck-compact .task-file-card strong,.deck-compact .task-letter-preview { width: 60%; }
.deck-compact .task-file-letter { top: .45rem; height: 1.1rem; font-size: .72rem; }
.task-letter-group { position: relative; margin-top: -.28rem; }
.task-letter-group:first-child { margin-top: 0; }
.task-letter-group-multiple:not([open]) { padding-bottom: .5rem; }
.task-letter-group-multiple:not([open])::before,.task-letter-group-multiple:not([open])::after { content: ""; position: absolute; left: .3rem; right: .3rem; top: .18rem; height: 3.35rem; background: #c7c0b2; border: 1px solid #807668; border-radius: .65rem .65rem .5rem .5rem; clip-path: polygon(0 0,27% 0,36% 30%,98% 30%,100% 37%,98% 100%,2% 100%,0 91%); pointer-events: none; }
.task-letter-group-multiple:not([open])::before { z-index: 0; transform: translateY(.48rem); opacity: .72; }
.task-letter-group-multiple:not([open])::after { z-index: 0; left: .16rem; right: .16rem; transform: translateY(.25rem); opacity: .9; }
.task-letter-summary { position: relative; z-index: 1; display: block; width: 100%; height: 3.35rem; padding: .42rem .8rem; overflow: hidden; color: #000; background: #D7D1C3; border: 1px solid #807668; border-radius: .65rem .65rem .5rem .5rem; clip-path: polygon(0 0,27% 0,36% 30%,98% 30%,100% 37%,98% 100%,2% 100%,0 91%); cursor: pointer; box-shadow: 0 -.12rem .25rem rgba(0,0,0,.16); list-style: none; transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
.task-letter-summary::-webkit-details-marker { display: none; }
.task-letter-summary::marker { display: none; content: ""; }
.task-letter-summary:focus-visible { outline: 3px solid #8C3B28; outline-offset: 2px; }
.task-letter-preview { display: block; width: 26%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(.72rem,3vw,.88rem); font-weight: 800; line-height: 1.1; }
.task-letter-group[open] { margin-bottom: .35rem; }
.task-letter-group[open] .task-letter-summary { margin-bottom: -.25rem; color: #D7D1C3; background: #8C3B28; border-color: #8C3B28; }
.task-letter-items { padding-top: .05rem; }
.task-file-item { position: relative; z-index: var(--file-index); height: 4.1rem; margin-top: -.42rem; }
.task-file-item:first-child { margin-top: 0; }
.task-file-card { position: relative; display: block; width: 100%; height: 4.1rem; padding: .35rem .75rem 0; overflow: hidden; color: #000; background: #D7D1C3; border: 1px solid #807668; border-radius: .65rem .65rem .5rem .5rem; clip-path: polygon(0 0, 27% 0, 36% 25%, 98% 25%, 100% 31%, 98% 100%, 2% 100%, 0 91%); text-decoration: none; box-shadow: 0 -.12rem .25rem rgba(0,0,0,.16); }
.task-file-card strong { display: block; width: 26%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(.72rem, 3vw, .88rem); line-height: 1.1; }
.task-file-deck .task-letter-group[open] .task-letter-preview { display: none; }
.task-file-deck .task-letter-group[open] .task-file-item { height: auto; min-height: 3.5rem; margin-top: .15rem; }
.task-file-deck .task-letter-group[open] .task-file-card { height: auto; min-height: 3.5rem; padding: 1.35rem .75rem .65rem; clip-path: polygon(0 0,27% 0,36% 1rem,98% 1rem,100% 1.35rem,98% 100%,2% 100%,0 calc(100% - .35rem)); }
.task-file-deck .task-letter-group[open] .task-file-card strong { width: 100%; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; line-height: 1.3; }
.task-file-card span { position: absolute; top: 1.7rem; left: .8rem; right: 4.3rem; overflow: hidden; color: #5d574d; font-size: clamp(.66rem, 2.7vw, .8rem); text-overflow: ellipsis; white-space: nowrap; }
.task-file-deck .task-letter-group[open] .task-file-card span { position: static; display: block; margin-top: .3rem; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; line-height: 1.3; }
.task-file-letter { position: absolute; z-index: 2; top: 1rem; right: .05rem; display: grid; place-items: center; width: 31%; height: 1.65rem; padding-left: 10%; color: #D7D1C3; background: #000; clip-path: polygon(22% 0,100% 0,96% 100%,0 100%); font-size: .78rem; font-weight: 800; }
.task-file-card:active { transform: translateY(-1px); background: #eee9df; }
.task-file-empty { display: grid; place-items: center; min-height: 4.5rem; color: #D7D1C3; font-size: .82rem; }
.task-status-panel:has(.task-file-empty-video) { width: min(88%,31.75rem); height: auto; padding: .75rem; }
.task-status-panel:has(.task-file-empty-video) .task-file-deck { height: auto; padding: 0; }
.task-file-empty-video { position: relative; width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 1rem; isolation: isolate; background: #807668; }
.task-file-empty-video video { position: absolute; top: 0; left: 50%; z-index: -2; width: auto; height: 100%; max-width: 100%; max-height: 100%; aspect-ratio: 16 / 9; border-radius: .85rem; object-fit: contain; object-position: center; transform: translateX(-50%); pointer-events: none; }
.task-file-empty-video::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0,0,0,.22); pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .task-file-empty-video video { display: none; } }
.compact-search-bar { min-height: 3.25rem; display: flex; align-items: center; gap: .65rem; padding: 0 1rem; border-radius: 1.7rem; background: #807668; }
.compact-search-bar svg { width: 1.45rem; height: 1.45rem; fill: none; stroke: #D7D1C3; stroke-width: 2; flex: none; }
.compact-search-bar input { width: 100%; border: 0; outline: 0; background: transparent; color: #D7D1C3; font-size: 1rem; }
.compact-search-bar input::placeholder { color: #D7D1C3; opacity: .8; }
.reimbursement-batch-history{margin:1rem 0 1.5rem;padding:1rem 1.2rem;border:1px solid #b8ad9f;border-radius:18px;background:#f1ece3}
.reimbursement-batch-history summary{cursor:pointer;font-weight:700}
.reimbursement-batch-history ul{padding-left:1.2rem;margin:.8rem 0 0}
.reimbursement-batch-history li{margin:.5rem 0;overflow-wrap:anywhere}
.reimbursement-batch-history span{margin-left:.7rem;color:#6b6257;font-size:.9rem}
.office-batch-progress h2{font-size:clamp(1.1rem,3vw,1.5rem);line-height:1.5}
.office-batch-progress progress{display:block;width:100%;height:18px;accent-color:#993e2b;margin:1rem 0}
.office-batch-buttons{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.office-batch-buttons button,.office-batch-buttons a{flex:1 1 230px;min-width:0;padding:1rem;border-radius:12px;text-align:center;font-weight:700;white-space:normal}
.office-batch-buttons a{background:#292623;color:#fff;text-decoration:none}
.office-batch-buttons a[hidden]{display:none}
.office-print-tip{font-size:.9rem;color:#625a50;margin-top:1rem}
.office-batch-items{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:.75rem}
.office-batch-items li{padding:1rem 1.25rem;background:#f4efe7;border:1px solid #b8ad9f;border-radius:14px;overflow-wrap:anywhere}
.office-batch-items strong,.office-batch-items a{display:block}
.office-batch-items p{margin:.6rem 0}
.office-batch-items a{color:#913b2b;margin-top:.5rem}
.office-batch-items .office-item-needs_review{border:2px solid #a2422b}
.office-batch-items .office-item-excluded{color:#746b60}
.reimbursement-page :is(a,button,input,summary):focus-visible{outline:3px solid #235d8e;outline-offset:3px}
/* Private, store-scoped AI reimbursement workspace. */
.reimbursement-page{max-width:1180px;margin:0 auto 5rem;color:#252424}.reimbursement-page *{box-sizing:border-box}.reimbursement-heading{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;margin-bottom:1.25rem}.reimbursement-heading h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;margin:.05rem 0}.reimbursement-heading p{margin:0;color:#6f675d}.reimbursement-heading>a{border:1px solid #a8422f;border-radius:999px;padding:.65rem 1rem;color:#8f3929;text-decoration:none;white-space:nowrap}.reimbursement-store-switch{display:flex;gap:.55rem;overflow:auto;margin-bottom:1rem}.reimbursement-store-switch a{padding:.55rem .9rem;border:1px solid #aaa092;border-radius:999px;text-decoration:none;color:#534d45}.reimbursement-store-switch a.active{background:#9c3f2c;color:#fff;border-color:#9c3f2c}.reimbursement-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem 1rem;align-items:end;min-width:0;overflow:hidden;padding:1.2rem;background:#f0ebe1;border:1px solid #b8ab9b;border-radius:18px;margin-bottom:1rem}.reimbursement-upload label{display:grid;gap:.45rem;min-width:0;font-weight:800}.reimbursement-upload input{display:block;width:100%;max-width:100%;min-width:0;background:#fff;padding:.8rem;border:1px dashed #a8422f;border-radius:10px;overflow:hidden;text-overflow:ellipsis}.reimbursement-upload p{grid-column:1;min-width:0;margin:0;color:#766e65;font-size:.88rem;overflow-wrap:anywhere}.reimbursement-upload button,.reimbursement-batch-bar button,.reimbursement-edit-panel>button{max-width:100%;border:0;border-radius:10px;background:#9c3f2c;color:#fff;font-weight:800;padding:.85rem 1.15rem}.reimbursement-batch-bar{position:sticky;top:.5rem;z-index:10;display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;margin-bottom:.85rem;border-radius:14px;background:rgba(36,32,29,.94);color:#fff;box-shadow:0 8px 24px #0003}.reimbursement-batch-bar button{margin-left:auto}.reimbursement-list{display:grid;gap:.85rem}.reimbursement-card{position:relative;display:grid;grid-template-columns:auto 150px minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 4.2rem 1rem 1rem;background:#f3efe7;border:1px solid #b3a99a;border-radius:18px}.reimbursement-card-check input{width:20px;height:20px;accent-color:#9c3f2c}.reimbursement-invoice-preview{display:grid;place-items:center;gap:.35rem;height:112px;border-radius:10px;background:#fff;overflow:hidden;color:#8f3929;text-decoration:none}.reimbursement-invoice-preview img{width:100%;height:85px;object-fit:contain}.reimbursement-invoice-preview small{font-size:.72rem}.reimbursement-pdf-icon{font-weight:900;font-size:1.5rem}.reimbursement-summary>strong{font-size:1.15rem}.reimbursement-summary>p{margin:.2rem 0 .6rem;color:#696158}.reimbursement-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem 1rem;margin:0}.reimbursement-summary dl div{display:flex;gap:.5rem;min-width:0}.reimbursement-summary dt{color:#81786e}.reimbursement-summary dd{margin:0;overflow-wrap:anywhere}.reimbursement-actions{display:flex;gap:.45rem}.reimbursement-actions button,.reimbursement-danger button{width:42px;height:42px;border:1px solid #a8422f;border-radius:50%;background:#fff;color:#9c3f2c;font-size:1.25rem}.reimbursement-danger{position:absolute;right:.7rem;top:.7rem}.reimbursement-danger button{width:30px;height:30px;font-size:1rem;border-color:#b6aa9b;color:#746b60}.reimbursement-edit-panel{grid-column:2/-1;border-top:1px solid #c7bcad;padding-top:1rem}.reimbursement-edit-panel h2{font-size:1.1rem}.reimbursement-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:.8rem}.reimbursement-fields label{display:grid;gap:.3rem;font-size:.85rem;font-weight:700}.reimbursement-fields .wide{grid-column:span 2}.reimbursement-fields input,.reimbursement-fields textarea{min-width:0;border:1px solid #aca193;border-radius:8px;padding:.65rem;background:#fff}.reimbursement-empty{text-align:center;padding:4rem 1rem;border:1px dashed #aaa092;border-radius:18px;color:#766e65}.reimbursement-empty strong{font-size:1.3rem;color:#2a2825}
@media(max-width:760px){.reimbursement-heading{display:block}.reimbursement-heading>a{display:inline-block;margin-top:1rem}.reimbursement-upload{grid-template-columns:minmax(0,1fr)}.reimbursement-upload input,.reimbursement-upload button{width:100%}.reimbursement-upload input::file-selector-button{max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reimbursement-upload p{grid-column:1}.reimbursement-card{grid-template-columns:auto 88px minmax(0,1fr);padding-right:2.7rem;gap:.65rem}.reimbursement-invoice-preview{height:90px}.reimbursement-actions{grid-column:2/-1}.reimbursement-edit-panel{grid-column:1/-1}.reimbursement-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.reimbursement-summary dl{grid-template-columns:1fr}.reimbursement-batch-bar{gap:.5rem}.reimbursement-batch-bar button{padding:.65rem;font-size:.84rem}}
.reimbursement-batch-bar { flex-wrap: wrap; }
.reimbursement-batch-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-left: auto; max-width: 100%; }
.reimbursement-batch-actions button { margin-left: 0; }
.reimbursement-batch-actions .reimbursement-batch-delete { border: 1px solid #dfa294; background: transparent; color: #ffd6cc; }
.reimbursement-batch-actions button:disabled { opacity: .5; cursor: not-allowed; }
@media (max-width: 575px) { .reimbursement-batch-actions { flex: 1 1 100%; margin-left: 0; } .reimbursement-batch-actions button { flex: 1 1 auto; } }
.reimbursement-upload-status{grid-column:1/-1;display:flex;align-items:center;gap:.55rem;color:#7d3224;font-weight:700}.reimbursement-upload-status[hidden]{display:none}.reimbursement-upload-status span{width:18px;height:18px;border:2px solid #cfaa9f;border-top-color:#9c3f2c;border-radius:50%;animation:reimbursement-spin .8s linear infinite}.reimbursement-upload button:disabled{opacity:.65;cursor:wait}@keyframes reimbursement-spin{to{transform:rotate(360deg)}}
.reception-learning{display:grid;gap:1rem}.reception-card-rail{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:.25rem .15rem 1rem;scrollbar-width:thin}.reception-profile{position:relative;flex:0 0 clamp(240px,72vw,340px);scroll-snap-align:center;perspective:1200px}.reception-flip{display:block;width:100%;height:430px;padding:0;border:0;border-radius:20px;background:transparent}.reception-card-inner{position:relative;display:block;width:100%;height:100%;transition:transform .55s cubic-bezier(.2,.75,.25,1);transform-style:preserve-3d}.reception-profile.is-flipped .reception-card-inner{transform:rotateY(180deg)}.reception-card-face{position:absolute;inset:0;display:block;overflow:hidden;border:1px solid #aa9f90;border-radius:20px;background:#f5f0e8;backface-visibility:hidden;box-shadow:0 10px 25px #231d1720}.reception-card-front img{width:100%;height:100%;object-fit:cover}.reception-card-back{transform:rotateY(180deg);padding:2rem 1.5rem;text-align:left}.reception-card-back strong{display:block;font-size:1.65rem;margin-bottom:1.2rem}.reception-card-back dl{display:grid;gap:1rem;margin:0}.reception-card-back dl div{border-bottom:1px solid #c2b8aa;padding-bottom:.75rem}.reception-card-back dt{font-size:.8rem;color:#776e64}.reception-card-back dd{margin:.25rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.reception-card-actions{position:absolute;right:.7rem;bottom:.7rem;z-index:3;display:flex;gap:.35rem}.reception-card-actions form{margin:0}.reception-card-actions button,.reception-add-toggle{width:38px;height:38px;border:1px solid #a8422f;border-radius:50%;background:#fff;color:#9c3f2c}.reception-add-toggle{font-size:1.4rem}.reception-profile-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:1rem;border:1px solid #b8ad9f;border-radius:14px;background:#f4efe7}.reception-profile-form[hidden]{display:none}.reception-profile-form label{display:grid;gap:.3rem;font-weight:700}.reception-profile-form input,.reception-profile-form textarea{min-width:0;width:100%;padding:.65rem;border:1px solid #aaa092;border-radius:8px;background:#fff}.reception-profile-form button{align-self:end;border:0;border-radius:8px;padding:.75rem;background:#9c3f2c;color:#fff;font-weight:800}@media(max-width:600px){.reception-profile-form{grid-template-columns:1fr}.reception-flip{height:390px}}
.admin-reception-profiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem}.admin-reception-profiles article{display:grid;grid-template-columns:88px 1fr;gap:.75rem;padding:.75rem;border:1px solid #b4aa9c;border-radius:12px;background:#f4efe7}.admin-reception-profiles img{width:88px;height:112px;object-fit:cover;border-radius:8px}.admin-reception-profiles p{margin:.15rem 0;overflow-wrap:anywhere}
