:root {
  color-scheme: light;
  --bg: #d9d5cd;
  --panel: #ebe7df;
  --panel-soft: #e2ddd4;
  --line: #aaa49a;
  --line-soft: #c2bcb2;
  --text: #35322d;
  --muted: #716d65;
  --accent: #496f70;
  --accent-dark: #28575c;
  --accent-ink: #203b42;
  --active: #9eb9c0;
  --hover: #e2d2c1;
  --dash: #9b8877;
  --surface: #f0ece4;
  --surface-strong: #fffdf8;
  --table-head: #ded9d0;
  --table-group: #c4c0b8;
  --table-cell: #f5f1e9;
  --success: #4f7c58;
  --paused: #85817a;
  --danger: #8a453f;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #303234;
  --panel: #3b3e40;
  --panel-soft: #474a4c;
  --line: #c2c5c6;
  --line-soft: #888d8f;
  --text: #f5f5f2;
  --muted: #bec1c2;
  --accent: #86a5a8;
  --accent-dark: #a8c2c4;
  --accent-ink: #eef7f7;
  --active: #59696c;
  --hover: #4b4f51;
  --dash: #a8adaf;
  --surface: #45484a;
  --surface-strong: #505456;
  --table-head: #565a5c;
  --table-group: #505456;
  --table-cell: #424547;
  --success: #78927d;
  --paused: #aaa9a5;
  --danger: #cf8179;
}

* { box-sizing: border-box; }

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--bg);
  color: var(--text);
  font: 500 14px/1.45 "Montserrat", "Segoe UI", Arial, sans-serif;
}

button,
input,
select { font: inherit; }

button { color: inherit; }

.browser-auth-layer {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow: auto;
  background:
    radial-gradient(circle at 72% 18%, rgba(158, 185, 192, .62), transparent 34%),
    linear-gradient(145deg, #d5d0c7, #e9e5dd 56%, #cbc6bd);
}

.browser-auth-layer[hidden] { display: none; }

.browser-auth-card {
  width: min(440px, 100%);
  padding: 34px 38px 38px;
  border: 1px solid #9d988f;
  box-shadow: 0 22px 70px rgba(44, 41, 36, .18);
  background: rgba(239, 235, 227, .96);
}

.browser-auth-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-bottom: 26px;
  border-bottom: 1px dashed var(--line);
  color: #294f54;
  line-height: .92;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -.04em;
}

.browser-auth-brand small {
  display: block;
  margin-top: 4px;
  color: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .08em;
}

.browser-auth-form {
  display: grid;
  gap: 16px;
  padding-top: 28px;
}

.browser-auth-form[hidden] { display: none; }

.browser-auth-form header { margin-bottom: 4px; }

