/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

.zidaj-modal { margin: auto; width: min(900px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 24px; border: 1px solid #dfe5d6; border-radius: 20px; background: #f7f9f2; color: #202a25; box-shadow: 0 24px 90px #0004; overflow: auto; overscroll-behavior: contain; }
.zidaj-modal::backdrop { background: #15221b99; backdrop-filter: blur(3px); }
html:has(dialog[open]) { overflow: hidden; }
.modal-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 20px; font-size: 12px; }
.zidaj-modal turbo-frame { display: block; }
.zidaj-modal .form-card { margin: 0; max-width: none; }
.photo-modal { width: min(1120px, calc(100% - 24px)); background: #17221d; color: #fff; }
.photo-stage { display: flex; align-items: center; justify-content: center; min-height: 100px; }
.photo-stage img { max-width: 100%; max-height: 70dvh; object-fit: contain; border-radius: 8px; }
.photo-controls { display: flex; justify-content: space-between; gap: 12px; margin-top: 16px; }
.photo-controls button:disabled { opacity: .4; cursor: default; }
@media (max-width: 640px) { .zidaj-modal { padding: 16px; border-radius: 14px; } .zidaj-modal h1 { font-size: 24px; } .photo-stage img { max-height: 60dvh; } }
.modal-toolbar button { flex-shrink: 0; white-space: nowrap; }
@media (max-width: 640px) {
  .schedule-preview-table thead { display: none; }
  .schedule-preview-table, .schedule-preview-table tbody, .schedule-preview-table tr { display: block; width: 100%; }
  .schedule-preview-table tr { padding: 12px 16px; border-bottom: 1px solid #dfe5d6; }
  .schedule-preview-table td { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0; border: 0; }
  .schedule-preview-table td::before { content: attr(data-label); color: #75816e; font-size: 12px; }
  .schedule-preview-table td:first-child { display: block; margin-bottom: 6px; }
  .schedule-preview-table td:first-child::before { content: none; }
}

/* Everyday guidance: useful actions first, optional setup on demand. */
.guidance { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px; margin-bottom: 24px; border: 1px solid #cedbc5; border-radius: 16px; background: #edf3e7; }
.guidance > .button { flex-shrink: 0; }
.start-steps, .everyday-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 28px; }
.start-steps li, .everyday-actions a { padding: 24px; border: 1px solid #dfe4d9; border-radius: 12px; background: white; }
.start-steps h2 { margin: 16px 0 8px; font-size: 17px; }
.start-steps p, .everyday-actions span { color: #697763; font-size: 13px; line-height: 1.65; }
.step-number { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #eaf0e3; color: #334b2c; font-weight: 600; }
.everyday-actions strong, .everyday-actions span { display: block; }
.everyday-actions span { margin-top: 6px; }
.everyday-actions a:hover { border-color: #8ca17e; background: #f8faf5; }
.project-tabs a[aria-current="page"] { color: #263e2d; font-weight: 700; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 10px; }
.optional-settings { padding: 18px; margin: 4px 0 24px; border: 1px solid #dfe4d9; border-radius: 10px; }
.optional-settings summary { cursor: pointer; font-weight: 600; }
.optional-settings[open] summary { margin-bottom: 16px; }
@media (max-width: 767px) { .guidance { flex-direction: column; align-items: stretch; padding: 20px; } .start-steps, .everyday-actions { grid-template-columns: 1fr; gap: 12px; } .start-steps li, .everyday-actions a { padding: 18px; } }

.mobile-header { display: none; }
@media (max-width: 900px) {
  .sidebar, .main-shell > .topbar { display: none; }
  .mobile-header { display: flex; align-items: center; justify-content: space-between; height: 60px; padding: 0 18px; background: #202a25; color: #fff; position: sticky; top: 0; z-index: 40; }
  .mobile-header .brand { font-size: 25px; gap: 6px; }
  .mobile-header .brand-mark { width: 30px; height: 30px; font-size: 24px; }
  .mobile-menu summary { display: flex; align-items: center; justify-content: center; min-width: 90px; min-height: 44px; padding: 8px 12px; border: 1px solid #637366; border-radius: 8px; font-size: 14px; cursor: pointer; list-style: none; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu summary:focus-visible { outline: 2px solid #edaa7b; outline-offset: 3px; }
  .menu-close-label, .mobile-menu[open] .menu-open-label { display: none; }
  .mobile-menu[open] .menu-close-label { display: inline; }
  .mobile-menu-panel { position: absolute; top: 68px; right: 12px; width: min(360px, calc(100vw - 24px)); max-height: calc(100dvh - 84px); overflow-y: auto; overscroll-behavior: contain; padding: 18px; border: 1px solid #536054; border-radius: 14px; background: #202a25; box-shadow: 0 16px 50px #0005; color: #d8e1d7; }
  .mobile-menu-panel .workspace-label { display: block; margin: 0 0 12px; }
  .mobile-menu-panel .nav-link { flex-direction: row; gap: 12px; padding: 11px 12px; min-height: 44px; font-size: 14px; }
  .mobile-menu-panel .sidebar-bottom { display: block; margin-top: 14px; }
  .mobile-menu-panel .settings-link { padding: 10px 12px; min-height: 44px; }
  .mobile-menu-panel .profile { overflow-wrap: anywhere; }
  .mobile-menu-panel .logout { min-height: 44px; }
  .project-tabs { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; padding-bottom: 14px; gap: 20px; }
  .project-tabs a { flex-shrink: 0; }
}
@media print { .mobile-header { display: none !important; } }

/* One status palette for timeline bars, cards and task labels. */
.task-status-planned { --task-bg: #edf0f4; --task-ink: #475569; --task-edge: #94a3b8; }
.task-status-active { --task-bg: #dbeafe; --task-ink: #1e40af; --task-edge: #3b82f6; }
.task-status-blocked { --task-bg: #ffedd5; --task-ink: #9a3412; --task-edge: #ea580c; }
.task-status-completed { --task-bg: #dcfce7; --task-ink: #166534; --task-edge: #22c55e; }
.task-status { background-color: var(--task-bg); color: var(--task-ink); border-color: var(--task-edge); }
.task-bar.task-status { border-left-width: 4px; }
.task-bar .resize-handle { border-right-color: currentColor; }
.timeline-label > .task-status { margin-top: 4px; }
.task-card { border-left: 4px solid var(--task-edge); }
.task-card > .panel-body { background: linear-gradient(90deg, var(--task-bg), white 35%); }

.checklist-section { border: 1px solid #dfe4d9; border-radius: 12px; background: white; overflow: hidden; }
.checklist-section h2 { font-size: 16px; }
.checklist-row { padding: 16px 20px; border-bottom: 1px solid #e7ecdf; }
.checklist-main { display: flex; align-items: flex-start; gap: 14px; }
.checklist-main > div { min-width: 0; overflow-wrap: anywhere; }
.checklist-main form { flex-shrink: 0; }
.checklist-done { text-decoration: line-through; color: #71816a; }
.library-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px; border-bottom: 1px solid #e7ecdf; overflow-wrap: anywhere; }
@media (max-width: 640px) { .checklist-main, .library-row { flex-direction: column; align-items: stretch; } .checklist-row { padding: 14px; } }

/* Real application previews; fixed image ratios prevent layout jumps. */
.showcase-note { color: #65755f; font-size: 14px; line-height: 1.8; margin: -16px 0 30px; max-width: 700px; }
.landing-showcase { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.showcase-card { min-width: 0; border: 1px solid #dce3d2; border-radius: 16px; overflow: hidden; background: #fcfcf8; }
.showcase-preview { display: block; position: relative; padding: 14px; background: #e8eddf; border-bottom: 1px solid #dce3d2; }
.showcase-preview img { display: block; width: 100%; height: auto; border-radius: 7px; box-shadow: 0 4px 16px #202a2512; }
.showcase-enlarge { position: absolute; right: 23px; bottom: 23px; padding: 8px 12px; background: #202a25; color: #fff; border-radius: 6px; font-size: 11px; }
.showcase-preview:hover .showcase-enlarge { background: #416140; }
.showcase-preview:focus-visible { outline: 3px solid #416140; outline-offset: -3px; }
.showcase-copy { padding: 24px 28px 28px; }
.showcase-number { float: right; font-size: 12px; color: #788968; margin-left: 12px; }
.showcase-copy h3 { font-size: 20px; letter-spacing: -.5px; margin-bottom: 12px; }
.showcase-copy p { color: #65755f; font-size: 14px; line-height: 1.85; }
@media (max-width: 640px) {
  .landing-showcase { grid-template-columns: 1fr; gap: 22px; }
  .showcase-copy { padding: 20px; }
  .showcase-note { margin-top: 0; }
}
.photo-modal a.link { color: #e1eccd; text-decoration: underline; }

.marketing-video-modal { width: min(1120px, calc(100% - 24px)); background: #202a25; color: #fff; }
.landing .marketing-video-modal h2 { font-size: 20px; line-height: 1.3; letter-spacing: -.4px; margin: 0; }
.marketing-video-modal video { display: block; width: 100%; height: auto; max-height: 70dvh; aspect-ratio: 16 / 9; object-fit: contain; background: #000; border-radius: 8px; }
.landing-video-caption { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; color: #e1e7da; font-size: 12px; line-height: 1.7; }
.landing-video-caption strong { color: #f2b282; }
.landing-video-caption a { color: #fff; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.landing-video-status { color: #fff; font-size: 13px; margin-top: 12px; }
.landing-video-status:empty { display: none; }
@media (max-width: 640px) {
  .landing .marketing-video-modal h2 { font-size: 16px; }
  .landing-video-caption { align-items: flex-start; flex-direction: column; }
  .marketing-video-modal video { max-height: 60dvh; }
}

/* Compact public navigation, with links overlaid instead of another header row. */
.landing-mobile-menu { display: none; }
@media (max-width: 900px) {
  .landing-nav { position: relative; z-index: 30; }
  .landing .landing-nav-inner { min-height: 64px; padding-block: 0; flex-wrap: nowrap; gap: 16px; }
  .landing .landing-nav-links, .landing .landing-nav-actions { display: none; }
  .landing-mobile-menu { display: block; }
  .landing-mobile-menu summary { display: flex; align-items: center; justify-content: center; min-width: 92px; min-height: 44px; padding: 8px 12px; border: 1px solid #cbd5c3; border-radius: 8px; color: #202a25; font-size: 14px; cursor: pointer; list-style: none; }
  .landing-mobile-menu summary::-webkit-details-marker { display: none; }
  .landing-mobile-menu summary:focus-visible { outline: 2px solid #49643d; outline-offset: 3px; }
  .landing-menu-close, .landing-mobile-menu[open] .landing-menu-open { display: none; }
  .landing-mobile-menu[open] .landing-menu-close { display: inline; }
  .landing-mobile-panel { position: absolute; top: calc(100% + 8px); right: 20px; width: min(340px, calc(100vw - 40px)); max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; padding: 12px; border: 1px solid #dce3d2; border-radius: 14px; background: #fcfcf8; box-shadow: 0 14px 45px #202a2526; }
  .landing-mobile-panel nav { display: grid; }
  .landing-mobile-panel nav a { display: flex; align-items: center; min-height: 46px; padding: 10px 12px; border-radius: 8px; font-size: 15px; font-weight: 500; }
  .landing-mobile-panel nav a:hover { background: #eef2e6; }
  .landing-mobile-actions { display: flex; gap: 8px; padding-top: 12px; margin-top: 8px; border-top: 1px solid #dce3d2; }
  .landing-mobile-actions .landing-btn { flex: 1; justify-content: center; min-height: 44px; }
}

/* Phone workflows: readable controls, named actions and no sideways table reading. */
.field-task-actions { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
.field-project + .field-project { border-top: 1px solid #e7ecdf; }
.task-card { scroll-margin-top: 76px; }
.project-mobile-nav { display: none; }
@media screen and (max-width: 900px) {
  .main-shell .project-tabs { display: none; }
  .project-mobile-nav { display: block; position: relative; margin-bottom: 24px; }
  .project-mobile-nav summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 48px; padding: 12px; border: 1px solid #cbd5c3; border-radius: 8px; background: white; cursor: pointer; list-style: none; }
  .project-mobile-nav summary::-webkit-details-marker { display: none; }
  .project-mobile-nav nav { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 20; display: grid; padding: 8px; background: white; border: 1px solid #cbd5c3; border-radius: 10px; box-shadow: 0 12px 28px #202a2520; }
  .project-mobile-nav nav a { display: flex; align-items: center; min-height: 48px; padding: 10px 12px; border-radius: 6px; }
  .project-mobile-nav nav a[aria-current="page"] { background: #edf4e8; font-weight: 600; }
}
@media screen and (max-width: 640px) {
  .main-shell, .auth-shell { font-size: 16px; }
  .main-shell .page-content { padding: 20px 16px; }
  .main-shell .page-header { margin-bottom: 20px; }
  .main-shell h1 { font-size: 25px; overflow-wrap: anywhere; }
  .main-shell .panel-body, .main-shell .form-card { padding: 16px; }
  .main-shell .button, .auth-shell .button { min-height: 48px; font-size: 15px; white-space: normal; text-align: center; }
  .main-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .main-shell select, .main-shell textarea,
  .auth-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .auth-shell select { font-size: 16px; min-height: 48px; max-width: 100%; min-width: 0; }
  .main-shell select:not([multiple]):not([size]), .auth-shell select:not([multiple]):not([size]) { height: 48px; }
  .main-shell input[type=checkbox], .auth-shell input[type=checkbox] { width: 22px; height: 22px; flex-shrink: 0; }
  .main-shell label:has(input[type=checkbox]) { min-height: 44px; }
  .main-shell .help, .main-shell .muted, .main-shell .subtitle { font-size: 14px; color: #596653; }
  .main-shell .badge { font-size: 12px; }
  .main-shell .stat { min-width: 0; padding: 14px; }
  .main-shell .stat-value { font-size: 22px; overflow-wrap: anywhere; }
  .main-shell .stat-label, .main-shell .stat-note { font-size: 12px; color: #596653; }
  .main-shell .stats { gap: 10px; }
  .main-shell summary { min-height: 48px; padding-block: 12px; }
  .main-shell .panel-header .link, .main-shell .report-back { display: inline-flex; align-items: center; min-height: 44px; }
  .field-task-actions { display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .field-task-actions .button { width: 100%; }
  .main-shell .task-card h2 { margin-block: 8px; font-size: 20px; overflow-wrap: anywhere; }
  .main-shell .checklist-main { flex-direction: row; }
  .mobile-cards, .mobile-cards tbody, .mobile-cards tr, .mobile-cards td { display: block; width: 100%; }
  .mobile-cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .mobile-cards tr { padding: 16px; border-bottom: 1px solid #dfe4d9; }
  .mobile-cards tr:last-child { border-bottom: 0; }
  .mobile-cards td { border: 0; padding: 5px 0; white-space: normal; overflow-wrap: anywhere; }
  .mobile-cards td[data-label]:not([data-label=""]) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
  .mobile-cards td[data-label]:not([data-label=""])::before { content: attr(data-label); color: #596653; font-size: 14px; font-weight: 400; }
  .mobile-cards td .link { display: inline-flex; align-items: center; min-height: 44px; }
  .mobile-cards td:first-child > a { display: block; padding-block: 8px; font-size: 17px; }
  .mobile-cards td.no-print { display: flex; gap: 20px; align-items: center; }
  .mobile-cards td button { min-height: 44px; padding: 8px; }
}
@media print { .project-mobile-nav { display: none; } }

@media screen and (min-width: 901px) { .project-tabs { flex-wrap: wrap; } }

/* Project file explorer: one accessible link per file, shared grid/list markup. */
.document-explorer { border: 1px solid #dce2d7; border-radius: 14px; background: #fff; overflow: hidden; }
.document-toolbar { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 20px; padding: 20px; }
.document-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.document-filters > div { min-width: 180px; }
.document-view-switch { display: flex; padding: 3px; border: 1px solid #dce2d7; border-radius: 9px; gap: 3px; }
.document-view-switch a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 12px; border-radius: 6px; font-size: 14px; }
.document-view-switch svg { width: 18px; height: 18px; }
.document-view-switch a[aria-current=page] { background: #e8efe3; color: #2d492c; font-weight: 600; }
.document-location { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 14px 20px; border-block: 1px solid #e7ebe2; background: #f8faf5; font-size: 13px; color: #5a6954; }
.document-files { list-style: none; margin: 0; padding: 0; }
.document-files li { min-width: 0; }
.document-entry { min-width: 0; color: inherit; }
.document-entry:hover { background: #f5f8f0; }
.document-entry:focus-visible { outline: 3px solid #647e4e; outline-offset: -3px; }
.document-name { display: flex; align-items: center; gap: 14px; min-width: 0; }
.document-title { min-width: 0; }
.document-title strong { display: block; font-size: 15px; overflow-wrap: anywhere; line-height: 1.5; }
.document-title > span { display: block; margin-top: 5px; font-size: 12px; color: #5a6954; line-height: 1.6; }
.document-icon { position: relative; width: 44px; height: 56px; display: block; flex-shrink: 0; color: #39758a; }
.document-icon svg { width: 100%; height: 100%; }
.document-icon > span { position: absolute; bottom: 1px; left: 0; background: #39758a; color: white; padding: 2px 5px; border-radius: 3px; font-size: 9px; font-weight: 700; letter-spacing: .4px; }
.document-icon-pdf { color: #b95642; }
.document-icon-pdf > span { background: #b95642; }
.document-type, .document-date, .document-size { font-size: 13px; color: #5a6954; }
.document-size { text-align: right; white-space: nowrap; }
.document-mobile-label { display: none; }
.document-files-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; padding: 20px; }
.document-files-grid .document-entry { display: grid; grid-template-columns: 1fr auto; gap: 10px; height: 100%; padding: 20px; border: 1px solid #e0e6db; border-radius: 10px; }
.document-files-grid .document-name { grid-column: 1 / -1; flex-direction: column; align-items: start; gap: 18px; }
.document-files-grid .document-icon { width: 55px; height: 68px; }
.document-files-grid .document-type { display: none; }
.document-files-list .document-entry, .document-list-heading { display: grid; grid-template-columns: minmax(0, 1fr) 70px 120px 85px; align-items: center; gap: 18px; padding: 14px 20px; }
.document-list-heading { background: #fafbf8; color: #5a6954; font-size: 12px; border-bottom: 1px solid #e7ebe2; }
.document-list-heading span:last-child { text-align: right; }
.document-files-list li + li { border-top: 1px solid #e7ebe2; }
.document-footer { border-top: 1px solid #e7ebe2; padding: 14px 20px; font-size: 12px; color: #5a6954; }
@media (max-width: 640px) {
  .document-toolbar { padding: 16px; gap: 14px; }
  .document-filters { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; }
  .document-filters > div { min-width: 0; }
  .document-view-switch { width: 100%; }
  .document-view-switch a { flex: 1; min-height: 48px; }
  .document-files-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; }
  .document-files-grid .document-entry { padding: 12px; grid-template-columns: 1fr; }
  .document-files-grid .document-size { text-align: left; }
  .document-list-heading { display: none; }
  .document-files-list .document-entry { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 16px; }
  .document-files-list .document-name { grid-column: 1 / -1; }
  .document-files-list .document-type { display: none; }
  .document-files-list .document-mobile-label { display: inline; }
  .document-location, .document-footer { padding: 12px 16px; }
}

.document-apply svg { width: 18px; height: 18px; flex-shrink: 0; }
@media (min-width: 641px) {
  .document-toolbar { flex-wrap: nowrap; gap: 16px; }
  .document-filters { flex: 1; min-width: 0; flex-wrap: nowrap; }
  .document-filters > div { flex: 1; min-width: 0; max-width: 220px; }
  .document-filters select { min-width: 0; }
  .document-apply { flex: 0 0 42px; width: 42px; height: 42px; min-height: 42px; padding: 0; }
  .document-apply-label { display: none; }
  .document-view-switch { flex-shrink: 0; height: 42px; }
  .document-view-switch a { min-height: 34px; padding: 6px 8px; }
}
@media (max-width: 640px) { .document-apply { width: 100%; } }

/* Commercial workflows share readable cards on phones and desktop. */
.commercial-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:1rem; }
.commercial-card { display:flex; flex-direction:column; gap:.75rem; min-width:0; overflow-wrap:anywhere; }
.material-photo { width:100%; height:210px; object-fit:contain; border-radius:.75rem; background:#f4f4f5; }
.material-choice { cursor:pointer; }
.material-choice:has(input:checked) { outline:3px solid #15803d; }
.material-choice input[type=radio] { width:22px; height:22px; flex-shrink:0; }

.commercial-panel { padding:1.25rem; overflow-wrap:anywhere; }
@media(max-width:640px) { .commercial-panel { padding:1rem; } }

/* Native accessible picker enhanced with local drag-and-drop; no upload service. */
.upload { min-width:0; }
.upload-drop { position:relative; }
.upload-copy { display:none; }
.upload-ready .upload-drop { border:2px dashed #a8bbaa; border-radius:14px; background:#f4f8f1; transition:background .15s,border-color .15s; }
.upload-ready .upload-copy { display:flex; align-items:center; flex-direction:column; gap:4px; padding:24px 16px; text-align:center; color:#284b35; }
.upload-copy strong { font-size:16px; text-decoration:underline; text-underline-offset:3px; }
.upload-copy span { font-size:14px; }
.upload-copy small { color:#65735f; font-size:12px; margin-top:5px; }
.upload-symbol { width:30px; height:30px; margin-bottom:8px; }
.upload-ready .upload-drop input[type=file] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; padding:0; margin:0; }
.upload-ready .upload-drop:hover,.upload-ready .upload-over { background:#e8f1e3; border-color:#386746; }
.upload-ready .upload-drop:focus-within { outline:3px solid #e7a15f; outline-offset:3px; }
.upload-files { padding:0; list-style:none; margin:0; }
.upload-files li { display:flex; align-items:center; gap:12px; padding:12px; margin-top:8px; border:1px solid #dfe6da; border-radius:10px; background:#fff; }
.upload-files li > span { min-width:0; flex:1; }
.upload-files strong { display:block; overflow-wrap:anywhere; font-size:14px; }
.upload-files small { display:block; color:#65735f; margin-top:3px; }
.upload-files button { min-height:44px; padding:8px 12px; border-radius:8px; background:#edf2e8; color:#284b35; font-weight:600; cursor:pointer; }
.upload-files button:focus-visible { outline:3px solid #e7a15f; }
.upload-message:empty { display:none; }
.upload-message { color:#9b341f; margin-top:10px; overflow-wrap:anywhere; font-size:14px; }
.upload-note { color:#65735f; margin-top:8px; font-size:12px; }
input[type=file]::file-selector-button { background:#284b35; color:#fff; border:0; border-radius:6px; padding:8px 12px; margin-right:12px; cursor:pointer; }

/* Public language controls share the landing navigation's typography and palette. */
.landing-language-menu { position:relative; }
.landing-language-menu summary { display:flex; align-items:center; gap:7px; min-height:44px; padding:0 4px; list-style:none; cursor:pointer; color:#263d2e; font-size:12px; font-weight:600; letter-spacing:.04em; }
.landing-language-menu summary::-webkit-details-marker { display:none; }
.landing-language-menu summary > svg { width:18px; height:18px; }
.landing-language-menu summary > .language-chevron { width:12px; height:12px; }
.landing-language-menu[open] .language-chevron { transform:rotate(180deg); }
.landing-language-menu summary:hover { color:#a4542d; }
.landing-language-menu summary:focus-visible,.landing-language-options button:focus-visible { outline:2px solid #c46c3b; outline-offset:3px; border-radius:4px; }
.landing-language-popover { position:absolute; right:0; top:calc(100% + 8px); width:220px; padding:16px; background:#fafbf6; border:1px solid #d8dfd0; border-radius:10px; box-shadow:0 12px 32px #202a2514; z-index:30; }
.landing-language-options { margin:0; }
.landing-language-options fieldset { border:0; padding:0; margin:0; min-width:0; }
.landing-language-options legend { color:#78846e; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; margin-bottom:8px; padding:0; }
.landing-language-choices { display:grid; gap:4px; }
.landing-language-options button { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-height:44px; border:0; border-radius:5px; padding:8px 10px; background:transparent; color:#263d2e; font:inherit; font-size:13px; text-align:left; cursor:pointer; }
.landing-language-options button:hover { background:#eef1e5; }
.landing-language-options button[aria-pressed=true] { background:#e9eedc; color:#405432; font-weight:600; }
.landing-mobile-panel > .landing-language-options { border-top:1px solid #d8dfd0; margin-top:20px; padding-top:16px; }
.landing-mobile-panel .landing-language-choices { grid-template-columns:1fr 1fr; }
@media(min-width:901px) and (max-width:1100px) { .landing-nav-inner { gap:16px; } .landing-nav-links,.landing-nav-actions { gap:16px; } }

/* Workspace preference lives with navigation, outside the page's work area. */
.workspace-topbar-actions { display:flex; align-items:center; gap:20px; flex-shrink:0; }
.topbar > span:first-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-right:16px; }
.workspace-language { border-left:1px solid #e1e5dc; padding-left:18px; }
.workspace-language .landing-language-menu summary { color:#65735f; }
.workspace-language .landing-language-popover { background:#fff; border-color:#e1e5dc; }
.workspace-mobile-language { margin-top:16px; padding-top:16px; border-top:1px solid #536054; }
.workspace-mobile-language .landing-language-options legend { color:#aebba7; }
.workspace-mobile-language .landing-language-choices { grid-template-columns:1fr 1fr; }
.workspace-mobile-language .landing-language-options button { color:#d8e1d7; }
.workspace-mobile-language .landing-language-options button:hover { background:#334238; }
.workspace-mobile-language .landing-language-options button[aria-pressed=true] { background:#3b4b3d; color:#f0f4e9; }

.workflow-steps { list-style:decimal; padding-left:22px; margin:16px 0; }
.workflow-steps li { padding-left:4px; margin:10px 0; line-height:1.6; }

.button:disabled { opacity:.5; cursor:not-allowed; }

/* Shared-link and sign-in pages keep language beside the brand, outside forms. */
.public-header-inner { max-width:1024px; margin:0 auto; padding:12px 20px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.public-header-actions { display:flex; align-items:center; gap:24px; }
.public-header-tagline { color:#b7c3b8; font-size:12px; }
.public-header .landing-language-menu summary { color:#e5ece2; padding:0 10px; border:1px solid #536054; border-radius:8px; }
.public-header .landing-language-menu summary:hover { background:#334238; color:#fff; }
.public-header .landing-language-popover { max-width:calc(100vw - 40px); }
.public-header + .auth-shell { min-height:calc(100svh - 68px); padding:28px 0; }
@media (max-width:600px) { .public-header-tagline { display:none; } }
