:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #20352b;
  background: #f4f6f1;
  line-height: 1.5;
}
* { box-sizing: border-box; }
body { min-width: 320px; margin: 0; }
a { color: inherit; }
button, input { font: inherit; }
button { cursor: pointer; }
.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at top right, #e8efe5, #f4f6f1 55%); }
.auth-card { width: min(100%, 440px); padding: 40px; border: 1px solid #dce5db; border-radius: 24px; background: #fffdf8; box-shadow: 0 24px 70px rgb(32 53 43 / 10%); }
.brand-mark, .wordmark span { display: inline-grid; place-items: center; color: #fffdf8; background: #284638; font-family: Georgia, serif; }
.brand-mark { width: 48px; height: 48px; border-radius: 15px; font-size: 28px; }
.eyebrow { margin: 22px 0 8px; color: #8b6a35; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
h1, h2 { font-family: Georgia, serif; font-weight: 500; line-height: 1.1; }
h1 { margin: 0 0 16px; font-size: clamp(2.2rem, 8vw, 3.5rem); }
h2 { font-size: 1.8rem; }
.auth-card form { display: grid; gap: 18px; margin-top: 24px; }
label { display: grid; gap: 7px; font-weight: 700; }
input[type="password"] { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #c9d5c7; border-radius: 12px; background: #fff; font-size: 1rem; }
button { min-height: 48px; padding: 0 18px; border: 0; border-radius: 12px; color: #fffdf8; background: #284638; font-weight: 800; }
button:disabled { cursor: not-allowed; opacity: .5; }
.notice, .error { margin: 18px 0; padding: 14px 16px; border-radius: 12px; font-size: .95rem; }
.notice { color: #315341; background: #e9f2e8; }
.notice p { margin: 5px 0 10px; }
.notice code { display: inline-block; padding: 4px 7px; border-radius: 6px; background: #d9e8d8; font-size: .82rem; }
.error { color: #812d2d; background: #f9e4df; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px max(20px, calc((100vw - 1120px) / 2)); border-bottom: 1px solid #dce5db; background: #fffdf8; }
.wordmark { display: inline-flex; align-items: center; gap: 10px; color: #284638; font-family: Georgia, serif; font-size: 1.25rem; text-decoration: none; }
.wordmark span { width: 34px; height: 34px; border-radius: 10px; font-size: 19px; }
.topnav { display: flex; align-items: center; gap: 18px; }
.nav-link { color: #284638; font-size: .92rem; font-weight: 800; text-decoration: none; }
.link-button { min-height: auto; padding: 8px 0; color: #284638; background: transparent; font-size: .9rem; }
.page-shell { width: min(100% - 40px, 1120px); margin: 0 auto; padding: clamp(44px, 10vw, 96px) 0; }
.hero { max-width: 700px; }
.hero h1 { margin-bottom: 14px; }
.lede { max-width: 580px; margin: 0; color: #607366; font-size: 1.15rem; }
.quick-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.quick-action { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 15px; border: 1px solid #c9d5c7; border-radius: 12px; color: #284638; background: #fffdf8; font-weight: 800; text-decoration: none; }
.quick-action-primary { border-color: #284638; color: #fffdf8; background: #284638; }
.empty-card { max-width: 660px; margin-top: 48px; padding: clamp(28px, 6vw, 52px); border: 1px solid #dce5db; border-radius: 22px; background: #fffdf8; }
.empty-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; color: #8b6a35; background: #f5e7c7; font-size: 1.6rem; }
.empty-card h2 { margin: 24px 0 8px; }
.empty-card p { max-width: 500px; margin: 0; color: #607366; }
.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 48px; }
.dashboard-card { display: grid; gap: 10px; padding: 20px; border: 1px solid #dce5db; border-radius: 16px; background: #fffdf8; }
.dashboard-card-wide { grid-column: 1 / -1; }
.dashboard-card-primary { color: #fffdf8; background: #284638; }
.dashboard-card-primary .dashboard-card-label, .dashboard-card-primary p { color: #e6f0e5; }
.dashboard-card-primary .secondary-button { color: #284638; background: #fffdf8; }
.dashboard-card-label { margin: 0; color: #607366; font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.dashboard-card > strong { font-family: Georgia, serif; font-size: 2.5rem; font-weight: 500; line-height: 1; }
.dashboard-card > p { margin: 0; color: #607366; }
.dashboard-card .section-heading { align-items: start; margin-bottom: 0; }
.dashboard-card .section-heading h2 { font-size: 1.35rem; }
.dashboard-list, .search-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.dashboard-list li, .search-list li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 12px; border-radius: 10px; background: #f3f6f0; }
.dashboard-list li > div, .search-list li > div { display: grid; gap: 2px; min-width: 0; }
.dashboard-list strong, .search-list strong { overflow-wrap: anywhere; }
.dashboard-list small, .search-list small { color: #607366; font-size: .8rem; }
.dashboard-list time, .dashboard-list a, .search-list a { flex: 0 0 auto; color: #284638; font-size: .82rem; font-weight: 800; }
.dashboard-money-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.dashboard-money-summary { display: grid; gap: 3px; padding: 12px; border: 1px solid #e1e8df; border-radius: 10px; background: #fff; }
.dashboard-money-summary span { color: #607366; font-size: .8rem; font-weight: 800; }
.dashboard-money-summary strong { font-size: 1rem; }
.dashboard-money-summary small { color: #607366; font-size: .74rem; }
.dashboard-variance { padding: 10px 12px; border-radius: 10px; color: #315341 !important; background: #e9f2e8; font-size: .86rem; }
.search-page > .error { max-width: 760px; margin-top: 28px; }
.search-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; margin: 38px 0 24px; padding: 16px; border: 1px solid #dce5db; border-radius: 16px; background: #fffdf8; }
.search-form input { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #c9d5c7; border-radius: 9px; background: #fff; }
.search-form button { min-height: 42px; }
.search-empty { max-width: none; margin-top: 24px; padding: 24px; color: #607366; }
.search-results { display: grid; gap: 14px; }
.search-group { display: grid; gap: 10px; padding: 20px; border: 1px solid #dce5db; border-radius: 16px; background: #fffdf8; }
.search-group h2 { margin: 0; font-size: 1.35rem; }
.context-page > .hero { max-width: 820px; }
.context-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 48px; }
.context-section { display: grid; gap: 12px; padding: 20px; border: 1px solid #dce5db; border-radius: 16px; background: #fffdf8; }
.context-section .section-heading { margin-bottom: 0; }
.context-section .section-heading h2 { margin: 0; font-size: 1.35rem; }
.context-card-list { display: grid; gap: 8px; }
.context-item { display: grid; gap: 4px; padding: 12px; border-radius: 10px; background: #f3f6f0; }
.context-item.is-archived { opacity: .68; }
.context-item span, .context-item small { color: #607366; font-size: .8rem; }
.context-item a { color: #284638; font-size: .82rem; font-weight: 800; }
.context-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 9px; }
.context-photo { display: grid; gap: 4px; color: #284638; font-size: .76rem; font-weight: 700; text-decoration: none; }
.context-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 9px; background: #eef3ed; }
.context-open-link { white-space: nowrap; }
.structure-page > .notice { max-width: 760px; margin-top: 28px; }
.structure-grid { display: grid; gap: 24px; margin-top: 48px; }
.structure-section { padding: 24px; border: 1px solid #dce5db; border-radius: 18px; background: #fffdf8; }
.section-heading { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.section-heading h2 { margin: 0; font-size: 1.5rem; }
.section-heading p { margin: 6px 0 0; color: #607366; }
.compact-form { display: grid; gap: 12px; margin-bottom: 22px; padding: 16px; border-radius: 14px; background: #f3f6f0; }
.compact-form label { font-size: .9rem; }
.compact-form input, .compact-form select, .compact-form textarea, .row-form input, .row-form select { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #c9d5c7; border-radius: 9px; background: #fff; }
.compact-form textarea { min-height: 76px; resize: vertical; }
.compact-form button, .row-form button, .structure-row > form > button, .milestone-card > form > button { width: fit-content; min-height: 42px; }
.structure-list { display: grid; gap: 10px; }
.structure-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid #e1e8df; border-radius: 12px; background: #fff; }
.structure-row.is-archived, .milestone-card.is-archived { opacity: .68; }
.row-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(130px, .8fr) auto; align-items: center; gap: 8px; }
.row-status { color: #607366; font-size: .78rem; white-space: nowrap; }
.row-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.row-actions form { display: flex; }
.sort-button { min-width: 38px; min-height: 42px; padding: 6px 10px; color: #284638; background: #eef4eb; }
.structure-children { display: grid; grid-column: 1 / -1; gap: 10px; }
.secondary-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 14px; color: #284638; background: #e8efe5; text-decoration: none; }
.empty-inline { margin: 0; color: #607366; font-size: .95rem; }
.milestone-card { display: grid; gap: 12px; padding: 14px; border: 1px solid #e1e8df; border-radius: 12px; background: #fff; }
.milestone-summary h3 { margin: 0; font-size: 1.05rem; }
.milestone-summary p { margin: 4px 0 0; color: #607366; font-size: .88rem; }
.milestone-card details { border-top: 1px solid #e8eee6; padding-top: 10px; }
.milestone-card summary { cursor: pointer; color: #284638; font-weight: 800; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.tasks-page > .notice { max-width: 760px; margin-top: 28px; }
.task-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto auto; align-items: end; gap: 12px; margin: 38px 0 24px; padding: 16px; border: 1px solid #dce5db; border-radius: 16px; background: #fffdf8; }
.task-filters label { font-size: .86rem; }
.task-filters select { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #c9d5c7; border-radius: 9px; background: #fff; }
.task-filters button { min-height: 42px; }
.clear-filter { align-self: center; color: #284638; font-size: .86rem; font-weight: 800; white-space: nowrap; }
.task-create-section, .task-list-section { margin-top: 24px; padding: 24px; border: 1px solid #dce5db; border-radius: 18px; background: #fffdf8; }
.task-form { display: grid; gap: 14px; }
.task-form input, .task-form select, .task-form textarea, .note-form textarea { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #c9d5c7; border-radius: 9px; background: #fff; }
.task-form textarea { min-height: 82px; resize: vertical; }
.task-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.assignment-fieldset { min-width: 0; margin: 0; padding: 12px; border: 1px solid #dce5db; border-radius: 12px; }
.assignment-fieldset legend { padding: 0 5px; font-weight: 800; }
.choice-list { display: flex; flex-wrap: wrap; gap: 8px; }
.choice-item { display: flex; grid-template-columns: none; align-items: center; gap: 7px; padding: 8px 10px; border: 1px solid #dce5db; border-radius: 9px; background: #fff; font-size: .87rem; font-weight: 600; }
.choice-item input { width: 18px; min-height: 18px; }
.choice-empty { margin: 0; color: #607366; font-size: .86rem; }
.task-grid { display: grid; gap: 14px; }
.task-card { display: grid; gap: 14px; padding: 18px; border: 1px solid #dce5db; border-radius: 16px; background: #fff; }
.task-card.is-archived { opacity: .68; }
.task-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.task-card-header h3 { margin: 6px 0 0; font-family: Georgia, serif; font-size: 1.32rem; font-weight: 500; line-height: 1.2; }
.task-card-header > form { flex: 0 0 auto; }
.quick-task-button { min-height: 42px; }
.task-status-line { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0; color: #607366; font-size: .78rem; font-weight: 800; }
.task-status, .task-priority { display: inline-block; padding: 4px 8px; border-radius: 999px; }
.task-status { color: #315341; background: #e9f2e8; }
.task-status-in_progress { color: #78551c; background: #f8edce; }
.task-status-blocked { color: #812d2d; background: #f9e4df; }
.task-status-done { color: #4e5d55; background: #e7ece8; }
.task-priority { color: #607366; background: #eef3ed; }
.task-due, .task-description, .task-contexts { margin: 7px 0 0; color: #607366; font-size: .9rem; }
.task-description { white-space: pre-wrap; }
.task-contexts { padding-top: 12px; border-top: 1px solid #e8eee6; }
.task-edit-details { padding-top: 12px; border-top: 1px solid #e8eee6; }
.task-edit-details summary { cursor: pointer; color: #284638; font-weight: 800; }
.task-edit-details[open] .task-form { margin-top: 14px; }
.task-notes { padding-top: 12px; border-top: 1px solid #e8eee6; }
.task-notes h4 { margin: 0 0 8px; color: #284638; font-size: .95rem; }
.note-history { display: grid; gap: 8px; margin: 0 0 12px; padding: 0; list-style: none; }
.note-history li { display: grid; gap: 2px; padding: 9px 10px; border-radius: 9px; background: #f3f6f0; white-space: pre-wrap; }
.note-history li span { color: #607366; font-size: .76rem; font-weight: 800; }
.note-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; }
.note-form textarea { min-height: 42px; resize: vertical; }
.note-form .secondary-button { min-height: 42px; }
.task-archive-form { padding-top: 2px; }
.photo-add-link { white-space: nowrap; }
.photos-page > .notice { max-width: 760px; margin-top: 28px; }
.photo-upload-section, .photo-list-section { margin-top: 24px; padding: 24px; border: 1px solid #dce5db; border-radius: 18px; background: #fffdf8; }
.photo-form { display: grid; gap: 14px; }
.photo-form input, .photo-form select, .photo-form textarea { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #c9d5c7; border-radius: 9px; background: #fff; }
.photo-form textarea { min-height: 76px; resize: vertical; }
.photo-form input[type="file"] { padding: 8px; }
.photo-retry-hint { margin: 0; color: #607366; font-size: .88rem; }
.photo-upload-status { margin: 0; padding: 10px 12px; border-radius: 9px; color: #315341; background: #e9f2e8; font-size: .88rem; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.photo-card { overflow: hidden; border: 1px solid #dce5db; border-radius: 14px; background: #fff; }
.photo-image-link { display: block; background: #eef3ed; }
.photo-image-link img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.photo-card-body { display: grid; gap: 5px; padding: 12px; }
.photo-target { margin: 0; color: #284638; font-weight: 800; }
.photo-meta { margin: 0; color: #607366; font-size: .78rem; }
.photo-note { margin: 4px 0 0; white-space: pre-wrap; }
.decisions-page > .notice { max-width: 760px; margin-top: 28px; }
.decision-create-section, .decision-list-section { margin-top: 24px; padding: 24px; border: 1px solid #dce5db; border-radius: 18px; background: #fffdf8; }
.decision-form, .option-form { display: grid; gap: 14px; }
.decision-form input, .decision-form select, .decision-form textarea, .option-form input, .option-form textarea { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #c9d5c7; border-radius: 9px; background: #fff; }
.decision-form textarea, .option-form textarea { min-height: 76px; resize: vertical; }
.decision-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.decision-grid { display: grid; gap: 14px; }
.decision-card { display: grid; gap: 14px; padding: 18px; border: 1px solid #dce5db; border-radius: 16px; background: #fff; }
.decision-card.is-archived { opacity: .68; }
.decision-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.decision-card-header h3 { margin: 6px 0 0; font-family: Georgia, serif; font-size: 1.32rem; font-weight: 500; line-height: 1.2; }
.decision-status-line { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0; color: #607366; font-size: .78rem; font-weight: 800; }
.decision-status { display: inline-block; padding: 4px 8px; border-radius: 999px; color: #315341; background: #e9f2e8; }
.decision-status-in_review { color: #78551c; background: #f8edce; }
.decision-status-decided { color: #4e5d55; background: #e7ece8; }
.decision-date, .decision-description, .decision-contexts, .decision-rationale, .decision-selected { margin: 7px 0 0; color: #607366; font-size: .9rem; }
.decision-description, .decision-rationale { white-space: pre-wrap; }
.decision-contexts { padding-top: 12px; border-top: 1px solid #e8eee6; }
.decision-selected strong { color: #284638; }
.decision-options { display: grid; gap: 12px; padding-top: 12px; border-top: 1px solid #e8eee6; }
.decision-options .section-heading { margin-bottom: 0; }
.decision-options h4 { margin: 0; color: #284638; font-size: .98rem; }
.decision-options .section-heading p { margin: 4px 0 0; color: #607366; font-size: .84rem; }
.option-grid { display: grid; gap: 12px; }
.option-card { display: grid; gap: 9px; padding: 14px; border: 1px solid #e1e8df; border-radius: 12px; background: #fff; }
.option-card.is-rejected { opacity: .68; }
.option-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.option-card h5 { margin: 0; font-size: 1rem; }
.option-card-header a { color: #284638; font-size: .83rem; font-weight: 800; }
.option-status, .option-prices, .option-notes { margin: 4px 0 0; color: #607366; font-size: .84rem; }
.option-notes { white-space: pre-wrap; }
.option-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; }
.option-photo-thumb { display: block; overflow: hidden; border-radius: 9px; background: #eef3ed; }
.option-photo-thumb img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.option-lock-note { margin: 0; color: #607366; font-size: .84rem; }
.option-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.option-actions form { display: flex; }
.option-edit-details, .decision-edit-details { padding-top: 12px; border-top: 1px solid #e8eee6; }
.option-edit-details summary, .decision-edit-details summary { cursor: pointer; color: #284638; font-weight: 800; }
.option-edit-details[open] .option-form, .decision-edit-details[open] .decision-form { margin-top: 14px; }
.decision-archive-form { padding-top: 2px; }
.documents-page > .notice { max-width: 760px; margin-top: 28px; }
.document-create-section, .document-list-section { margin-top: 24px; padding: 24px; border: 1px solid #dce5db; border-radius: 18px; background: #fffdf8; }
.document-form, .document-version-form { display: grid; gap: 14px; }
.document-form input, .document-form select, .document-form textarea, .document-version-form input { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #c9d5c7; border-radius: 9px; background: #fff; }
.document-form textarea { min-height: 84px; resize: vertical; }
.document-form input[type="file"], .document-version-form input[type="file"] { padding: 8px; }
.document-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.document-grid { display: grid; gap: 14px; }
.document-card { display: grid; gap: 14px; padding: 18px; border: 1px solid #dce5db; border-radius: 16px; background: #fff; }
.document-card.is-archived { opacity: .68; }
.document-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.document-card-header h3 { margin: 6px 0 0; font-family: Georgia, serif; font-size: 1.32rem; font-weight: 500; line-height: 1.2; }
.document-status-line { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0; color: #607366; font-size: .78rem; font-weight: 800; }
.document-type, .document-tag, .version-current, .version-old { display: inline-block; padding: 4px 8px; border-radius: 999px; }
.document-type { color: #315341; background: #e9f2e8; }
.document-date, .document-description, .document-contexts, .document-tags { margin: 7px 0 0; color: #607366; font-size: .9rem; }
.document-description { white-space: pre-wrap; }
.document-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.document-tag { color: #607366; background: #eef3ed; font-size: .78rem; }
.document-contexts { padding-top: 12px; border-top: 1px solid #e8eee6; }
.document-versions { padding-top: 12px; border-top: 1px solid #e8eee6; }
.document-versions h4 { margin: 0 0 8px; color: #284638; font-size: .98rem; }
.document-version-list { display: grid; gap: 8px; margin: 0; padding-left: 22px; }
.document-version-list li { display: grid; grid-template-columns: minmax(0, auto) auto auto; align-items: center; gap: 7px; }
.document-version-list a { color: #284638; font-weight: 800; }
.document-version-list small { grid-column: 1 / -1; color: #607366; font-size: .78rem; }
.version-current { color: #315341; background: #e9f2e8; font-size: .72rem; font-weight: 800; }
.version-old { color: #607366; background: #eef3ed; font-size: .72rem; font-weight: 800; }
.document-version-list form { display: flex; }
.document-version-list .secondary-button { min-height: 34px; padding-inline: 9px; font-size: .78rem; }
.document-edit-details, .document-add-version-details { padding-top: 12px; border-top: 1px solid #e8eee6; }
.document-edit-details summary, .document-add-version-details summary { cursor: pointer; color: #284638; font-weight: 800; }
.document-edit-details[open] .document-form, .document-add-version-details[open] .document-version-form { margin-top: 14px; }
.document-retry-hint { margin: 0; color: #607366; font-size: .88rem; }
.document-archive-form { padding-top: 2px; }
.costs-page > .notice { max-width: 760px; margin-top: 28px; }
.cost-summary, .cost-create-section, .cost-list-section { margin-top: 24px; padding: 24px; border: 1px solid #dce5db; border-radius: 18px; background: #fffdf8; }
.cost-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.cost-summary-card { display: grid; gap: 3px; padding: 14px; border: 1px solid #e1e8df; border-radius: 12px; background: #fff; }
.cost-summary-card span { color: #607366; font-size: .82rem; font-weight: 800; }
.cost-summary-card strong { font-size: 1.1rem; }
.cost-summary-card small { color: #607366; font-size: .76rem; }
.cost-variance { display: grid; gap: 3px; margin-top: 14px; padding: 13px 14px; border-radius: 12px; color: #315341; background: #e9f2e8; }
.cost-variance small { color: #607366; }
.cost-item-form, .cost-entry-form { display: grid; gap: 14px; }
.cost-item-form input, .cost-item-form textarea, .cost-entry-form input, .cost-entry-form select, .cost-entry-form textarea { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #c9d5c7; border-radius: 9px; background: #fff; }
.cost-item-form textarea, .cost-entry-form textarea { min-height: 76px; resize: vertical; }
.cost-grid { display: grid; gap: 14px; }
.cost-card { display: grid; gap: 14px; padding: 18px; border: 1px solid #dce5db; border-radius: 16px; background: #fff; }
.cost-card.is-archived { opacity: .68; }
.cost-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.cost-card-header h3 { margin: 6px 0 0; font-family: Georgia, serif; font-size: 1.32rem; font-weight: 500; line-height: 1.2; }
.cost-status-line { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0; color: #607366; font-size: .78rem; font-weight: 800; }
.cost-kind-badge { display: inline-block; padding: 4px 8px; border-radius: 999px; color: #315341; background: #e9f2e8; }
.cost-description, .cost-contexts { margin: 7px 0 0; color: #607366; font-size: .9rem; }
.cost-description { white-space: pre-wrap; }
.cost-contexts { padding-top: 12px; border-top: 1px solid #e8eee6; }
.cost-total-table { display: grid; gap: 5px; padding: 12px; border-radius: 11px; background: #f3f6f0; }
.cost-total-row { display: grid; grid-template-columns: minmax(90px, 1fr) repeat(3, minmax(0, auto)); gap: 9px; color: #607366; font-size: .82rem; }
.cost-total-row span:first-child { color: #284638; font-weight: 800; }
.cost-entry-section { display: grid; gap: 12px; padding-top: 12px; border-top: 1px solid #e8eee6; }
.cost-entry-section .section-heading { margin-bottom: 0; }
.cost-entry-section h4 { margin: 0; color: #284638; font-size: .98rem; }
.cost-entry-section .section-heading p { margin: 4px 0 0; color: #607366; font-size: .84rem; }
.cost-entry-list { display: grid; gap: 10px; }
.cost-entry-card { display: grid; gap: 5px; padding: 12px; border: 1px solid #e1e8df; border-radius: 12px; background: #fff; }
.cost-entry-header { display: flex; justify-content: space-between; gap: 10px; color: #284638; }
.cost-entry-header time { color: #607366; font-size: .8rem; }
.cost-entry-card p { margin: 0; }
.cost-entry-amounts { display: flex; flex-wrap: wrap; gap: 9px; color: #284638; font-size: .84rem; font-weight: 700; }
.cost-entry-rate { color: #607366; font-size: .78rem; }
.cost-entry-edit, .cost-edit-details { padding-top: 10px; border-top: 1px solid #e8eee6; }
.cost-entry-edit summary, .cost-edit-details summary { cursor: pointer; color: #284638; font-size: .84rem; font-weight: 800; }
.cost-entry-edit[open] .cost-entry-form, .cost-edit-details[open] .cost-item-form { margin-top: 12px; }
.cost-entry-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.form-help { color: #607366; font-size: .8rem; }
.cost-archive-form { padding-top: 2px; }
@media (max-width: 520px) {
  .auth-card { padding: 28px 22px; border-radius: 18px; }
  .topbar { padding-inline: 20px; }
  .topnav { gap: 10px; }
  .topnav { flex-wrap: wrap; justify-content: flex-end; }
  .dashboard-grid, .context-grid { grid-template-columns: 1fr; }
  .dashboard-card-wide { grid-column: auto; }
  .dashboard-money-grid { grid-template-columns: 1fr 1fr; }
  .quick-actions { display: grid; grid-template-columns: 1fr; }
  .quick-action { width: 100%; }
  .dashboard-list li, .search-list li { align-items: flex-start; flex-direction: column; }
  .dashboard-list time, .dashboard-list a, .search-list a { align-self: flex-start; }
  .search-form { grid-template-columns: 1fr; }
  .structure-section { padding: 18px; }
  .structure-row { grid-template-columns: 1fr auto; }
  .row-form { grid-template-columns: 1fr; grid-column: 1 / -1; }
  .row-status { grid-column: 1; }
  .structure-row > .row-actions { grid-column: 2; grid-row: 2; }
  .task-filters { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .task-filters label:last-of-type { grid-column: 1 / -1; }
  .task-filters button, .clear-filter { grid-column: span 1; }
  .task-form-grid { grid-template-columns: 1fr; }
  .task-create-section, .task-list-section { padding: 18px; }
  .task-card { padding: 15px; }
  .task-card-header { flex-direction: column; }
  .task-card-header > form, .quick-task-button { width: 100%; }
  .note-form { grid-template-columns: 1fr; }
  .photo-upload-section, .photo-list-section { padding: 18px; }
  .photo-add-link { width: 100%; }
  .decision-create-section, .decision-list-section { padding: 18px; }
  .decision-form-grid { grid-template-columns: 1fr; }
  .decision-card { padding: 15px; }
  .option-actions { display: grid; grid-template-columns: 1fr; }
  .option-actions form, .option-actions button { width: 100%; }
  .document-create-section, .document-list-section { padding: 18px; }
  .document-form-grid { grid-template-columns: 1fr; }
  .document-card { padding: 15px; }
  .document-version-list li { grid-template-columns: 1fr auto; }
  .document-version-list small { grid-column: 1 / -1; }
  .cost-summary, .cost-create-section, .cost-list-section { padding: 18px; }
  .cost-summary-grid { grid-template-columns: 1fr 1fr; }
  .cost-card { padding: 15px; }
  .cost-card-header { flex-direction: column; }
  .cost-entry-grid { grid-template-columns: 1fr; }
  .cost-total-row { grid-template-columns: 1fr; gap: 2px; }
}