.browser-auth-form header small {
  color: var(--accent-dark);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.browser-auth-form h1 {
  margin: 4px 0 6px;
  font-size: 25px;
  line-height: 1.2;
}

.browser-auth-form label {
  display: grid;
  gap: 6px;
  color: #4a4640;
  font-size: 12px;
  font-weight: 650;
}

.browser-auth-form input {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 0;
  outline: none;
  background: #f7f4ee;
}

.browser-auth-form input:focus {
  border-color: var(--accent-dark);
  box-shadow: 0 0 0 2px rgba(73, 111, 112, .18);
}

.browser-auth-submit,
.browser-auth-actions > button {
  min-height: 43px;
  padding: 10px 18px;
  border: 1px solid var(--accent-dark);
  background: transparent;
  cursor: pointer;
}

.browser-auth-submit {
  background: var(--accent-dark) !important;
  color: #fff;
  font-weight: 700;
}

.browser-auth-submit:disabled { opacity: .6; }

.browser-auth-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.browser-auth-error {
  min-height: 20px;
  margin: -2px 0 0;
  color: var(--danger);
  font-size: 12px;
}

body.browser-mode [data-native-only] { display: none !important; }

.app-shell {
  display: grid;
  grid-template-columns: 304px minmax(0, 1fr);
  min-width: 1440px;
  width: 100%;
  height: 100dvh;
}

.sidebar {
  position: relative;
  display: flex;
  min-height: 0;
  flex-direction: column;
  padding: 34px 18px 28px;
}

.sidebar::after {
  position: absolute;
  top: 28px;
  right: 0;
  bottom: 28px;
  width: 1px;
  background: var(--line);
  content: "";
}

.brand {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0 16px 34px;
  line-height: .92;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -.03em;
}

.brand small {
  display: block;
  margin-top: 4px;
  color: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .08em;
}

.primary-nav { display: grid; gap: 2px; }
.nav-divider { height: 1px; margin: 7px 12px; background: color-mix(in srgb, var(--sidebar-ink) 22%, transparent); }

.nav-line {
  position: relative;
  display: flex;
  align-items: stretch;
}

.nav-line.planning-start {
  margin-top: 17px;
  padding-top: 15px;
  border-top: 1px dashed var(--line);
}

.nav-button {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  width: 100%;
  min-height: 45px;
  padding: 11px 15px;
  border: 0;
  border-left: 3px solid transparent;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.nav-button:hover {
  outline: 1px dashed #9aa6a1;
  outline-offset: -1px;
  background: var(--panel);
}

.nav-button.active {
  outline: 1px dashed #718b8b;
  outline-offset: -1px;
  background: var(--active);
  color: var(--accent-ink);
  font-weight: 700;
}

.nav-icon {
  color: var(--accent-ink);
  font-family: "Segoe UI Symbol", "Segoe UI", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  text-align: center;
}
.nav-icon svg {
  display: block;
  width: 17px;
  height: 17px;
  margin: auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.nav-icon svg circle { fill: var(--bg); }
.nav-icon.home-star svg {
  fill: currentColor;
  stroke-width: .9;
}
.nav-count { color: var(--accent); font-size: 11px; }

.nav-tune {
  width: 40px;
  flex: 0 0 40px;
  border: 0;
  border-left: 1px solid transparent;
  background: transparent;
  color: var(--accent-ink);
  cursor: pointer;
}
.nav-line:hover .nav-tune,
.nav-line:has(.nav-button.active) .nav-tune { border-left-color: var(--line-soft); }
.nav-tune:hover { outline: 1px dashed #9aa6a1; outline-offset: -1px; background: var(--panel); }

.sidebar-bottom { margin-top: auto; }
.sidebar-options { position: relative; margin-bottom: 6px; }
.sidebar-options > .nav-button { padding-left: 15px; }

.sidebar-popover {
  display: none;
  position: absolute;
  z-index: 80;
  left: 14px;
  width: 238px;
  padding: 8px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 0 8px 20px rgba(27, 25, 22, .18);
  color: var(--text);
}
.sidebar-popover.open { display: block; }
.sidebar-projects-menu,
.sidebar-tasks-menu { top: calc(100% + 4px); }
.sidebar-projects-menu { max-height: 310px; overflow-y: auto; }
.sidebar-options-menu,
.account-menu { bottom: calc(100% + 7px); }
.sidebar-popover > button,
.sidebar-projects-menu > button {
  display: block;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.sidebar-popover > button:hover,
.sidebar-projects-menu > button:hover { background: var(--hover); }
.sidebar-popover > button.active {
  background: var(--active);
  color: var(--accent-ink);
  font-weight: 700;
}
.sidebar-projects-menu button strong,
.sidebar-projects-menu button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-projects-menu button small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.sidebar-options-menu > strong,
.account-menu > strong { display: block; padding: 5px 7px 7px; }
.sidebar-options-menu label {
  display: flex;
  gap: 9px;
  align-items: center;
  padding: 8px 7px;
  cursor: pointer;
}
.sidebar-options-menu input { width: 14px; min-height: 14px; margin: 0; accent-color: var(--accent); }
.sidebar-theme-row { display: grid; gap: 7px; padding: 8px 7px; color: var(--muted); font-size: 11px; }
.sidebar-theme-options { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line-soft); }
.sidebar-theme-options button {
  min-height: 30px;
  border: 0;
  background: transparent;
  color: var(--text);
  cursor: pointer;
}
.sidebar-theme-options button + button { border-left: 1px solid var(--line-soft); }
.sidebar-theme-options button.active { background: var(--active); color: var(--accent-ink); font-weight: 700; }
.sidebar-options-divider { height: 1px; margin: 8px 7px; background: var(--line-soft); }
.sidebar-open-browser {
  width: calc(100% - 14px) !important;
  margin: 0 7px;
  padding: 9px 10px !important;
  border: 1px solid var(--line-soft) !important;
  background: transparent !important;
  color: var(--accent) !important;
  text-align: center !important;
}
.sidebar-open-browser:hover { background: var(--hover) !important; }
.sidebar-open-browser:disabled { opacity: .45; cursor: default; }
.sidebar-app-info { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 5px 7px; font-size: 11px; }
.sidebar-app-info > span { color: var(--muted); }

.account-wrap {
  position: relative;
  border-top: 1px solid var(--line);
}

.account-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  width: 100%;
  min-height: 68px;
  padding: 15px 16px 3px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.account-card:hover { background: var(--panel); outline: 1px dashed #9aa6a1; outline-offset: -1px; }

.avatar {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: #527b85;
  color: white;
  font-size: 12px;
  font-weight: 700;
}

.account-copy { min-width: 0; }

.account-copy strong,
.account-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-copy strong { font-size: 13px; font-weight: 500; }
.account-copy small { margin-top: 2px; color: var(--muted); font-size: 10px; }

.account-menu { left: 14px; }
.account-menu > small { display: block; padding: 0 7px 10px; color: var(--muted); font-size: 10px; }

.account-actions {
  display: grid;
  gap: 1px;
  padding-top: 7px;
  border-top: 1px solid var(--line-soft);
}

.account-actions button,
.text-action,
.close-action {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-weight: 700;
  cursor: pointer;
}

.account-actions button {
  padding: 8px 7px;
  border-bottom: 0;
  color: var(--text);
  font-size: 12px;
  text-align: left;
}

.account-actions button:hover { background: var(--hover); }
.account-actions button:hover,
.text-action:hover { color: var(--accent-dark); }

.workspace {
  min-width: 0;
  overflow-y: auto;
  scrollbar-color: #8e8a82 transparent;
  scrollbar-width: thin;
}

.view {
  width: 100%;
  min-height: 100%;
  padding: 42px 44px 70px;
}

.view:not(.active) { display: none; }

.home-header h1 { margin-bottom: 4px; color: var(--text); font-weight: 500; }
.home-header p { margin: 0 0 26px; color: var(--muted); font-size: 14px; font-weight: 500; }

.home-dashboard {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(390px, .9fr);
  gap: 25px;
}
.home-dashboard::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc((100% - 25px) * .55 + 12px);
  border-left: 1px solid var(--line);
  opacity: .72;
  content: "";
  pointer-events: none;
}
.home-section { min-width: 0; }
.home-section-head {
  display: flex;
  min-height: 43px;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--line);
}
.home-section-head h2 {
  margin: 0;
  color: var(--text);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.02em;
  white-space: nowrap;
}
.home-project-tools { display: flex; gap: 16px; align-items: center; }
.home-menu-control { position: relative; }
.home-link-button {
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.home-link-button:hover { color: var(--accent-dark); }
.home-link-button:hover::after {
  position: absolute;
  right: 0;
  bottom: -3px;
  left: 0;
  border-bottom: 1px dashed currentColor;
  content: "";
}
.home-dropdown {
  display: none;
  position: absolute;
  z-index: 70;
  top: 29px;
  right: 0;
  width: 220px;
  padding: 0;
  border: 1px dashed var(--line);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.home-dropdown.open { display: block; }
.home-dropdown > button {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px dashed var(--line-soft);
  background: transparent;
  color: var(--text);
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.home-dropdown > button:last-child { border-bottom: 0; }
.home-dropdown > button:hover { background: var(--hover); }
.home-project-open-menu { width: 260px; }
.home-project-open-menu button strong,
.home-project-open-menu button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-project-open-menu button small { margin-top: 2px; color: var(--muted); font-size: 10px; }

.home-scope-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 14px 0 20px;
  border: 1px solid var(--line);
}
.home-scope-summary > div {
  min-height: 64px;
  padding: 12px 15px;
  border-right: 1px solid var(--line-soft);
  background: var(--panel);
}
.home-scope-summary > div:last-child { border-right: 0; }
.home-scope-summary b,
.home-scope-summary span { display: block; }
.home-scope-summary b { color: var(--text); font-size: 18px; font-weight: 700; }
.home-scope-summary span { margin-top: 2px; color: var(--text); font-size: 11px; font-weight: 500; line-height: 1.25; }
.home-task-summary > div:nth-child(2) { background: #b26b00; }
.home-task-summary > div:nth-child(3) { background: #b73a35; }
.home-project-summary > div:nth-child(2) { background: #43824c; }
.home-task-summary > div:nth-child(2) :is(b, span),
.home-task-summary > div:nth-child(3) :is(b, span),
.home-project-summary > div:nth-child(2) :is(b, span) { color: #fff; }

.home-list { display: grid; gap: 7px; }
.home-task-card,
.home-project-card {
  border: 1px dashed var(--line);
  background: var(--panel);
  color: var(--text);
}
.home-task-card:hover,
.home-project-card:hover { border-color: var(--dash); background: var(--hover); }
.home-task-card {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) 118px auto;
  gap: 12px;
  align-items: center;
  min-height: 67px;
  padding: 11px 15px;
  cursor: pointer;
}
.home-priority-bar { width: 8px; height: 32px; background: #ae3f38; }
.home-priority-bar.medium { background: #a96808; }
.home-priority-bar.low { background: #62645f; }
.home-task-copy { min-width: 0; }
.home-task-copy strong,
.home-task-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-task-copy strong { font-size: 13px; }
.home-task-copy strong::before {
  display: inline-block;
  margin-right: 10px;
  padding-right: 10px;
  border-right: 1px solid var(--line);
  color: #5c7370;
  content: attr(data-category);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .075em;
  line-height: 1.1;
  text-transform: uppercase;
  vertical-align: 2px;
}
.home-task-copy small { margin-top: 5px; color: #4c615f; font-size: 10px; font-weight: 700; }
.home-task-due { color: #27676c; font-size: 11px; font-weight: 700; text-align: right; white-space: nowrap; }
.home-task-card .task-complete { white-space: nowrap; }

.home-project-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 34px;
  gap: 12px;
  align-items: center;
  min-height: 67px;
  padding: 11px 15px;
  cursor: pointer;
}
.home-project-copy strong,
.home-project-copy small { display: block; }
.home-project-copy strong { font-size: 14px; }
.home-project-copy small { margin-top: 4px; color: #5c5a54; font-size: 10px; font-weight: 700; }
.home-project-phase {
  display: inline-block;
  margin-left: 7px;
  padding: 2px 6px;
  background: #668583;
  color: white;
  font-size: 10px;
  vertical-align: 2px;
}
.home-project-open {
  display: grid;
  width: 34px;
  height: 31px;
  place-items: center;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--text);
  cursor: pointer;
}
.home-project-open:hover { background: var(--panel-soft); }
.home-empty { margin: 10px 0 0; color: var(--muted); font-size: 11px; }

.view-header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
}

h1,
h2,
p { margin-top: 0; }

h1 {
  margin-bottom: 7px;
  color: var(--text);
  font-size: 31px;
  font-weight: 500;
  letter-spacing: -.035em;
}

h2 { margin-bottom: 5px; font-size: 18px; }
.view-header p { margin-bottom: 26px; color: var(--muted); font-size: 13px; }

.global-error {
  position: sticky;
  z-index: 10;
  top: 0;
  padding: 11px 44px;
  border-bottom: 1px solid #a96b62;
  background: #ead8d2;
  color: #6f332e;
  font-size: 12px;
}

.project-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) 180px;
  gap: 24px;
  align-items: end;
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.search-field,
.select-field,
.form-grid label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

input,
select {
  width: 100%;
  min-height: 37px;
  padding: 8px 6px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  outline: 0;
  background: rgba(255, 255, 255, .2);
  color: var(--text);
  font-size: 12px;
  text-transform: none;
}

input:focus,
select:focus {
  border-bottom-color: var(--accent);
  background: rgba(73, 111, 112, .08);
}

input:disabled,
select:disabled { color: #918c83; cursor: not-allowed; }

.record-list { display: grid; gap: 7px; }

.record-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  min-height: 62px;
  padding: 13px 17px;
  border: 1px dashed var(--line);
  background: var(--panel);
}

.record-row:hover { border-color: var(--dash); background: var(--hover); }
.record-row.archived { background: transparent; }

.projects-view { color: var(--text); }
.projects-page-head { margin-bottom: 29px; }
.projects-page-head h1 { margin: 0; color: var(--text); font-size: 31px; font-weight: 500; letter-spacing: -.035em; }
.projects-page-head p { margin: 6px 0 0; color: var(--muted); font-size: 13px; font-weight: 500; }
.projects-section { width: 100%; }
.projects-section-head {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 45px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--line);
}
.projects-section-head h2 { margin: 0 auto 0 0; color: var(--text); font-size: 18px; font-weight: 700; letter-spacing: -.02em; }
.projects-tools { display: flex; align-items: center; gap: 18px; }
.projects-menu-control { position: relative; }
.projects-link-button {
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font: 700 13px/1.35 "Montserrat", "Segoe UI", Arial, sans-serif;
  white-space: nowrap;
  cursor: pointer;
}
.projects-link-button:hover { color: var(--accent-dark); }
.projects-link-button:hover::after {
  position: absolute;
  right: 0;
  bottom: -3px;
  left: 0;
  border-bottom: 1px dashed currentColor;
  content: "";
}
.projects-dropdown {
  display: none;
  position: absolute;
  z-index: 70;
  top: 28px;
  right: 0;
  width: 220px;
  border: 1px dashed var(--line);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.projects-dropdown.open { display: block; }
.projects-dropdown > button {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px dashed var(--line-soft);
  background: transparent;
  color: var(--text);
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.projects-dropdown > button:last-child { border-bottom: 0; }
.projects-dropdown > button:hover { background: var(--hover); }
.projects-open-menu { width: 260px; }
.projects-open-menu button strong,
.projects-open-menu button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.projects-open-menu button small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.projects-dropdown-empty { display: block; padding: 11px 12px; color: var(--muted); font-size: 11px; }
.projects-list { display: grid; gap: 7px; }
.projects-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 38px;
  gap: 13px;
  align-items: center;
  min-height: 67px;
  padding: 12px 16px;
  border: 1px dashed var(--line);
  background: var(--panel);
  cursor: pointer;
}
.projects-card:hover { border-color: var(--dash); background: var(--hover); }
.projects-card-copy { min-width: 0; }
.projects-card-copy strong,
.projects-card-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.projects-card-copy strong { font-size: 13px; font-weight: 700; }
.projects-card-copy strong i {
  display: inline-block;
  margin-left: 7px;
  padding: 2px 6px;
  background: #477995;
  color: #fff;
  font-size: 10px;
  font-style: normal;
  line-height: 1.25;
  vertical-align: 1px;
}
.projects-card-copy small { margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 400; }
.projects-card-status { padding: 4px 9px; background: #4f7c58; color: #fff; font-size: 11px; font-weight: 700; white-space: nowrap; }
.projects-card-status.paused { background: #7f7d77; }
.projects-card-open {
  display: grid;
  width: 32px;
  height: 30px;
  place-items: center;
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--text);
  font-size: 15px;
}
.projects-empty { margin: 18px 0 0; padding: 22px; border: 1px dashed var(--line); color: var(--muted); text-align: center; }

.archive-view { color: var(--text); }
.archive-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.archive-page-head h1 { margin: 0; font-size: 28px; letter-spacing: -.02em; }
.archive-page-head p { margin: 5px 0 0; color: var(--muted); }
.archive-summary { color: var(--muted); font-size: 13px; font-weight: 650; }
.archive-toolbar { margin-bottom: 0; }
.archive-filter-field { position: relative; }
.archive-select { position: relative; }
.archive-select-trigger {
  position: relative;
  width: 100%;
  height: 38px;
  padding: 0 26px 0 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font: 500 13px Montserrat, Arial, sans-serif;
  text-align: left;
}
.archive-select-trigger:hover,
.archive-select.open .archive-select-trigger { border-color: var(--accent); }
.archive-select-trigger i {
  position: absolute;
  top: 11px;
  right: 2px;
  color: var(--muted);
  font: normal 11px Arial, sans-serif;
}
.archive-select-menu {
  display: none;
  position: absolute;
  z-index: 45;
  top: calc(100% + 5px);
  left: 0;
  width: 100%;
  min-width: 175px;
  padding: 6px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.archive-select.open .archive-select-menu { display: block; }
.archive-select-option {
  display: block;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-bottom: 1px dashed var(--line-soft);
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font: 600 11px Montserrat, Arial, sans-serif;
  text-align: left;
}
.archive-select-option:last-child { border-bottom: 0; }
.archive-select-option:hover,
.archive-select-option:focus-visible,
.archive-select-option.active {
  background: var(--hover);
  color: var(--accent-dark);
  outline: 0;
}
.archive-project-list { border-top: 0; }
.archive-project-head,
.archive-project-row {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) 160px 190px 28px;
  align-items: center;
  gap: 20px;
  width: 100%;
  box-sizing: border-box;
}
.archive-project-head {
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.archive-project-row {
  appearance: none;
  padding: 17px 14px;
  border: 0;
  border-bottom: 1px dashed var(--line);
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.archive-project-row:hover,
.archive-project-row:focus-visible {
  background: rgba(73, 111, 112, .045);
  outline: 0;
}
.archive-project-identity {
  display: grid;
  grid-template-columns: 125px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
}
.archive-project-code { font-size: 16px; font-weight: 750; }
.archive-project-type { padding-left: 16px; border-left: 1px solid #8e8b84; font-weight: 700; }
.archive-project-type small { display: block; margin-top: 3px; color: var(--muted); font-weight: 500; }
.archive-project-state { color: #5f625c; font-weight: 750; }
.archive-project-state::before {
  display: inline-block;
  width: 4px;
  height: 18px;
  margin-right: 10px;
  background: #777872;
  content: "";
  vertical-align: -4px;
}
.archive-project-date { color: var(--muted); font-size: 12px; line-height: 1.25; }
.archive-project-date b { display: block; color: var(--text); }
.archive-project-open { color: var(--muted); font-size: 22px; text-align: right; }
.archive-empty {
  margin: 0;
  padding: 34px 14px;
  border-bottom: 1px dashed var(--line);
  color: var(--muted);
  text-align: center;
}

.search-page-head { margin-bottom: 26px; }
.search-page-head h1 { margin: 0 0 7px; font-size: 31px; font-weight: 600; letter-spacing: -.04em; }
.search-page-head p { margin: 0; color: var(--muted); font-size: 14px; }
.search-filters {
  display: grid;
  grid-template-columns: minmax(260px, 2fr) repeat(4, minmax(120px, 1fr));
  gap: 18px;
  align-items: end;
  padding: 0 0 24px;
  border-bottom: 1px solid var(--line);
}
.search-sort-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin: -58px 0 28px auto;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.search-sort-bar .search-select { width: 190px; }
.search-sort-bar .search-select-trigger { padding-left: 10px; }
.search-filter-actions {
  display:flex;
  align-items:center;
  align-self:end;
  gap:12px;
  min-height:38px;
  margin-left:2px;
  padding-left:18px;
  border-left:1px solid var(--line);
}
.search-filter-actions button { white-space:nowrap; }
.search-filter-actions [data-search-clear] {
  padding:0;
  border:0;
  border-bottom:1px dashed transparent;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
  font:600 11px/1.25 Montserrat,Arial,sans-serif;
}
.search-filter-actions [data-search-clear]:hover { border-bottom-color:currentColor; color:var(--accent-dark); }
.search-filter-field {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 8px;
}
.search-filter-field > span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.search-filter-field > input,
.search-select-trigger {
  box-sizing: border-box;
  width: 100%;
  height: 38px;
  min-height: 38px;
  padding: 0 26px 0 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: 500 13px Montserrat, Arial, sans-serif;
  text-align: left;
}
.search-filter-field > input:hover,
.search-filter-field > input:focus,
.search-select-trigger:hover,
.search-select.open .search-select-trigger { border-color: var(--accent); background: transparent; }
.search-filter-field > input::placeholder { color: #969188; }
.search-select { position: relative; }
.search-select-trigger { position: relative; cursor: pointer; }
.search-select-trigger i {
  position: absolute;
  top: 11px;
  right: 2px;
  color: var(--muted);
  font: normal 11px Arial, sans-serif;
}
.search-select-menu {
  display: none;
  position: absolute;
  z-index: 45;
  top: calc(100% + 5px);
  left: 0;
  box-sizing: border-box;
  width: 100%;
  min-width: 175px;
  max-height: min(420px, 55vh);
  overflow-y: auto;
  padding: 6px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.search-select.open .search-select-menu { display: block; }
.search-select-option {
  display: block;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-bottom: 1px dashed var(--line-soft);
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font: 600 11px Montserrat, Arial, sans-serif;
  text-align: left;
}
.search-select-option:last-child { border-bottom: 0; }
.search-select-option:hover,
.search-select-option:focus-visible,
.search-select-option.active {
  background: var(--hover);
  color: var(--accent-dark);
  outline: 0;
}
.search-result-meta {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 18px;
  margin: 24px 0 16px;
  color: var(--accent);
  font-size: 21px;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.2;
}
.search-results { border-top: 1px solid var(--line); }
.search-result-head,
.search-result-row {
  display: grid;
}
.search-columns-basic { grid-template-columns: 120px minmax(280px, 1fr); }
.search-columns-project { grid-template-columns: 120px minmax(280px, 1fr) minmax(150px, 210px); }
.search-columns-drawing { grid-template-columns: 120px minmax(280px, 1fr) 135px; }
.search-columns-task { grid-template-columns: 120px minmax(280px, 1fr) 120px minmax(150px, 210px); }
.search-columns-supervision { grid-template-columns: 120px minmax(280px, 1fr) 135px; }
.search-result-head {
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.search-result-head > span,
.search-result-row > span {
  display: flex;
  box-sizing: border-box;
  align-items: center;
  min-height: 52px;
  padding: 11px 18px;
}
[data-search-result-list] { display: grid; gap: 10px; padding-top: 10px; }
.search-result-row {
  padding: 0;
  border: 1px solid var(--line);
  background: rgba(244, 241, 235, .82);
  color: var(--text);
  cursor: pointer;
  text-align: left;
}
.search-result-row > span + span { border-left: 1px solid var(--line); }
.search-result-row:hover,
.search-result-row:focus-visible {
  border-color: var(--dash);
  background: var(--hover);
  box-shadow: inset 3px 0 0 var(--accent);
  outline: 0;
}
.search-result-row.archived {
  border-style: dashed;
  background: transparent;
  color: #6f6b64;
  box-shadow: none;
}
.search-result-row.archived:hover,
.search-result-row.archived:focus-visible {
  border-color: #8b877f;
  background: #d6d4cd;
  box-shadow: inset 3px 0 0 #777872;
}
.search-result-kind { color: var(--muted); font-size: 11px; font-style: normal; font-weight: 500; }
.search-result-main {
  min-width: 0;
  gap: 6px;
  color: var(--muted);
  font-size: 11px;
}
.search-result-main b { color: var(--text); font-size: 13px; font-weight: 700; }
.search-result-main span { white-space: nowrap; }
.search-result-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-result-row.archived .search-result-main b { color: var(--muted); }
.search-result-detail { color: var(--muted); font-size: 11px; }
.search-task-status { justify-content: flex-start; font-size: 11px; font-weight: 700; }
.search-task-status::before { width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--accent); content: ""; }
.search-task-status.completed { color: var(--success); }
.search-task-status.completed::before { background: var(--success); }
.search-task-status.open { color: var(--accent-dark); }
.search-result-empty {
  margin: 0;
  padding: 30px 18px;
  border-bottom: 1px dashed var(--line);
  color: var(--muted);
  font-size: 12px;
}
.search-target { animation: search-pulse 1.8s ease; }
@keyframes search-pulse {
  0%, 100% { box-shadow: none; }
  25%, 70% { box-shadow: inset 4px 0 0 var(--accent); background: var(--hover); }
}

.record-identity strong,
.record-identity small { display: block; }
.record-identity strong { font-size: 13px; }
.record-identity small { margin-top: 4px; color: var(--muted); font-size: 11px; }

.record-side { display: flex; gap: 14px; align-items: center; }

.status-badge,
.role-badge {
  display: inline-block;
  padding: 3px 8px;
  background: var(--success);
  color: white;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.status-badge.paused,
.status-badge.completed { background: var(--paused); }
.role-badge.user { background: var(--muted); }
.role-badge.admin { background: var(--accent); }

.row-action { font-size: 11px; }

.project-head {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
}

.project-title-line { display: flex; gap: 10px; align-items: center; }
.project-title-line h1 { margin: 0; }
.project-head .subtitle { margin: 7px 0 16px; color: var(--muted); font-size: 13px; }
.project-phase-line { color: var(--muted); font-size: 13px; font-weight: 700; }
.project-phase-line strong { margin-left: 6px; color: var(--accent); }

.header-project-switch {
  position: relative;
  display: grid;
  grid-template-columns: auto 34px;
  border: 1px dashed var(--line);
}

.project-switch-main,
.project-switch-arrow {
  min-height: 38px;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.project-switch-main { padding: 0 13px; }
.project-switch-arrow { border-left: 1px solid var(--line-soft); }
.project-switch-main:hover,
.project-switch-arrow:hover { background: var(--hover); }

.project-switch-menu {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  right: 0;
  width: 260px;
  padding: 7px;
  border: 1px dashed var(--line);
  background: var(--panel);
  box-shadow: 0 8px 20px rgba(27, 25, 22, .18);
}

.project-switch-option {
  display: block;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.project-switch-option:hover { background: var(--hover); }
.project-switch-option strong,
.project-switch-option small { display: block; }
.project-switch-option small { margin-top: 2px; color: var(--muted); font-size: 10px; }

.project-tabbar {
  display: flex;
  width: 100%;
  min-width: 1040px;
  box-sizing: border-box;
  gap: 10px;
  align-items: stretch;
  margin: 20px 0 18px;
  padding: 0;
  border-bottom: 1px solid var(--line);
  overflow: visible;
}

.project-tabs {
  display: flex;
  min-width: max-content;
  flex: 1 0 max-content;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
}
.project-tab-group { display: flex; align-items: stretch; gap: 0; }
.project-tab-group + .project-tab-group {
  margin-left: 12px;
  padding-left: 12px;
  border-left: 1px solid var(--line-soft);
}
.project-tabs button {
  min-height: 38px;
  padding: 0 10px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: var(--text);
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.project-tabs button:hover { background: var(--panel); color: var(--accent); }
.project-tabs button.active {
  border-bottom-color: var(--accent);
  background: var(--panel);
  color: var(--text);
}

.project-tabs-settings {
  position: relative;
  z-index: 50;
  flex: 0 0 auto;
  align-self: center;
  margin: 0 0 0 auto;
  padding: 0 10px;
  border-left: 1px solid var(--line-soft);
}
.project-tabs-settings > button {
  min-width: 32px;
  padding: 5px 7px;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 16px;
  cursor: pointer;
}
.project-tabs-settings > button:hover { background: var(--panel); color: var(--text); }
.project-tabs-menu {
  display: none;
  position: absolute;
  z-index: 40;
  top: 36px;
  right: 0;
  width: 235px;
  padding: 8px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 0 8px 18px #756e6433;
  color: var(--text);
}
.project-tabs-menu.open { display: block; }
.project-tabs-menu strong {
  display: block;
  padding: 5px 7px 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}
.project-tabs-menu label {
  display: flex;
  gap: 9px;
  align-items: center;
  padding: 7px;
  color: var(--text);
  font-size: 13px;
  cursor: pointer;
}
.project-tabs-menu label:hover { background: #e1ddd4; }
.project-tabs-menu input { width: 14px; min-height: 14px; margin: 0; accent-color: var(--accent); }
.project-tabs-menu .tabs-menu-divider {
  height: 1px;
  margin: 5px 7px;
  background: var(--line-soft);
}
.project-work-files-control {
  position: relative;
  z-index: 45;
  flex: 0 0 auto;
  align-self: center;
}
.project-files-label {
  flex: 0 0 auto;
  align-self: center;
  margin: 0 0 0 2px;
  padding: 7px 4px;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.project-files-label:hover { color: var(--text); text-decoration: underline dashed 1px; text-underline-offset: 5px; }
.project-files-label:disabled { color: var(--muted); cursor: default; opacity: .6; text-decoration: none; }
.project-work-files-menu {
  display: none;
  position: absolute;
  z-index: 60;
  top: calc(100% + 6px);
  right: 0;
  width: 450px;
  padding: 12px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 0 12px 28px rgba(27, 25, 22, .2);
}
.project-work-files-menu.open { display: block; }
.project-work-files-head {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1px 2px 10px;
  border-bottom: 1px solid var(--line-soft);
}
.project-work-files-head strong,
.project-work-files-head small { display: block; }
.project-work-files-head strong { color: var(--text); font-size: 14px; }
.project-work-files-head small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.project-work-files-head button {
  flex: 0 0 auto;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.project-work-files-head button:hover { color: var(--text); text-decoration: underline; }
.project-work-files-filters {
  display: flex;
  gap: 6px;
  padding: 10px 2px;
}
.project-work-files-filters button {
  min-width: 45px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}
.project-work-files-filters button:hover,
.project-work-files-filters button.active {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}
.project-work-files-list {
  max-height: 350px;
  overflow-y: auto;
  border-top: 1px solid var(--line-soft);
}
.project-work-file {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  width: 100%;
  gap: 9px;
  align-items: center;
  padding: 9px 3px;
  border: 0;
  border-bottom: 1px solid var(--line-soft);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.project-work-file:hover { background: var(--hover); }
.project-work-file-format {
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
}
.project-work-file-name { min-width: 0; }
.project-work-file-name strong,
.project-work-file-name small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-work-file-name strong { color: var(--text); font-size: 12px; font-weight: 600; }
.project-work-file-name small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.project-work-file-date { color: var(--muted); font-size: 10px; white-space: nowrap; }
.project-work-files-empty { margin: 0; padding: 24px 12px; color: var(--muted); font-size: 12px; text-align: center; }

.project-module-panel:not(.active) { display: none; }
.project-panel-head {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
}
.project-panel-head h2 { font-size: 18px; font-weight: 600; }
.project-notes-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.project-note-card {
  width: 100%;
  padding: 16px 18px;
  border: 1px dashed var(--line-soft);
  background: rgba(235, 231, 223, .68);
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.project-note-card:hover,
.project-note-card:focus-visible {
  border-color: var(--line);
  background: rgba(226, 210, 193, .55);
  outline: 0;
}
.project-note-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: baseline;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-soft);
}
.project-note-card-head strong { font-size: 14px; font-weight: 650; overflow-wrap: anywhere; }
.project-note-card-head time { color: var(--muted); font-size: 11px; white-space: nowrap; }
.project-note-card-text {
  display: block;
  margin: 12px 0 0;
  color: var(--text);
  font-size: 13px;
  line-height: 1.55;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.global-task-tools { display: flex; gap: 22px; align-items: center; }
.task-create-actions { display: flex; gap: 12px; align-items: center; }
.task-create-actions > span { height: 18px; border-left: 1px solid var(--line); }
.global-task-sort-control { position: relative; }
.global-task-action,
.global-task-archive-toggle {
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.global-task-action:hover,
.global-task-archive-toggle:hover { color: var(--accent-dark); }
.global-task-action:hover::after,
.global-task-archive-toggle:hover::after {
  position: absolute;
  right: 0;
  bottom: -3px;
  left: 0;
  border-bottom: 1px dashed currentColor;
  content: "";
}
.global-task-sort-menu {
  display: none;
  position: absolute;
  z-index: 70;
  top: 29px;
  right: 0;
  width: 220px;
  border: 1px dashed var(--line);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.global-task-sort-menu.open { display: block; }
.global-task-sort-menu button {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px dashed var(--line-soft);
  background: transparent;
  color: var(--text);
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.global-task-sort-menu button:last-child { border-bottom: 0; }
.global-task-sort-menu button:hover { background: var(--hover); }
.project-task-add {
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.project-task-add:hover {
  color: var(--accent-dark);
  text-decoration: underline dashed 1px;
  text-underline-offset: 5px;
}
.project-task-list { margin-top: 10px; }
.memo-section {
  margin: 13px 0 18px;
  padding: 0;
  border: 0;
  background: transparent;
}
.memo-section h3 {
  margin: 0 0 8px;
  padding: 0 18px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
}
.memo-list { display: grid; gap: 7px; }
.memo-row {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) 110px 104px;
  gap: 0;
  align-items: center;
  min-height: 46px;
  padding: 7px 18px;
  border: 1px dashed var(--line-soft);
  background: rgba(235, 231, 223, .68);
}
.memo-row:hover { border-color: var(--line); background: rgba(226, 210, 193, .55); }
.memo-main { display: flex; min-width: 0; align-items: center; }
.memo-project {
  flex: 0 0 auto;
  color: var(--accent);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.memo-project-divider {
  flex: 0 0 auto;
  height: 15px;
  margin: 0 12px;
  border-left: 1px solid var(--line);
}
.memo-text { min-width: 0; font-size: 12px; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
.memo-edit,
.memo-dialog-convert {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-family: inherit;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.3;
  cursor: pointer;
  white-space: nowrap;
}
.memo-edit { justify-self: end; margin-right: 17px; }
.memo-edit:hover,
.memo-dialog-convert:hover { color: var(--accent-dark); text-decoration: underline; }
.task-complete.memo-complete {
  position: relative;
  display: flex;
  gap: 5px;
  align-items: center;
  min-height: 20px;
  padding-left: 0;
  border-left: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
  cursor: pointer;
}
.memo-complete::before {
  position: absolute;
  left: -15px;
  height: 18px;
  border-left: 1px solid var(--line-soft);
  content: "";
}
.task-complete.memo-complete input {
  width: 13px;
  min-height: 13px;
  height: 13px;
  vertical-align: -3px;
}
.task-complete.memo-complete input:checked::after {
  font-size: 12px;
  line-height: 11px;
}
.project-task-table-head {
  display: grid;
  grid-template-columns: 140px minmax(250px, 1fr) 130px 150px 130px 104px;
  gap: 0;
  align-items: center;
  padding: 0 18px 9px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.project-task-row {
  display: grid;
  grid-template-columns: 140px minmax(250px, 1fr) 130px 150px 130px 104px;
  gap: 0;
  align-items: center;
  min-height: 76px;
  margin-top: 7px;
  padding: 11px 18px;
  border: 1px dashed var(--line);
  background: var(--panel);
  color: var(--text);
  cursor: pointer;
}
.project-task-row:hover { border-color: var(--dash); background: var(--hover); }
.project-task-row > span:first-child { color: var(--accent); font-weight: 700; }
.project-task-row > span:first-child small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
}
.project-task-name { font-weight: 600; }
.project-task-name::before {
  display: inline-block;
  margin: 0 10px 0 0;
  padding: 1px 10px 1px 0;
  border-right: 1px solid var(--line);
  color: #81918c;
  content: attr(data-category);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .075em;
  line-height: 1.1;
  text-transform: uppercase;
  vertical-align: 2px;
}
.project-task-priority { font-weight: 700; }
.project-task-priority i {
  display: inline-block;
  width: 5px;
  height: 23px;
  margin-right: 8px;
  vertical-align: -6px;
}
.project-task-priority.high { color: #ae3f38; }
.project-task-priority.high i { background: #ae3f38; }
.project-task-priority.medium { color: #a96808; }
.project-task-priority.medium i { background: #a96808; }
.project-task-priority.low { color: #62645f; }
.project-task-priority.low i { background: #62645f; }
.project-task-due {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: #355f66;
  font-weight: 700;
  line-height: 1.1;
}
.project-task-due small { color: var(--muted); font-size: 11px; font-weight: 600; }
.task-complete { justify-self: start; color: var(--text); font-weight: 700; }
.task-complete input,
.project-task-subtask input {
  width: 17px;
  min-height: 17px;
  height: 17px;
  padding: 0;
  border: 1px dashed #777872;
  background: var(--panel);
  appearance: none;
  vertical-align: -4px;
}
.project-task-subtask input {
  width: 14px;
  min-height: 14px;
  height: 14px;
  margin: 0;
  flex: 0 0 14px;
  vertical-align: 0;
}
.task-complete input:checked,
.project-task-subtask input:checked { border-color: var(--accent); background: var(--accent); }
.task-complete input:checked::after,
.project-task-subtask input:checked::after {
  display: block;
  color: white;
  content: "×";
  font-size: 16px;
  line-height: 14px;
  text-align: center;
}
.project-task-subtask input:checked::after { font-size: 13px; line-height: 11px; }
.project-task-row.is-expanded { margin-bottom: 0; border-bottom: 0; }
.project-task-detail {
  position: relative;
  display: none;
  gap: 13px;
  flex-direction: column;
  align-items: stretch;
  margin: 0 0 11px;
  padding: 17px 20px 13px;
  border: 1px dashed var(--dash);
  border-top: 0;
  background: var(--panel);
}
.project-task-detail.is-open { display: flex; }
.project-task-detail::before {
  position: absolute;
  top: 0;
  right: 20px;
  left: 20px;
  border-top: 1px solid var(--line);
  content: "";
}
.project-task-detail-note { font-size: 14px; font-weight: 600; line-height: 1.4; }
.project-task-extra { display: flex; gap: 15px; align-items: center; }
.project-task-subtasks { display: grid; gap: 7px; padding-top: 3px; }
.project-task-subtask { display: flex; gap: 9px; align-items: center; font-size: 13px; cursor: pointer; }
.task-subtask-editor-row input[type="checkbox"] { width: 16px; min-height: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
.project-task-subtask input:checked + span { color: var(--muted); text-decoration: line-through; }
.project-task-subtasks + .project-task-extra {
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.project-task-detail-divider { height: 18px; border-left: 1px solid var(--line); }
.project-task-detail-edit {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 14px;
  font-weight: 400;
  cursor: pointer;
}
.project-task-detail-edit:hover {
  text-decoration: underline dashed 1px;
  text-underline-offset: 4px;
}
.project-task-archive {
  margin-top: 15px;
  padding-top: 11px;
  border-top: 1px dashed var(--line);
}
.project-task-archive-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 3px 0 10px;
}
.project-task-archive-title {
  display: none;
  color: var(--muted);
  font-size: 15px;
  font-weight: 700;
}
.project-task-archive.is-open .project-task-archive-title { display: block; }
.project-task-archive-toggle {
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.project-task-archive-toggle:hover {
  color: var(--accent-dark);
  text-decoration: underline dashed 1px;
  text-underline-offset: 4px;
}
.project-task-archive-list { display: none; }
.project-task-archive.is-open .project-task-archive-list { display: block; }
.project-task-archive-empty {
  margin: 10px 0 0;
  padding: 11px 14px;
  border: 1px dashed var(--line);
  color: var(--muted);
  font-size: 13px;
}
.project-task-archive-list .project-task-row {
  margin-top: 0;
  border-color: var(--line);
  background: transparent;
  color: var(--muted);
}
.project-task-archive-list .project-task-row * { color: var(--muted); }
.project-task-archive-list .project-task-priority i { background: var(--muted); }
.project-task-archive-list .project-task-due.archive-planned { gap: 3px; }
.project-task-archive-list .project-task-due.archive-planned small {
  font-size: 11px;
  font-weight: 400;
}
.project-task-archive-list .project-task-due.archive-planned b {
  font-size: 11px;
  font-weight: 600;
}
.global-task-archive .project-task-archive-bar { min-height: 35px; }
.global-task-archive-toggle { margin-left: auto; }

#project-drawings { padding-top: 0; }
.drawings-register { max-width: none; padding: 0 0 28px; }
.drawings-register-head {
  display: flex;
  justify-content: flex-end;
  gap: 18px;
  align-items: center;
  min-height: 28px;
  margin: 0 0 18px;
}
.drawings-register-tools { display: flex; gap: 18px; align-items: center; margin-left: auto; }
.drawings-refresh {
  display: inline-grid;
  width: 30px;
  height: 30px;
  padding: 5px;
  place-items: center;
  border: 0;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
}
.drawings-refresh svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.drawings-refresh:hover { color: var(--accent-dark); }
.drawings-refresh:disabled { opacity: .45; cursor: wait; }
.drawings-refresh.is-loading svg { animation: drawings-refresh-spin .8s linear infinite; }
@keyframes drawings-refresh-spin { to { transform: rotate(360deg); } }
.drawings-phase-filter {
  position: relative;
  display: grid;
  grid-template-columns: 35px 66px;
  gap: 7px;
  align-items: center;
  width: 108px;
  height: 26px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
}
.drawings-phase-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 66px;
  height: 26px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  line-height: 26px;
  cursor: pointer;
}
.drawings-phase-trigger:hover,
.drawings-phase-filter.open .drawings-phase-trigger { color: var(--accent-dark); }
.drawings-phase-trigger span { font-size: 11px; line-height: 1; }
.drawings-phase-menu {
  position: absolute;
  z-index: 25;
  top: calc(100% + 7px);
  right: 0;
  display: none;
  width: 108px;
  padding: 4px 0;
  border: 1px dashed var(--line);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.drawings-phase-filter.open .drawings-phase-menu { display: block; }
.drawings-phase-option {
  display: block;
  width: 100%;
  padding: 7px 10px;
  border: 0;
  border-bottom: 1px dashed var(--line-soft);
  background: transparent;
  color: var(--text);
  font-size: 12px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.drawings-phase-option:last-child { border-bottom: 0; }
.drawings-phase-option:hover,
.drawings-phase-option.active { background: var(--hover); color: var(--text); }
.drawing-phase { margin: 0 0 29px; }
.drawing-phase:last-of-type { margin-bottom: 0; }
.drawing-phase-title {
  display: flex;
  gap: 12px;
  align-items: baseline;
  margin-bottom: 9px;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--line);
}
.drawing-phase-title h2 {
  margin: 0;
  color: var(--text);
  font-size: 19px;
  font-weight: 800;
  letter-spacing: .045em;
  line-height: 1;
}
.drawing-phase-title span { color: var(--muted); font-size: 12px; }
.drawing-phase-folder {
  display: inline-flex;
  align-self: center;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: -5px 0 -5px auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
}
.drawing-phase-folder:hover { background: var(--panel-soft); color: var(--accent-dark); }
.drawing-phase-folder:focus-visible { outline: 1px dashed var(--accent); outline-offset: 2px; }
.drawing-phase-folder svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 1.7;
}
.drawing-column-head,
.drawing-row {
  display: grid;
  grid-template-columns: minmax(165px, .6fr) minmax(240px, 1fr) 110px 160px 150px;
  column-gap: 16px;
  align-items: center;
}
.drawing-column-head {
  padding: 0 21px 7px;
  color: var(--muted);
  font-size: 12px;
}
.drawing-row {
  min-height: 66px;
  margin-top: 7px;
  padding: 10px 21px;
  border: 1px dashed var(--line);
  background: var(--panel);
  transition: background .14s ease, border-color .14s ease;
}
.drawing-row:hover { border-color: #7e9294; background: var(--panel-soft); }
.drawing-type {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-height: 30px;
  padding-right: 16px;
  border-right: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: .01em;
}
.drawing-name {
  min-width: 0;
  color: var(--text);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .01em;
}
.drawing-revision {
  display: flex;
  align-items: center;
  min-height: 30px;
  padding-right: 16px;
  border-right: 1px solid var(--line);
  color: var(--text);
  font-size: 16px;
  font-weight: 700;
}
.drawing-date { color: var(--text); font-size: 14px; }
.drawing-files { display: flex; gap: 8px; align-items: center; }
.drawing-file {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 29px;
  padding: 0 7px;
  border: 1px solid transparent;
  color: white;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .035em;
  line-height: 1;
  cursor: pointer;
}
.drawing-file.pdf { background: #ae3f38; }
.drawing-file.dwg { background: #356d91; }
.drawing-file:hover { filter: brightness(.9); }
.drawing-open-message {
  min-height: 18px;
  margin: 14px 0 0;
  color: var(--accent);
  font-size: 13px;
  font-weight: 700;
}

#quantity {
  overflow: auto;
  padding: 0;
  background: transparent;
}
.quantity-section { position: relative; margin: 0; border: 0; background: transparent; }
.quantity-head {
  min-width: 1080px;
  min-height: 56px;
  margin: 0;
  padding: 0 0 12px;
  background: transparent;
}
.quantity-head h2 {
  margin: 0;
  color: var(--text);
  font-size: 21px;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.2;
}
.quantity-actions { display: flex; gap: 13px; align-items: center; margin-left: auto; }
.sheet-edit {
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  cursor: pointer;
}
.sheet-edit:hover { color: var(--accent-dark); }
.sheet-edit:hover::after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  border-bottom: 1px dashed currentColor;
  content: "";
}
.sheet-edit:focus-visible { outline: 1px dashed var(--accent); outline-offset: 5px; }
.pdf-export {
  min-width: 42px;
  height: 29px;
  padding: 0 7px;
  border: 0;
  background: #ae3f38;
  color: white;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .035em;
  line-height: 1;
  cursor: pointer;
}
.pdf-export:hover { background: #93362f; }
.xlsx-export { min-width: 46px; background: #217346; }
.xlsx-export:hover { background: #185c37; }
.xlsx-export:disabled { opacity: .55; cursor: wait; }
.sheet-table {
  width: 100%;
  min-width: 1080px;
  margin-top: 14px;
  border-collapse: collapse;
  background: transparent;
  color: var(--text);
}
.sheet-table thead tr { background: var(--active); }
.sheet-table th {
  padding: 10px;
  border: 0;
  border-right: 1px solid #7f9ca2;
  background: transparent;
  color: var(--accent-ink);
  font-size: 11px;
  font-weight: 700;
  text-align: left;
}
.sheet-table th:last-child { border-right: 0; }
.sheet-table td {
  height: 38px;
  padding: 8px 10px;
  border: 0;
  border-right: 1px solid var(--line-soft);
  border-bottom: 1px dashed var(--line);
  background: var(--panel);
  color: var(--text);
  font-size: 13px;
  line-height: 1.35;
  vertical-align: middle;
}
.sheet-table td:last-child { border-right: 0; }
.sheet-table tbody tr:not(.group):not(.sheet-subgroup):not(.sheet-insert-row):hover td {
  background: #e3d3c2;
}
.sheet-table td:nth-child(1) { width: 72px; font-weight: 700; white-space: nowrap; }
.sheet-table td:nth-child(2) { min-width: 360px; }
.sheet-table td:nth-child(3),
.sheet-table td:nth-child(4),
.sheet-table td:nth-child(5),
.sheet-table td:nth-child(6) { width: 62px; text-align: center; white-space: nowrap; }
.sheet-table td:nth-child(7) { min-width: 270px; text-align: left; }
.sheet-table td:nth-child(8) { min-width: 105px; text-align: left; }
.sheet-table tr.group td {
  height: auto;
  padding: 10px 12px;
  border-top: 1px solid #78949b;
  border-right: 0;
  border-bottom: 1px solid #78949b;
  background: var(--active);
  color: #17323b;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .025em;
}
.sheet-table tr.sheet-subgroup td {
  height: auto;
  padding: 9px 10px;
  border-top: 1px solid #91a391;
  border-bottom: 1px solid #91a391;
  background: #c9d3c6;
  color: #33483d;
  font-size: 12px;
  font-weight: 800;
}
.sheet-insert-row { display: none; }
#quantity.sheet-editing .sheet-insert-row { display: table-row; }
.sheet-insert-row td {
  height: auto;
  padding: 8px 11px;
  border: 1px dashed var(--line);
  background: transparent;
  color: var(--accent);
  font-size: 13px;
  font-weight: 800;
  text-align: left;
}
.sheet-add-options { display: flex; gap: 18px; align-items: center; }
.sheet-add-option {
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
  cursor: pointer;
}
.sheet-add-option:hover { color: var(--accent-dark); }
.sheet-add-option:hover::after {
  position: absolute;
  right: 0;
  bottom: -3px;
  left: 0;
  border-bottom: 1px dashed currentColor;
  content: "";
}
#quantity.sheet-editing .sheet-table [data-quantity-field][contenteditable="true"] {
  outline: 0;
  background: var(--surface);
  cursor: text;
}
#quantity.sheet-editing .sheet-table [data-quantity-field][contenteditable="true"]:focus {
  background: var(--surface-strong);
  box-shadow: inset 0 0 0 1px var(--accent);
}
#quantity.sheet-editing .sheet-table tr.group [data-quantity-field][contenteditable="true"] {
  background: var(--active);
  color: #17323b;
}
#quantity.sheet-editing .sheet-table tr.sheet-subgroup [data-quantity-field][contenteditable="true"] {
  background: #c9d3c6;
  color: #33483d;
}
.quantity-system-code { white-space: nowrap; user-select: none; }
.quantity-section-activity {
  display: inline-block;
  min-width: 60px;
  min-height: 1em;
  padding: 1px 3px;
}
.sheet-row-remove {
  display: none;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin: -1px 0 -1px 7px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9c4b45;
  font: 700 17px/16px Arial, sans-serif;
  vertical-align: middle;
  cursor: pointer;
}
#quantity.sheet-editing .sheet-row-remove { display: inline-flex; }
.sheet-row-remove:hover { color: #722c27; }
.sheet-drag-handle {
  display: none;
  margin-right: 8px;
  color: var(--muted);
  font: 800 14px/1 Arial, sans-serif;
  letter-spacing: -2px;
  cursor: grab;
  user-select: none;
}
#quantity.sheet-editing .sheet-drag-handle { display: inline-block; }
#quantity.sheet-editing .sheet-drag-handle:active { cursor: grabbing; }
.sheet-table tr.sheet-dragging { opacity: .45; }
.sheet-table tr.sheet-drop-before td { box-shadow: inset 0 3px 0 var(--accent); }
.sheet-table tr.sheet-drop-after td { box-shadow: inset 0 -3px 0 var(--accent); }
.sheet-context-menu {
  position: fixed;
  z-index: 40;
  display: none;
  width: 205px;
  padding: 6px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.sheet-context-menu.open { display: block; }
.sheet-context-menu button {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-bottom: 1px dashed var(--line-soft);
  background: transparent;
  color: var(--text);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
}
.sheet-context-menu button:last-child { border-bottom: 0; }
.sheet-context-menu button:hover { background: var(--hover); color: var(--accent-dark); }

#elements {
  overflow: auto;
  padding: 0;
  background: transparent;
}
.element-section { position: relative; margin: 0; border: 0; background: transparent; }
.element-head {
  min-width: 1080px;
  min-height: 56px;
  margin: 0;
  padding: 0 0 12px;
  background: transparent;
}
.element-head h2 {
  margin: 0;
  color: var(--text);
  font-size: 21px;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.2;
}
.element-actions { display: flex; gap: 13px; align-items: center; margin-left: auto; }
#elements .sheet-table thead tr { background: #a7bca6; }
#elements .sheet-table th { border-right-color: #829784; color: #263b2b; }
#elements .sheet-table td {
  border-right-color: #c8bfae;
  border-bottom-color: #b7ad9d;
  background: var(--table-cell);
}
#elements .sheet-table tbody tr:not(.group):not(.sheet-insert-row):hover td {
  background: #e3ded5;
}
#elements .sheet-table td:nth-child(1) { width: 72px; font-weight: 700; }
#elements .sheet-table td:nth-child(2) { min-width: 360px; }
#elements .sheet-table td:nth-child(3),
#elements .sheet-table td:nth-child(4),
#elements .sheet-table td:nth-child(5) { width: 68px; text-align: center; }
#elements .sheet-table td:nth-child(6) { min-width: 270px; text-align: left; }
#elements .sheet-table td:nth-child(7) { min-width: 125px; text-align: left; }
#elements .sheet-table tr.group td {
  height: auto;
  padding: 10px 12px;
  border-top: 1px solid #b08a43;
  border-right: 0;
  border-bottom: 1px solid #b08a43;
  background: #d6bd83;
  color: #4d3c1c;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .025em;
}
#elements .sheet-insert-row { display: none; }
#elements.sheet-editing .sheet-insert-row { display: table-row; }
#elements .sheet-insert-row td { border-color: #b8a06f; color: #8c691f; }
#elements .sheet-insert-row td:hover { background: #e7d8bd; color: #684810; }
#elements.sheet-editing .sheet-table [data-element-field][contenteditable="true"] {
  outline: 0;
  background: var(--table-cell);
  cursor: text;
}
#elements.sheet-editing .sheet-table [data-element-field][contenteditable="true"]:focus {
  background: var(--surface-strong);
  box-shadow: inset 0 0 0 1px var(--accent);
}
#elements.sheet-editing .sheet-table tr.group [data-element-field][contenteditable="true"] {
  background: #d6bd83;
  color: #4d3c1c;
}
#elements.sheet-editing .sheet-table tr.group [data-element-field][contenteditable="true"]:focus {
  background: #e2cc98;
  box-shadow: inset 0 0 0 1px #8c691f;
}
.element-system-code { white-space: nowrap; user-select: none; }
.element-section-title {
  display: inline-block;
  min-width: 60px;
  min-height: 1em;
  padding: 1px 3px;
}
#elements.sheet-editing .sheet-row-remove { display: inline-flex; }
#elements.sheet-editing .sheet-drag-handle { display: inline-block; }

#furniture {
  overflow: auto;
  padding: 0;
  background: transparent;
}
.furniture-section { position: relative; margin: 0; border: 0; background: transparent; }
.furniture-head {
  min-width: 1080px;
  min-height: 56px;
  margin: 0;
  padding: 0 0 12px;
  background: transparent;
}
.furniture-head h2 {
  margin: 0;
  color: var(--text);
  font-size: 21px;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.2;
}
.furniture-actions { display: flex; gap: 13px; align-items: center; margin-left: auto; }
#furniture .sheet-table thead tr { background: transparent; }
#furniture .sheet-table th {
  border-right-color: var(--line-soft);
  border-bottom: 1px solid var(--line);
  color: var(--text);
}
#furniture .sheet-table td { background: var(--table-cell); }
#furniture .sheet-table tbody tr:not(.group):not(.sheet-insert-row):hover td {
  background: var(--hover);
}
#furniture .sheet-table td:nth-child(1) { width: 72px; font-weight: 700; }
#furniture .sheet-table td:nth-child(2) { min-width: 360px; }
#furniture .sheet-table td:nth-child(3),
#furniture .sheet-table td:nth-child(4),
#furniture .sheet-table td:nth-child(5) { width: 68px; text-align: center; }
#furniture .sheet-table td:nth-child(6) { min-width: 270px; text-align: left; }
#furniture .sheet-table td:nth-child(7) { min-width: 125px; text-align: left; }
#furniture .sheet-table tr.group td {
  background: var(--table-group);
  color: var(--text);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
}
#furniture .sheet-insert-row { display: none; }
#furniture.sheet-editing .sheet-insert-row { display: table-row; }
#furniture .sheet-insert-row td { color: var(--accent); }
#furniture .sheet-insert-row td:hover { background: var(--hover); color: var(--accent-dark); }
#furniture.sheet-editing .sheet-table [data-furniture-field][contenteditable="true"] {
  outline: 0;
  background: var(--table-cell);
  cursor: text;
}
#furniture.sheet-editing .sheet-table [data-furniture-field][contenteditable="true"]:focus {
  background: var(--surface-strong);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.furniture-system-code { white-space: nowrap; user-select: none; }
.furniture-section-title {
  display: inline-block;
  min-width: 60px;
  min-height: 1em;
  padding: 1px 3px;
}
#furniture.sheet-editing .sheet-row-remove { display: inline-flex; }
#furniture.sheet-editing .sheet-drag-handle { display: inline-block; }

#budget { overflow: auto; padding: 0; background: transparent; }
.budget-head {
  min-width: 1080px;
  min-height: 56px;
  margin: 0;
  padding: 0 0 12px;
  background: transparent;
}
.budget-head h2 {
  margin: 0;
  color: var(--text);
  font-size: 21px;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.2;
}
.budget-actions { display: flex; gap: 13px; align-items: center; margin-left: auto; }
.budget-edit {
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  cursor: pointer;
}
.budget-edit:hover { color: var(--accent-dark); }
.budget-edit:hover::after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  border-bottom: 1px dashed currentColor;
  content: "";
}
.budget-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  min-width: 1080px;
  margin: 14px 0 0;
  border: 1px solid var(--line);
  background: transparent;
}
.budget-summary div { padding: 12px 15px; border-right: 1px solid var(--line-soft); }
.budget-summary div:last-child { border-right: 0; }
.budget-summary div.budget-lower { background: #b8cbb8; }
.budget-summary div.budget-higher { background: #d6bd83; }
.budget-summary b { display: block; color: var(--text); font-size: 20px; font-weight: 700; }
.budget-summary span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.budget-summary .budget-lower b,
.budget-summary .budget-lower span,
.budget-summary .budget-higher b,
.budget-summary .budget-higher span { color: #1f1f1f; }
.budget-table {
  width: 100%;
  min-width: 1080px;
  margin-top: 14px;
  border-collapse: collapse;
  background: transparent;
  color: var(--text);
}
.budget-table thead tr { background: var(--table-head); }
.budget-table th {
  padding: 10px;
  border: 0;
  border-right: 1px solid #bdb6ac;
  background: transparent;
  color: var(--text);
  font-size: 11px;
  font-weight: 700;
  text-align: left;
}
.budget-table th:last-child { border-right: 0; }
.budget-table td {
  height: 38px;
  padding: 8px 10px;
  border: 0;
  border-right: 1px solid var(--line-soft);
  border-bottom: 1px dashed var(--line);
  background: var(--panel);
  color: var(--text);
  font-size: 13px;
  line-height: 1.35;
  vertical-align: middle;
}
.budget-table td:last-child { border-right: 0; }
.budget-table tbody tr:not(.budget-insert-row):not(.group):hover td { background: var(--hover); }
.budget-table tr.group td { background: var(--table-group); color: var(--text); font-weight: 700; }
.budget-table td:nth-child(1) { min-width: 260px; }
.budget-table td:nth-child(2) { min-width: 170px; }
.budget-table td:nth-child(3),
.budget-table td:nth-child(4),
.budget-table td:nth-child(5) { min-width: 145px; text-align: right; white-space: nowrap; }
.budget-table td:nth-child(6) { min-width: 250px; }
.budget-insert-row { display: none; }
#budget.budget-editing .budget-insert-row { display: table-row; }
.budget-insert-row td {
  height: auto;
  padding: 8px 11px;
  border: 1px dashed var(--line);
  background: transparent;
  text-align: left;
}
.budget-add-options { display: flex; gap: 18px; align-items: center; }
.budget-add-option {
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.budget-add-option:hover { color: var(--accent-dark); }
#budget.budget-editing .budget-table [data-budget-field][contenteditable="true"] {
  outline: 0;
  background: var(--surface);
  cursor: text;
}
#budget.budget-editing .budget-table [data-budget-field][contenteditable="true"]:focus {
  background: var(--surface-strong);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.budget-system-code { margin-right: 7px; white-space: nowrap; user-select: none; }
.budget-section-title { display: inline-block; min-width: 60px; min-height: 1em; padding: 1px 3px; }
.budget-row-remove {
  display: none;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin: -1px 0 -1px 7px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9c4b45;
  font: 700 17px/16px Arial, sans-serif;
  cursor: pointer;
}
#budget.budget-editing .budget-row-remove { display: inline-flex; }
.budget-drag-handle {
  display: none;
  margin-right: 8px;
  color: var(--muted);
  font: 800 14px/1 Arial, sans-serif;
  letter-spacing: -2px;
  cursor: grab;
  user-select: none;
}
#budget.budget-editing .budget-drag-handle { display: inline-block; }
.budget-table tr.budget-dragging { opacity: .45; }
.budget-table tr.budget-drop-before td { box-shadow: inset 0 3px 0 var(--accent); }
.budget-table tr.budget-drop-after td { box-shadow: inset 0 -3px 0 var(--accent); }
.budget-context-menu {
  position: fixed;
  z-index: 40;
  display: none;
  width: 205px;
  padding: 6px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.budget-context-menu.open { display: block; }
.budget-context-menu button {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-bottom: 1px dashed var(--line-soft);
  background: transparent;
  color: var(--text);
  font-size: 12px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.budget-context-menu button:last-child { border-bottom: 0; }
.budget-context-menu button:hover { background: var(--hover); color: var(--accent-dark); }

#orders { padding: 0; overflow: visible; background: transparent; color: var(--text); }
#orders .orders-head { display: flex; align-items: center; min-height: 56px; padding: 0 0 12px; border-bottom: 1px solid var(--line); }
#orders .orders-head h2 { margin: 0; font-size: 21px; }
#orders .orders-actions { display: flex; align-items: center; gap: 14px; margin-left: auto; }
#orders .orders-edit { position: relative; padding: 0; border: 0; background: transparent; color: var(--accent); font: 700 15px/1.25 inherit; cursor: pointer; }
#orders .orders-edit:hover { color: var(--accent-dark); }
#orders .orders-edit:hover::after { content: ""; position: absolute; right: 0; bottom: -4px; left: 0; border-bottom: 1px dashed currentColor; }
#orders .orders-pdf { min-width: 42px; height: 29px; padding: 0 7px; border: 0; background: #ae3f38; color: #fff; font: 800 11px/1 inherit; letter-spacing: .035em; cursor: pointer; }
#orders .orders-pdf:hover { background: #93362f; }
#orders .orders-summary { display: grid; grid-template-columns: repeat(3, 1fr); margin: 14px 0 0; border: 1px solid var(--line); }
#orders .orders-summary > div { padding: 11px 14px; border-right: 1px solid var(--line-soft); }
#orders .orders-summary > div:last-child { border-right: 0; }
#orders .orders-summary b { display: block; color: var(--text); font-size: 18px; }
#orders .orders-summary span { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
#orders .orders-workspace { margin-top: 14px; overflow: auto; }
#orders .orders-data { width: 100%; min-width: 1260px; border-collapse: collapse; background: transparent; color: var(--text); }
#orders .orders-data thead tr { height: 43px; background: transparent; }
#orders .orders-data th { height: 43px; padding: 10px; border: 0; border-top: 1px solid var(--line); border-right: 1px solid #bdb6ac; border-bottom: 1px solid var(--line); background: transparent; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-align: left; text-transform: uppercase; }
#orders .orders-data th:last-child { border-right: 0; }
#orders .orders-data td { height: 42px; padding: 7px 9px; border: 0; border-right: 1px solid var(--line-soft); border-bottom: 1px dashed var(--line); background: var(--panel); font-size: 12px; line-height: 1.3; vertical-align: middle; }
#orders .orders-data td:last-child { border-right: 0; }
#orders .orders-data tbody tr:not(.orders-group):not(.orders-insert-row):hover td { background: var(--hover); }
#orders .orders-data tr.orders-group td { height: auto; padding: 10px 12px; border-top: 1px solid var(--line); border-right: 0; border-bottom: 1px solid var(--line); background: var(--table-group); font-weight: 800; letter-spacing: .025em; }
#orders .orders-data th:nth-child(1), #orders .orders-data td:nth-child(1) { min-width: 245px; }
#orders .orders-data th:nth-child(2), #orders .orders-data td:nth-child(2) { min-width: 150px; }
#orders .orders-data th:nth-child(3), #orders .orders-data td:nth-child(3) { min-width: 150px; text-align: center; }
#orders .orders-data th:nth-child(4), #orders .orders-data td:nth-child(4), #orders .orders-data th:nth-child(5), #orders .orders-data td:nth-child(5), #orders .orders-data th:nth-child(6), #orders .orders-data td:nth-child(6), #orders .orders-data th:nth-child(9), #orders .orders-data td:nth-child(9), #orders .orders-data th:nth-child(10), #orders .orders-data td:nth-child(10) { min-width: 92px; text-align: center; white-space: nowrap; }
#orders .orders-data th:nth-child(7), #orders .orders-data td:nth-child(7) { min-width: 125px; text-align: right; white-space: nowrap; }
#orders .orders-data th:nth-child(8), #orders .orders-data td:nth-child(8) { min-width: 128px; text-align: center; }
#orders .orders-data th:nth-child(11), #orders .orders-data td:nth-child(11) { min-width: 215px; }
#orders.orders-editing .orders-data [data-orders-field][contenteditable="true"] { background: var(--surface); outline: 0; cursor: text; }
#orders.orders-editing .orders-data [data-orders-field][contenteditable="true"]:focus { background: var(--surface-strong); box-shadow: inset 0 0 0 1px var(--accent); }
#orders .orders-group [data-orders-field="activity"] { display: inline-block; min-width: 160px; min-height: 1.2em; padding: 1px 3px; }
#orders .orders-row td:first-child [data-orders-field="activity"] { display: inline-block; width: calc(100% - 28px); min-width: 160px; min-height: 1.2em; padding: 1px 3px; vertical-align: middle; }
#orders .order-select { position: relative; display: inline-block; min-width: 125px; }
#orders .order-select-trigger { position: relative; width: 100%; min-height: 29px; padding: 5px 25px 5px 8px; border: 1px dashed var(--dash); background: transparent; color: var(--text); font: 700 12px inherit; text-align: center; cursor: pointer; }
#orders .order-select-trigger::after { content: "▾"; position: absolute; right: 8px; color: currentColor; font-size: 10px; }
#orders .order-select-menu { display: none; position: fixed; z-index: 48; width: 205px; padding: 4px; background: var(--panel); border: 1px dashed var(--dash); box-shadow: 4px 5px 12px #6f67592b; }
#orders .order-select.open .order-select-menu { display: block; }
#orders .order-select-option { display: block; width: 100%; padding: 8px 10px; border: 0; border-bottom: 1px dashed var(--line-soft); color: var(--text); font: 600 12px inherit; text-align: left; cursor: pointer; }
#orders .order-select-option:hover { filter: brightness(.94); }
#orders .order-select-edit { display: flex; width: 100%; height: 32px; align-items: center; justify-content: flex-end; padding: 0 9px; border: 0; background: transparent; color: #4f5552; cursor: pointer; }
#orders .order-select-edit:hover { background: var(--hover); color: var(--accent-dark); }
#orders .order-select-edit svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: square; stroke-linejoin: miter; }
#orders .status-unasked, #orders .status-unchecked { background: #d9aaa6; color: #6f2925; }
#orders .status-asked { background: #d8e1df; color: #355f66; }
#orders .status-received { background: #b8cdd0; color: var(--accent-ink); }
#orders .status-forwarded { background: #9eb9c0; color: #17323b; }
#orders .status-approved { background: #b8cbb8; color: #33483d; }
#orders .status-advanced { background: #d6bd83; color: #4d3c1c; }
#orders .status-paid { background: #6f8b79; color: #fff; }
#orders .status-checked { background: #83b879; color: #17371f; }
#orders .status-custom { background: var(--panel-soft); color: var(--text); }
#orders .order-date-picker { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 82px; height: 29px; color: var(--text); }
#orders .order-date-display { min-width: 48px; pointer-events: none; user-select: none; text-align: center; font-weight: 600; }
#orders .order-date-trigger { display: inline-grid; width: 28px; height: 28px; padding: 0; place-items: center; border: 0; border-left: 1px solid var(--line); background: transparent; color: var(--accent); cursor: pointer; }
#orders .order-date-trigger:hover { background: var(--hover); color: var(--accent-dark); }
#orders .order-date-trigger svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: square; stroke-linejoin: miter; }
#orders .order-date-menu { display: none; position: fixed; z-index: 49; width: 252px; padding: 8px; background: var(--panel); border: 1px dashed var(--dash); box-shadow: 4px 5px 12px #6f67592b; text-align: left; }
#orders .order-date-menu.open { display: block; }
#orders .order-date-head { display: grid; grid-template-columns: 28px 1fr 28px; align-items: center; margin-bottom: 7px; padding-bottom: 7px; border-bottom: 1px dashed var(--line-soft); text-align: center; }
#orders .order-date-head button { width: 28px; height: 27px; padding: 0; border: 0; background: transparent; color: var(--accent); font: 800 17px inherit; cursor: pointer; }
#orders .order-date-head button:hover { background: var(--hover); }
#orders .order-date-head strong { font-size: 12px; }
#orders .order-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
#orders .order-calendar-weekday { padding: 3px 0; color: var(--muted); font-size: 9px; font-weight: 800; text-align: center; text-transform: uppercase; }
#orders .order-calendar-day { height: 27px; padding: 0; border: 0; background: transparent; color: var(--text); font: 600 11px inherit; cursor: pointer; }
#orders .order-calendar-day:hover { background: var(--hover); }
#orders .order-calendar-day.is-selected { background: var(--accent); color: #fff; }
#orders .order-calendar-day.is-outside { color: var(--line); }
#orders .order-date-clear { display: block; width: 100%; margin-top: 11px; padding: 8px; border: 1px dashed #b3a99c; background: var(--panel-soft); color: #6f2925; font: 700 11px inherit; cursor: pointer; text-align: center; }
#orders .order-date-clear:hover { background: var(--hover); }
#orders .orders-insert-row { display: none; }
#orders.orders-editing .orders-insert-row { display: table-row; }
#orders .orders-insert-row td { height: auto; padding: 8px 11px; border: 1px dashed var(--line); background: transparent; }
#orders .orders-add-options { display: flex; gap: 18px; align-items: center; }
#orders .orders-add-option { padding: 0; border: 0; background: transparent; color: var(--accent); font: 800 13px inherit; cursor: pointer; }
#orders .orders-drag-handle, #orders .orders-row-remove { display: none; }
#orders.orders-editing .orders-drag-handle { display: inline-block; margin-right: 8px; color: var(--muted); font: 800 14px Arial,sans-serif; letter-spacing: -2px; cursor: grab; user-select: none; }
#orders.orders-editing .orders-row-remove { display: inline-grid; width: 18px; height: 18px; margin-left: 7px; padding: 0; place-items: center; border: 0; background: transparent; color: #9c4b45; font: 700 17px Arial,sans-serif; cursor: pointer; }
#orders .orders-context-menu { display: none; position: fixed; z-index: 40; width: 205px; padding: 6px; background: var(--panel); border: 1px dashed var(--dash); box-shadow: 4px 5px 12px #6f67592b; }
#orders .orders-context-menu.open { display: block; }
#orders .orders-context-menu button { display: block; width: 100%; padding: 8px 10px; border: 0; border-bottom: 1px dashed var(--line-soft); background: transparent; color: var(--text); font: 600 12px/1.3 inherit; text-align: left; cursor: pointer; }
#orders .orders-context-menu button:last-child { border-bottom: 0; }
#orders .orders-context-menu button:hover { background: var(--hover); color: var(--accent-dark); }
#orders .orders-dragging { opacity: .45; }
#orders .orders-drop-before td { box-shadow: inset 0 3px 0 var(--accent); }
#orders .orders-drop-after td { box-shadow: inset 0 -3px 0 var(--accent); }

#schedule { padding: 0; overflow: visible; color: var(--text); background: transparent; }
#schedule .schedule-summary { display: grid; grid-template-columns: repeat(4,minmax(150px,1fr)); margin: 0 0 14px; border: 1px solid var(--line); }
#schedule .schedule-summary > div { padding: 12px 15px; border-right: 1px solid var(--line-soft); background: var(--panel); }
#schedule .schedule-summary > div:last-child { border-right: 0; }
#schedule .schedule-summary b { display: block; color: var(--text); font-size: 18px; font-weight: 700; }
#schedule .schedule-summary .late { color: #9c4b45; }
#schedule .schedule-summary span { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
#schedule .schedule-workspace { background: transparent; }
#schedule .schedule-meta { display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 0 0 12px; border-bottom: 1px solid var(--line); }
#schedule .schedule-meta > b, #schedule .schedule-meta .meta-name { font-size: 21px; font-weight: 400; line-height: 1.2; }
#schedule .schedule-meta .meta-name { padding-left: 14px; border-left: 1px solid var(--line); color: var(--muted); }
#schedule .schedule-date-controls { display: flex; align-items: center; gap: 8px; margin-left: auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
#schedule .schedule-date-controls input { height: 30px; padding: 4px 7px; border: 1px solid var(--line); background: var(--panel); color: var(--text); font: inherit; }
#schedule .schedule-actions { display: flex; align-items: center; gap: 13px; }
#schedule .schedule-edit { position: relative; padding: 0; border: 0; background: transparent; color: var(--accent); font: 700 14px/1.25 inherit; white-space: nowrap; cursor: pointer; }
#schedule .schedule-edit:hover { color: var(--accent-dark); }
#schedule .schedule-edit:hover::after { content: ""; position: absolute; right: 0; bottom: -4px; left: 0; border-bottom: 1px dashed currentColor; }
#schedule .schedule-pdf { min-width: 42px; height: 29px; padding: 0 7px; border: 0; background: #ae3f38; color: #fff; font: 800 11px/1 inherit; letter-spacing: .035em; cursor: pointer; }
#schedule .schedule-pdf:hover { background: #93362f; }
#schedule .schedule-board-scroll { margin-top: 14px; overflow: auto; border: 1px solid var(--line); }
#schedule .schedule-board { display: flex; min-width: 2760px; background: transparent; }
#schedule .schedule-data { width: 1540px; flex: 0 0 1540px; border-collapse: collapse; background: var(--panel); color: var(--text); font-size: 12px; }
#schedule .schedule-data th, #schedule .schedule-data td { box-sizing: border-box; height: 40px; padding: 0 7px; border-right: 1px solid var(--line-soft); border-bottom: 1px dashed var(--line); vertical-align: middle; }
#schedule .schedule-data th { height: 55px; background: var(--table-head); color: var(--text); font-weight: 700; text-align: center; }
#schedule .schedule-data td { max-height: 40px; background: var(--panel); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#schedule .schedule-data tbody tr:not(.schedule-group):hover td { background: var(--hover); }
#schedule .schedule-data th:nth-child(1), #schedule .schedule-data td:nth-child(1) { position: sticky; left: 0; z-index: 4; width: 75px; min-width: 75px; max-width: 75px; background: var(--panel); }
#schedule .schedule-data th:nth-child(2), #schedule .schedule-data td:nth-child(2) { position: sticky; left: 79px; z-index: 4; width: 220px; min-width: 220px; max-width: 220px; background: var(--panel); box-shadow: 2px 0 0 var(--line); }
#schedule .schedule-data thead th:nth-child(-n+2) { z-index: 7; background: var(--table-head); }
#schedule .schedule-data td:nth-child(3) { width: 190px; }
#schedule .schedule-data th:nth-child(4), #schedule .schedule-data td:nth-child(4) { display: none; }
#schedule .schedule-data td:nth-child(5) { width: 58px; text-align: center; }
#schedule .schedule-data td:nth-child(6) { width: 116px; }
#schedule .schedule-data td:nth-child(n+7) { width: 84px; text-align: center; white-space: nowrap; }
#schedule .schedule-data .schedule-group td { height: 32px; padding-top: 0; padding-bottom: 0; border-right: 0; background: var(--table-group); font-weight: 700; }
#schedule .schedule-data tbody tr:first-child.schedule-group td { background: #d6bd83; color: #4d3c1c; font-weight: 800; }
#schedule .schedule-data tbody tr:not(.schedule-group):hover td:nth-child(-n+2) { background: var(--hover); }
#schedule .schedule-data .schedule-group td:nth-child(-n+2) { background: var(--table-group); }
#schedule .schedule-data tbody tr:first-child.schedule-group td:nth-child(-n+2) { background: #d6bd83; }
#schedule .schedule-group [data-schedule-field="activity"] { display: inline-block; min-width: 160px; min-height: 1.2em; padding: 1px 3px; vertical-align: middle; }
#schedule.schedule-editing [data-schedule-field][contenteditable="true"] { background: var(--surface); outline: 0; box-shadow: inset 0 0 0 1px var(--accent); }
#schedule .schedule-data input[type="date"] { box-sizing: border-box; width: 100%; height: 26px; padding: 1px 3px; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: inherit; }
#schedule .schedule-progress { height: 16px; min-width: 82px; background: #d6d1c9; }
#schedule .schedule-progress i { display: block; height: 100%; background: #b99a68; }
#schedule .schedule-side { width: 1250px; flex: 0 0 1250px; }
#schedule .gantt-weeks, #schedule .gantt-row, #schedule .gantt-milestone-row { display: grid; grid-template-columns: repeat(14,89px); }
#schedule .gantt-weeks div { box-sizing: border-box; height: 55px; padding: 8px 4px; border-right: 1px solid #bdb6ac; border-bottom: 1px solid #bdb6ac; background: var(--table-head); color: var(--muted); font-size: 11px; text-align: center; }
#schedule .gantt-weeks .today { background: #c2d5d0; color: var(--accent-ink); }
#schedule .gantt-row { position: relative; height: 40px; border-bottom: 1px dashed var(--line); background: repeating-linear-gradient(90deg,transparent 0 88px,var(--line-soft)66 88px 89px); }
#schedule .gantt-row.group, #schedule .gantt-milestone-row { height: 32px; border-bottom: 1px dashed var(--line); background: repeating-linear-gradient(90deg,transparent 0 88px,var(--line-soft)66 88px 89px); }
#schedule .gantt-plan-bar,
#schedule .gantt-actual-bar { position: absolute; left: var(--gantt-left); width: var(--gantt-width); box-sizing: border-box; }
#schedule .gantt-plan-bar { top: 7px; height: 7px; background: #a8a39a; }
#schedule .gantt-actual-bar { top: 17px; height: 16px; min-width: 32px; background: #648b8b; }
#schedule .gantt-actual-bar.done { background: #6f9474; }
#schedule .gantt-actual-bar.delay { background: #b3786e; }
#schedule .gantt-actual-handle,
#schedule .gantt-actual-move { position: absolute; top: 0; height: 16px; padding: 0; border: 0; background: transparent; color: #fff; cursor: ew-resize; }
#schedule .gantt-actual-handle { width: 8px; background: rgba(32,38,38,.42); }
#schedule .gantt-actual-handle.start { left: 0; }
#schedule .gantt-actual-handle.end { right: 0; }
#schedule .gantt-actual-move { left: 50%; width: 24px; margin-left: -12px; font: 700 11px/16px Arial,sans-serif; cursor: move; }
body.schedule-actual-dragging { cursor: ew-resize; user-select: none; }
#schedule .gantt-row.group .gantt-group-bar { height: 12px; align-self: center; margin: 0 4px; border-right: 3px solid #5f675f; border-left: 3px solid #5f675f; background: #8b928b; }
#schedule .schedule-week-slot { grid-row: 1; height: 32px; padding: 0; border: 0; background: transparent; cursor: default; }
#schedule.schedule-editing .schedule-week-slot { cursor: crosshair; }
#schedule .schedule-flag { z-index: 1; grid-row: 1; position: relative; box-sizing: border-box; align-self: stretch; min-width: 0; margin: 4px 3px; padding: 0 5px; border: 0; background: #c9b17d; color: #4d3c1c; font: 800 10px/24px inherit; overflow: hidden; text-align: left; cursor: help; }
#schedule .schedule-flag.urgent { background: #c99086; color: #4e2824; }
#schedule .schedule-flag small { display: block; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#schedule.schedule-editing .schedule-flag { cursor: pointer; }
#schedule .schedule-drag-handle, #schedule .schedule-row-remove { display: none; }
#schedule.schedule-editing .schedule-drag-handle { display: inline-block; margin-right: 7px; color: #777168; font-weight: 800; letter-spacing: -2px; cursor: grab; user-select: none; }
#schedule.schedule-editing .schedule-row-remove { display: inline-grid; width: 18px; height: 18px; margin-left: 6px; padding: 0; place-items: center; border: 0; background: transparent; color: #9c4b45; font: 800 16px Arial,sans-serif; cursor: pointer; }
#schedule .schedule-dragging { opacity: .45; }
#schedule .schedule-drop-before td { box-shadow: inset 0 2px 0 var(--accent); }
#schedule .schedule-drop-after td { box-shadow: inset 0 -2px 0 var(--accent); }
#schedule .schedule-insert-actions { display: none; align-items: center; gap: 18px; margin-top: 10px; padding: 8px 11px; border: 1px dashed var(--line); }
#schedule.schedule-editing .schedule-insert-actions { display: flex; }
#schedule .schedule-insert-actions button { padding: 0; border: 0; background: transparent; color: var(--accent); font: 800 13px/1.35 inherit; cursor: pointer; }
#schedule .schedule-context-menu { display: none; position: fixed; z-index: 50; width: 205px; padding: 6px; border: 1px dashed var(--dash); background: var(--panel); box-shadow: 4px 5px 12px #6f67592b; }
#schedule .schedule-context-menu.open { display: block; }
#schedule .schedule-context-menu button { display: block; width: 100%; padding: 8px 10px; border: 0; border-bottom: 1px dashed var(--line-soft); background: transparent; color: var(--text); font: 600 12px/1.3 inherit; text-align: left; cursor: pointer; }
#schedule .schedule-context-menu button:hover { background: var(--hover); color: var(--accent-dark); }
#schedule .schedule-context-menu .schedule-context-remove { border-top: 1px solid var(--line); color: #9c4b45; }
#schedule .schedule-milestone-editor { width: min(520px,calc(100vw - 32px)); padding: 0; border: 1px solid var(--dash); background: var(--panel); color: var(--text); box-shadow: 0 16px 48px #332f2766; }
#schedule .schedule-milestone-editor::backdrop { background: #26242075; }
#schedule .schedule-milestone-editor form { display: grid; gap: 14px; padding: 22px; }
#schedule .schedule-milestone-editor header { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding-bottom: 12px; }
#schedule .schedule-milestone-editor header small { color: var(--muted); }
#schedule .schedule-milestone-editor h2 { margin: 3px 0 0; }
#schedule .schedule-milestone-editor header button { border: 0; background: transparent; color: var(--muted); font-size: 22px; cursor: pointer; }
#schedule .schedule-milestone-editor label:not(.schedule-critical) { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 700; }
#schedule .schedule-milestone-editor input[type="text"], #schedule .schedule-milestone-editor input:not([type]), #schedule .schedule-milestone-editor select, #schedule .schedule-milestone-editor textarea { box-sizing: border-box; width: 100%; padding: 9px; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: inherit; resize: vertical; }
#schedule .schedule-critical { display: inline-flex; align-items: center; justify-self: start; gap: 8px; color: #4e2824; font-size: 12px; font-weight: 700; cursor: pointer; }
#schedule .schedule-critical input[type="checkbox"] { width: 16px; height: 16px; min-height: 16px; margin: 0; padding: 0; flex: 0 0 16px; accent-color: #9c4b45; cursor: pointer; }
#schedule .schedule-milestone-editor footer { display: flex; justify-content: flex-end; gap: 10px; padding-top: 4px; }
#schedule .schedule-milestone-editor footer button { padding: 8px 13px; border: 1px solid var(--line); background: transparent; color: var(--text); font: 700 12px inherit; cursor: pointer; }
#schedule .schedule-milestone-editor footer .primary { border-color: var(--accent); background: var(--accent); color: #fff; }
#schedule .schedule-milestone-editor footer .schedule-milestone-delete { margin-right: auto; border-color: transparent; color: #9c4b45; }
#schedule .schedule-hover-tip { position: fixed; z-index: 80; width: max-content; max-width: min(320px,calc(100vw - 24px)); padding: 10px 12px; border: 1px solid var(--dash); background: var(--panel); color: var(--text); box-shadow: 4px 6px 16px #332f274d; font-size: 12px; line-height: 1.4; pointer-events: none; white-space: normal; overflow-wrap: anywhere; }
#schedule .schedule-hover-tip b, #schedule .schedule-hover-tip span { display: block; }
#schedule .schedule-hover-tip span { margin-top: 4px; color: var(--muted); }

#supervision { padding: 0; background: transparent; color: var(--text); }
#supervision .supervision-section { margin: 0; padding: 0; background: transparent; border: 0; }
#supervision .supervision-head { display: flex; align-items: center; min-height: 56px; padding: 0 0 12px; border-bottom: 1px solid var(--line); }
#supervision .supervision-head h2 { margin: 0; font-size: 21px; line-height: 1.2; }
#supervision .supervision-add { margin-left: auto; padding: 0; border: 0; background: transparent; color: var(--accent); font: 700 15px inherit; cursor: pointer; }
#supervision .supervision-add:hover { color: var(--accent-dark); }
#supervision .supervision-table { margin-top: 10px; }
#supervision .supervision-table-head,
#supervision .supervision-visit-row { display: grid; grid-template-columns: 140px minmax(270px,1fr) 140px 110px 58px; gap: 0; align-items: center; }
#supervision .supervision-table-head { padding: 0 18px 9px; color: var(--muted); font-size: 11px; }
#supervision .supervision-print-label { justify-self: end; text-align: right; }
#supervision .supervision-visit-row { min-height: 76px; margin-top: 7px; padding: 11px 18px; background: var(--panel); border: 1px dashed var(--line); cursor: pointer; }
#supervision .supervision-visit-row:hover { background: var(--hover); border-color: var(--dash); }
#supervision .supervision-visit-row.is-expanded { margin-bottom: 0; border-bottom: 0; }
#supervision .supervision-visit-date { display: flex; flex-direction: column; gap: 2px; color: #355f66; font-weight: 700; line-height: 1.1; }
#supervision .supervision-visit-date small { color: var(--muted); font-size: 11px; font-weight: 600; }
#supervision .supervision-visit-name { font-weight: 700; }
#supervision .supervision-visit-name small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 500; }
#supervision .supervision-visit-stat { color: var(--text); font-size: 13px; font-weight: 600; }
#supervision .supervision-pdf { justify-self: end; min-width: 42px; height: 29px; padding: 0 7px; border: 0; background: #ae3f38; color: #fff; font: 800 11px/1 inherit; letter-spacing: .035em; cursor: pointer; }
#supervision .supervision-pdf:hover { background: #93362f; }
#supervision .supervision-detail { display: none; position: relative; margin: 0 0 11px; padding: 17px 20px 15px; background: var(--panel); border: 1px dashed var(--dash); border-top: 0; color: var(--text); }
#supervision .supervision-detail.is-open { display: block; }
#supervision .supervision-detail::before { content: ''; position: absolute; top: 0; right: 20px; left: 20px; border-top: 1px solid var(--line); }
#supervision .supervision-edit-zone { display: flex; justify-content: flex-end; padding: 0 0 11px; }
#supervision .supervision-detail-actions { display: flex; width: 100%; justify-content: flex-end; gap: 13px; }
#supervision .supervision-detail-action { padding: 0; border: 0; background: transparent; color: var(--accent); font: 700 14px inherit; cursor: pointer; }
#supervision .supervision-detail-action:hover { text-decoration: underline dashed 1px; text-underline-offset: 4px; }
#supervision .supervision-detail-save { display: none; }
#supervision .supervision-delete-wrap { display: none; margin-right: auto; }
#supervision .supervision-detail.is-editing .supervision-detail-edit { display: none; }
#supervision .supervision-detail.is-editing .supervision-detail-save { display: inline-block; }
#supervision .supervision-detail.is-editing .supervision-delete-wrap { display: block; }
#supervision .supervision-detail-delete { color: #9c4b45; }
#supervision .supervision-fields { border-top: 1px solid var(--line); }
#supervision .supervision-field { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 18px; padding: 11px 0; border-bottom: 1px dashed var(--line-soft); font-size: 13px; }
#supervision .supervision-field-label { color: var(--muted); }
#supervision .supervision-field-value { min-height: 20px; line-height: 1.45; outline: 0; }
#supervision .supervision-field.is-multiline .supervision-field-value { min-height: 20px; white-space: pre-wrap; overflow-wrap: anywhere; }
#supervision .supervision-detail.is-editing .supervision-field-value { padding: 5px 7px; background: var(--table-cell); box-shadow: inset 0 0 0 1px var(--line); cursor: text; }
#supervision .supervision-detail.is-editing .supervision-field-value:focus { background: var(--surface-strong); box-shadow: inset 0 0 0 1px var(--accent); }
#supervision .supervision-field-textarea { display: block; box-sizing: border-box; width: 100%; height: auto; min-height: 31px !important; margin: 0; overflow: hidden; resize: none; border: 0; border-radius: 0; color: var(--text); font: inherit; line-height: 1.45; outline: 0; }
#supervision .supervision-date-picker { position: relative; display: inline-flex; align-items: center; box-sizing: border-box; width: 168px; height: 31px; padding: 0 !important; background: var(--table-cell) !important; box-shadow: inset 0 0 0 1px var(--line) !important; cursor: default !important; }
#supervision .supervision-date-display { flex: 1; padding: 0 8px; pointer-events: none; user-select: none; color: var(--text); font-weight: 600; }
#supervision .supervision-date-trigger { display: inline-grid; width: 31px; height: 31px; padding: 0; place-items: center; border: 0; border-left: 1px solid var(--line); background: transparent; color: var(--accent); cursor: pointer; }
#supervision .supervision-date-trigger:hover { background: var(--hover); color: var(--accent-dark); }
#supervision .supervision-date-trigger svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: square; stroke-linejoin: miter; }
#supervision .supervision-date-menu { display: none; position: absolute; z-index: 28; top: 38px; left: 0; width: 252px; padding: 8px; background: var(--panel); border: 1px dashed var(--line); box-shadow: 4px 5px 12px #6f67592b; }
#supervision .supervision-date-menu.open { display: block; }
#supervision .supervision-date-menu-head { display: grid; grid-template-columns: 28px 1fr 28px; align-items: center; margin-bottom: 7px; padding-bottom: 7px; border-bottom: 1px dashed var(--line-soft); text-align: center; }
#supervision .supervision-date-menu-head button { width: 28px; height: 27px; padding: 0; border: 0; background: transparent; color: var(--accent); font: 800 17px inherit; cursor: pointer; }
#supervision .supervision-date-menu-head button:hover { background: var(--hover); }
#supervision .supervision-date-menu-head strong { font-size: 12px; }
#supervision .supervision-calendar-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; }
#supervision .supervision-calendar-weekday { padding: 3px 0; color: var(--muted); font-size: 9px; font-weight: 800; text-align: center; text-transform: uppercase; }
#supervision .supervision-calendar-day { height: 27px; padding: 0; border: 0; background: transparent; color: var(--text); font: 600 11px inherit; cursor: pointer; }
#supervision .supervision-calendar-day:hover { background: var(--hover); }
#supervision .supervision-calendar-day.is-selected { background: var(--accent); color: #fff; }
#supervision .supervision-calendar-day.is-outside { color: var(--line); }
#supervision .supervision-task-links,
#supervision .supervision-files { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; min-height: 30px; }
#supervision .supervision-task-count,
#supervision .supervision-file-count { color: var(--text); font-weight: 800; }
#supervision .supervision-inline-divider { height: 22px; border-left: 1px solid var(--line); }
#supervision .supervision-task-link { display: inline-grid; width: 30px; height: 30px; padding: 0; place-items: center; border: 1px dashed #81918c; background: transparent; color: var(--accent); cursor: pointer; }
#supervision .supervision-task-link svg,
#supervision .supervision-folder-link svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-linecap: square; stroke-linejoin: miter; stroke-width: 1.8; }
#supervision .supervision-task-link:hover { background: #e8e3da; color: #355f66; }
#supervision .supervision-task-menu-wrap { position: relative; margin-left: 3px; }
#supervision .supervision-task-menu-toggle { height: 30px; padding: 0 10px; border: 1px dashed #81918c; background: transparent; color: var(--accent); font: 700 12px inherit; cursor: pointer; }
#supervision .supervision-task-menu { display: none; position: absolute; z-index: 30; top: 36px; left: 0; width: 310px; padding: 10px; background: var(--table-cell); border: 1px solid var(--dash); box-shadow: 0 6px 18px var(--text)24; }
#supervision .supervision-task-menu.open { display: block; }
#supervision .supervision-task-menu-title { display: block; padding: 4px 7px 7px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
#supervision .supervision-task-menu-title:not(:first-child) { margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--line-soft); }
#supervision .supervision-task-menu-action { display: flex; width: 100%; gap: 9px; align-items: center; padding: 8px 7px; border: 0; background: transparent; color: var(--text); font: 600 12px inherit; cursor: pointer; text-align: left; }
#supervision .supervision-task-menu-action:hover { background: var(--hover); }
#supervision .supervision-task-menu-action i { display: inline-grid; width: 20px; height: 20px; place-items: center; border: 1px dashed #81918c; color: var(--accent); font-style: normal; font-weight: 800; }
#supervision .supervision-task-menu-action.is-linked i { background: var(--accent); border-color: var(--accent); color: #fff; }
#supervision .supervision-task-empty { color: var(--muted); }
#supervision .supervision-folder-link { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 0; background: transparent; color: var(--accent); cursor: pointer; }
#supervision > .list-state { margin-top: 14px; }

@media (max-width: 950px) {
  #supervision { overflow: auto; }
  #supervision .supervision-section { min-width: 830px; }
}

@media print {
  body.print-supervision .sidebar,
  body.print-supervision .project-head,
  body.print-supervision .project-tabbar,
  body.print-supervision #supervision .supervision-head,
  body.print-supervision #supervision .supervision-table-head,
  body.print-supervision #supervision .supervision-visit-row:not(.print-target),
  body.print-supervision #supervision .supervision-pdf,
  body.print-supervision #supervision .supervision-detail-actions { display: none !important; }
  body.print-supervision .project-module-panel:not(#supervision) { display: none !important; }
  body.print-supervision .workspace,
  body.print-supervision .view,
  body.print-supervision #supervision { display: block !important; overflow: visible; padding: 0 !important; color: #111 !important; }
  body.print-supervision #supervision .supervision-visit-row.print-target { margin: 0; border: 0; border-bottom: 1px solid #999; background: #fff !important; color: #111 !important; }
  body.print-supervision #supervision .supervision-detail { display: block !important; margin: 0; border: 0; background: #fff !important; color: #111 !important; }
  body.print-supervision #supervision .supervision-field { border-color: #aaa !important; }
  body.print-supervision #supervision .supervision-visit-row,
  body.print-supervision #supervision .supervision-detail { print-color-adjust: exact !important; -webkit-print-color-adjust: exact !important; }
}

@media (max-width: 1050px) {
  #schedule .schedule-meta { flex-wrap: wrap; }
  #schedule .schedule-date-controls { margin-left: 0; }
  #schedule .schedule-actions { margin-left: auto; }
  #schedule .schedule-summary { grid-template-columns: repeat(2,minmax(150px,1fr)); }
}

.browser-print-template { display: none; }

@media print {
  body.browser-print-template-active > * { display: none !important; }
  body.browser-print-template-active > .browser-print-template {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  html,
  body.pdf-export-document {
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    background: #fff !important;
  }
  body.pdf-export-document .print-app-shell { height: auto !important; }
  body.pdf-export-document .project-print-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: end;
    margin: 0 0 20px;
    padding: 0 0 14px;
    border-bottom: 1px solid #777;
    break-after: avoid-page;
    page-break-after: avoid;
  }
  body.pdf-export-document .project-print-header small,
  body.pdf-export-document .project-print-header strong { display: block; }
  body.pdf-export-document .project-print-header small {
    margin-bottom: 4px;
    color: #555;
    font-size: 9pt;
    font-weight: 500;
  }
  body.pdf-export-document .project-print-header strong {
    color: #111;
    font-size: 13pt;
  }
  body.pdf-export-document .project-print-document-title { text-align: right; }
  body.pdf-export-document table { break-inside: auto; page-break-inside: auto; }
  body.pdf-export-document thead { display: table-header-group; }
  body.pdf-export-document tfoot { display: table-footer-group; }
  body.pdf-export-document tr,
  body.pdf-export-document .schedule-summary > div,
  body.pdf-export-document .budget-summary > div,
  body.pdf-export-document .orders-summary > div,
  body.pdf-export-document .supervision-visit-row,
  body.pdf-export-document .supervision-field,
  body.pdf-export-document .project-note-print header {
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }
  body:is(.print-quantity,.print-elements,.print-furniture,.print-budget,.print-orders,.print-schedule,.print-supervision) {
    background: #fff !important;
    color: #111 !important;
  }
  body:is(.print-quantity,.print-elements,.print-furniture,.print-budget,.print-orders,.print-schedule,.print-supervision) .workspace > .view:not(.project-view) {
    display: none !important;
  }
  body:is(.print-quantity,.print-elements,.print-furniture,.print-budget,.print-orders,.print-schedule,.print-supervision) .project-view {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  body.print-quantity .sidebar,
  body.print-quantity .project-head,
  body.print-quantity .project-tabbar,
  body.print-quantity .quantity-actions,
  body.print-quantity .sheet-drag-handle,
  body.print-quantity .sheet-row-remove,
  body.print-quantity .sheet-context-menu,
  body.print-quantity .sheet-insert-row,
  body.print-elements .sidebar,
  body.print-elements .project-head,
  body.print-elements .project-tabbar,
  body.print-elements .element-actions,
  body.print-elements .sheet-drag-handle,
  body.print-elements .sheet-row-remove,
  body.print-elements .sheet-context-menu,
  body.print-elements .sheet-insert-row,
  body.print-furniture .sidebar,
  body.print-furniture .project-head,
  body.print-furniture .project-tabbar,
  body.print-furniture .furniture-actions,
  body.print-furniture .sheet-drag-handle,
  body.print-furniture .sheet-row-remove,
  body.print-furniture .sheet-context-menu,
  body.print-furniture .sheet-insert-row,
  body.print-budget .sidebar,
  body.print-budget .project-head,
  body.print-budget .project-tabbar,
  body.print-budget .budget-head,
  body.print-budget .budget-actions,
  body.print-budget .budget-drag-handle,
  body.print-budget .budget-row-remove,
  body.print-budget .budget-context-menu,
  body.print-budget .budget-insert-row { display: none !important; }
  body.print-orders .sidebar,
  body.print-orders .project-head,
  body.print-orders .project-tabbar,
  body.print-orders .orders-head,
  body.print-orders .orders-actions,
  body.print-orders .orders-drag-handle,
  body.print-orders .orders-row-remove,
  body.print-orders .orders-context-menu,
  body.print-orders .orders-insert-row { display: none !important; }
  body.print-schedule .sidebar,
  body.print-schedule .project-head,
  body.print-schedule .project-tabbar,
  body.print-schedule .schedule-actions,
  body.print-schedule .schedule-insert-actions,
  body.print-schedule .schedule-context-menu,
  body.print-schedule .schedule-drag-handle,
  body.print-schedule .schedule-row-remove,
  body.print-schedule .schedule-side { display: none !important; }
  body:is(.print-quantity,.print-elements,.print-furniture,.print-budget,.print-orders,.print-schedule,.print-supervision) .app-shell {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  body.print-quantity .workspace,
  body.print-quantity .view,
  body.print-quantity #quantity,
  body.print-elements .workspace,
  body.print-elements .view,
  body.print-elements #elements,
  body.print-furniture .workspace,
  body.print-furniture .view,
  body.print-furniture #furniture,
  body.print-budget .workspace,
  body.print-budget .view,
  body.print-budget #budget { overflow: visible; }
  body.print-orders .workspace,
  body.print-orders .view,
  body.print-orders #orders,
  body.print-orders .orders-workspace { overflow: visible; }
  body.print-schedule .workspace,
  body.print-schedule .view,
  body.print-schedule #schedule,
  body.print-schedule .schedule-board-scroll { overflow: visible; }
  .view { padding: 0; }
  body.print-quantity .project-module-panel:not(#quantity),
  body.print-elements .project-module-panel:not(#elements),
  body.print-furniture .project-module-panel:not(#furniture),
  body.print-budget .project-module-panel:not(#budget) { display: none !important; }
  body.print-orders .project-module-panel:not(#orders) { display: none !important; }
  body.print-schedule .project-module-panel:not(#schedule) { display: none !important; }
  body.print-quantity #quantity,
  body.print-elements #elements,
  body.print-furniture #furniture,
  body.print-budget #budget { display: block !important; }
  body.print-orders #orders { display: block !important; }
  body.print-schedule #schedule { display: block !important; }
  body.print-quantity #quantity .sheet-table th:nth-child(n+7),
  body.print-quantity #quantity .sheet-table td:nth-child(n+7),
  body.print-elements #elements .sheet-table th:nth-child(n+7),
  body.print-elements #elements .sheet-table td:nth-child(n+7),
  body.print-furniture #furniture .sheet-table th:nth-child(n+7),
  body.print-furniture #furniture .sheet-table td:nth-child(n+7) {
    display: none !important;
  }
  body.print-quantity #quantity .quantity-head,
  body.print-elements #elements .element-head,
  body.print-furniture #furniture .furniture-head,
  body:is(.print-quantity,.print-elements,.print-furniture) .sheet-table {
    width: 100% !important;
    min-width: 0 !important;
  }
  body.print-orders #orders {
    width: 128.205% !important;
    zoom: .78;
  }
  body.print-orders #orders .orders-data {
    width: 100% !important;
    min-width: 1260px !important;
  }
  body.print-orders #orders .orders-data tr { break-inside: avoid !important; }
  body.print-orders #orders .order-select-menu,
  body.print-orders #orders .order-date-trigger,
  body.print-orders #orders .order-date-menu { display: none !important; }
  body.print-elements #elements .sheet-table thead tr { background: #a7bca6 !important; }
  body.print-elements #elements .sheet-table tr.group td {
    background: #d6bd83 !important;
    color: #4d3c1c !important;
  }
  body.print-budget #budget .budget-summary .budget-lower { background: #b8cbb8 !important; }
  body.print-budget #budget .budget-summary .budget-higher { background: #d6bd83 !important; }
  body.print-budget #budget .budget-table thead tr { background: var(--table-head) !important; }
  body.print-budget #budget .budget-table tr.group td { background: var(--table-group) !important; }
  .sheet-table th,
  .sheet-table td { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

.list-state {
  padding: 28px 16px;
  border: 1px dashed var(--line);
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}

.list-state:empty,
.record-list:not(:empty) + .list-state { display: none; }

.control-tabs {
  display: flex;
  gap: 24px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--line-soft);
}

.control-tabs button {
  padding: 11px 2px 10px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
  cursor: pointer;
}

.control-tabs button.active { border-bottom-color: var(--accent); color: var(--text); }
.control-panel:not(.active) { display: none; }

.panel-actions {
  display: flex;
  min-height: 37px;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.panel-message { color: var(--danger); font-size: 11px; }
.text-action { font-size: 13px; }

.editor-dialog {
  width: min(640px, calc(100vw - 40px));
  max-height: calc(100vh - 40px);
  padding: 0;
  overflow: auto;
  border: 1px dashed #8f8679;
  border-radius: 0;
  background: var(--panel);
  color: var(--text);
  box-shadow: 0 18px 55px rgba(27, 25, 22, .22);
}

.editor-dialog::backdrop { background: rgba(38, 36, 32, .46); }
.editor-dialog form { padding: 22px; }

.editor-dialog header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.editor-dialog header small { color: var(--muted); font-size: 10px; }
.editor-dialog header h2 { margin: 4px 0 0; }
.close-action { color: var(--muted); font-size: 24px; font-weight: 400; }

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 20px;
}

.form-grid .wide { grid-column: 1 / -1; }
.task-project-disabled { opacity: .5; }
.project-folder-picker {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: end;
}
.project-folder-picker .text-action {
  min-height: 37px;
  padding: 7px 10px;
  border: 1px dashed var(--line);
  background: transparent;
  white-space: nowrap;
}
.project-folder-field > small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.assignment-fieldset {
  margin: 0;
  padding: 14px;
  border: 1px dashed var(--line);
}

.assignment-fieldset legend {
  padding: 0 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.assignment-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

.assignment-list label {
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 34px;
  padding: 3px 5px;
  border-bottom: 1px dashed color-mix(in srgb, var(--line) 65%, transparent);
  color: var(--text);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}
.assignment-list label:last-child { border-bottom: 0; }
.assignment-list label:hover { background: rgba(73, 111, 112, .07); }

.assignment-list input {
  width: 17px;
  min-width: 17px;
  min-height: 17px;
  height: 17px;
  margin: 0;
  padding: 0;
  border: 1px dashed #777872;
  appearance: none;
  background: var(--panel);
}
.assignment-list input:checked { border-color: var(--accent); background: var(--accent); }
.assignment-list input:checked::after {
  display: block;
  color: white;
  content: "×";
  font-size: 16px;
  line-height: 14px;
  text-align: center;
}

.observer-toggle {
  padding: 11px 13px;
  border: 1px dashed var(--line);
  background: rgba(73, 111, 112, .05);
}
.observer-toggle > span {
  display: flex;
  gap: 10px;
  align-items: center;
  color: var(--text);
  font-size: 12px;
  text-transform: none;
}
.observer-toggle input {
  width: 17px;
  min-width: 17px;
  min-height: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--accent);
}
.observer-toggle small,
.observer-assignment-note {
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}
.assignment-fieldset.observer-mode .assignment-list { display: none; }
.role-badge.observer { background: #5f7778; }

.editor-dialog footer {
  display: flex;
  gap: 14px;
  justify-content: flex-end;
  margin-top: 20px;
}

.task-editor-dialog {
  width: min(610px, calc(100vw - 36px));
  padding: 0;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
}
.task-editor-dialog::backdrop { background: rgba(217, 213, 205, .76); }
.task-editor-dialog form { padding: 24px 26px 20px; }
.task-editor-dialog header {
  margin-bottom: 0;
  padding-bottom: 15px;
  border-bottom: 1px solid #9b9489;
}
.task-editor-dialog h2 { margin: 0; font-size: 25px; font-weight: 700; }
.task-dialog-close {
  width: 29px;
  height: 29px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  color: var(--text);
  font-size: 24px;
  font-weight: 400;
  line-height: 20px;
  cursor: pointer;
}
.task-editor-dialog .form-grid { gap: 14px 20px; }
.task-editor-dialog .form-grid label { color: var(--muted); font-size: 12px; }
.task-editor-dialog input,
.task-editor-dialog select,
.task-editor-dialog textarea {
  margin-top: 6px;
  border: 1px dashed var(--line);
  background: var(--surface);
}
.task-editor-dialog input:focus,
.task-editor-dialog select:focus,
.task-editor-dialog textarea:focus { border-color: var(--accent); outline: 1px solid var(--accent); }
.memo-editor-dialog { width: min(480px, calc(100vw - 36px)); }
.memo-editor-dialog textarea { resize: vertical; font: inherit; line-height: 1.4; }
.memo-dialog-footer-spacer { flex: 1; }
.project-note-dialog { width: min(860px, calc(100vw - 36px)); }
.project-note-pdf { height: 29px; padding: 0 7px; }
.project-note-delete-wrap .delete-action {
  display: inline-flex;
  height: 29px;
  align-items: center;
  color: #ae3f38;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: normal;
}
.project-note-footer-spacer { flex: 1; }
.project-note-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  gap: 16px 20px;
  padding-top: 18px;
}
.project-note-form-grid label { color: var(--muted); font-size: 12px; font-weight: 600; }
.project-note-form-grid input,
.project-note-form-grid textarea {
  width: 100%;
  margin-top: 6px;
  border: 1px dashed var(--line);
  background: var(--surface);
  font: inherit;
}
.project-note-form-grid input:focus,
.project-note-form-grid textarea:focus { border-color: var(--accent); outline: 1px solid var(--accent); }
.project-note-text-field { grid-column: 1 / -1; }
.project-note-text-field textarea { min-height: 270px; resize: vertical; line-height: 1.5; }
.project-note-print { display: none; }

@media print {
  body.print-project-note { min-width: 0 !important; background: #fff !important; color: #111 !important; }
  body.print-project-note .app-shell,
  body.print-project-note dialog,
  body.print-project-note .toast,
  body.print-project-note .memo-undo-stack { display: none !important; }
  body.print-project-note .project-note-print {
    display: block !important;
    padding: 0;
    background: #fff !important;
    color: #111 !important;
    font-family: Arial, sans-serif;
  }
  body.print-project-note .project-note-print header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: end;
    padding-bottom: 14px;
    border-bottom: 1px solid #777;
  }
  body.print-project-note .project-note-print header small,
  body.print-project-note .project-note-print header strong { display: block; }
  body.print-project-note .project-note-print header small { margin-bottom: 4px; font-size: 10pt; }
  body.print-project-note .project-note-print header strong { font-size: 13pt; }
  body.print-project-note .project-note-print time { font-size: 10pt; }
  body.print-project-note .project-note-print h1 {
    margin: 26px 0 18px;
    font-size: 18pt;
    line-height: 1.25;
  }
  body.print-project-note .project-note-print-text {
    font-size: 11pt;
    line-height: 1.6;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
  }
}
.task-editor-dialog footer {
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px dashed var(--line);
}
.task-subtask-editor { display: grid; gap: 8px; }
.task-subtask-editor > span { color: var(--muted); font-size: 12px; }
.task-subtask-editor-row { display: grid; grid-template-columns: 18px minmax(0, 1fr) 28px; gap: 8px; align-items: center; }
.task-subtask-editor-row input[type="text"] { margin-top: 0; }
.task-subtask-editor-row button,
.task-subtask-editor > button { border: 0; background: transparent; color: var(--accent); cursor: pointer; }
.task-subtask-editor > button { justify-self: start; padding: 2px 0; font-weight: 700; }
.task-subtask-editor-row button { height: 28px; font-size: 18px; }
.task-save-action {
  padding: 0;
  border: 0;
  background: transparent;
  color: #34753d;
  font-weight: 700;
  cursor: pointer;
}
.delete-confirm-wrap { position: relative; margin-right: auto; }
.delete-action { padding: 0; border: 0; background: transparent; color: #ae3f38; font: 700 13px/1.3 inherit; cursor: pointer; }
.delete-confirm-bubble { position: absolute; z-index: 90; bottom: calc(100% + 9px); left: 0; display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: center; width: max-content; max-width: 300px; padding: 10px 11px; border: 1px solid var(--dash); background: var(--panel); box-shadow: 4px 5px 12px #6f67592b; color: var(--text); font-size: 12px; }
.delete-confirm-bubble::after { position: absolute; bottom: -6px; left: 18px; width: 10px; height: 10px; border-right: 1px solid var(--dash); border-bottom: 1px solid var(--dash); background: var(--panel); content: ""; transform: rotate(45deg); }
.delete-confirm-bubble button { position: relative; z-index: 1; padding: 3px 6px; border: 0; background: transparent; font: 700 12px inherit; cursor: pointer; }
.delete-confirm-yes { color: #ae3f38; }
.delete-confirm-no { color: var(--accent); }
.delete-confirm-bubble[hidden] { display: none !important; }
.control-settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.control-settings-grid section { border-bottom: 1px solid var(--line); padding: 8px 0 20px; }
.control-settings-grid p { overflow-wrap: anywhere; }
.local-storage-form { max-width: 900px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.storage-root-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; }
.storage-root-control .text-action { min-height: 36px; }
.access-settings-form { max-width: 900px; padding: 16px 0; }
.access-settings-form fieldset { border: 1px solid var(--line); margin: 20px 0; padding: 16px; }
.access-settings-form input[type="color"] { width: 70px; min-height: 36px; padding: 3px; }
.access-settings-form small { font-weight: 400; }
.database-backup-settings { max-width: 1180px; margin-top: 14px; padding: 22px 0 8px; border-top: 1px solid var(--line); }
.database-backup-heading { display: flex; gap: 24px; align-items: flex-end; justify-content: space-between; margin-bottom: 14px; }
.database-backup-heading h2 { margin: 0 0 5px; }
.database-backup-heading p { margin: 0; color: var(--muted); }
.database-backup-warning { margin: 12px 0; padding: 10px 12px; border-left: 3px solid var(--danger); background: color-mix(in srgb, var(--danger) 10%, transparent); }
.database-backup-table { border-top: 1px solid var(--line); }
.database-backup-row { display: grid; grid-template-columns: minmax(250px, 2fr) 150px 90px 105px 90px minmax(150px, auto); align-items: center; min-height: 48px; border-bottom: 1px solid var(--line); }
.database-backup-row > span { min-width: 0; padding: 8px 10px; }
.database-backup-table-head { min-height: 38px; color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.database-backup-filename { overflow: hidden; color: var(--text); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.database-backup-status { color: #4d7f59; font-weight: 700; }
.database-backup-actions { display: flex; justify-content: flex-end; gap: 12px; }
.database-backup-actions button { border: 0; padding: 4px 0; background: transparent; color: var(--accent); font: inherit; cursor: pointer; }
.database-backup-actions [data-backup-delete] { color: var(--danger); }
.database-backup-empty { margin: 14px 10px; color: var(--muted); }
.backup-delete-dialog { width: min(520px, calc(100vw - 32px)); }
.backup-delete-dialog p { margin: 24px; overflow-wrap: anywhere; }
.backup-delete-dialog footer { justify-content: flex-end; }
@media (max-width: 900px) {
  .database-backup-table { overflow-x: auto; }
  .database-backup-row { min-width: 900px; }
}
.gc-time-scroll { height: 686px; overflow: auto; }
.gc-time-grid { min-width: 620px; }
.gc-time-head,.gc-all-day-row,.gc-time-body { display:grid; grid-template-columns: 58px repeat(var(--day-count),minmax(0,1fr)); }
.gc-time-head { position:sticky; top:0; z-index:5; background:var(--paper,var(--surface)); height:38px; }
.gc-time-head > * { border:0; border-right:1px solid #d2d0c8; border-bottom:1px solid #d2d0c8; background:transparent; padding:8px 3px; font:inherit; font-size:12px; }
.gc-time-head .today { background:var(--gc-today); color:#fff; font-weight:700; }
.gc-all-day-row { position:sticky; top:38px; z-index:4; background:var(--paper,var(--surface)); min-height:35px; border-bottom:1px solid #bbb; }
.gc-all-day-row > * { padding:4px; border-right:1px solid #d2d0c8; font-size:10px; }
.gc-all-day-row .gc-event { display:block; width:100%; margin:2px 0; }
.gc-time-body { height:1195.2px; }
.gc-hour-axis { position:sticky; left:0; z-index:3; background:var(--paper,var(--surface)); border-right:1px solid #d2d0c8; }
.gc-hour-axis span { position:absolute; right:7px; font-size:11px; }
.gc-time-day { position:relative; min-width:0; border-right:1px solid #d2d0c8; }
.gc-time-slot { display:block; width:100%; height:24.9px; padding:0; border:0; border-top:1px dotted #d8d6cf; background:transparent; cursor:pointer; }
.gc-time-slot:nth-child(odd) { border-top-style:solid; }
.gc-time-slot:hover { background:var(--accent)10; }
.gc-positioned-event { position:absolute; padding:0 2px 1px; z-index:2; box-sizing:border-box; }
#calendar-view.google-calendar-face .gc-positioned-event .gc-event { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; width:100%; height:100%; white-space:normal; overflow:hidden; font-size:11px; line-height:1.25; padding:3px; }
#calendar-view.google-calendar-face .gc-positioned-event time { display:block; font-size:10px; white-space:nowrap; }
#calendar-view.google-calendar-face .gc-positioned-event .gc-event-summary { overflow-wrap:anywhere; }
.gc-now-line { position:absolute; left:0; right:0; border-top:2px solid #b74d3f; pointer-events:none; z-index:3; }
.gc-now-line::before { content:""; position:absolute; left:-5px; top:-5px; width:9px; height:9px; border-radius:50%; background:#b74d3f; }
.gc-now-line time { position:absolute; left:8px; top:-10px; padding:1px 5px; border-radius:8px; background:#b74d3f; color:#fff; font-size:9px; font-weight:700; line-height:16px; letter-spacing:.02em; }
.gc-hover-tip { position:fixed; z-index:40; width:max-content; max-width:min(320px,calc(100vw - 20px)); padding:9px 11px; border:1px solid #bbb8ae; border-radius:3px; background:#f5f1e8; color:#353a38; box-shadow:0 8px 22px #2c343127; font-size:12px; line-height:1.45; white-space:pre-wrap; overflow-wrap:anywhere; pointer-events:none; }
.gc-switches { display:flex; gap:28px; grid-column:1/-1; padding:5px 0; }
.gc-repeat-fields,.gc-color-controls { display:grid; grid-template-columns:1fr 1fr; gap:12px; grid-column:1/-1; }
.gc-repeat-note,.gc-supervision-links,.gc-form-message { grid-column:1/-1; margin:0; font-size:12px; }
.gc-form-message { color:#b74d3f; }
.gc-delete { color:#b74d3f; }
.gc-supervision-links button { display:block; margin:4px 0; }
[data-event-palette] input { min-height:36px; }
.gc-repeat-fields[hidden],.gc-supervision-links[hidden],[data-event-palette][hidden],[data-recurrence-scope][hidden],.gc-delete[hidden],.gc-delete-confirm[hidden],[data-repeat-until][hidden],[data-repeat-count][hidden] { display:none !important; }

.app-date-popover {
  position: fixed;
  z-index: 12050;
  width: 252px;
  padding: 8px;
  border: 1px dashed var(--dash);
  background: var(--panel);
  box-shadow: 4px 5px 16px rgba(39, 37, 33, .22);
  color: var(--text);
}
.app-date-popover[hidden] { display: none; }
.app-date-head { display: grid; grid-template-columns: 28px 1fr 28px; align-items: center; padding-bottom: 7px; border-bottom: 1px dashed var(--line-soft); text-align: center; }
.app-date-head button { width: 28px; height: 27px; padding: 0; border: 0; background: transparent; color: var(--accent); font: 800 17px inherit; cursor: pointer; }
.app-date-head button:hover { background: var(--hover); }
.app-date-head strong { font-size: 12px; }
.app-date-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-top: 6px; }
.app-date-weekday { padding: 3px 0; color: var(--muted); font-size: 9px; font-weight: 800; text-align: center; text-transform: uppercase; }
.app-date-day { height: 27px; padding: 0; border: 0; background: transparent; color: var(--text); font: 600 11px inherit; cursor: pointer; }
.app-date-day:hover { background: var(--hover); }
.app-date-day.is-outside { color: var(--line); }
.app-date-day.is-selected { background: var(--accent); color: #fff; }
.app-date-actions { display: flex; justify-content: space-between; margin-top: 7px; padding-top: 7px; border-top: 1px dashed var(--line-soft); }
.app-date-actions button { padding: 3px 5px; border: 0; background: transparent; color: var(--accent); font: 700 10px inherit; cursor: pointer; }
@media (max-width: 700px) { .control-settings-grid { grid-template-columns: 1fr; } }
[data-task-priority] { font-weight: 700; }
[data-task-priority] option[value="high"] { color: #ae3f38; }
[data-task-priority] option[value="medium"] { color: #a96808; }
[data-task-priority] option[value="low"] { color: #62645f; }

.primary-action {
  padding: 8px 13px;
  border: 0;
  background: var(--accent);
  color: white;
  font-weight: 700;
  cursor: pointer;
}

.project-head-action {
  position: relative !important;
  min-width: 0 !important;
  height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--accent) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  cursor: pointer;
}
.project-head-action:hover { color: var(--accent-dark) !important; }
.project-head-action:hover::after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  border-bottom: 1px dashed currentColor;
  content: "";
}

.form-error { min-height: 18px; margin: 13px 0 0; color: var(--danger); font-size: 11px; }

.toast {
  position: fixed;
  z-index: 100;
  right: 26px;
  bottom: 24px;
  max-width: 360px;
  padding: 11px 14px;
  border: 1px dashed var(--line);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
  font-size: 11px;
}
.memo-undo-stack {
  position: fixed;
  z-index: 110;
  right: 26px;
  bottom: 24px;
  display: grid;
  gap: 8px;
}
.memo-undo-toast {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 11px 14px;
  border: 1px dashed var(--line);
  background: var(--panel);
  box-shadow: 4px 5px 12px #6f67592b;
  color: var(--text);
  font-size: 11px;
}
.memo-undo-toast button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-weight: 800;
  cursor: pointer;
}

[hidden] { display: none !important; }

@media (max-width: 760px) {
  html, body { overflow: auto; }
  .app-shell { display: block; min-width: 0; height: auto; }
  .sidebar { min-height: auto; padding-bottom: 14px; }
  .sidebar::after { display: none; }
  .primary-nav { grid-template-columns: 1fr 1fr; }
  .account-card { margin-top: 18px; }
  .workspace { overflow: visible; }
  .view { padding: 28px 18px 50px; }
  .project-toolbar,
  .form-grid,
  .assignment-list { grid-template-columns: 1fr; }
  .project-head { display: block; }
  .header-project-switch { width: fit-content; margin-top: 18px; }
  .project-tabbar { overflow-x: auto; }
  .project-tabs { min-width: 760px; flex-wrap: nowrap; }
  .form-grid .wide { grid-column: 1; }
  .home-dashboard { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .home-dashboard::after { display: none; }
  .home-section-head { min-height: 0; flex-wrap: wrap; }
  .home-section-head h2 { width: 100%; white-space: normal; }
  .home-project-tools { width: 100%; flex-wrap: wrap; gap: 10px 16px; }
  .home-scope-summary { margin-right: 0; margin-left: 0; }
  .home-task-card { grid-template-columns: 8px minmax(0, 1fr) auto; }
  .home-task-card .home-priority-bar { grid-row: 1 / span 2; }
  .home-task-card .task-complete { grid-column: 2 / -1; justify-self: start; }
}

@media (min-width: 761px) and (max-width: 1200px) {
  body.browser-mode .app-shell {
    grid-template-columns: 240px minmax(0, 1fr);
    min-width: 0;
  }
  body.browser-mode .sidebar { padding: 26px 14px 22px; }
  body.browser-mode .view { padding-right: 26px; padding-left: 26px; }
  body.browser-mode .home-dashboard { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  body.browser-mode .home-dashboard::after { display: none; }
}

@media (max-width: 1000px) {
  #project-tasks { overflow: auto; }
  .project-task-table-head,
  .project-task-row { min-width: 890px; }
}

@media (max-width: 900px) {
  .drawing-column-head,
  .drawing-row {
    grid-template-columns: 150px minmax(180px, 1fr) 82px 116px 105px;
    column-gap: 9px;
    padding-right: 12px;
    padding-left: 12px;
  }
  .drawing-name { font-size: 14px; }
  .drawing-date { font-size: 12px; }
  .drawings-register-head {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
  }
  .drawings-register-tools { align-items: flex-end; flex-direction: column-reverse; gap: 6px; }
}

/* Google Calendar face — ported from the frozen UI reference. */
#calendar-view.google-calendar-face{--gc-ink:#253536;--gc-muted:#718080;--gc-line:#c8c6bd;--gc-paper:var(--surface);--gc-panel:#e8e5dc;--gc-accent:var(--accent);--gc-today:#b34c3d;color:var(--gc-ink)}
#calendar-view.google-calendar-face .gc-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
#calendar-view.google-calendar-face .gc-title h1{margin:0;font-size:28px;font-weight:650;letter-spacing:-.02em}
#calendar-view.google-calendar-face .gc-title p{margin:5px 0 0;color:var(--gc-muted)}
#calendar-view.google-calendar-face .gc-actions,#calendar-view.google-calendar-face .gc-nav,#calendar-view.google-calendar-face .gc-view-switch{display:flex;align-items:center;gap:8px}
#calendar-view.google-calendar-face .gc-button{appearance:none;border:0;background:transparent;color:var(--gc-accent);font:inherit;font-weight:600;padding:8px 10px;cursor:pointer}
#calendar-view.google-calendar-face .gc-button:hover{background:rgba(73,111,112,.09)}
#calendar-view.google-calendar-face .gc-button.gc-today{background:var(--gc-accent);color:#fff}
#calendar-view.google-calendar-face .gc-button.gc-today:hover{background:var(--accent-dark)}
#calendar-view.google-calendar-face .gc-button.primary{background:var(--gc-accent);color:#fff;padding-inline:15px}
#calendar-view.google-calendar-face .gc-button:disabled{opacity:.38;cursor:not-allowed}
#calendar-view.google-calendar-face .gc-connect{display:inline-grid;width:30px;height:30px;padding:5px;place-items:center;border:0;background:transparent;color:var(--gc-muted)}
#calendar-view.google-calendar-face .gc-connect svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#calendar-view.google-calendar-face .gc-connect.online{color:var(--gc-accent)}
#calendar-view.google-calendar-face .gc-connect.loading svg{animation:gc-spin .7s linear infinite}
#calendar-view.google-calendar-face .gc-shell{border-top:1px solid var(--gc-line);border-bottom:1px solid var(--gc-line);background:var(--gc-paper);min-height:660px}
#calendar-view.google-calendar-face .gc-toolbar{height:64px;border-bottom:1px solid var(--gc-line);display:grid;grid-template-columns:250px 1fr auto;align-items:center;padding:0 16px;gap:18px}
#calendar-view.google-calendar-face .gc-icon-button{border:0;background:transparent;color:var(--gc-ink);width:34px;height:34px;font:600 22px/1 inherit;cursor:pointer}
#calendar-view.google-calendar-face .gc-icon-button:hover{background:rgba(37,53,54,.07)}
#calendar-view.google-calendar-face .gc-period{font-size:18px;font-weight:650;white-space:nowrap}
#calendar-view.google-calendar-face .gc-view-switch{border-bottom:1px solid var(--gc-line)}
#calendar-view.google-calendar-face .gc-view-switch button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--gc-muted);padding:10px 12px;margin-bottom:-1px;font:inherit;cursor:pointer}
#calendar-view.google-calendar-face .gc-view-switch button.active{border-bottom-color:var(--gc-accent);color:var(--gc-ink);font-weight:700}
#calendar-view.google-calendar-face .gc-layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:595px}
#calendar-view.google-calendar-face .gc-side{border-right:1px solid var(--gc-line);padding:18px 16px;background:rgba(232,229,220,.45)}
#calendar-view.google-calendar-face .gc-side h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin:26px 0 12px}
#calendar-view.google-calendar-face .gc-mini-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:700}
#calendar-view.google-calendar-face .gc-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);font-size:11px;text-align:center;gap:2px}
#calendar-view.google-calendar-face .gc-mini-grid .week{color:var(--gc-muted);padding:4px 0}
#calendar-view.google-calendar-face .gc-mini-grid button{border:0;background:transparent;aspect-ratio:1;color:inherit;font:inherit;cursor:pointer;border-radius:50%}
#calendar-view.google-calendar-face .gc-mini-grid button.outside{opacity:.35}
#calendar-view.google-calendar-face .gc-mini-grid button.today{outline:1px solid var(--gc-today)}
#calendar-view.google-calendar-face .gc-mini-grid button.selected{background:var(--gc-accent);color:#fff}
#calendar-view.google-calendar-face .gc-cal-list{display:grid;gap:9px}
#calendar-view.google-calendar-face .gc-cal-item{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;font-size:13px;cursor:pointer}
#calendar-view.google-calendar-face .gc-cal-item input{appearance:none;width:14px;height:14px;margin:1px 0 0;border:1px solid var(--gc-cal,var(--accent));background:transparent}
#calendar-view.google-calendar-face .gc-cal-item input:checked{background:var(--gc-cal,var(--accent));box-shadow:inset 0 0 0 3px var(--gc-paper)}
#calendar-view.google-calendar-face .gc-cal-item small{display:block;color:var(--gc-muted);margin-top:2px}
#calendar-view.google-calendar-face .gc-side-empty{font-size:13px;line-height:1.45;color:var(--gc-muted)}
#calendar-view.google-calendar-face .gc-board{position:relative;min-width:0;overflow:hidden;background:#f7f5ef}
#calendar-view.google-calendar-face .gc-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));height:38px;border-bottom:1px solid var(--gc-line)}
#calendar-view.google-calendar-face .gc-weekdays span{text-align:center;padding:11px 4px 0;color:var(--gc-muted);font-size:12px;font-weight:650;text-transform:uppercase}
#calendar-view.google-calendar-face .gc-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(92px,1fr));height:557px}
#calendar-view.google-calendar-face .gc-day{min-width:0;border-right:1px solid var(--gc-line);border-bottom:1px solid var(--gc-line);padding:6px 5px;background:rgba(255,255,255,.12);overflow:hidden}
#calendar-view.google-calendar-face .gc-day:nth-child(7n){border-right:0}
#calendar-view.google-calendar-face .gc-day.outside{background:rgba(37,53,54,.025);color:#a1a098}
#calendar-view.google-calendar-face .gc-day.today{background:rgba(179,76,61,.035)}
#calendar-view.google-calendar-face .gc-day-number{border:0;background:transparent;color:inherit;width:26px;height:26px;padding:0;font:600 12px/1 inherit;cursor:pointer;border-radius:50%}
#calendar-view.google-calendar-face .gc-day.today .gc-day-number{background:var(--gc-today);color:#fff}
#calendar-view.google-calendar-face .gc-day-events{display:grid;gap:3px;margin-top:3px}
#calendar-view.google-calendar-face .gc-event{border:0;border-left:3px solid var(--event-color,var(--accent));background:color-mix(in srgb,var(--event-color,var(--accent)) 18%,transparent);color:var(--gc-ink);padding:4px 5px;text-align:left;font:600 11px/1.2 inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
#calendar-view.google-calendar-face .gc-event:hover{background:color-mix(in srgb,var(--event-color,var(--accent)) 28%,transparent)}
#calendar-view.google-calendar-face .gc-event time{font-weight:500;margin-right:4px}
#calendar-view.google-calendar-face .gc-agenda{display:grid;grid-template-columns:repeat(var(--agenda-days,7),minmax(150px,1fr));min-height:557px;overflow:auto}
#calendar-view.google-calendar-face .gc-agenda-day{border-right:1px solid var(--gc-line);padding:14px 10px}
#calendar-view.google-calendar-face .gc-agenda-day:last-child{border-right:0}
#calendar-view.google-calendar-face .gc-agenda-day h4{margin:0 0 14px;font-size:13px}
#calendar-view.google-calendar-face .gc-agenda-day.today h4{color:var(--gc-today)}
#calendar-view.google-calendar-face .gc-agenda-day .gc-event{display:block;width:100%;white-space:normal;margin-bottom:7px;padding:8px}
#calendar-view.google-calendar-face .gc-connection-note{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:min(470px,calc(100% - 48px));background:var(--surface);border-top:1px solid var(--gc-line);border-bottom:1px solid var(--gc-line);padding:24px;text-align:center;box-shadow:0 12px 35px rgba(37,53,54,.08)}
#calendar-view.google-calendar-face .gc-connection-note h3{margin:0 0 8px;font-size:18px}
#calendar-view.google-calendar-face .gc-connection-note p{margin:0 0 16px;color:var(--gc-muted);line-height:1.5}
#calendar-view.google-calendar-face .gc-message{display:none;padding:11px 16px;border-bottom:1px solid var(--gc-line);background:#e7dfc9;color:#4b4639;font-size:13px}
#calendar-view.google-calendar-face .gc-message.show{display:block}
#calendar-view.google-calendar-face .gc-modal-layer{position:fixed;inset:0;background:rgba(30,38,38,.25);display:none;align-items:center;justify-content:center;padding:24px;z-index:10000}
#calendar-view.google-calendar-face .gc-modal-layer.open{display:flex}
#calendar-view.google-calendar-face .gc-modal{width:min(610px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--gc-paper);box-shadow:0 24px 80px rgba(20,30,30,.25)}
#calendar-view.google-calendar-face .gc-modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gc-line);padding:17px 20px}
#calendar-view.google-calendar-face .gc-modal-head h2{margin:0;font-size:19px}
#calendar-view.google-calendar-face .gc-form{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:15px}
#calendar-view.google-calendar-face .gc-field{display:grid;gap:6px;font-size:12px;color:var(--gc-muted)}
#calendar-view.google-calendar-face .gc-field.full,#calendar-view.google-calendar-face .gc-check.full{grid-column:1/-1}
#calendar-view.google-calendar-face .gc-field input,#calendar-view.google-calendar-face .gc-field select,#calendar-view.google-calendar-face .gc-field textarea{width:100%;box-sizing:border-box;border:0;border-bottom:1px solid #a9aaa3;background:rgba(255,255,255,.2);padding:10px 8px;color:var(--gc-ink);font:inherit;border-radius:0}
#calendar-view.google-calendar-face .gc-field textarea{min-height:72px;resize:vertical}
#calendar-view.google-calendar-face .gc-check{display:flex;align-items:center;gap:10px;color:var(--gc-ink);font-size:13px;cursor:pointer}
#calendar-view.google-calendar-face .gc-check input{position:absolute;opacity:0;pointer-events:none}
#calendar-view.google-calendar-face .gc-check-control{width:32px;height:18px;border-radius:10px;background:#c8c7c1;position:relative;transition:.16s ease}
#calendar-view.google-calendar-face .gc-check-control::after{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:.16s ease}
#calendar-view.google-calendar-face .gc-check input:checked + .gc-check-control{background:var(--gc-accent)}
#calendar-view.google-calendar-face .gc-check input:checked + .gc-check-control::after{transform:translateX(14px)}
#calendar-view.google-calendar-face .gc-check input:focus-visible + .gc-check-control{outline:2px solid var(--gc-accent);outline-offset:2px}
#calendar-view.google-calendar-face .gc-modal-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:4px}
@keyframes gc-spin{to{transform:rotate(360deg)}}

/* Основен График — единен работен модел за хора, задачи и клиентски предавания. */
#weekly-plan-view.weekly-plan-unified{--plan-scale:.8;--plan-name:calc(205px * var(--plan-scale));--plan-day:calc(92px * var(--plan-scale));padding-top:30px;color:var(--text)}
#weekly-plan-view.weekly-plan-unified .project-head{align-items:flex-start;padding-bottom:14px;border-bottom:0}
#weekly-plan-view.weekly-plan-unified .project-head h1{font-size:27px;font-weight:700}
#weekly-plan-view.weekly-plan-unified .subtitle{color:var(--muted)}
#weekly-plan-view .plan-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
#weekly-plan-view .plan-scale-control{position:relative}
#weekly-plan-view .plan-scale-trigger{position:relative;height:30px;padding:0;border:0;background:transparent;color:var(--accent);font:700 14px/1.25 inherit;cursor:pointer}
#weekly-plan-view .plan-scale-trigger:hover{color:var(--accent-dark)}
#weekly-plan-view .plan-scale-trigger:hover::after{content:"";position:absolute;right:0;bottom:1px;left:0;border-bottom:1px dashed currentColor}
#weekly-plan-view .plan-scale-menu{display:none;position:absolute;top:34px;left:0;z-index:70;width:142px;border:1px dashed var(--dash);background:var(--panel);box-shadow:4px 5px 12px #6f67592b}
#weekly-plan-view .plan-scale-menu.open{display:block}
#weekly-plan-view .plan-scale-option{display:block;width:100%;height:34px;padding:0 10px;border:0;border-bottom:1px dashed var(--line-soft);background:transparent;color:var(--text);font:700 11px inherit;text-align:left;cursor:pointer}
#weekly-plan-view .plan-scale-option:last-child{border-bottom:0}
#weekly-plan-view .plan-scale-option:hover,#weekly-plan-view .plan-scale-option.active{background:var(--hover);color:var(--accent-dark)}
#weekly-plan-view .plan-action-row{display:flex;min-height:47px;align-items:center;justify-content:flex-end;gap:14px;border-bottom:1px solid var(--line)}
#weekly-plan-view .plan-scope-switch{display:flex;align-items:center;gap:0;margin-right:auto;border:1px solid var(--line)}
#weekly-plan-view .plan-scope-switch button{height:29px;padding:0 12px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font:700 11px/1 inherit;cursor:pointer}
#weekly-plan-view .plan-scope-switch button:last-child{border-right:0}
#weekly-plan-view .plan-scope-switch button:hover{background:var(--hover);color:var(--accent-dark)}
#weekly-plan-view .plan-scope-switch button.active{background:var(--accent);box-shadow:inset 0 -2px var(--accent-dark);color:#fff}
#weekly-plan-view .plan-scope-switch button:disabled{opacity:.55;cursor:default}
#weekly-plan-view .plan-edit{position:relative;margin-right:8px;padding:0;border:0;background:transparent;color:var(--accent);font:700 15px/1.25 inherit;cursor:pointer}
#weekly-plan-view .plan-edit:hover{color:var(--accent-dark)}
#weekly-plan-view .plan-edit:hover::after{content:"";position:absolute;right:0;bottom:-4px;left:0;border-bottom:1px dashed currentColor}
#weekly-plan-view .plan-edit:focus-visible{outline:1px dashed var(--accent);outline-offset:5px}
#weekly-plan-view .plan-pdf{min-width:42px;height:29px;padding:0 7px;border:0;background:#ae3f38;color:#fff;font:800 11px/1 inherit;letter-spacing:.035em;cursor:pointer}
#weekly-plan-view .plan-pdf:hover{background:#93362f}
#weekly-plan-view .plan-nav,#weekly-plan-view .plan-today{height:30px;padding:0 10px;border:1px dashed var(--dash);background:var(--panel);color:var(--accent);font:700 12px inherit;cursor:pointer}
#weekly-plan-view .plan-nav{width:30px;padding:0;font-size:18px}
#weekly-plan-view .plan-nav:hover,#weekly-plan-view .plan-today:hover{background:var(--hover);color:var(--accent-dark)}
#weekly-plan-view .plan-period{min-width:190px;color:var(--text);font-size:12px;text-align:center}
#weekly-plan-view .week-scroll{margin-top:14px;overflow:auto;border:1px solid var(--line);background:transparent}
#weekly-plan-view .week-grid{position:relative;display:grid;width:max-content;min-width:100%;grid-template-columns:var(--plan-name) repeat(var(--plan-days,15),var(--plan-day));font-size:calc(12px * var(--plan-scale))}
#weekly-plan-view .week-grid>div{box-sizing:border-box;min-height:max(38px,calc(50px * var(--plan-scale)));padding:0;border:0}
#weekly-plan-view .plan-day-head{display:flex;min-height:48px!important;align-items:center;justify-content:center;border-left:1px solid #bdb6ac!important;border-bottom:1px solid var(--line)!important;background:var(--table-head)!important;color:var(--text);text-align:center;font-size:10px;font-weight:700;line-height:1.35}
#weekly-plan-view .plan-day-head.plan-staff-head{position:sticky;left:0;z-index:8;justify-content:flex-start;padding:0 12px;border-left:0!important}
#weekly-plan-view .plan-day-head.weekend,#weekly-plan-view .plan-cell.weekend{background:#d7d5d0!important;color:#8c8880;cursor:not-allowed;user-select:none}
#weekly-plan-view .plan-staff-cell{position:sticky;left:0;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 11px!important;border-top:1px solid var(--line-soft)!important;border-right:1px solid var(--line)!important;background:var(--panel-soft)!important;font-size:13px;font-weight:700}
#weekly-plan-view .plan-staff-sub-row{border-top:1px dashed var(--line)!important;background:var(--panel)!important}
#weekly-plan-view .plan-staff-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#weekly-plan-view .plan-row-tools{display:none;align-items:center;gap:4px}
#weekly-plan-view.editing .plan-row-tools{display:flex}
#weekly-plan-view .plan-row-tool{width:21px;height:21px;padding:0;border:1px dashed var(--dash);background:transparent;color:var(--accent);font:800 14px/1 inherit;cursor:pointer}
#weekly-plan-view .plan-row-tool:hover{background:#d4cfc6}
#weekly-plan-view .plan-cell{border-top:1px solid var(--line-soft)!important;border-left:1px solid #bdb6ac!important;background:var(--panel)!important}
#weekly-plan-view .plan-cell.sub-row{border-top:1px dashed var(--line)!important}
#weekly-plan-view .plan-person-gap{grid-column:1/-1;min-height:14px!important;height:14px;border:0!important;background:transparent!important}
#weekly-plan-view.editing .plan-cell.workday{cursor:crosshair;user-select:none;touch-action:none}
#weekly-plan-view.editing .plan-cell.workday:hover{background:#f4f0e8!important}
#weekly-plan-view.editing .plan-cell.workday.drag-preview{background:#b8cdd0!important;box-shadow:inset 0 0 0 1px var(--accent)}
#weekly-plan-view.weekly-plan-unified .plan-block{position:relative;z-index:3;display:flex;min-width:0;height:100%;align-items:center;padding:5px 8px;border-top:1px solid var(--line-soft);color:var(--plan-block-text,#24332e);font-weight:700;line-height:1.25;overflow:visible;background:var(--plan-block-color,#b8cbb8)!important}
#weekly-plan-view.weekly-plan-unified.editing .plan-block{z-index:9}
#weekly-plan-view.weekly-plan-unified .plan-block.is-moving{outline:2px solid var(--accent-dark);outline-offset:-2px;opacity:.82}
#weekly-plan-view .plan-block-hover-tip{position:fixed;z-index:10000;width:max-content;max-width:390px;padding:10px 12px;border:1px dashed var(--dash);background:var(--panel);color:var(--text);font:600 10px/1.55 Montserrat,sans-serif;text-align:left;white-space:pre-line;box-shadow:4px 5px 12px #6f67594d;pointer-events:none}
#weekly-plan-view .plan-block-hover-tip[hidden]{display:none}
#weekly-plan-view .plan-block-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:0}
#weekly-plan-view.editing .plan-block-label{cursor:grab}
#weekly-plan-view.editing .plan-block-label:active{cursor:grabbing}
#weekly-plan-view.editing .plan-block-label[contenteditable="true"]{padding:2px 4px;background:#ffffff70;box-shadow:inset 0 0 0 1px var(--line-soft);cursor:text}
#weekly-plan-view .plan-block-move{display:none;flex:0 0 auto;width:21px;height:21px;margin-left:4px;padding:0;border:1px solid currentColor;background:transparent;color:var(--plan-block-text,#24332e);font:800 12px/1 Arial,sans-serif;cursor:grab}
#weekly-plan-view .plan-block-move:active{cursor:grabbing}
#weekly-plan-view.editing .plan-block-move{display:block}
#weekly-plan-view .plan-block-resize{display:none;position:absolute;z-index:5;top:3px;bottom:3px;width:8px;padding:0;border:0;background:transparent;cursor:ew-resize}
#weekly-plan-view .plan-block-resize::after{position:absolute;top:25%;bottom:25%;width:2px;background:currentColor;content:"";opacity:.55}
#weekly-plan-view .plan-block-resize.start{left:1px}
#weekly-plan-view .plan-block-resize.start::after{left:2px}
#weekly-plan-view .plan-block-resize.end{right:1px}
#weekly-plan-view .plan-block-resize.end::after{right:2px}
#weekly-plan-view.editing .plan-block-resize{display:block}
#weekly-plan-view .plan-block-remove{display:none;width:18px;height:18px;margin-left:auto;padding:0;border:0;background:transparent;color:#7a312d;font:800 16px/1 Arial,sans-serif;cursor:pointer}
#weekly-plan-view.editing .plan-block-remove{display:block}
#weekly-plan-view .plan-block-remove:disabled{opacity:.35;cursor:not-allowed}
#weekly-plan-view .plan-block-period{display:none;flex:0 0 auto;height:21px;margin-left:5px;padding:2px 4px;border:1px solid currentColor;background:transparent;color:var(--plan-block-text,#24332e);cursor:pointer;font:700 9px/1 inherit}
#weekly-plan-view .plan-block-period svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square;stroke-linejoin:miter}
#weekly-plan-view .plan-block-period span{margin-left:3px}
#weekly-plan-view .plan-block-period.is-locked svg{fill:currentColor;fill-opacity:.15}
#weekly-plan-view.editing .plan-block-period{display:flex;align-items:center}
#weekly-plan-view .plan-block-color{position:relative;z-index:2;display:none;flex:0 0 auto;width:20px;height:20px;margin-right:6px;padding:0;place-items:center;border:1px solid var(--line-soft);background:var(--table-cell)!important;box-shadow:0 0 0 1px #ffffff80;cursor:pointer}
#weekly-plan-view .plan-block-color::after{content:"";display:block;width:10px;height:10px;background:var(--plan-swatch,var(--accent));box-shadow:0 0 0 1px var(--line-soft)80}
#weekly-plan-view.editing .plan-block-color{display:grid}
#weekly-plan-view .plan-delivery-marker{position:relative;z-index:7;align-self:start;justify-self:end;width:29px;height:29px;margin:2px 4px 0 0;padding:2px;border:1px solid var(--plan-marker-color,var(--accent));background:var(--table-cell)!important;box-shadow:inset 0 -3px var(--plan-marker-color,var(--accent));color:var(--plan-marker-color,var(--accent));cursor:help}
#weekly-plan-view .plan-delivery-marker svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:square;stroke-linejoin:miter}
#weekly-plan-view .plan-delivery-marker::after{content:attr(data-tooltip);position:absolute;right:-4px;bottom:calc(100% + 7px);z-index:90;width:max-content;max-width:290px;padding:8px 10px;border:1px dashed var(--dash);background:#c9b17d;color:#4d3c1c;font:700 10px/1.45 Montserrat,sans-serif;text-align:left;white-space:pre-line;box-shadow:4px 5px 12px #6f67594d;opacity:0;pointer-events:none;transform:translateY(3px);transition:opacity .12s,transform .12s}
#weekly-plan-view .plan-delivery-marker.tooltip-below::after{top:calc(100% + 7px);bottom:auto;transform:translateY(-3px)}
#weekly-plan-view .plan-delivery-marker:hover::after,#weekly-plan-view .plan-delivery-marker:focus-visible::after{opacity:1;transform:translateY(0)}
#weekly-plan-view .plan-deliveries{margin-top:18px;border-top:1px solid var(--line);color:var(--text)}
#weekly-plan-view .plan-deliveries-head{display:flex;min-height:54px;align-items:center;padding:0 0 10px;border-bottom:1px solid var(--line)}
#weekly-plan-view .plan-deliveries-head h2{font-size:18px}
#weekly-plan-view .plan-delivery-actions{display:flex;align-items:center;gap:18px;margin-left:auto}
#weekly-plan-view .plan-delivery-add,#weekly-plan-view .plan-delivery-edit{position:relative;padding:0;border:0;background:transparent;color:var(--accent);font:700 14px inherit;cursor:pointer}
#weekly-plan-view .plan-delivery-add:hover::after,#weekly-plan-view .plan-delivery-edit:hover::after{content:"";position:absolute;right:0;bottom:-3px;left:0;border-bottom:1px dashed currentColor}
#weekly-plan-view .plan-delivery-table-head,#weekly-plan-view .plan-delivery-row{display:grid;grid-template-columns:minmax(420px,1fr) 78px 125px 145px;align-items:center}
#weekly-plan-view .plan-delivery-table-head{min-height:43px;background:transparent;color:var(--muted);font-size:10px;font-weight:700}
#weekly-plan-view .plan-delivery-table-head>span,#weekly-plan-view .plan-delivery-row>div,#weekly-plan-view .plan-delivery-row>span{padding:8px 10px;border-right:1px solid #bdb6ac}
#weekly-plan-view .plan-delivery-table-head>span:nth-child(n+2){text-align:center}
#weekly-plan-view .plan-delivery-row>span:nth-child(n+2),#weekly-plan-view .plan-delivery-row>div:nth-child(n+2){text-align:center}
#weekly-plan-view .plan-delivery-row>div:nth-child(4){display:grid;place-items:center}
#weekly-plan-view .plan-delivery-row{position:relative;min-height:48px;border-bottom:0;background:var(--panel);font-size:12px}
#weekly-plan-view .plan-delivery-row::after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:repeating-linear-gradient(to right,var(--line) 0 4px,transparent 4px 7px);pointer-events:none}
#weekly-plan-view .plan-delivery-project{display:grid;min-width:0;grid-template-columns:25px 1px max-content 1px minmax(0,1fr);align-items:center;gap:8px;color:var(--text);font-size:12px;font-weight:700;white-space:nowrap}
#weekly-plan-view .plan-delivery-project strong,#weekly-plan-view .plan-delivery-project span{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:12px;font-weight:700}
#weekly-plan-view .plan-delivery-divider{align-self:stretch;width:1px;min-height:18px;background:var(--line-soft)}
#weekly-plan-view .plan-delivery-remove{display:none;width:20px;height:20px;padding:0;border:0;background:transparent;color:#8a3732;font:800 17px/1 Arial,sans-serif;cursor:pointer}
#weekly-plan-view.delivery-editing .plan-delivery-remove{display:block}
#weekly-plan-view .plan-delivery-edit-fields{display:grid;grid-template-columns:25px 1px minmax(145px,.55fr) 1px minmax(185px,1fr) 20px;align-items:center;gap:8px}
#weekly-plan-view .plan-delivery-edit-fields input,#weekly-plan-view .plan-delivery-edit-fields select,#weekly-plan-view .plan-delivery-row>select{width:100%;height:29px;padding:4px 6px;border:1px dashed var(--dash);background:var(--surface);color:var(--text);font:600 10px inherit}
#weekly-plan-view .plan-color-trigger{display:block;width:25px;height:25px;margin:0 auto;padding:0;border:0;background:var(--plan-swatch,var(--accent));box-shadow:none;cursor:pointer}
#weekly-plan-view .plan-color-popover{display:none;position:fixed;z-index:100;width:286px;padding:11px;border:1px dashed var(--dash);background:var(--panel);color:var(--text);box-shadow:4px 5px 14px #6f67594d}
#weekly-plan-view .plan-color-popover.open{display:block}
#weekly-plan-view .plan-color-popover strong{display:block;margin-bottom:8px;font-size:11px}
#weekly-plan-view .plan-color-project-field,#weekly-plan-view .plan-color-phase-field{display:grid;gap:5px;margin-bottom:10px;color:var(--muted);font-size:10px;font-weight:700}
#weekly-plan-view .plan-color-project-field[hidden],#weekly-plan-view .plan-color-phase-field[hidden]{display:none}
#weekly-plan-view .plan-color-project,#weekly-plan-view .plan-color-phase{width:100%;height:31px;padding:5px 7px;border:1px dashed var(--dash);background:var(--surface);color:var(--text);font:600 10px inherit}
#weekly-plan-view .plan-color-saved{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
#weekly-plan-view .plan-color-choice{width:25px;height:25px;padding:0;border:2px solid var(--table-cell);background:var(--plan-swatch);box-shadow:0 0 0 1px var(--line-soft);cursor:pointer}
#weekly-plan-view .plan-color-custom{display:grid;grid-template-columns:34px 1fr;gap:7px;align-items:center}
#weekly-plan-view .plan-color-wheel{width:34px;height:31px;padding:0;border:1px dashed var(--dash);background:var(--surface);cursor:pointer}
#weekly-plan-view .plan-color-hex{width:100%;height:31px;padding:5px 7px;border:1px dashed var(--dash);background:var(--surface);color:var(--text);font:700 11px inherit;text-transform:uppercase}
#weekly-plan-view .plan-color-save{width:100%;min-height:34px;margin-top:8px;padding:7px 10px;border:1px dashed var(--dash);background:var(--accent);color:#fff;font:700 11px/1.3 inherit;cursor:pointer;text-align:center}
#weekly-plan-view .plan-date-picker{position:relative;display:inline-flex;align-items:center;min-width:118px;height:29px}
#weekly-plan-view .plan-date-display{min-width:82px;pointer-events:none;user-select:none;text-align:center;font-weight:700}
#weekly-plan-view .plan-date-trigger{display:none;width:29px;height:29px;padding:0;place-items:center;border:0;border-left:1px solid var(--line);background:transparent;color:var(--accent);cursor:pointer}
#weekly-plan-view.delivery-editing .plan-date-picker,#weekly-plan-view .plan-delivery-compose .plan-date-picker{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
#weekly-plan-view.delivery-editing .plan-date-trigger,#weekly-plan-view .plan-delivery-compose .plan-date-trigger{display:inline-grid}
#weekly-plan-view .plan-date-trigger:hover{background:var(--hover);color:var(--accent-dark)}
#weekly-plan-view .plan-date-trigger svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square;stroke-linejoin:miter}
#weekly-plan-view .plan-date-menu{display:none;position:fixed;z-index:80;width:252px;padding:8px;border:1px dashed var(--dash);background:var(--panel);box-shadow:4px 5px 12px #6f67592b;text-align:left}
#weekly-plan-view .plan-date-menu.open{display:block}
#weekly-plan-view .plan-date-head{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;margin-bottom:7px;padding-bottom:7px;border-bottom:1px dashed var(--line-soft);text-align:center}
#weekly-plan-view .plan-date-head button{width:28px;height:27px;padding:0;border:0;background:transparent;color:var(--accent);font:800 17px inherit;cursor:pointer}
#weekly-plan-view .plan-date-head button:hover{background:var(--hover)}
#weekly-plan-view .plan-date-head strong{font-size:12px}
#weekly-plan-view .plan-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
#weekly-plan-view .plan-date-weekday{padding:3px 0;color:var(--muted);font-size:9px;font-weight:800;text-align:center;text-transform:uppercase}
#weekly-plan-view .plan-date-day{height:27px;padding:0;border:0;background:transparent;color:var(--text);font:600 11px inherit;cursor:pointer}
#weekly-plan-view .plan-date-day:hover{background:var(--hover)}
#weekly-plan-view .plan-date-day.is-outside{color:var(--line)}
#weekly-plan-view .plan-date-day.is-selected{background:var(--accent);color:#fff}
#weekly-plan-view .plan-delivery-compose{display:grid;grid-template-columns:62px minmax(175px,1fr) minmax(210px,1.2fr) 80px 120px 145px auto;gap:9px;align-items:end;padding:12px;border-bottom:1px solid var(--line);background:var(--panel-soft)}
#weekly-plan-view .plan-delivery-compose label{color:var(--muted);font-size:10px}
#weekly-plan-view .plan-delivery-compose .plan-compose-color{display:grid;justify-items:center;align-content:end;gap:4px;color:var(--text);font-weight:700;text-align:center}
#weekly-plan-view .plan-delivery-compose input,#weekly-plan-view .plan-delivery-compose select{width:100%;height:31px;margin-top:4px;padding:5px 7px;border:1px dashed var(--dash);background:var(--surface);color:var(--text);font:600 11px inherit}
#weekly-plan-view .plan-compose-actions{display:flex;gap:6px}
#weekly-plan-view .plan-compose-actions button{height:31px;padding:0 9px;border:1px dashed var(--dash);background:var(--panel);color:var(--accent);font:700 11px inherit;cursor:pointer}
#weekly-plan-view .plan-compose-actions .save{background:var(--accent);color:#fff}
#weekly-plan-view .plan-period-dialog{width:min(660px,calc(100vw - 36px));color:var(--text)}
#weekly-plan-view .plan-period-dialog header{display:flex;align-items:flex-start;justify-content:space-between}
#weekly-plan-view .plan-period-dialog header p{margin:4px 0 0;color:var(--muted);font-size:11px}
#weekly-plan-view .plan-period-fields{display:grid;grid-template-columns:110px repeat(2,minmax(0,1fr));gap:14px 18px;padding:18px 0}
#weekly-plan-view .plan-period-fields label{color:var(--muted);font-size:11px;font-weight:700}
#weekly-plan-view .plan-period-fields input,#weekly-plan-view .plan-period-fields select{width:100%;height:38px;padding:7px 9px;color:var(--text);font:600 12px inherit}
#weekly-plan-view .plan-period-baseline{min-height:70px;padding:12px 14px;border:1px dashed var(--line);background:var(--surface);font-size:11px;line-height:1.55;white-space:pre-line}
#weekly-plan-view .plan-period-baseline strong{font-weight:800}
#weekly-plan-view .plan-period-dialog footer{align-items:flex-end;justify-content:space-between}
#weekly-plan-view .plan-period-rebase-wrap{position:relative;min-height:30px}
#weekly-plan-view .plan-period-rebase-confirm{position:absolute;left:0;bottom:36px;z-index:2;width:260px;padding:10px;border:1px dashed var(--dash);background:var(--panel);box-shadow:4px 5px 12px #6f67594d;font-size:10px}
#weekly-plan-view .plan-period-rebase-confirm span{display:block;margin-bottom:8px}
#weekly-plan-view .plan-period-rebase-confirm button{min-width:42px;margin-right:5px;padding:5px 8px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}
#weekly-plan-view .plan-period-rebase-confirm [data-plan-period-rebase-yes]{background:var(--danger);color:#fff}
#weekly-plan-view .plan-period-dialog .dialog-actions{display:flex;gap:10px}
#weekly-plan-view .plan-period-dialog footer button{min-height:30px;padding:5px 10px;border:1px solid var(--line);background:transparent;color:var(--text);font:700 11px inherit;cursor:pointer}
#weekly-plan-view .plan-period-dialog footer .primary{border-color:var(--accent);background:var(--accent);color:#fff}
#weekly-plan-view .plan-period-dialog footer .danger-text{padding-left:0;border:0;color:var(--danger)}
#weekly-plan-view .plan-delete-dialog{width:min(390px,calc(100vw - 36px));color:var(--text)}
#weekly-plan-view .plan-delete-dialog p{margin:20px 0 26px;color:var(--text)}
#weekly-plan-view .plan-delete-dialog footer{display:flex;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px dashed var(--line)}
#weekly-plan-view .plan-delete-dialog footer button{min-width:58px;min-height:32px;border:1px solid var(--line);background:transparent;color:var(--text);font:700 11px inherit;cursor:pointer}
#weekly-plan-view .plan-delete-dialog footer [data-plan-delete-yes]{border-color:var(--danger);background:var(--danger);color:#fff}
@media(max-width:720px){#weekly-plan-view .plan-period-fields{grid-template-columns:1fr}#weekly-plan-view .plan-period-dialog footer{align-items:stretch;flex-direction:column}#weekly-plan-view .plan-period-dialog .dialog-actions{justify-content:flex-end}}
@media print{
  body.print-weekly-plan{background:#fff!important}
  body.print-weekly-plan .app-shell{display:block!important;min-height:0!important;background:#fff!important}
  body.print-weekly-plan .sidebar,body.print-weekly-plan .workspace>.view:not(#weekly-plan-view),body.print-weekly-plan .global-error,body.print-weekly-plan #weekly-plan-view .plan-controls,body.print-weekly-plan #weekly-plan-view .plan-action-row,body.print-weekly-plan #weekly-plan-view .plan-deliveries{display:none!important}
  body.print-weekly-plan .workspace{display:block!important}
  body.print-weekly-plan #weekly-plan-view{display:block!important;width:100%!important;padding:0!important;background:#fff!important}
  body.print-weekly-plan #weekly-plan-view .project-head{min-height:0!important;padding:0 0 10px!important}
  body.print-weekly-plan #weekly-plan-view .project-head h1{font-size:20px!important}
  body.print-weekly-plan #weekly-plan-view .subtitle{margin:2px 0 0!important;font-size:10px!important}
  body.print-weekly-plan #weekly-plan-view .week-scroll{margin-top:10px!important;overflow:visible!important}
  body.print-weekly-plan #weekly-plan-view .week-grid{width:100%!important;min-width:0!important;grid-template-columns:17% repeat(7,minmax(0,1fr))!important;font-size:10px!important}
  body.print-weekly-plan #weekly-plan-view .week-grid>div{min-height:55px!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
  body.print-weekly-plan #weekly-plan-view .plan-day-head{min-height:42px!important}
  body.print-weekly-plan #weekly-plan-view .plan-row-tools,body.print-weekly-plan #weekly-plan-view .plan-block-remove,body.print-weekly-plan #weekly-plan-view .plan-block-color,body.print-weekly-plan #weekly-plan-view .plan-block-move,body.print-weekly-plan #weekly-plan-view .plan-block-resize,body.print-weekly-plan #weekly-plan-view .plan-block-period,body.print-weekly-plan #weekly-plan-view .plan-color-popover{display:none!important}
}

/* Анализи — frozen analytics v1, свързан с реалните проектни данни. */
#analytics-view.analytics-v1{--an-bg:var(--panel);--an-paper:#f4f1eb;--an-text:var(--text);--an-muted:var(--muted);--an-line:var(--line);--an-accent:var(--accent);padding:0;color:var(--an-text)}
#analytics-view .an-shell{width:100%;max-width:none;margin:0;padding:34px 36px 56px;box-sizing:border-box}
#analytics-view .an-head{margin-bottom:26px}
#analytics-view .an-head h1{margin:0 0 7px;font-size:31px;font-weight:600;letter-spacing:-.04em}
#analytics-view .an-head p{margin:0;color:var(--an-muted);font-size:14px}
#analytics-view .an-filter-panel,#analytics-view .an-section,#analytics-view .an-chart-card{background:rgba(244,241,235,.68);border:1px dashed var(--an-line)}
#analytics-view .an-filter-panel{padding:22px;margin-bottom:22px}
#analytics-view .an-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:18px;align-items:end}
#analytics-view .an-field{display:grid;gap:8px}
#analytics-view .an-field label{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--an-muted)}
#analytics-view .an-field select{width:100%;min-height:36px;padding:0 30px 0 7px;border:0;border-bottom:1px solid var(--an-line);border-radius:0;appearance:none;-webkit-appearance:none;background-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23496f70' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;background-size:12px 8px;color:var(--an-text);font:500 13px Montserrat,Arial,sans-serif;outline:none;cursor:pointer}
#analytics-view .an-field select:hover,#analytics-view .an-field select:focus{border-color:var(--an-accent)}
#analytics-view .an-field select:focus{background-color:rgba(244,241,235,.9)}
#analytics-view .an-field select:invalid{color:#8f8b83}
#analytics-view .an-field select:disabled{opacity:.65;color:var(--line);border-color:#cbc5ba;cursor:not-allowed}
#analytics-view .an-field select option{background:var(--panel);color:var(--text);font:500 13px Montserrat,Arial,sans-serif}
#analytics-view .an-actions{display:flex;gap:14px;align-items:center;margin-top:20px}
#analytics-view .an-generate{border:0;border-radius:0;background:var(--an-accent);color:#fff;padding:12px 18px;font:600 12px Montserrat,Arial,sans-serif;letter-spacing:.03em;cursor:pointer}
#analytics-view .an-generate:hover{background:#3f6263}
#analytics-view .an-generate:disabled{opacity:.55;cursor:default}
#analytics-view .an-pdf{border:0;background:transparent;color:var(--an-text);padding:8px 0;font:600 12px Montserrat,Arial,sans-serif;border-bottom:1px solid var(--an-text);cursor:pointer}
#analytics-view .an-pdf:hover{color:var(--an-accent);border-color:var(--an-accent)}
#analytics-view .an-pdf:disabled{opacity:.42;cursor:not-allowed}
#analytics-view .an-report-meta{display:flex;justify-content:space-between;gap:20px;margin:0 0 14px;color:var(--an-muted);font-size:11px;letter-spacing:.03em}
#analytics-view .an-empty{padding:38px 24px;border:1px dashed var(--an-line);background:rgba(244,241,235,.68);color:var(--an-muted);font-size:13px;text-align:center}
#analytics-view .an-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:22px}
#analytics-view .an-kpi{min-height:98px;padding:18px;background:rgba(244,241,235,.68);border:1px dashed var(--an-line)}
#analytics-view .an-kpi span{display:block;color:var(--an-muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
#analytics-view .an-kpi strong{display:block;margin-top:14px;font-size:26px;font-weight:600;letter-spacing:-.04em}
#analytics-view .an-kpi small{display:block;margin-top:4px;color:var(--an-muted);font-size:10px}
#analytics-view .an-section{padding:24px;margin-bottom:18px}
#analytics-view .an-section h2,#analytics-view .an-chart-card h2{margin:0 0 15px;font-size:15px;font-weight:600}
#analytics-view .an-summary{margin:0;max-width:none;font-size:13px;line-height:1.8;color:var(--muted)}
#analytics-view .an-table-wrap{overflow:auto}
#analytics-view .an-table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}
#analytics-view .an-table thead tr{height:43px;background:transparent}
#analytics-view .an-table th{height:43px;padding:10px 12px;box-sizing:border-box;text-align:left;color:var(--muted);background:transparent;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:700 11px/1.2 Montserrat,Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}
#analytics-view .an-table td{padding:14px 12px;border-bottom:1px dashed #cbc5ba}
#analytics-view .an-table tbody tr:hover{background:rgba(73,111,112,.06)}
#analytics-view .an-delay{font-weight:600;color:#8a5148}
#analytics-view .an-early{font-weight:600;color:var(--an-accent)}
#analytics-view .an-charts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
#analytics-view .an-chart-card{padding:24px}
#analytics-view .an-chart-note{margin:-8px 0 18px;color:var(--an-muted);font-size:10px}
#analytics-view .an-bar-row{display:grid;grid-template-columns:130px 1fr 36px;gap:12px;align-items:center;margin:15px 0;font-size:11px}
#analytics-view .an-bar-track{height:8px;background:#dcd7ce;overflow:hidden}
#analytics-view .an-bar-fill{height:100%;background:var(--an-accent);transition:width .25s ease}
#analytics-view .an-bar-fill.late{background:#9a6b61}
#analytics-view .an-bar-fill.open{background:#a8a39a}
#analytics-view .an-bar-row b{text-align:right;font-size:11px}
#analytics-view .an-plan-row{margin:16px 0}
#analytics-view .an-plan-label{display:flex;justify-content:space-between;margin-bottom:7px;font-size:10px;color:var(--an-muted)}
#analytics-view .an-plan-track{position:relative;height:16px;border-bottom:1px dashed var(--an-line)}
#analytics-view .an-plan-bar,#analytics-view .an-real-bar{position:absolute;left:0;height:4px}
#analytics-view .an-plan-bar{top:2px;background:var(--line)}
#analytics-view .an-real-bar{bottom:2px;background:var(--accent)}
@media(max-width:1050px){#analytics-view .an-filter-grid{grid-template-columns:repeat(3,1fr)}#analytics-view .an-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){#analytics-view .an-shell{padding:24px 18px 42px}#analytics-view .an-filter-grid,#analytics-view .an-kpis,#analytics-view .an-charts{grid-template-columns:1fr}#analytics-view .an-report-meta{display:block}#analytics-view .an-report-meta span{display:block;margin-bottom:5px}}
@media print{
  body.print-analytics-report .sidebar,body.print-analytics-report #analytics-view .an-filter-panel,body.print-analytics-report #analytics-view .an-pdf{display:none!important}
  body.print-analytics-report .app-shell{display:block!important;min-height:0!important;background:#fff!important}
  body.print-analytics-report .workspace{display:block!important;overflow:visible!important}
  body.print-analytics-report .workspace>.view:not(#analytics-view),body.print-analytics-report .global-error{display:none!important}
  body.print-analytics-report #analytics-view{display:block!important;background:#fff!important}
  body.print-analytics-report #analytics-view .an-shell{max-width:none;padding:12mm}
  body.print-analytics-report #analytics-view .an-section,body.print-analytics-report #analytics-view .an-chart-card,body.print-analytics-report #analytics-view .an-kpi{break-inside:avoid;background:#fff}
}

/* Graphite theme. Component geometry stays shared with the light interface. */
html[data-theme="dark"] .browser-auth-layer {
  background:
    radial-gradient(circle at 72% 18%, rgba(104, 129, 133, .42), transparent 34%),
    linear-gradient(145deg, #292b2d, #3a3d3f 56%, #26282a);
}
html[data-theme="dark"] .browser-auth-card {
  border-color: var(--line-soft);
  background: rgba(54, 57, 59, .97);
  box-shadow: 0 22px 70px rgba(0, 0, 0, .38);
}
html[data-theme="dark"] .browser-auth-brand,
html[data-theme="dark"] .browser-auth-form label { color: var(--text); }
html[data-theme="dark"] .browser-auth-form input {
  border-color: var(--line-soft);
  background: #424547;
  color: var(--text);
}
html[data-theme="dark"] .workspace { scrollbar-color: #858a8c transparent; }
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
  color: var(--text);
  caret-color: var(--text);
}
html[data-theme="dark"] select option { background: var(--panel); color: var(--text); }
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder { color: #aeb2b3; }
html[data-theme="dark"] .global-error { background: #5b3b39; color: #ffd9d4; }
html[data-theme="dark"] .nav-icon svg circle { fill: var(--bg); }
html[data-theme="dark"] .avatar { background: #72999d; color: #fff; }

html[data-theme="dark"] :is(
  .home-task-card,
  .home-project-card,
  .memo-row,
  .project-task-row,
  .project-task-detail
) {
  --panel: #e7e4dd;
  --panel-soft: #ddd9d1;
  --hover: #ddd5ca;
  --line: #aaa49a;
  --line-soft: #c2bcb2;
  --dash: #9b8877;
  --text: #2f2d29;
  --muted: #6b675f;
  --accent: #496f70;
  --accent-dark: #28575c;
  color: var(--text);
}
html[data-theme="dark"] .memo-row { background: rgba(235, 231, 223, .96); }
html[data-theme="dark"] .memo-row:hover { background: #ddd5ca; }
html[data-theme="dark"] .project-task-name::before { color: #627a7c; }
html[data-theme="dark"] .project-task-due { color: #355f66; }
html[data-theme="dark"] .task-complete { color: #4b4943; }
html[data-theme="dark"] .home-task-copy small { color: #4c615f; }
html[data-theme="dark"] .home-task-due { color: #27676c; }
html[data-theme="dark"] .home-task-copy strong::before { color: #5c7370; }
html[data-theme="dark"] .home-project-copy small { color: #5c5a54; }

html[data-theme="dark"] :is(
  .projects-card,
  .search-result-row,
  .drawing-row,
  .project-note-card,
  #supervision .supervision-visit-row,
  #supervision .supervision-detail
) {
  --panel: #e3e0d9;
  --panel-soft: #d9d5cd;
  --surface: #eeeae3;
  --surface-strong: #f7f4ef;
  --table-cell: #eeeae3;
  --hover: #d6d0c7;
  --line: #aaa49a;
  --line-soft: #c2bcb2;
  --dash: #918579;
  --text: #302e2a;
  --muted: #68645d;
  --accent: #496f70;
  --accent-dark: #28575c;
  background: var(--panel);
  color: var(--text);
}
html[data-theme="dark"] .projects-card:hover,
html[data-theme="dark"] .search-result-row:hover,
html[data-theme="dark"] .search-result-row:focus-visible,
html[data-theme="dark"] .drawing-row:hover { background: var(--hover); }
html[data-theme="dark"] #schedule .gantt-weeks .today { color: #293133; }
html[data-theme="dark"] .pdf-export { background: #95564f; }
html[data-theme="dark"] .pdf-export:hover { background: #a96860; }
html[data-theme="dark"] .xlsx-export { background: #4f765d; }
html[data-theme="dark"] .xlsx-export:hover { background: #638b70; }

html[data-theme="dark"] .project-note-card:hover,
html[data-theme="dark"] .project-note-card:focus-visible { background: var(--hover); }
html[data-theme="dark"] .task-editor-dialog::backdrop { background: rgba(10, 11, 12, .72); }
html[data-theme="dark"] .task-editor-dialog input,
html[data-theme="dark"] .task-editor-dialog select,
html[data-theme="dark"] .task-editor-dialog textarea { background: #45484a; color: var(--text); }

html[data-theme="dark"] #calendar-view.google-calendar-face {
  --gc-ink: #f1f0ec;
  --gc-muted: #b7b9b9;
  --gc-line: #666a6c;
  --gc-paper: #373a3c;
  --gc-panel: #333638;
  --gc-today: #b95b50;
}
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-side { background: #333638; }
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-board { background: #373a3c; }
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-day { background: #373a3c; }
html[data-theme="dark"] #calendar-view.google-calendar-face :is(.gc-time-head,.gc-all-day-row,.gc-hour-axis) { background: #373a3c; }
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-time-day { background: #393c3e; border-color: #5d6163; }
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-time-slot { border-color: #55595b; }
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-time-slot:nth-child(even) { background: #3d4042; }
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-event {
  background: color-mix(in srgb,var(--event-color,var(--accent)) 82%,#25282a);
  color: #fff;
}
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-event:hover {
  background: color-mix(in srgb,var(--event-color,var(--accent)) 92%,#25282a);
}
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-message { background: #514b3d; color: #f3ead1; }
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-field input,
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-field select,
html[data-theme="dark"] #calendar-view.google-calendar-face .gc-field textarea { background: #45484a; }
html[data-theme="dark"] .gc-hover-tip {
  border-color: var(--line-soft);
  background: #3b3e40;
  color: var(--text);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] #weekly-plan-view .plan-day-head.weekend,
html[data-theme="dark"] #weekly-plan-view .plan-cell.weekend { background: #46494b !important; color: #aeb1b2; }
html[data-theme="dark"] #weekly-plan-view.editing .plan-cell.workday:hover { background: #4b4f51 !important; }
html[data-theme="dark"] #weekly-plan-view .plan-delivery-compose { background: var(--panel-soft); }
html[data-theme="dark"] #analytics-view .an-filter-panel,
html[data-theme="dark"] #analytics-view .an-section,
html[data-theme="dark"] #analytics-view .an-chart-card,
html[data-theme="dark"] #analytics-view .an-empty,
html[data-theme="dark"] #analytics-view .an-kpi { background: rgba(68, 71, 73, .82); }
html[data-theme="dark"] #analytics-view .an-field select:focus { background: #45484a; }
html[data-theme="dark"] #analytics-view .an-bar-track { background: #55595b; }

@media print {
  :root[data-theme="dark"] {
    color-scheme: light;
    --bg: #d9d5cd;
    --panel: #ebe7df;
    --panel-soft: #e2ddd4;
    --line: #aaa49a;
    --line-soft: #c2bcb2;
    --text: #35322d;
    --muted: #716d65;
    --accent: #496f70;
    --accent-dark: #28575c;
    --accent-ink: #203b42;
    --active: #9eb9c0;
    --hover: #e2d2c1;
    --dash: #9b8877;
    --surface: #f0ece4;
    --surface-strong: #fffdf8;
    --table-head: #ded9d0;
    --table-group: #c4c0b8;
    --table-cell: #f5f1e9;
  }
}
