@charset "UTF-8";
@font-face {
  font-family: IRANSans;
  src: url("../IRANSANS(FANUM).TTF") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  color-scheme: light;
  --ink: #1e2928;
  --muted: #74807d;
  --line: #e5eae6;
  --paper: #f5f7f4;
  --white: #fff;
  --rail: #202c2a;
  --rail-soft: #2d3b38;
  --green: #20745b;
  --green-soft: #e7f2ec;
  --amber: #d08a2f;
  --amber-soft: #fff4e2;
  --red: #ae5145;
  font-family: IRANSans, Tahoma, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-size: 13px; text-align: right; }
button, input, select, textarea { font: inherit; }
input, select, textarea { text-align: right; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 0 0 auto; z-index: 2; display: flex; width: 266px; flex-direction: column; background: var(--rail); color: #edf2ee; }
.brand { display: flex; align-items: center; gap: 12px; padding: 26px 22px 24px; border-bottom: 1px solid #394541; }
.brand-mark { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 11px; background: var(--amber); color: #fff; font-size: 23px; font-weight: 700; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 16px; }
.brand small { margin-top: 5px; color: #9aaba5; font-size: 10px; }
.sidebar-label { padding: 22px 22px 10px; color: #9eada8; font-size: 10px; font-weight: 700; }
.main-nav { display: grid; gap: 5px; padding: 15px 10px 6px; }
.nav-link { display: flex; min-height: 38px; align-items: center; gap: 10px; padding: 7px 12px; border-radius: 5px; color: #cfdbd5; font-size: 11px; }
.nav-link:hover, .nav-link.active { background: #344440; color: #fff; }
.nav-link span { width: 17px; color: var(--amber); font-size: 15px; text-align: center; }
.nav-icon { width: 17px; height: 17px; flex: 0 0 17px; color: var(--amber); }
.nav-link:hover .nav-icon, .nav-link.active .nav-icon { color: #f0c66d; }
.room-nav { display: grid; gap: 2px; overflow-y: auto; padding: 4px 0 8px; scrollbar-width: none; -ms-overflow-style: none; }
.room-menu-panel, .room-nav, .room-link { width: 100%; }
.room-nav::-webkit-scrollbar { display: none; }
.room-link { position: relative; display: flex; min-height: 43px; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 6px; color: #cfdbd5; font-size: 11px; line-height: 1.7; transition: background .15s ease, color .15s ease; }
.room-link:hover { background: var(--rail-soft); color: #fff; }
.room-link.active { background: #344440; color: #fff; }
.room-link.active::before { position: absolute; top: 9px; right: -10px; width: 3px; height: 25px; border-radius: 2px 0 0 2px; background: var(--amber); content: ""; }
.room-dot { width: 7px; height: 7px; flex: 0 0 7px; border: 1px solid #83918b; border-radius: 50%; }
.room-dot.done { border-color: #71c49b; background: #71c49b; }
.nav-check { margin-right: auto; color: #83d0a5; font-size: 12px; }
.sidebar-bottom { display: flex; align-items: center; gap: 8px; margin-top: auto; padding: 17px 22px; border-top: 1px solid #394541; color: #aebcb6; font-size: 10px; }
.live-indicator, .status-dot { width: 7px; height: 7px; border-radius: 50%; background: #60b884; }
.main-content { min-height: 100vh; margin-right: 266px; }
.topbar { display: flex; height: 61px; align-items: center; justify-content: space-between; padding: 0 42px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.88); }
.mobile-menu-toggle, .sidebar-backdrop { display: none; }
.topbar-identity { display: flex; align-items: center; gap: 10px; color: var(--ink); }
.topbar-identity img { display: block; width: 40px !important; max-width: 40px; height: 30px !important; flex: 0 0 40px; object-fit: contain; }
.topbar-identity strong { font-size: 12px; }
.crumb { color: var(--muted); font-size: 11px; }
.crumb span { padding: 0 8px; color: #b9c1bd; }
.top-date { display: flex; align-items: center; gap: 9px; color: #52605b; font-size: 11px; }
.date-icon { width: 18px; height: 18px; color: var(--green); }
.top-date-divider { width: 1px; height: 15px; margin-inline: 2px; background: var(--line); }
.top-time { color: var(--green); font-variant-numeric: tabular-nums; font-weight: 700; }
.page-wrap { width: min(100%, 1080px); margin: 0 auto; padding: 31px 42px 26px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0 0 20px; }
.page-heading.article-page-heading { display: none; }
.eyebrow { display: flex; align-items: center; gap: 8px; color: var(--green); font-size: 10px; font-weight: 700; }
.eyebrow-line { width: 19px; height: 2px; background: var(--amber); }
h1 { margin: 9px 0 6px; font-size: 23px; font-weight: 700; }
.page-heading p, .section-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.date-picker { display: grid; min-width: 174px; gap: 6px; }
.date-picker label { color: var(--muted); font-size: 10px; }
.date-picker input, .check-field input, .check-field select, .add-asset-form input, textarea { width: 100%; height: 39px; padding: 0 11px; border: 1px solid #dfe5e1; border-radius: 5px; outline: none; background: var(--white); color: var(--ink); }
.date-picker input { direction: rtl; }
input:focus, select:focus, textarea:focus { border-color: #57967c; box-shadow: 0 0 0 3px rgba(32,116,91,.09); }
.notice { display: flex; align-items: center; gap: 9px; margin: 0 0 14px; padding: 11px 13px; border: 1px solid; border-radius: 5px; font-size: 11px; }
.notice span { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; font-weight: 700; }
.notice.success { border-color: #c6e1d0; background: #eff8f2; color: #286649; }
.notice.success span { background: #d8eddf; }
.notice.error { border-color: #edc9c2; background: #fff2ef; color: #9d4035; }
.notice.error span { background: #f8dfda; }
.overview { display: flex; min-height: 105px; align-items: center; gap: 24px; margin-bottom: 17px; padding: 19px 22px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.overview-main { display: flex; min-width: 216px; align-items: center; gap: 13px; }
.overview-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 8px; background: var(--green-soft); color: var(--green); font-size: 24px; }
.overview-caption { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }
.overview-main strong { font-size: 20px; }
.overview-main strong small { color: var(--muted); font-size: 10px; font-weight: 400; }
.overview-divider { width: 1px; height: 49px; background: var(--line); }
.progress-block { flex: 1; }
.progress-copy { display: flex; justify-content: space-between; margin-bottom: 9px; color: #53615c; font-size: 10px; }
.progress-copy strong { color: var(--green); }
.progress-track { height: 6px; overflow: hidden; border-radius: 10px; background: #edf0ed; }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--green); transition: width .2s ease; }
.progress-block > small { display: block; margin-top: 7px; color: #8a9691; font-size: 9px; }
.record-status { display: flex; align-items: center; gap: 7px; padding: 8px 10px; border-radius: 4px; background: #f1f3f1; color: #77827e; font-size: 10px; white-space: nowrap; }
.record-status .status-dot { background: #aab4af; }
.record-status.recorded { background: var(--green-soft); color: #286649; }
.record-status.recorded .status-dot { background: #50a477; }
.shift-lock-notice { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 17px; padding: 17px 19px; border: 1px solid #c8e1d0; border-radius: 6px; background: #eff8f1; color: #286649; }
.shift-lock-icon { display: grid; width: 29px; height: 29px; flex: 0 0 29px; place-items: center; border-radius: 50%; background: #d8eddf; font-size: 15px; font-weight: 700; }
.shift-lock-notice strong { display: block; margin: 2px 0 5px; font-size: 12px; }
.shift-lock-notice p { margin: 0; color: #526e5b; font-size: 10px; line-height: 1.9; }
.shift-worker-required { color: #9d4035; font-size: 10px; }
.inspection-confirm-dialog { width: min(420px, calc(100% - 28px)); padding: 0; border: 1px solid #dce5de; border-radius: 10px; background: #fff; color: var(--ink); box-shadow: 0 20px 70px rgba(20, 34, 27, .24); }
.inspection-confirm-dialog::backdrop { background: rgba(20, 34, 27, .48); backdrop-filter: blur(2px); }
.inspection-confirm-content { display: grid; gap: 10px; padding: 25px; }
.inspection-confirm-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: var(--green-soft); color: var(--green); font-size: 20px; }
.inspection-confirm-content h2 { margin: 2px 0 0; font-size: 16px; }
.inspection-confirm-content p { margin: 0 0 5px; color: var(--muted); font-size: 11px; }
.inspection-confirm-content label { color: #56635e; font-size: 10px; font-weight: 700; }
.inspection-confirm-content select { width: 100%; height: 42px; padding: 0 11px; border: 1px solid #dfe5e1; border-radius: 5px; background: #fff; color: var(--ink); }
.inspection-confirm-actions { display: flex; justify-content: flex-start; gap: 9px; margin-top: 9px; }
.inspection-form { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.form-section { padding: 21px 23px 23px; border-bottom: 1px solid var(--line); }
.section-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 19px; }
.section-number { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 6px; background: var(--amber-soft); color: #a56a1e; font-size: 10px; font-weight: 700; }
.section-heading h2 { margin: 0 0 5px; font-size: 13px; }
.section-heading p { font-size: 10px; }
.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.check-field label { display: block; margin-bottom: 7px; color: #56635e; font-size: 10px; font-weight: 700; }
.check-field input, .check-field select { height: 38px; font-size: 11px; }
.check-field input::placeholder, .add-asset-form input::placeholder, textarea::placeholder { color: #a5afaa; }
.input-with-unit { display: flex; height: 38px; overflow: hidden; border: 1px solid #dfe5e1; border-radius: 5px; }
.input-with-unit:focus-within { border-color: #57967c; box-shadow: 0 0 0 3px rgba(32,116,91,.09); }
.input-with-unit input { height: 100%; border: 0; box-shadow: none; }
.input-with-unit span { display: grid; min-width: 45px; place-items: center; border-right: 1px solid var(--line); background: #f8faf8; color: #7b8782; font-size: 10px; }
.asset-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: -1px 0 12px; }
.asset-count { color: var(--muted); font-size: 10px; white-space: nowrap; }
.room-inventory { margin-top: 19px; padding-top: 14px; border-top: 1px solid var(--line); }
.inventory-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 11px; }
.inventory-heading h3 { margin: 0; color: #394541; font-size: 11px; }
.inventory-heading > span { color: var(--muted); font-size: 9px; }
.add-asset-form { display: flex; width: min(100%, 430px); gap: 7px; }
.add-asset-form input { height: 35px; font-size: 10px; }
.add-button { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; padding: 0 11px; border: 1px solid #b8d4c4; border-radius: 5px; background: #f3f8f4; color: var(--green); cursor: pointer; font-size: 10px; font-weight: 700; }
.add-button:hover { background: var(--green-soft); }
.add-button span { font-size: 16px; }
.asset-list { border-top: 1px solid var(--line); }
.asset-row { display: flex; min-height: 52px; align-items: center; gap: 11px; border-bottom: 1px solid #edf0ed; }
.asset-symbol { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 5px; background: #f0f3f1; color: #78847f; font-size: 15px; }
.asset-name { flex: 1; color: #394541; font-size: 11px; }
.presence-options { display: flex; gap: 5px; }
.presence-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.presence-choice span { display: block; padding: 7px 10px; border: 1px solid #e1e6e2; border-radius: 4px; color: #78837e; cursor: pointer; font-size: 9px; }
.presence-choice input:checked + span { border-color: #a8d1b7; background: #edf7f0; color: #286649; }
.presence-choice input[value="0"]:checked + span { border-color: #e8c1b9; background: #fff1ee; color: #a3463a; }
.presence-choice input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 2px; }
.icon-button { display: grid; width: 28px; height: 28px; place-items: center; border: 0; border-radius: 4px; background: transparent; color: #a0aaa5; cursor: pointer; font-size: 19px; }
.icon-button:hover { background: #fff0ed; color: var(--red); }
.empty-assets { display: flex; align-items: center; gap: 12px; padding: 17px; border: 1px dashed #dbe3dd; border-radius: 5px; background: #fafcf9; color: #85918b; }
.empty-assets > span { font-size: 22px; }
.empty-assets strong, .empty-assets small { display: block; }
.empty-assets strong { margin-bottom: 5px; color: #57645e; font-size: 10px; }
.empty-assets small { font-size: 9px; }
.notes-section { padding-bottom: 20px; }
.compact-heading { margin-bottom: 13px; }
.notes-section textarea { display: block; height: auto; min-height: 76px; padding: 10px 12px; resize: vertical; font-size: 11px; line-height: 1.8; }
.transformer-note-field { display: block; margin-top: 17px; }
.transformer-note-field > span { display: block; margin-bottom: 7px; color: #47564d; font-size: 10px; font-weight: 700; }
.photo-upload-section { margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--line); }
.photo-upload-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.photo-upload-heading h3 { margin: 0 0 5px; font-size: 11px; }
.photo-upload-heading p { margin: 0; color: var(--muted); font-size: 9px; }
.photo-picker-button { display: inline-flex; min-height: 35px; flex: 0 0 auto; align-items: center; gap: 6px; padding: 0 12px; border: 1px solid #b8d4c4; border-radius: 5px; background: #f3f8f4; color: var(--green); cursor: pointer; font-size: 10px; font-weight: 700; }
.photo-picker-button:hover { background: var(--green-soft); }
.photo-picker-button span { font-size: 16px; }
.photo-file-input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.photo-file-input:focus-visible + .photo-picker-button { outline: 2px solid var(--green); outline-offset: 2px; }
.photo-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 10px; }
.photo-gallery:empty { display: none; }
.photo-card { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border: 1px solid var(--line); border-radius: 5px; background: #edf1ed; }
.photo-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-delete-button { position: absolute; top: 7px; right: 7px; z-index: 1; display: inline-flex; min-height: 27px; align-items: center; gap: 4px; padding: 0 8px; border: 0; border-radius: 4px; background: rgba(30,41,40,.86); color: #fff; cursor: pointer; font-size: 9px; }
.photo-delete-button:hover { background: #a3463a; }
.photo-delete-button:disabled { cursor: wait; opacity: .65; }
.photo-hint { display: block; margin-top: 9px; color: #89948e; font-size: 9px; }
.photo-delete-status { margin-bottom: 0; color: #a3463a; }
.form-footer { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 23px; background: #fcfdfb; }
.form-footer > span { color: #8a9691; font-size: 10px; }
.wizard-step[hidden] { display: none !important; }
.wizard-navigation { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 19px; border-top: 1px solid var(--line); background: #fcfdfb; }
.wizard-button { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; gap: 8px; padding: 0 15px; border: 1px solid transparent; border-radius: 5px; cursor: pointer; font-size: 11px; }
.wizard-button[hidden] { display: none; }
.wizard-button.primary { justify-self: end; background: var(--green); color: #fff; }
.wizard-button.primary:hover { background: #195e49; }
.wizard-button.secondary { justify-self: start; border-color: #dfe5e1; background: #fff; color: #52605b; }
.wizard-button.secondary:hover { background: #f1f4f1; }
.wizard-progress { min-width: 130px; color: var(--muted); font-size: 9px; text-align: center; }
.wizard-progress strong { color: var(--ink); font-size: 10px; }
.wizard-track { width: 140px; max-width: 100%; height: 4px; margin: 7px auto 0; overflow: hidden; border-radius: 4px; background: #e8ece8; }
.wizard-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--green); transition: width .2s ease; }
.room-switcher { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -5px 0 15px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.room-switcher-label { color: var(--muted); font-size: 10px; }
.room-switcher > div { display: flex; gap: 5px; }
.room-switch-link { padding: 7px 11px; border-radius: 4px; color: #65716b; font-size: 10px; }
.room-switch-link:hover { background: #f1f4f1; }
.room-switch-link.active { background: var(--green-soft); color: #286649; font-weight: 700; }
.save-button { display: flex; min-height: 38px; align-items: center; gap: 8px; padding: 0 16px; border: 0; border-radius: 5px; background: var(--green); color: #fff; cursor: pointer; font-size: 11px; font-weight: 700; }
.save-button:hover { background: #195e49; }
.save-button span { font-size: 14px; }
.page-footnote { padding: 16px 0 0; color: #97a29c; font-size: 9px; }
.page-footnote span { padding: 0 5px; color: var(--amber); }
.jalali-date-control { display: flex; gap: 6px; }
.jalali-date-control input { min-width: 0; }
.jalali-date-control button { flex: 0 0 auto; padding: 0 12px; border: 0; border-radius: 5px; background: var(--green); color: #fff; cursor: pointer; font-size: 10px; }
.jalali-date-control button:hover { background: #195e49; }
.report-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; padding: 16px 19px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.report-summary .overview-caption { margin-bottom: 6px; }
.report-summary > div:first-child > strong { font-size: 17px; }
.report-summary-count { display: flex; align-items: baseline; gap: 8px; color: var(--muted); font-size: 10px; }
.report-summary-count strong { color: var(--green); font-size: 22px; }
.report-list { display: grid; gap: 9px; }
.report-date-navigation { display: flex; align-items: center; gap: 16px; }
.report-date-navigation > div { display: grid; gap: 5px; }
.report-date-navigation > div > strong { font-size: 17px; }
.report-date-navigation > a { padding: 7px 10px; border: 1px solid var(--line); border-radius: 5px; color: var(--green); font-size: 10px; white-space: nowrap; }
.report-date-navigation > a:hover { border-color: var(--green); background: var(--green-soft); }
.report-shift-entry + .report-shift-entry { margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line); }
.report-shift-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; color: var(--green); font-size: 10px; }
.report-shift-heading span { color: var(--muted); font-size: 9px; }
.report-photo-section { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.report-photo-section h3 { margin: 0 0 10px; color: var(--green); font-size: 11px; }
.report-photo-slider { width: min(100%, 760px); margin-inline: auto; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #f7f8f7; }
.report-photo-track { position: relative; display: grid; width: 100%; min-height: 190px; place-items: center; overflow: hidden; }
.report-photo-track img { display: block; width: auto; height: auto; max-width: 100%; max-height: min(70vh, 560px); object-fit: contain; cursor: zoom-in; }
.report-photo-track img[hidden] { display: none; }
.report-photo-magnifier { position: absolute; z-index: 1; display: none; width: 150px; height: 150px; border: 2px solid #fff; border-radius: 50%; background-color: #fff; background-repeat: no-repeat; box-shadow: 0 2px 9px rgba(0, 0, 0, .3); pointer-events: none; }
.report-photo-magnifier.is-visible { display: block; }
.report-photo-controls { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px; border-top: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 10px; }
.report-photo-controls span { min-width: 48px; text-align: center; font-variant-numeric: tabular-nums; }
.report-photo-controls button { display: grid; width: 28px; height: 26px; place-items: center; border: 1px solid #dce4de; border-radius: 4px; background: #fff; color: var(--green); cursor: pointer; font-size: 17px; line-height: 1; transition: background .15s ease, border-color .15s ease; }
.report-photo-controls button:hover { border-color: #b8cfc0; background: #f1f6f2; }
.report-photo-controls button:focus-visible { outline: 2px solid #d9a84e; outline-offset: 2px; }
.learning-grid { display: grid; width: min(100%, 760px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.learning-grid > .shift-empty-state { grid-column: 1 / -1; margin: 0; }
.learning-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #e2e9e4; border-radius: 7px; background: #fff; box-shadow: 0 2px 8px rgba(30, 52, 40, .045); transition: box-shadow .16s ease, border-color .16s ease; }
.learning-card:hover { border-color: #c7d9cb; box-shadow: 0 6px 16px rgba(30, 52, 40, .09); }
.learning-cover-wrap { position: relative; overflow: hidden; background: #edf3ee; }
.learning-cover, .learning-cover-placeholder { display: grid; width: 100%; aspect-ratio: 2.15 / 1; max-height: 145px; object-fit: cover; }
.learning-cover-placeholder { place-content: center; justify-items: center; gap: 5px; background: linear-gradient(135deg, #e3eee6, #f3f7f3); color: #5e7d67; font-size: 10px; font-weight: 700; }
.learning-placeholder-icon { width: 23px; height: 23px; opacity: .8; }
.learning-cover-category { position: absolute; right: 9px; bottom: 8px; max-width: calc(100% - 18px); overflow: hidden; padding: 4px 8px; border: 1px solid rgba(255,255,255,.7); border-radius: 4px; background: rgba(255,255,255,.94); color: #286649; font-size: 8px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.learning-card-body { display: flex; flex: 1; flex-direction: column; padding: 16px 16px 15px; }
.learning-card > .learning-card-body > .learning-title { display: block; overflow: hidden; margin: 0 0 15px; color: #26382d; font-size: 13px; font-weight: 700; line-height: 1.6; text-overflow: ellipsis; white-space: nowrap; }
.learning-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0 0 17px; }
.learning-meta-item { display: flex; min-width: 0; align-items: center; gap: 6px; padding: 0; color: #354b3c; }
.learning-meta-item:first-child { justify-content: flex-start; }
.learning-meta-item:nth-child(2) { justify-content: flex-end; }
.learning-meta-item > svg { width: 15px; height: 15px; flex: 0 0 auto; color: #42845c; }
.learning-meta-item:nth-child(2) > svg { color: #527b9c; }
.learning-meta-copy { display: flex; min-width: 0; flex-wrap: wrap; align-items: baseline; gap: 0 5px; }
.learning-meta-label { flex: 0 0 auto; color: #758078; font-size: 9px; line-height: 1.5; }
.learning-meta-item time, .learning-meta-item strong { overflow: hidden; color: #33453a; font-size: 9px; font-weight: 700; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.learning-excerpt { display: -webkit-box; overflow: hidden; margin: 0 0 19px; color: #6a756d; font-size: 9px; line-height: 1.9; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.learning-read-more { display: inline-flex; align-items: center; justify-content: center; align-self: flex-end; min-height: 34px; margin: auto 0 0; padding: 0 15px; border: 0; border-radius: 5px; background: #286649; color: #fff; font-size: 9px; font-weight: 700; transition: background .15s ease, box-shadow .15s ease; }
.learning-read-more:hover { background: #1e543b; box-shadow: 0 3px 8px rgba(32, 116, 91, .2); }
.learning-article { max-width: 900px; margin: 0 auto; padding: 22px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.article-page-title { display: flex; align-items: flex-start; gap: 13px; width: 100%; margin-bottom: 25px; padding: 18px 20px; border: 1px solid #e1ebe3; border-right: 3px solid var(--green); border-radius: 7px; background: linear-gradient(135deg, #f5f9f5, #fbfcfb); box-shadow: 0 3px 10px rgba(30, 52, 40, .045); }
.article-page-title > svg { width: 34px; height: 34px; flex: 0 0 auto; padding: 7px; border-radius: 6px; background: var(--green-soft); color: var(--green); }
.article-page-title h1 { margin: 7px 0 10px; color: var(--green); font-size: 20px; line-height: 1.7; }
.article-page-title .learning-meta { margin: 0 0 11px; }
.article-page-title .learning-category { display: inline-flex; }
.learning-article > .learning-category { display: block; width: fit-content; margin-bottom: 14px; }
.learning-article-cover { display: block; width: 100%; max-height: 420px; margin: 0 auto 16px; border-radius: 6px; object-fit: contain; }
.learning-article .learning-content { margin: 0; color: var(--ink); font-size: 12px; line-height: 2; }
.learning-category { align-self: flex-start; padding: 5px 9px; border-radius: 4px; background: var(--green-soft); color: var(--green); font-size: 9px; font-weight: 700; }
.learning-categories { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.learning-subcategory { padding: 4px 8px; border: 1px solid #e5eae6; border-radius: 4px; color: #68756e; font-size: 9px; }
.learning-card h2 { margin: 15px 0 8px; font-size: 14px; }
.learning-card > p { margin: 0; color: #65716b; font-size: 10px; line-height: 2; }
.learning-card > .learning-author { margin: -3px 0 11px; color: var(--muted); font-size: 9px; }
.learning-content { color: #65716b; font-size: 10px; line-height: 2; overflow-wrap: anywhere; }
.learning-content p, .learning-content div, .learning-content blockquote { margin: 0 0 10px; }
.learning-content ul, .learning-content ol { padding-right: 20px; }
.learning-content img, .article-editor-canvas img { max-width: 100%; border-radius: 5px; }
.learning-content img[data-align="left"], .article-editor-canvas img[data-align="left"] { display: block; margin-right: auto; margin-left: 0; }
.learning-content img[data-align="center"], .article-editor-canvas img[data-align="center"] { display: block; margin-right: auto; margin-left: auto; }
.learning-content img[data-align="right"], .article-editor-canvas img[data-align="right"] { display: block; margin-right: 0; margin-left: auto; }
.learning-content h2 { box-sizing: border-box; display: block; clear: both; width: 100%; margin: 22px 0 14px; padding: 12px 15px; border: 1px solid #e9e5da; border-right: 3px solid #b99a5b; border-radius: 6px; background: linear-gradient(135deg, #fbfaf6, #f5f3ec); box-shadow: 0 2px 7px rgba(54, 49, 35, .035); color: #465044; font-size: 18px; font-weight: 700; line-height: 1.7; }
.learning-content h2::before, .article-editor-canvas h2::before { display: inline-block; width: 25px; height: 25px; margin-left: 9px; border: 1px solid #e8d9b6; border-radius: 5px; background: #f3ead6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 6h14M5 11h14M5 16h9' fill='none' stroke='%239a7840' stroke-linecap='round' stroke-width='2.2'/%3E%3C/svg%3E") center / 15px 15px no-repeat; content: ""; vertical-align: middle; }
.learning-content h3 { box-sizing: border-box; display: table; width: fit-content; max-width: 100%; clear: both; margin: 16px 0 9px; padding: 7px 12px 7px 28px; border-right: 3px solid #8ca897; background: linear-gradient(to left, #edf4ef 0%, #f4f7f4 76%, rgba(244,247,244,0) 100%); color: #345744; font-size: 14px; font-weight: 700; line-height: 1.8; }
.learning-content h3::before, .article-editor-canvas h3::before { display: inline-block; width: 17px; height: 17px; margin-left: 7px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 6h14M5 11h10M5 16h7' fill='none' stroke='%23557862' stroke-linecap='round' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat; content: ""; vertical-align: middle; }
.learning-content blockquote, .article-editor-canvas blockquote { margin: 12px 0; padding: 12px 15px; border: 1px solid #e0e8e9; border-right: 3px solid #78949a; border-radius: 5px; background: linear-gradient(135deg, #f6f9f9, #eef3f4); color: #48595d; }
.learning-content blockquote > strong:first-child, .article-editor-canvas blockquote > strong:first-child { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 5px; color: #526d72; font-size: 10px; font-weight: 800; }
.learning-content blockquote > strong:first-child::before, .article-editor-canvas blockquote > strong:first-child::before { display: inline-block; width: 16px; height: 16px; border-radius: 50%; background: #dfeaec url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 18h6m-5 3h4m-2-19a6 6 0 0 0-3.6 10.8c.8.6 1.2 1.4 1.3 2.2h4.6c.1-.8.5-1.6 1.3-2.2A6 6 0 0 0 12 2Z' fill='none' stroke='%23526d72' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.7'/%3E%3C/svg%3E") center / 12px 12px no-repeat; content: ""; }
.learning-content [data-article-columns="true"], .article-editor-canvas [data-article-columns="true"] { display: grid; gap: 14px; align-items: stretch; margin: 14px 0; }
.learning-content [data-article-column="true"], .article-editor-canvas [data-article-column="true"] { min-width: 0; }
.learning-content [data-article-column="true"] img, .article-editor-canvas [data-article-column="true"] img { max-width: 100%; height: auto !important; object-fit: contain; }
.article-editor-canvas [data-article-columns="true"] > [data-article-column="true"] { min-height: 76px; padding: 9px; border: 1px dashed #aebbb1; border-radius: 5px; background: rgba(248, 250, 248, .7); }
.learning-takeaway { display: grid; gap: 5px; margin-top: auto; padding-top: 14px; color: #65716b; font-size: 9px; line-height: 1.9; }
.learning-takeaway strong { color: var(--green); }
.shift-setup, .shift-schedule-section { margin-bottom: 18px; padding: 20px; border: 1px solid #e2e9e4; border-radius: 9px; background: #fff; box-shadow: 0 3px 12px rgba(31, 53, 42, .035); }
.shift-setup-heading, .shift-schedule-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 15px; }
.shift-setup-heading h2, .shift-schedule-heading h2 { margin: 0 0 5px; font-size: 13px; }
.shift-setup-heading p, .shift-schedule-heading p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.8; }
.shift-worker-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; gap: 12px; }
.shift-form-field { display: grid; gap: 6px; color: #56635e; font-size: 10px; font-weight: 700; }
.shift-form-field input, .shift-form-field select { width: 100%; height: 39px; padding: 0 10px; border: 1px solid #dfe5e1; border-radius: 5px; outline: none; background: #fff; color: var(--ink); }
.shift-add-button { justify-content: center; white-space: nowrap; }
.shift-lookup-section { margin-bottom: 18px; padding: 20px; border: 1px solid #dce8df; border-radius: 9px; background: #f7faf7; }
.shift-lookup-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 15px; }
.shift-lookup-icon { display: grid; width: 37px; height: 37px; flex: 0 0 37px; place-items: center; border-radius: 9px; background: #e0eee4; color: var(--green); font-size: 22px; }
.shift-lookup-heading h2 { margin: 0 0 5px; font-size: 13px; }
.shift-lookup-heading p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.8; }
.shift-lookup-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 12px; }
.shift-lookup-button { justify-content: center; white-space: nowrap; }
.shift-lookup-result { display: flex; align-items: center; gap: 18px; margin-top: 16px; padding: 13px 16px; border: 1px solid #e7ece7; border-radius: 6px; background: #fff; }
.shift-result-date, .shift-result-person { display: grid; gap: 6px; }
.shift-result-date span, .shift-result-person > span { color: var(--muted); font-size: 9px; }
.shift-result-date strong { color: #35423d; font-size: 13px; }
.shift-result-person .shift-badge { justify-self: start; }
.shift-result-divider { width: 1px; height: 38px; background: var(--line); }
.shift-schedule-section { overflow: hidden; padding: 0; border-color: #e0e8e2; }
.shift-schedule-heading { min-height: 78px; margin: 0; padding: 16px 20px; border-bottom: 1px solid #e7ece8; background: #fff; }
.shift-schedule-title { display: flex; align-items: center; gap: 12px; }
.shift-schedule-icon { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border: 1px solid #d9e8dd; border-radius: 10px; background: #f0f7f2; color: #28734f; font-size: 20px; }
.shift-schedule-heading h2 { margin: 0 0 5px; color: #263831; font-size: 14px; }
.shift-schedule-heading p { color: #77847d; font-size: 10px; }
.shift-worker-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 11px 20px; border-bottom: 1px solid #edf0ed; background: #fbfcfb; }
.shift-worker-filter > span { color: #526159; font-size: 10px; font-weight: 700; }
.shift-worker-filter input { width: min(100%, 260px); min-height: 34px; padding: 6px 10px; border: 1px solid #dfe6e0; border-radius: 5px; background: #fff; color: var(--ink); font: inherit; font-size: 10px; }
.shift-worker-filter input:focus { outline: 2px solid #c9ddce; outline-offset: 1px; }
.shift-worker-filter small { min-width: 45px; color: var(--muted); font-size: 9px; }
.shift-filter-empty { margin: 0; padding: 17px 20px; color: var(--muted); font-size: 10px; text-align: center; }
.shift-person[hidden], .shift-filter-empty[hidden], .shift-no-people[hidden] { display: none !important; }
.shift-table tbody tr[hidden] { display: none; }
.admin-shift-worker-filter { border-top: 1px solid #edf0ed; }
.shift-legend { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
.shift-legend-item, .shift-today-legend { display: inline-flex; min-height: 25px; align-items: center; gap: 6px; padding: 4px 8px; border: 1px solid #e5eae6; border-radius: 5px; background: #fff; color: #58655f; font-size: 9px; font-weight: 600; }
.shift-legend-item::before { width: 7px; height: 7px; border-radius: 50%; background: #aeb8b1; content: ""; }
.shift-legend-item.day::before { background: #4a9b66; }
.shift-legend-item.night::before { background: #657ac2; }
.shift-legend-item.rest::before { background: #929c96; }
.shift-today-legend { border-color: #edcf85; background: #fff8e7; color: #80631a; }
.shift-table-scroll { overflow: auto; max-height: min(65vh, 620px); border: 0; border-radius: 0; box-shadow: none; }
.shift-table { width: 100%; min-width: 920px; border-collapse: separate; border-spacing: 0; text-align: center; }
.shift-table th, .shift-table td { padding: 11px 8px; border-bottom: 1px solid #edf0ee; border-left: 1px solid #f0f2f0; }
.shift-table thead th { position: sticky; top: 0; z-index: 3; height: 68px; background: #f7f9f7; color: #68756e; font-size: 9px; }
.shift-table tbody tr { transition: background .15s ease; }
.shift-table tbody tr:nth-child(even) { background: #fbfcfb; }
.shift-table tbody tr:hover { background: #f4f8f5; }
.shift-table tbody tr:last-child th, .shift-table tbody tr:last-child td { border-bottom: 0; }
.shift-table th:last-child, .shift-table td:last-child { border-left: 0; }
.shift-table .shift-name-column, .shift-table .shift-worker-name { position: sticky; right: 0; z-index: 2; min-width: 160px; background: #fff; text-align: right; }
.shift-table .shift-name-column { z-index: 4; background: #f1f5f2; color: #34473b; }
.shift-name-heading, .shift-management-heading { color: #536159; font-size: 10px; font-weight: 700; }
.shift-table tbody tr:nth-child(even) .shift-worker-name { background: #fbfcfb; }
.shift-table tbody tr:hover .shift-worker-name { background: #f4f8f5; }
.shift-table .shift-worker-name { color: #35423d; font-size: 10px; font-weight: 700; white-space: nowrap; }
.shift-worker-avatar { display: inline-grid; width: 29px; height: 29px; margin-left: 8px; place-items: center; border: 1px solid #e0e8e2; border-radius: 50%; background: #f1f5f2; color: #4b6855; font-size: 10px; vertical-align: middle; }
.shift-worker-label { display: inline-block; max-width: 105px; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.shift-date-column { min-width: 112px; }
.shift-date-column .shift-day-name, .shift-date-column .shift-day-date, .shift-date-column .shift-day-today { display: block; }
.shift-date-column .shift-day-name { color: #59675f; font-size: 10px; font-weight: 700; }
.shift-date-column .shift-day-date { margin-top: 5px; color: #344139; font-size: 10px; }
.shift-date-column .shift-day-today { width: max-content; margin: 5px auto 0; padding: 2px 7px; border-radius: 4px; background: #f4e6bf; color: #725a1d; font-size: 8px; }
.shift-date-column.is-today { background: #f8f0dc; box-shadow: inset 0 2px #d3ad54; }
.shift-grouped-table { min-width: 920px; }
.shift-grouped-table .shift-name-column, .shift-grouped-table .shift-group-row-heading { position: sticky; right: 0; z-index: 2; min-width: 132px; background: #f7f9f7; text-align: right; }
.shift-grouped-table .shift-name-column { z-index: 4; }
.shift-grouped-table .shift-group-row-heading { color: #39794c; font-size: 10px; font-weight: 700; }
.shift-grouped-table .shift-group-row-heading.night { color: #586caa; }
.shift-grouped-table .shift-group-row-heading.rest { color: #737f77; }
.shift-grouped-table .shift-date-column { min-width: 112px; }
.shift-grouped-table .shift-date-column.is-today { background: #f8f0dc; box-shadow: inset 0 2px #d3ad54; }
.shift-grouped-table td.shift-group-cell { min-width: 112px; padding: 8px 6px; vertical-align: top; }
.shift-grouped-table td.shift-group-cell.day { background: #fbfdfb; }
.shift-grouped-table td.shift-group-cell.night { background: #fbfbfe; }
.shift-grouped-table td.shift-group-cell.rest { background: #fcfcfc; }
.shift-grouped-table td.shift-group-cell.is-today { box-shadow: inset 1px 0 #ead8a7, inset -1px 0 #ead8a7; }
.shift-people-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.shift-person { display: flex; min-height: 43px; align-items: center; gap: 8px; padding: 6px 9px; border: 1px solid #e7ece8; border-radius: 7px; background: #fff; text-align: right; }
.shift-person .shift-worker-avatar { width: 28px; height: 28px; flex: 0 0 28px; margin: 0; }
.shift-person-details { display: grid; min-width: 0; gap: 2px; }
.shift-person-details strong { overflow: hidden; color: #35423d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.shift-person-details small { color: #758078; font-size: 8px; }
.shift-group-cell.day .shift-person { border-color: #d8e8dc; background: #f5faf6; }
.shift-group-cell.night .shift-person { border-color: #dfe3f0; background: #f6f7fb; }
.shift-group-cell.rest .shift-person { border-color: #e5e8e5; background: #f8f9f8; }
.shift-group-cell .shift-worker-avatar { border-color: #e0e8e2; background: #fff; color: #4b6855; }
.shift-group-cell .shift-person-details small { width: max-content; padding: 2px 6px; border-radius: 3px; background: #eef4ef; color: #54735c; }
.shift-group-cell.night .shift-person-details small { background: #eef0f7; color: #6475a5; }
.shift-group-cell.rest .shift-person-details small { background: #eef0ee; color: #727c75; }
.shift-no-people { display: inline-grid; min-height: 42px; place-items: center; color: #9aa39d; }
.shift-table td.shift-cell { min-width: 112px; padding: 11px 7px; background: #fff; }
.shift-table tbody tr:nth-child(even) td.shift-cell { background: #fbfcfb; }
.shift-table td.shift-cell.is-today, .shift-table tbody tr:nth-child(even) td.shift-cell.is-today { background: #fffaf0; box-shadow: inset 1px 0 #ead8a7, inset -1px 0 #ead8a7; }
.shift-cell { min-width: 112px; }
.shift-badge { display: inline-flex; min-height: 29px; align-items: center; justify-content: center; gap: 6px; padding: 5px 9px; border: 1px solid transparent; border-radius: 6px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.shift-badge::before { width: 7px; height: 7px; border-radius: 50%; background: currentColor; content: ""; }
.shift-badge.day { border-color: #d5ead9; background: #edf7ef; color: #39794c; }
.shift-badge.night { border-color: #dbe1f2; background: #f0f3fa; color: #586caa; }
.shift-badge.rest { border-color: #e4e8e5; background: #f4f6f4; color: #737f77; }
.shift-management-cell { min-width: 63px; }
.shift-management-cell form { margin: 0; }
.shift-remove-button { padding: 5px 8px; border: 1px solid #edc9c2; border-radius: 4px; background: #fff5f2; color: #9d4035; cursor: pointer; font-size: 9px; }
.shift-empty-state { padding: 22px; border: 1px dashed #cbd5ce; border-radius: 6px; background: #fff; color: var(--muted); font-size: 11px; text-align: center; }
.dashboard-intro p { max-width: 650px; line-height: 1.9; }
.dashboard-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 25px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.dashboard-summary-item { display: grid; grid-template-columns: 30px minmax(0, 1fr); min-height: 88px; align-content: center; align-items: center; gap: 5px 10px; padding: 15px 20px; }
.dashboard-summary-item + .dashboard-summary-item { border-right: 1px solid var(--line); }
.dashboard-summary-item > span:not(.dashboard-summary-icon) { grid-column: 2; color: var(--muted); font-size: 10px; }
.dashboard-summary-item strong { grid-column: 2; font-size: 18px; }
.dashboard-summary-item strong small { margin-right: 5px; color: var(--muted); font-size: 10px; font-weight: 400; }
.dashboard-summary-icon { display: grid; width: 30px; height: 30px; grid-row: 1 / span 2; place-items: center; border: 1px solid #e3e9e4; border-radius: 7px; background: #f7f9f7; color: #627269; }
.dashboard-summary-icon svg { width: 17px; height: 17px; }
.dashboard-summary-icon.completed { border-color: #dce9df; background: #f1f7f2; color: var(--green); }
.dashboard-summary-icon.pending { border-color: #eee5d1; background: #faf7ef; color: #9a7a35; }
.dashboard-summary-icon.today { border-color: #dde3ef; background: #f3f5fa; color: #6475a5; }
.dashboard-locations-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 13px; }
.dashboard-locations-heading h2 { margin: 0 0 5px; font-size: 14px; }
.dashboard-locations-heading p { margin: 0; color: var(--muted); font-size: 10px; }
.dashboard-locations-heading > a { color: var(--green); font-size: 10px; font-weight: 700; }
.dashboard-locations-heading > a span { margin-right: 4px; }
.dashboard-location-list { border-top: 1px solid var(--line); }
.dashboard-location { display: grid; grid-template-columns: 9px minmax(0, 1fr) auto 18px; min-height: 49px; align-items: center; gap: 11px; padding: 8px 10px; border-bottom: 1px solid var(--line); transition: background .15s ease; }
.dashboard-location:hover { background: #fff; }
.dashboard-location-status { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid #e7e9e7; border-radius: 6px; background: #f6f7f6; color: #87918b; }
.dashboard-location-status svg { width: 14px; height: 14px; }
.dashboard-location-status.done { border-color: #dce9df; background: #f1f7f2; color: var(--green); }
.dashboard-location-name { font-size: 11px; font-weight: 700; }
.dashboard-location-state { color: var(--muted); font-size: 10px; }
.dashboard-location-arrow { color: var(--green); font-size: 15px; }
.report-room { padding: 15px 18px; border: 1px solid var(--line); border-right: 3px solid #c9d1cc; border-radius: 5px; background: #fff; }
.report-room.has-report { border-right-color: var(--green); }
.report-room-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.report-room-type { display: block; margin-bottom: 5px; color: var(--muted); font-size: 9px; }
.report-room-heading h2 { margin: 0; font-size: 12px; }
.report-status { display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; border-radius: 4px; font-size: 9px; white-space: nowrap; }
.report-status.done { background: var(--green-soft); color: #286649; }
.report-status.done span { font-size: 16px; }
.report-status.missing { background: #f1f3f1; color: #78837e; }
.report-empty { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #edf0ed; color: #89938e; font-size: 10px; }
.report-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.report-check { display: flex; min-height: 43px; flex-direction: column; justify-content: center; gap: 5px; padding: 7px 9px; border-radius: 4px; background: #f6f8f6; }
.report-check span { color: var(--muted); font-size: 9px; }
.report-check strong { color: #35423d; font-size: 10px; }
.report-assets { display: grid; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #edf0ed; }
.report-assets > strong, .report-notes strong { color: #58655f; font-size: 10px; }
.report-assets > div { display: flex; flex-wrap: wrap; gap: 6px; }
.report-asset { padding: 6px 8px; border-radius: 4px; font-size: 9px; }
.report-asset.present { background: var(--green-soft); color: #286649; }
.report-asset.absent { background: #fff1ee; color: #a3463a; }
.report-notes { margin: 11px 0 0; padding: 9px 10px; border-radius: 4px; background: #fff8eb; color: #68593f; font-size: 10px; line-height: 1.9; }
@media (max-width: 980px) {
  .sidebar { width: 232px; }
  .main-content { margin-right: 232px; }
  .topbar { padding-inline: 26px; }
  .page-wrap { padding-inline: 26px; }
  .overview { gap: 16px; padding-inline: 16px; }
  .overview-main { min-width: 190px; }
}
@media (max-width: 700px) {
  body.menu-open { overflow: hidden; }
  .sidebar { position: fixed; inset: 0 0 0 auto; z-index: 20; width: min(86vw, 320px); transform: translateX(100%); transition: transform .22s ease; }
  .sidebar.is-open { transform: translateX(0); }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 19; border: 0; background: rgba(14, 25, 22, .56); }
  .sidebar-backdrop.is-visible { display: block; }
  .brand { flex: 0 0 auto; padding: 18px 17px; }
  .brand-mark { width: 34px; height: 34px; }
  .main-nav { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; overflow-y: auto; padding: 9px 10px 12px; }
  .nav-link { min-height: 34px; padding: 6px 10px; font-size: 10px; }
  .sidebar-label { padding: 14px 12px 7px; }
  .room-nav { overflow: visible; padding: 0 0 8px; }
  .room-link { min-height: 39px; padding: 7px 11px; font-size: 11px; }
  .room-link.active::before { right: -8px; }
  .sidebar-bottom { margin-top: auto; }
  .main-content { margin-right: 0; }
  .topbar { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 8px; height: 56px; padding-inline: 12px; }
  .mobile-menu-toggle { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--line); border-radius: 5px; background: #fff; color: var(--ink); cursor: pointer; font-size: 18px; }
  .mobile-menu-toggle[aria-expanded="true"] { border-color: #bdd4c6; background: var(--green-soft); color: var(--green); }
  .sidebar-backdrop { padding: 0; cursor: pointer; }
  .topbar-identity { gap: 7px; }
  .topbar-identity img { width: 32px !important; max-width: 32px; height: 24px !important; flex-basis: 32px; }
  .topbar-identity strong { font-size: 10px; }
  .page-wrap { padding: 22px 14px 20px; }
  .page-heading { align-items: flex-start; }
  h1 { font-size: 18px; }
  .date-picker { min-width: 135px; }
  .date-picker input { height: 35px; padding-inline: 7px; font-size: 10px; }
  .page-heading:has(.report-date-picker) { flex-direction: column; }
  .report-date-picker { width: 100%; }
  .jalali-date-control { width: 100%; }
  .report-summary { padding: 13px; }
  .report-date-navigation { gap: 7px; }
  .report-date-navigation > a { padding: 7px 6px; font-size: 9px; }
  .report-summary-count { flex-wrap: wrap; justify-content: flex-end; }
  .report-photo-track { min-height: 160px; }
  .report-photo-track img { max-height: 65vh; }
  .report-photo-magnifier { width: 120px; height: 120px; }
  .dashboard-summary-item { min-height: 74px; grid-template-columns: 26px minmax(0, 1fr); gap: 4px 7px; padding: 11px 9px; }
  .dashboard-summary-icon { width: 26px; height: 26px; }
  .dashboard-summary-icon svg { width: 15px; height: 15px; }
  .dashboard-summary-item > span:not(.dashboard-summary-icon) { font-size: 9px; }
  .dashboard-summary-item strong { font-size: 15px; }
  .dashboard-location { grid-template-columns: 9px minmax(0, 1fr) auto; gap: 8px; }
  .dashboard-location-state { font-size: 9px; }
  .dashboard-location-arrow { display: none; }
  .learning-grid { grid-template-columns: 1fr; }
  .shift-setup { padding: 15px; }
  .shift-setup-heading { align-items: flex-start; }
  .shift-worker-form { grid-template-columns: 1fr; }
  .shift-add-button { width: 100%; }
  .shift-lookup-section { padding: 15px; }
  .shift-lookup-form { grid-template-columns: 1fr; }
  .shift-lookup-button { width: 100%; }
  .shift-lookup-result { align-items: flex-start; gap: 12px; padding: 12px; }
  .shift-result-date strong { font-size: 11px; }
  .shift-schedule-section { padding: 0; }
  .shift-schedule-heading { align-items: flex-start; flex-direction: column; padding: 15px; }
  .shift-schedule-icon { width: 37px; height: 37px; flex-basis: 37px; }
  .shift-legend { justify-content: flex-start; }
  .report-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-room { padding: 13px 12px; }
  .overview { flex-wrap: wrap; min-height: 0; gap: 12px; padding: 14px; }
  .overview-main { min-width: 0; flex: 1; }
  .overview-divider { display: none; }
  .record-status { margin-right: auto; }
  .progress-block { flex: 1 0 100%; order: 3; }
  .form-section { padding: 17px 14px; }
  .check-grid { grid-template-columns: 1fr; gap: 13px; }
  .asset-toolbar { align-items: flex-start; flex-direction: column; }
  .add-asset-form { width: 100%; }
  .asset-row { gap: 7px; }
  .asset-name { font-size: 10px; }
  .presence-choice span { padding: 7px; }
  .form-footer { align-items: flex-start; flex-direction: column; padding: 13px 14px; }
  .save-button { justify-content: center; width: 100%; }
  .photo-upload-heading { align-items: flex-start; }
  .photo-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wizard-navigation { gap: 8px; padding: 12px; }
  .wizard-button { min-height: 36px; padding: 0 10px; font-size: 10px; }
  .wizard-progress { min-width: 90px; }
  .wizard-track { width: 90px; }
  .room-switcher { align-items: flex-start; flex-direction: column; }
  .room-switcher > div { width: 100%; }
  .room-switch-link { flex: 1; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }

.admin-body { min-height: 100vh; }
.admin-login-shell { display: grid; min-height: 100vh; place-items: center; padding: 22px; background: radial-gradient(circle at 50% 0, #e5eee7 0, var(--paper) 58%); }
.admin-login-card { display: grid; width: min(100%, 420px); gap: 17px; padding: 30px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 18px 54px rgba(30, 49, 39, .09); }
.admin-login-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 5px; }
.admin-login-brand img { width: 54px; height: 44px; object-fit: contain; }
.admin-login-brand strong, .admin-login-brand small { display: block; }
.admin-login-brand strong { font-size: 17px; }
.admin-login-brand small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.admin-field { display: grid; gap: 6px; color: #56635e; font-size: 10px; font-weight: 700; }
.admin-field input, .admin-field select, .admin-field textarea { width: 100%; min-height: 39px; padding: 9px 11px; border: 1px solid #dfe5e1; border-radius: 5px; outline: none; background: #fff; color: var(--ink); }
.admin-field small { color: var(--muted); font-size: 9px; font-weight: 400; }
.admin-featured-image-preview { display: block; width: min(100%, 320px); aspect-ratio: 16 / 9; margin-top: 8px; border: 1px solid var(--line); border-radius: 5px; object-fit: cover; }
.admin-field textarea { min-height: 120px; resize: vertical; line-height: 1.9; }
.remember-me-option { display: flex; align-items: center; gap: 8px; color: #56635e; font-size: 10px; cursor: pointer; }
.remember-me-option input { width: 16px; height: 16px; margin: 0; accent-color: var(--green); }
.remember-me-option span { display: flex; align-items: baseline; gap: 5px; }
.remember-me-option small { color: var(--muted); font-size: 9px; }
.admin-submit { justify-content: center; min-height: 42px; }
.admin-login-hint { margin: 0; padding: 11px 12px; border: 1px solid #f1dfba; border-radius: 5px; background: #fff8e9; color: #75561d; font-size: 10px; line-height: 1.9; }
.admin-site-link { display: inline-flex; align-items: center; gap: 6px; color: var(--green); font-size: 10px; }
.admin-site-link .nav-icon { width: 15px; height: 15px; color: var(--green); }
.admin-logout-form { margin: 0; }
.admin-logout-link { width: 100%; border: 0; background: transparent; cursor: pointer; font: inherit; text-align: right; }
.admin-logout-link .nav-icon { color: #d6968a; }
.admin-logout-link:hover { background: #493b39; color: #fff; }
.public-logout-form { margin: 0; }
.public-logout-link { width: 100%; border: 0; background: transparent; cursor: pointer; font: inherit; text-align: right; }
.public-logout-link .nav-icon { color: #d6968a; }
.public-logout-link:hover { background: #493b39; color: #fff; }
.admin-site-link span { padding-right: 5px; }
.admin-page-wrap { max-width: 1080px; }
.admin-warning { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 16px; padding: 13px 16px; border: 1px solid #efd49a; border-radius: 6px; background: #fff8e8; color: #77551b; font-size: 10px; }
.admin-warning strong { font-size: 11px; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-bottom: 15px; }
.admin-stat-card { display: grid; gap: 8px; min-height: 128px; padding: 17px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.admin-stat-card > span, .admin-stat-card small { color: var(--muted); font-size: 10px; }
.admin-stat-card > strong { color: var(--green); font-size: 27px; }
.admin-stat-card small { margin-top: auto; }
.admin-panel-card { margin-bottom: 15px; padding: 19px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.admin-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.admin-panel-heading h2 { margin: 0 0 5px; font-size: 13px; }
.admin-panel-heading p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.8; }
.admin-password-form, .admin-worker-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: 13px; }
.admin-password-form .save-button, .admin-worker-form .save-button, .admin-article-form > .save-button { min-height: 39px; justify-content: center; }
.admin-record-list, .admin-article-list { display: grid; gap: 9px; }
.admin-record-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 13px; border: 1px solid #edf0ed; border-radius: 5px; }
.admin-record-row > div { display: grid; gap: 4px; }
.admin-record-row strong { font-size: 11px; }
.admin-record-row span, .admin-empty { color: var(--muted); font-size: 9px; }
.admin-empty { margin: 0; padding: 12px 0; }
.admin-shift-manage-link { display: inline-flex; margin-top: 14px; padding: 9px 12px; border: 1px solid #cbded1; border-radius: 5px; background: #f2f8f3; color: var(--green); font-size: 10px; }
.admin-article-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 13px; }
.admin-article-form, .admin-article-record, .admin-panel-card { min-width: 0; }
.admin-article-form { width: 100%; }
.article-editor { overflow: hidden; border: 1px solid #dfe5e1; border-radius: 6px; background: #fff; }
.admin-field-full { grid-column: 1 / -1; width: 100%; min-width: 0; }
.article-editor { width: 100%; min-width: 0; }
.article-editor-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; padding: 8px; border-bottom: 1px solid #e7ece8; background: #f7f9f7; }
.article-editor-toolbar button, .article-line-height select { min-height: 30px; padding: 5px 8px; border: 1px solid #dfe6e0; border-radius: 4px; background: #fff; color: #526159; cursor: pointer; font: inherit; font-size: 9px; }
.article-editor-toolbar button:hover { border-color: #b8d0bf; background: #f0f7f2; color: var(--green); }
.article-image-size { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 8px 10px; border-bottom: 1px solid #e7ece8; background: #fff; color: #68756e; font-size: 9px; }
.article-image-size label { display: inline-flex; align-items: center; gap: 5px; }
.article-image-size input { width: 76px; min-height: 28px; padding: 4px 6px; border: 1px solid #dfe6e0; border-radius: 4px; color: var(--ink); font: inherit; }
.article-image-size input:disabled { background: #f4f6f4; color: #8b9690; }
.article-image-size > span { color: var(--muted); }
.article-toolbar-icon { display: block; width: 16px; height: 16px; }
.article-toolbar-separator { width: 1px; height: 23px; margin: 0 3px; background: #dfe5e1; }
.article-line-height { display: inline-flex; align-items: center; gap: 5px; color: #68756e; font-size: 9px; }
.article-line-height select { min-height: 30px; padding: 4px 7px; cursor: pointer; }
.article-font-size { display: inline-flex; align-items: center; gap: 5px; color: #68756e; font-size: 9px; }
.article-font-size select { min-height: 30px; padding: 4px 7px; border: 1px solid #dfe6e0; border-radius: 4px; background: #fff; color: #526159; cursor: pointer; font: inherit; font-size: 9px; }
.article-column-ratio { display: inline-flex; align-items: center; gap: 5px; color: #68756e; font-size: 9px; }
.article-column-ratio select { min-height: 30px; padding: 4px 7px; border: 1px solid #dfe6e0; border-radius: 4px; background: #fff; color: #526159; cursor: pointer; font: inherit; font-size: 9px; }
.article-editor-canvas { position: relative; min-height: 220px; max-height: min(62vh, 620px); overflow: auto; overscroll-behavior: contain; padding: 14px; outline: none; color: var(--ink); font-size: 12px; line-height: 1.9; overflow-wrap: anywhere; }
.article-editor-canvas:focus { box-shadow: inset 0 0 0 1px #c9ddce; }
.article-editor-canvas p, .article-editor-canvas div, .article-editor-canvas blockquote { margin: 0 0 10px; }
.article-editor-canvas > p { min-height: 1.9em; }
.article-editor-canvas h2 { box-sizing: border-box; display: block; clear: both; width: 100%; margin: 22px 0 14px; padding: 12px 15px; border: 1px solid #e9e5da; border-right: 3px solid #b99a5b; border-radius: 6px; background: linear-gradient(135deg, #fbfaf6, #f5f3ec); box-shadow: 0 2px 7px rgba(54, 49, 35, .035); color: #465044; font-size: 20px; font-weight: 700; line-height: 1.7; }
.article-editor-canvas h3 { box-sizing: border-box; display: table; width: fit-content; max-width: 100%; clear: both; margin: 16px 0 9px; padding: 7px 12px 7px 28px; border-right: 3px solid #8ca897; background: linear-gradient(to left, #edf4ef 0%, #f4f7f4 76%, rgba(244,247,244,0) 100%); color: #345744; font-size: 15px; font-weight: 700; line-height: 1.8; }
.article-editor-canvas h2:empty::after { color: #a0aaa3; content: "عنوان را بنویسید"; }
.article-editor-canvas h3:empty::after { color: #9aa79d; content: "زیرعنوان را بنویسید"; }
.article-editor-canvas img { cursor: pointer; }
.article-add-paragraph { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 34px; border: 0; border-top: 1px dashed #dfe6e0; background: #fbfcfb; color: #68756e; cursor: pointer; font: inherit; font-size: 10px; }
.article-add-paragraph:hover { background: #f2f8f3; color: var(--green); }
.article-image-resize-handle { position: absolute; z-index: 2; width: 12px; height: 12px; border: 2px solid #fff; border-radius: 3px; background: var(--green); box-shadow: 0 0 0 1px var(--green); transform: translate(-50%, -50%); touch-action: none; }
.article-image-resize-handle[data-corner="nw"], .article-image-resize-handle[data-corner="se"] { cursor: nwse-resize; }
.article-image-resize-handle[data-corner="ne"], .article-image-resize-handle[data-corner="sw"] { cursor: nesw-resize; }
.article-image-resize-handle[hidden] { display: none; }
.article-delete-image:disabled { opacity: .45; cursor: not-allowed; }
.article-color-palette { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px; border: 1px solid #e4e9e5; border-radius: 5px; background: #fff; }
.article-color-palette > span { margin-left: 3px; color: #68756e; font-size: 9px; }
.article-color-swatch { width: 18px; min-height: 18px !important; height: 18px; padding: 0 !important; border: 2px solid #fff !important; border-radius: 50% !important; background: var(--swatch-color) !important; box-shadow: 0 0 0 1px #dfe5e1; }
.article-color-swatch:hover, .article-color-swatch:focus-visible { box-shadow: 0 0 0 2px var(--swatch-color); }
.article-editor-source, .article-image-input { display: none !important; }
.article-editor-canvas:empty::before { color: #a0aaa3; content: "متن مطلب را اینجا بنویسید؛ برای درج تصویر از دکمهٔ درج عکس استفاده کنید."; pointer-events: none; }
.admin-category-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 12px; }
.admin-category-form .save-button { min-height: 39px; justify-content: center; white-space: nowrap; }
.admin-category-tree { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.admin-category-node { margin-right: calc(var(--category-depth) * 12px); padding: 5px 9px; border: 1px solid #e5eae6; border-radius: 4px; background: #f8faf8; color: #56635e; font-size: 9px; }
.admin-article-record { padding: 12px 14px; border: 1px solid #e8ede9; border-radius: 6px; background: #fcfdfc; }
.admin-article-record-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.admin-article-record-heading > strong { overflow: hidden; color: #34483a; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.admin-article-edit-button { flex: 0 0 auto; min-height: 30px; padding: 5px 10px; border: 1px solid #cbded1; border-radius: 4px; background: #f2f8f3; color: var(--green); cursor: pointer; font: inherit; font-size: 9px; }
.admin-article-edit-button:hover { border-color: #9bbca4; background: #eaf4ec; }
.admin-article-record .admin-article-form { display: none; margin-top: 14px; }
.admin-article-record.is-editing .admin-article-form { display: grid; }
.admin-article-record-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.admin-article-status { padding: 5px 9px; border-radius: 20px; background: #f1f3f1; color: #707b76; font-size: 9px; }
.admin-article-status.published { background: var(--green-soft); color: var(--green); }
.admin-month-heading { align-items: center; }
.admin-month-navigation { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.admin-month-navigation a { padding: 7px 10px; border: 1px solid #e1e8e2; border-radius: 5px; background: #fff; color: #52635a; font-size: 9px; white-space: nowrap; }
.admin-month-navigation a:hover { border-color: #bfd6c6; background: #f3f8f4; color: var(--green); }
.admin-month-table-scroll { max-height: 72vh; border-top: 1px solid #e7ece8; }
.admin-month-table { min-width: max-content; }
.admin-month-table .shift-name-column, .admin-month-table .shift-worker-name { min-width: 175px; }
.admin-month-table .shift-date-column, .admin-month-table .shift-group-row-heading { min-width: 108px; }
.admin-month-table td.shift-cell { min-width: 108px; padding: 10px 6px; }
.admin-month-table .shift-badge { max-width: 100%; white-space: nowrap; }
.admin-month-table .shift-group-cell { padding: 7px; }
.admin-month-table .shift-person { min-height: 37px; padding: 4px 6px; }
.admin-month-legend { justify-content: flex-start; padding: 12px 17px; border-top: 1px solid #e8ede9; background: #fafcfa; }
.admin-month-empty { padding: 20px; }
@media (max-width: 700px) {
  .admin-page-wrap { padding-right: 17px; padding-left: 17px; }
  .admin-stat-grid { grid-template-columns: 1fr; }
  .admin-stat-card { min-height: 104px; }
  .admin-password-form, .admin-worker-form, .admin-article-form { grid-template-columns: 1fr; }
  .admin-category-form { grid-template-columns: 1fr; }
  .admin-field-full { grid-column: auto; }
  .admin-month-heading { align-items: flex-start; flex-direction: column; }
  .admin-month-navigation { width: 100%; justify-content: space-between; }
  .admin-month-navigation a { flex: 1; text-align: center; }
  .shift-table-scroll { max-height: none; }
}
@media (max-width: 560px) {
  .article-editor-canvas { max-height: 55vh; }
  .article-editor-canvas [data-article-columns="true"] { grid-template-columns: 1fr !important; }
  .learning-content [data-article-columns="true"], .article-editor-canvas [data-article-columns="true"] { grid-template-columns: 1fr !important; }
}