/*
 * Design Dooda unified light greige interface
 * Soft light greige, high-legibility Korean text, restrained status color.
 * Readability comes first: no pure black, no pure white, no decorative blue cast.
 */

:root {
  color-scheme: light;
  --dd-bg: #ece8e0;
  --dd-bg-deep: #e3ddd4;
  --dd-sidebar: #e6e0d7;
  --dd-surface: #f8f5ef;
  --dd-surface-raised: #f0ebe3;
  --dd-surface-soft: #e9e2d9;
  --dd-control: #f5f1ea;
  --dd-border: #c8c0b4;
  --dd-border-strong: #ada293;
  --dd-text: #2c2925;
  --dd-text-secondary: #514b45;
  --dd-text-muted: #6f675e;
  --dd-accent: #765c45;
  --dd-accent-strong: #5e4735;
  --dd-accent-soft: #e2d6c8;
  --dd-success: #35624e;
  --dd-success-soft: #dce9e1;
  --dd-warning: #805515;
  --dd-warning-soft: #f3e6cc;
  --dd-danger: #913f3a;
  --dd-danger-soft: #f3dedc;
  --dd-radius-sm: 9px;
  --dd-radius: 13px;
  --dd-radius-lg: 18px;
  --dd-shadow: 0 12px 30px rgba(76, 60, 47, 0.16);

  /* Existing app token compatibility */
  --bg: var(--dd-bg);
  --paper: var(--dd-bg);
  --panel: var(--dd-surface);
  --soft: var(--dd-surface-raised);
  --input: var(--dd-control);
  --ink: var(--dd-text);
  --muted: var(--dd-text-muted);
  --line: var(--dd-border);
  --navy: var(--dd-text-secondary);
  --navy-deep: var(--dd-text);
  --blue: var(--dd-accent);
  --blue-soft: var(--dd-accent-soft);
  --green: var(--dd-success);
  --green-soft: var(--dd-success-soft);
  --success: var(--dd-success);
  --ok: var(--dd-success);
  --amber: var(--dd-warning);
  --amber-soft: var(--dd-warning-soft);
  --red: var(--dd-danger);
  --red-soft: var(--dd-danger-soft);
  --focus: var(--dd-accent);
  --shadow: var(--dd-shadow);

  font-family:
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    "Malgun Gothic",
    "Apple SD Gothic Neo",
    sans-serif;
}

html {
  background: var(--dd-bg);
  font-size: 17px;
}

body,
.pin-gate,
.auth-gate {
  color: var(--dd-text);
  background: var(--dd-bg);
  font-family: inherit;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: -0.012em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body::selection,
input::selection,
textarea::selection {
  color: var(--dd-bg-deep);
  background: #765c45;
}

h1,
h2,
h3,
h4,
strong,
b {
  color: var(--dd-text);
}

p,
.muted {
  color: var(--dd-text-secondary);
}

small {
  color: var(--dd-text-muted);
  font-size: 0.9rem;
}

button,
input,
select,
textarea {
  color: var(--dd-text);
  font-family: inherit;
  font-size: 1rem;
}

input,
select,
textarea {
  border-color: var(--dd-border-strong);
  background: var(--dd-control);
  color: var(--dd-text);
  accent-color: var(--dd-accent-strong);
}

input::placeholder,
textarea::placeholder {
  color: #6f675e;
  opacity: 1;
}

button,
a,
summary {
  -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(118, 92, 69, 0.5);
  outline-offset: 2px;
}

dialog::backdrop {
  background: rgba(0, 0, 0, 0.48);
  backdrop-filter: blur(3px);
}

* {
  scrollbar-color: #d4d0cb var(--dd-bg-deep);
}

/* Shared sign-in and account controls */
.auth-card,
.pin-card,
.access-panel {
  border: 1px solid var(--dd-border);
  border-radius: var(--dd-radius-lg);
  background: var(--dd-surface);
  color: var(--dd-text);
  box-shadow: var(--dd-shadow);
}

.brand-mark {
  border: 1px solid #dad6ce;
  border-radius: 10px;
  background: #765c45;
  color: var(--dd-text);
  box-shadow: none;
}

.auth-field,
.login-user-picker legend,
.access-form label > span {
  color: var(--dd-text-secondary);
  font-size: 0.9rem;
}

.auth-help,
.login-help,
.login-mode-hint {
  color: var(--dd-text-secondary);
  font-size: 0.95rem;
  line-height: 1.65;
}

.login-user-btn,
.text-button,
.text-btn,
.owner-preview-grid a,
.owner-reset-actions button,
.quiet-btn,
.icon-text-btn,
.back-btn,
.secondary-btn,
.file-btn,
.icon-btn,
.dialog-close,
.mini-btn,
.tiny-btn,
.drag-handle {
  border-color: var(--dd-border-strong);
  background: var(--dd-surface-raised);
  color: var(--dd-text-secondary);
  box-shadow: none;
}

.login-user-btn:hover,
.text-button:hover,
.text-btn:hover,
.owner-preview-grid a:hover,
.owner-reset-actions button:hover,
.quiet-btn:hover,
.icon-text-btn:hover,
.back-btn:hover,
.secondary-btn:hover,
.file-btn:hover,
.icon-btn:hover,
.dialog-close:hover,
.mini-btn:hover,
.tiny-btn:hover {
  border-color: #ada293;
  background: var(--dd-surface-soft);
  color: var(--dd-text);
}

.login-user-btn.is-selected,
.login-user-btn[aria-pressed="true"],
.access-form .login-user-btn.is-selected,
.access-form .login-user-btn[aria-pressed="true"],
.primary-btn,
.primary-mini,
.sidebar-toggle,
.tab.active,
.filter-chip.active,
.mode-btn.active {
  border-color: var(--dd-accent);
  background: #765c45;
  color: var(--dd-text);
}

.auth-card button[type="submit"],
.pin-card button[type="submit"],
.access-form button[type="submit"],
#loginBtn,
#blockedLogoutBtn {
  border: 1px solid var(--dd-accent);
  background: #765c45;
  color: var(--dd-text);
  box-shadow: none;
}

.access-form .login-user-btn,
.auth-card .login-user-btn,
.pin-card .login-user-btn {
  border-color: var(--dd-border-strong);
  background: var(--dd-surface-raised);
  color: var(--dd-text-secondary);
  box-shadow: none;
}

.access-form .login-user-btn:hover,
.auth-card .login-user-btn:hover,
.pin-card .login-user-btn:hover {
  border-color: #ada293;
  background: var(--dd-surface-soft);
  color: var(--dd-text);
}

.access-form .login-user-btn.is-selected,
.access-form .login-user-btn[aria-pressed="true"],
.auth-card .login-user-btn.is-selected,
.auth-card .login-user-btn[aria-pressed="true"],
.pin-card .login-user-btn.is-selected,
.pin-card .login-user-btn[aria-pressed="true"] {
  border-color: var(--dd-accent);
  background: #765c45;
  color: var(--dd-text);
}

.role-badge,
.revision-badge {
  border: 1px solid #dcd7d0 !important;
  background: #e3e0dd !important;
  color: #705b2e !important;
}

/* Main portal */
.portal-shell {
  width: min(1160px, calc(100% - 40px));
  padding-top: 34px;
}

.portal-header {
  border-bottom-color: var(--dd-border);
}

.portal-header h1,
.auth-card h1 {
  color: var(--dd-text);
}

.eyebrow,
.app-number {
  color: #6c5932;
}

.intro,
.app-card p,
.owner-preview-grid a small {
  color: var(--dd-text-secondary);
  font-size: 1rem;
  line-height: 1.7;
}

.app-grid {
  gap: 16px;
}

.app-card,
.owner-admin {
  border: 1px solid var(--dd-border);
  border-radius: var(--dd-radius-lg);
  background: var(--dd-surface);
  color: var(--dd-text);
  box-shadow: 0 8px 24px rgba(76, 60, 47, 0.16);
}

.app-card {
  min-height: 190px;
  padding: 28px;
}

.app-card h2 {
  margin-top: 26px;
  color: var(--dd-text);
  font-size: 1.45rem;
  letter-spacing: -0.025em;
}

.app-card:hover {
  border-color: #ada293;
  background: var(--dd-surface-raised);
  box-shadow: var(--dd-shadow);
}

.owner-admin {
  padding: 26px;
}

.owner-preview-grid a,
.owner-reset-actions button {
  border-radius: 10px;
  background: var(--dd-surface-raised);
}

.owner-pin-note {
  border-color: #dedad3;
  background: var(--dd-warning-soft);
  color: #755c29;
}

.owner-pin-note p {
  color: #685736;
}

/* Attendance */
.shell {
  padding: 28px 20px 56px;
}

.app {
  width: min(1080px, 100%);
}

.topbar {
  padding: 6px 0 20px;
}

.topbar h1 {
  font-size: 1.75rem;
  letter-spacing: -0.03em;
}

.topbar p,
#todayText {
  color: var(--dd-text-secondary);
  font-size: 1rem;
}

.view-tabs {
  height: 54px;
  padding: 4px;
  border-color: var(--dd-border);
  border-radius: var(--dd-radius);
  background: var(--dd-control);
}

.view-tab {
  border-radius: 9px;
  color: var(--dd-text-muted);
  font-size: 1rem;
}

.view-tab.active {
  border-color: transparent;
  background: var(--dd-surface-soft);
  color: var(--dd-text);
  box-shadow: none;
}

.status-board,
.identity-section,
.action-section,
.policy-box,
.admin-head,
.admin-summary,
.admin-report-card,
.form-topbar,
.form-fields,
.late-report-section,
.detail-dialog {
  border: 1px solid var(--dd-border);
  border-radius: var(--dd-radius-lg);
  background: var(--dd-surface);
  color: var(--dd-text);
  box-shadow: 0 8px 24px rgba(76, 60, 47, 0.14);
}

.status-board,
.identity-section,
.action-section,
.admin-head,
.form-topbar,
.form-fields {
  padding: 22px;
}

.section-head h2,
.identity-section h2,
.action-section h2,
.policy-box h2,
.late-report-section h2 {
  color: var(--dd-text);
  font-size: 1.35rem;
  letter-spacing: -0.02em;
}

.section-head p,
.identity-section p,
.action-section p,
.late-report-section p {
  color: var(--dd-text-secondary);
  font-size: 1rem;
  line-height: 1.65;
}

.today-status-list {
  gap: 10px;
  margin-top: 18px;
}

.today-status-row {
  gap: 10px;
}

.status-name {
  color: var(--dd-text);
  font-size: 1rem;
}

.status-cell {
  min-height: 66px;
  padding: 11px 13px;
  border-color: var(--dd-border);
  border-radius: 10px;
  background: var(--dd-control);
  color: var(--dd-text-secondary);
}

.status-cell strong {
  color: var(--dd-text);
  font-size: 0.95rem;
}

.status-cell small {
  color: var(--dd-text-muted);
  font-size: 0.86rem;
}

.status-cell.done {
  border-color: #d0dcd6;
  background: var(--dd-success-soft);
  color: #36684f;
}

.status-cell.done strong,
.status-cell.done small {
  color: #36684f;
}

.status-cell.alert {
  border-color: #dad0cf;
  background: var(--dd-danger-soft);
}

.staff-choice,
.choice-button,
.summary-box,
.empty-state,
.date-control input,
.late-date-control input,
.form-field input,
.form-field textarea,
.date-control select {
  border-color: var(--dd-border-strong);
  background: var(--dd-control);
  color: var(--dd-text);
}

.staff-choice.selected,
.choice-button.selected {
  border-color: var(--dd-accent);
  background: var(--dd-accent-soft);
  color: #745b2a;
  box-shadow: inset 0 0 0 1px rgba(118, 92, 69, 0.3);
}

.choice-button.positive.selected {
  border-color: var(--dd-success);
  background: var(--dd-success-soft);
  color: #366851;
}

.choice-button.danger.selected {
  border-color: var(--dd-danger);
  background: var(--dd-danger-soft);
  color: #752f29;
}

.report-actions {
  gap: 12px;
}

.report-action,
.report-action.morning,
.report-action.evening {
  min-height: 118px;
  border: 1px solid var(--dd-border);
  border-radius: var(--dd-radius);
  background: var(--dd-surface-raised);
  color: var(--dd-text);
  box-shadow: none;
}

.report-action.morning {
  border-left: 3px solid #63563b;
}

.report-action.evening {
  border-left: 3px solid var(--dd-warning);
}

.report-action .action-kicker {
  color: var(--dd-text-muted);
}

.report-action.morning strong {
  color: var(--dd-text);
}

.report-action.evening strong {
  color: #755b29;
}

.report-action small {
  color: var(--dd-text-secondary);
}

.report-action.done {
  border-color: #d0dcd6;
  box-shadow: inset 0 0 0 1px rgba(53, 98, 78, 0.16);
}

.pending-review-banner,
.late-report-card,
.late-form-banner,
.notice-field {
  border-color: #ddd9d2;
  border-radius: var(--dd-radius);
  background: var(--dd-warning-soft);
  color: #755b29;
}

.pending-review-banner span,
.late-report-card span {
  color: #685636;
}

.policy-box {
  padding-bottom: 8px;
}

.policy-box h2 {
  padding: 18px 20px 8px;
}

.policy-box p {
  padding: 0 20px 12px;
  color: var(--dd-text-secondary);
  font-size: 1rem;
}

.policy-box ol {
  padding: 0 22px 20px 42px;
  color: var(--dd-text-secondary);
  font-size: 0.98rem;
  line-height: 1.85;
}

.pending-review-count,
.report-state {
  background: var(--dd-warning-soft);
  color: var(--dd-warning);
}

.report-state.reviewed {
  background: var(--dd-success-soft);
  color: var(--dd-success);
}

.form-field.missing,
.form-error {
  border-color: #dad0cf;
  background: var(--dd-danger-soft);
  color: #752f29;
}

.form-nav {
  background: linear-gradient(to bottom, rgba(236, 232, 224, 0), var(--dd-bg) 28%);
}

.toast {
  border-color: #ada293;
  background: #e9e2d9;
  color: var(--dd-text);
}

/* Checklist */
.app-shell,
.workspace {
  background: var(--dd-bg);
}

.app-shell.sidebar-collapsed .workspace {
  padding-left: 54px;
}

.sidebar {
  border-color: var(--dd-border);
  background: var(--dd-sidebar);
  color: var(--dd-text);
}

.profile-bar,
.progress-strip,
.group-table,
.summary-tile,
.master-menu-card,
.construction-sequence-panel,
.process-quick-panel,
.extra-work-entry,
.process-manager,
.schedule-panel,
.check-order-overview,
.dynamic-section,
.field-card,
.completion-nav-card,
.completion-section,
.completion-table-wrap,
.completion-defect-entry,
.master-card,
.empty-card,
.order-overview-row,
.flow-schedule-list,
dialog,
.dialog-card {
  border-color: var(--dd-border);
  background: var(--dd-surface);
  color: var(--dd-text);
  box-shadow: none;
}

.toolbar h2,
.master-back-bar h3,
.task-process-heading h3,
.schedule-heading h3,
.process-manager-heading h3,
.dynamic-heading h3,
.dialog-card h3 {
  color: var(--dd-text);
}

.toolbar p,
.master-back-bar p,
.task-process-heading p,
.schedule-heading p,
.process-manager-heading p,
.empty-card,
.empty-projects p {
  color: var(--dd-text-secondary);
}

.master-back-bar,
.task-process-heading,
.heading-note,
.schedule-guides,
.flow-quick-add,
.flow-schedule-header,
.flow-schedule-row,
.dynamic-heading,
.completion-section-heading,
.completion-table thead th,
.order-mini-card,
.completion-notice {
  border-color: var(--dd-border);
  background: var(--dd-surface-raised);
  color: var(--dd-text);
}

.master-card {
  gap: 12px;
  padding: 20px;
  border-radius: var(--dd-radius);
  background: var(--dd-surface);
  box-shadow: 0 6px 18px rgba(76, 60, 47, 0.1);
}

.master-card h3 {
  order: 1;
  color: var(--dd-text);
  font-size: 1.25rem;
  line-height: 1.4;
  letter-spacing: -0.02em;
}

.card-confirmation {
  order: 2;
  color: var(--dd-text-secondary);
  font-size: 1.03rem;
  line-height: 1.75;
}

.card-meta {
  order: 3;
}

.card-statuses {
  order: 4;
}

.quick-actions {
  order: 5;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 8px;
}

.master-card-detail,
.card-order-details {
  order: 6;
}

.card-tag {
  min-height: 28px;
  padding: 1px 10px;
  border-color: transparent;
  background: var(--dd-surface-soft);
  color: #514b45;
  font-size: 0.82rem;
  font-weight: 750;
}

.card-meta .drag-handle {
  border-color: var(--dd-border);
  background: var(--dd-control);
  color: var(--dd-text-muted);
}

.status-badge {
  min-height: 28px;
  padding: 1px 10px;
  font-size: 0.82rem;
}

.status-badge.ok,
.strong-badge {
  border-color: #d1dcd7;
  background: var(--dd-success-soft);
  color: #396550;
}

.status-badge.warn {
  border-color: #ddd9d2;
  background: var(--dd-warning-soft);
  color: #755b29;
}

.status-badge.danger {
  border-color: #dacfcf;
  background: var(--dd-danger-soft);
  color: #742f2a;
}

.quick-btn,
.secondary-btn,
.file-btn,
.choice-btn,
.filter-chip,
.mode-btn,
.sequence-check,
.extra-check-btn,
.flow-quick-add-btn,
.round-chip,
.completion-defect-toggle,
.completion-defect-cost-btn {
  border-color: var(--dd-border-strong);
  background: var(--dd-surface-raised);
  color: var(--dd-text-secondary);
}

.quick-btn {
  min-height: 46px;
  border-radius: 9px;
  font-size: 0.98rem;
}

.quick-btn.primary {
  border-color: #d8d3ca;
  background: #765c45;
  color: #70592e;
}

.quick-btn.done,
.sequence-check.active,
.extra-check-btn.done,
.completion-defect-toggle.done {
  border-color: #d0dcd6;
  background: var(--dd-success-soft);
  color: #38664f;
}

.quick-btn.danger-btn,
.danger-btn {
  border-color: #dcd1d0;
  background: #e7e1e0;
  color: #752f29;
}

.quick-btn:disabled,
.tiny-btn:disabled,
.muted-badge,
.status-badge.muted {
  border-color: #dfdbd8;
  background: #f8f5ef;
  color: #6f675e;
  opacity: 0.8;
}

.quick-btn:hover,
.secondary-btn:hover,
.file-btn:hover,
.choice-btn:hover,
.filter-chip:hover,
.mode-btn:hover,
.tiny-btn:hover {
  border-color: #ada293;
  background: var(--dd-surface-soft);
  color: var(--dd-text);
}

.progress-bar,
.progress-track {
  background: #e9e2d9;
}

select,
input,
textarea,
.field-input,
.process-add-input,
.process-name-edit,
.schedule-name-input,
.dynamic-table input,
.dynamic-table select,
.dynamic-table textarea,
.detail-field select,
.detail-field input,
.detail-field textarea {
  border-color: var(--dd-border-strong);
  background: var(--dd-control);
  color: var(--dd-text);
}

/* Estimate */
.sections-panel-head,
.library-head,
.library-group-head,
.library-row,
.library-row-edit,
.library-edit-actions,
.sections-panel .section-head,
.item-grid-head {
  border-color: var(--dd-border);
  background: var(--dd-surface-raised);
  color: var(--dd-text);
}

.library-panel,
.sections-panel,
.section,
.total-strip div,
.workflow-panel,
.export-choice,
.trash-item {
  border-color: var(--dd-border);
  background: var(--dd-surface);
  color: var(--dd-text);
}

.library-panel,
.section,
.pin-card,
dialog {
  box-shadow: 0 8px 24px rgba(76, 60, 47, 0.15);
}

.sections-panel-head,
.sections-panel .section-head {
  border-radius: 10px;
}

.section {
  border-radius: var(--dd-radius);
  overflow: hidden;
}

.section-name,
.library-title-line strong,
.sections-panel-head strong {
  color: var(--dd-text);
}

.section-total span,
.section-total span:nth-child(2),
.section-total span:nth-child(3) {
  border-color: #c8c0b4 !important;
  background: #f0ebe3 !important;
  color: var(--dd-text-secondary) !important;
}

.section-total span:nth-child(2) {
  color: #755b29 !important;
}

.section-total span:nth-child(3) {
  color: #3b6350 !important;
}

.item-grid-head,
.estimate-item-main {
  display: grid;
  grid-template-columns:
    42px
    minmax(220px, 1.8fr)
    minmax(110px, 0.8fr)
    64px
    72px
    116px
    126px
    108px
    86px;
  gap: 9px;
  align-items: center;
  min-width: 1050px;
  padding: 10px 12px;
}

.item-grid-head {
  border-bottom: 1px solid var(--dd-border);
  color: var(--dd-text-muted);
  font-size: 0.84rem;
  font-weight: 700;
}

.estimate-item-row {
  border: 0;
  border-bottom: 1px solid #e1deda;
  background: var(--dd-surface);
}

.estimate-item-row:last-child {
  border-bottom: 0;
}

.estimate-item-main {
  background: var(--dd-surface);
}

.estimate-item-main:hover {
  background: #f0ebe3;
}

.estimate-item-main .item-input-field {
  min-width: 0;
}

.estimate-item-main .item-input-label {
  display: none;
}

.estimate-item-main input {
  width: 100%;
  min-height: 38px;
  border-color: #c8c0b4;
  border-radius: 8px;
  background: var(--dd-control);
  color: var(--dd-text);
  font-size: 0.98rem;
}

.estimate-item-main input[data-field="name"] {
  font-weight: 800;
}

.line-cost,
.line-quote,
.line-quote-material,
.line-quote-labor,
.line-margin {
  min-height: 38px;
  border: 1px solid #c8c0b4 !important;
  border-radius: 8px;
  background: #f0ebe3 !important;
  color: var(--dd-text-secondary) !important;
  font-size: 0.94rem;
  font-variant-numeric: tabular-nums;
}

.estimate-item-main .line-quote {
  border-color: #ddd9d2 !important;
  background: #e5e2df !important;
  color: #755b29 !important;
}

.estimate-item-main .line-margin {
  border-color: #d4d0cb !important;
  background: #e4e2df !important;
  color: #3c624f !important;
}

.item-detail-toggle {
  min-height: 38px;
  border: 1px solid var(--dd-border-strong);
  border-radius: 8px;
  background: var(--dd-surface-raised);
  color: var(--dd-text-secondary);
  font-weight: 800;
}

.item-detail-toggle[aria-expanded="true"] {
  border-color: #d8d3cc;
  background: var(--dd-accent-soft);
  color: #6f5a2f;
}

.estimate-item-detail {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr)) repeat(2, minmax(120px, 0.9fr)) minmax(180px, 1.4fr) auto;
  gap: 10px;
  align-items: end;
  padding: 14px 16px 16px 58px;
  border-top: 1px solid #e0ddda;
  background: #e6e0d7;
}

.estimate-item-detail[hidden] {
  display: none;
}

.estimate-item-detail .item-input-label {
  display: block;
  margin-bottom: 5px;
  color: var(--dd-text-muted);
  font-size: 0.84rem;
}

.estimate-item-detail input {
  width: 100%;
  min-height: 40px;
  border-color: var(--dd-border-strong);
  border-radius: 8px;
  background: var(--dd-control);
}

.estimate-item-detail .line-quote-material,
.estimate-item-detail .line-quote-labor {
  display: grid;
  align-content: center;
  justify-content: start;
  min-height: 60px;
}

.estimate-item-detail .line-quote-material::before,
.estimate-item-detail .line-quote-labor::before {
  display: block;
  margin-bottom: 2px;
  color: var(--dd-text-muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.estimate-item-detail .item-actions {
  display: flex;
  align-items: stretch;
  gap: 6px;
}

.total-strip {
  border-color: var(--dd-border);
  background: var(--dd-border);
  box-shadow: 0 8px 24px rgba(76, 60, 47, 0.13);
}

.total-strip .grand,
.library-title-memo,
.library-check .library-internal-memo,
.library-memo-chip,
.library-quote-chip {
  border-color: #ddd9d2 !important;
  background: var(--dd-warning-soft) !important;
  color: #755b29 !important;
}

.internal-export {
  border-color: #dcd1d0;
  background: var(--dd-danger-soft);
}

.internal-export p {
  color: #74312a;
}

@media (max-width: 900px) {
  .portal-shell {
    width: min(100% - 24px, 1160px);
  }

  .status-board,
  .identity-section,
  .action-section,
  .admin-head,
  .form-topbar,
  .form-fields {
    padding: 18px;
  }

  .today-status-row {
    grid-template-columns: 84px minmax(0, 1fr);
  }

  .today-status-row .status-cell:last-child {
    grid-column: 2;
  }

  .quick-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .item-grid-head {
    display: none;
  }

  .estimate-item-main {
    grid-template-columns: 38px minmax(0, 1fr) 84px 92px;
    grid-template-areas:
      "move name quote detail"
      ". spec cost margin"
      ". unit qty margin";
    min-width: 0;
    gap: 8px;
    padding: 14px;
  }

  .estimate-item-main .item-drag-handle {
    grid-area: move;
  }

  .estimate-item-main .item-input-field:has(input[data-field="name"]) {
    grid-area: name;
  }

  .estimate-item-main .item-input-field:has(input[data-field="spec"]) {
    grid-area: spec;
  }

  .estimate-item-main .item-input-field:has(input[data-field="unit"]) {
    grid-area: unit;
  }

  .estimate-item-main .item-input-field:has(input[data-field="qty"]) {
    grid-area: qty;
  }

  .estimate-item-main .line-cost {
    grid-area: cost;
  }

  .estimate-item-main .line-quote {
    grid-area: quote;
  }

  .estimate-item-main .line-margin {
    grid-area: margin;
    align-self: stretch;
  }

  .estimate-item-main .item-detail-toggle {
    grid-area: detail;
  }

  .estimate-item-main .item-input-label,
  .estimate-item-main .line-cost::before,
  .estimate-item-main .line-quote::before,
  .estimate-item-main .line-margin::before {
    display: block;
  }

  .estimate-item-main .line-cost,
  .estimate-item-main .line-quote,
  .estimate-item-main .line-margin {
    display: grid;
    align-content: center;
    justify-content: start;
    padding: 7px 9px;
  }

  .estimate-item-main .line-cost::before,
  .estimate-item-main .line-quote::before,
  .estimate-item-main .line-margin::before {
    margin-bottom: 2px;
    color: var(--dd-text-muted);
    font-size: 0.78rem;
    font-weight: 700;
  }

  .estimate-item-detail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 14px;
  }

  .estimate-item-detail .item-input-field:has(input[data-field="note"]),
  .estimate-item-detail .item-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  html {
    font-size: 16px;
  }

  .shell {
    padding: 16px 12px 40px;
  }

  .portal-shell {
    width: min(100% - 20px, 1160px);
  }

  .app-card,
  .owner-admin {
    padding: 20px;
  }

  .status-board,
  .identity-section,
  .action-section,
  .admin-head,
  .form-topbar,
  .form-fields {
    padding: 16px;
  }

  .today-status-row {
    grid-template-columns: 1fr;
  }

  .today-status-row .status-cell:last-child {
    grid-column: auto;
  }

  .status-name {
    padding: 8px 2px 2px;
  }

  .report-actions {
    grid-template-columns: 1fr;
  }

  .quick-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .app-shell.sidebar-collapsed .workspace {
    padding-left: 46px;
  }

  .master-card {
    padding: 16px;
  }

  .master-card h3 {
    font-size: 1.15rem;
  }

  .card-confirmation {
    font-size: 0.95rem;
  }

  .estimate-item-main {
    grid-template-columns: minmax(0, 1fr) 82px;
    grid-template-areas:
      "name detail"
      "spec spec"
      "unit qty"
      "cost quote"
      "margin margin";
  }

  .estimate-item-main .item-drag-handle {
    display: none;
  }

  .estimate-item-main .line-margin {
    min-height: 44px;
  }

  .estimate-item-detail {
    grid-template-columns: 1fr;
  }

  .estimate-item-detail .item-input-field:has(input[data-field="note"]),
  .estimate-item-detail .item-actions {
    grid-column: auto;
  }
}

/*
 * v1.7.1 neutral-surface cleanup
 * Legacy screen styles used higher-specificity blue/navy rules for ordinary
 * controls. Keep semantic success/warning/danger colors, but make every
 * non-semantic surface a warm neutral greige.
 */

:root {
  --dd-bg: #ece8e0;
  --dd-bg-deep: #e3ddd4;
  --dd-sidebar: #e6e0d7;
  --dd-surface: #f8f5ef;
  --dd-surface-raised: #f0ebe3;
  --dd-surface-soft: #e9e2d9;
  --dd-control: #f5f1ea;
  --dd-border: #c8c0b4;
  --dd-border-strong: #ada293;
  --dd-text: #2c2925;
  --dd-text-secondary: #514b45;
  --dd-text-muted: #6f675e;
  --dd-accent: #765c45;
  --dd-accent-strong: #5e4735;
  --dd-accent-soft: #e2d6c8;

  /* Override every legacy blue-compatible token with a neutral value. */
  --bg: var(--dd-bg);
  --paper: var(--dd-bg);
  --panel: var(--dd-surface);
  --soft: var(--dd-surface-raised);
  --input: var(--dd-control);
  --ink: var(--dd-text);
  --muted: var(--dd-text-muted);
  --line: var(--dd-border);
  --navy: var(--dd-text-secondary);
  --navy-deep: var(--dd-text);
  --blue: var(--dd-accent);
  --blue-soft: var(--dd-accent-soft);
  --focus: var(--dd-accent);
}

body,
.app-shell,
.workspace,
.pin-gate,
.auth-gate {
  background: var(--dd-bg) !important;
}

/* Neutral cards and rows that retained old navy declarations. */
.construction-sequence-step,
.process-manage-row,
.flow-schedule-header,
.flow-schedule-row,
.flow-round-label,
.schedule-name-label,
.round-chip.notion,
.profile-bar,
.master-back-bar,
.task-process-heading,
.heading-note,
.schedule-guides,
.flow-quick-add,
.dynamic-heading,
.completion-section-heading,
.completion-table thead th,
.completion-finish-topic-row th,
.order-mini-card,
.completion-notice,
.library-head,
.library-group-head,
.library-row,
.library-row-edit,
.library-edit-actions,
.sections-panel-head,
.sections-panel .section-head,
.item-grid-head {
  border-color: var(--dd-border) !important;
  background: var(--dd-surface-raised) !important;
  color: var(--dd-text) !important;
}

.construction-sequence-step,
.process-manage-row,
.flow-schedule-row,
.library-row,
.estimate-item-row {
  box-shadow: none !important;
}

.construction-sequence-step:not(:last-child)::after {
  color: var(--dd-text-muted) !important;
}

.sequence-main-btn {
  background: transparent !important;
  color: var(--dd-text) !important;
}

.sequence-main-btn:hover,
.estimate-item-main:hover {
  background: var(--dd-surface-soft) !important;
}

.sequence-order {
  border: 1px solid #d8d3cb !important;
  background: #765c45 !important;
  color: #755c29 !important;
}

.sequence-mini-actions {
  border-top-color: var(--dd-border) !important;
  background: var(--dd-control) !important;
}

.sequence-check,
.round-chip,
.round-chip.notion,
.flow-quick-add-btn,
.drag-handle,
.tiny-btn,
.quick-btn,
.secondary-btn,
.file-btn,
.icon-btn,
.choice-btn,
.filter-chip,
.mode-btn,
.item-detail-toggle {
  border-color: var(--dd-border-strong) !important;
  background: var(--dd-control) !important;
  color: var(--dd-text-secondary) !important;
}

.sequence-check + .sequence-check {
  border-left-color: var(--dd-border) !important;
}

.sequence-check:hover,
.round-chip:hover,
.flow-quick-add-btn:hover,
.drag-handle:hover,
.tiny-btn:hover,
.quick-btn:hover,
.secondary-btn:hover,
.file-btn:hover,
.icon-btn:hover,
.choice-btn:hover,
.filter-chip:hover,
.mode-btn:hover,
.item-detail-toggle:hover {
  border-color: #cec9c4 !important;
  background: var(--dd-surface-soft) !important;
  color: var(--dd-text) !important;
}

/* Completed schedule actions stay green; Notion completion uses warm gold. */
.sequence-check.active,
.round-chip.active,
.flow-check-toggle.active,
.quick-btn.done,
.extra-check-btn.done,
.completion-defect-toggle.done {
  border-color: #cedad3 !important;
  background: var(--dd-success-soft) !important;
  color: #39654d !important;
}

.sequence-check.notion.active,
.round-chip.notion.active {
  border-color: #d8d4cc !important;
  background: var(--dd-accent-soft) !important;
  color: #755d29 !important;
}

.flow-check-toggle span,
.extra-check-btn span,
.completion-defect-toggle span {
  border-color: var(--dd-border-strong) !important;
  background: #edebe9 !important;
}

.sequence-check.active span,
.round-chip.active span,
.flow-check-toggle.active span,
.extra-check-btn.done span,
.completion-defect-toggle.done span {
  border-color: #cbd8d1 !important;
  background: #d2dfd9 !important;
  color: #fffaf4 !important;
}

.sequence-check.notion.active span,
.round-chip.notion.active span {
  border-color: #786c54 !important;
  background: #765c45 !important;
  color: #fffaf4 !important;
}

/* All schedule rounds are labels, not statuses, so they use one calm tone. */
.flow-round-label,
.round-tone-1,
.round-tone-2,
.round-tone-3,
.round-tone-4,
.round-tone-5,
.round-tone-6,
.round-tone-7,
.round-tone-8 {
  border-color: #d4cfca !important;
  background: #e3e0dd !important;
  color: #6b5633 !important;
}

.process-add-input,
.process-name-edit,
.flow-schedule-row select,
.flow-schedule-row input,
.schedule-name-input,
.section-name,
.library-row-edit input,
.estimate-item-main input,
.estimate-item-detail input,
select,
input,
textarea {
  border-color: var(--dd-border-strong) !important;
  background: var(--dd-control) !important;
  color: var(--dd-text) !important;
}

input::placeholder,
textarea::placeholder {
  color: #6f675e !important;
}

/* Estimate library: ordinary information cells must never look like blue tags. */
.library-detail-grid small,
.library-public-note {
  border-color: #dbd7d3 !important;
  background: #e6e3e0 !important;
  color: var(--dd-text-secondary) !important;
}

.library-detail-grid b,
.library-public-note b {
  color: var(--dd-text) !important;
}

.library-date-chip,
.line-cost,
.status-badge,
.revision-badge,
.role-badge {
  border-color: #d5d1cc !important;
  background: #e4e1de !important;
  color: #60523e !important;
}

.library-quote-chip,
.library-memo-chip,
.library-title-memo,
.library-check .library-internal-memo,
.line-quote,
.line-quote-material,
.line-quote-labor {
  border-color: #ddd9d1 !important;
  background: var(--dd-warning-soft) !important;
  color: #755b29 !important;
}

.line-margin,
.status-badge.ok,
.strong-badge,
.status-badge[data-status="approved"],
.restore-state.cloud-restored {
  border-color: #cedad3 !important;
  background: var(--dd-success-soft) !important;
  color: #39654d !important;
}

.status-badge.warn,
.status-badge[data-status="review_requested"],
.restore-state {
  border-color: #ddd9d1 !important;
  background: var(--dd-warning-soft) !important;
  color: #755b29 !important;
}

.status-badge.danger,
.danger-btn,
.tiny-btn.danger {
  border-color: #dacfcf !important;
  background: var(--dd-danger-soft) !important;
  color: #752f29 !important;
}

.status-badge.muted,
.status-badge[data-status="archived"],
.process-manage-row.excluded {
  border-color: #dcd8d4 !important;
  background: #e7e4e2 !important;
  color: #766b60 !important;
}

.primary-btn,
.primary-mini,
.sidebar-toggle,
.tab.active,
.filter-chip.active,
.mode-btn.active,
.group-heading,
.master-nav-actions .tiny-btn.active,
.secondary-btn.active,
.quick-btn.primary,
.brand-mark,
.login-user-btn.is-selected,
.login-user-btn[aria-pressed="true"] {
  border-color: #d8d3cb !important;
  background: #765c45 !important;
  color: #755c29 !important;
}

.draggable-card.move-selected,
.completion-draggable-row.move-selected {
  outline-color: var(--dd-accent) !important;
}

.draggable-card.drop-before,
.completion-draggable-row.drop-before {
  box-shadow: 0 -4px 0 var(--dd-accent) !important;
}

.draggable-card.drop-after,
.completion-draggable-row.drop-after {
  box-shadow: 0 4px 0 var(--dd-accent) !important;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline-color: rgba(118, 92, 69, 0.58) !important;
}


/* v2.3.2 selected theme: C. Light Greige + Taupe */
:root {
  color-scheme: light;
  --dd-bg: #ece8e0;
  --dd-bg-deep: #e3ddd4;
  --dd-sidebar: #e6e0d7;
  --dd-surface: #f8f5ef;
  --dd-surface-raised: #f0ebe3;
  --dd-surface-soft: #e9e2d9;
  --dd-control: #f5f1ea;
  --dd-border: #c8c0b4;
  --dd-border-strong: #ada293;
  --dd-text: #2c2925;
  --dd-text-secondary: #514b45;
  --dd-text-muted: #6f675e;
  --dd-taupe: #8d7358;
  --dd-accent: #765c45;
  --dd-accent-strong: #5e4735;
  --dd-accent-soft: #e2d6c8;
  --dd-success: #35624e;
  --dd-success-soft: #dce9e1;
  --dd-warning: #805515;
  --dd-warning-soft: #f3e6cc;
  --dd-danger: #913f3a;
  --dd-danger-soft: #f3dedc;
  --dd-shadow: 0 12px 30px rgba(76, 60, 47, 0.12);
  --bg: var(--dd-bg);
  --paper: var(--dd-bg);
  --panel: var(--dd-surface);
  --soft: var(--dd-surface-raised);
  --input: var(--dd-control);
  --ink: var(--dd-text);
  --muted: var(--dd-text-muted);
  --line: var(--dd-border);
  --navy: var(--dd-text-secondary);
  --navy-deep: var(--dd-text);
  --blue: var(--dd-accent);
  --blue-soft: var(--dd-accent-soft);
  --green: var(--dd-success);
  --green-soft: var(--dd-success-soft);
  --success: var(--dd-success);
  --ok: var(--dd-success);
  --amber: var(--dd-warning);
  --amber-soft: var(--dd-warning-soft);
  --red: var(--dd-danger);
  --red-soft: var(--dd-danger-soft);
  --focus: var(--dd-accent);
  --shadow: var(--dd-shadow);
}

/* v2.4.34 accessibility: readable text on taupe actions and clear disabled states. */
:root {
  --dd-on-accent: #fffaf4;
  --dd-disabled-bg: #ded6cc;
  --dd-disabled-border: #c8bcaf;
  --dd-disabled-text: #4f463d;
}

.primary-btn,
.primary-mini,
.sidebar-toggle,
.tab.active,
.filter-chip.active,
.mode-btn.active,
.group-heading,
.master-nav-actions .tiny-btn.active,
.secondary-btn.active,
.quick-btn.primary,
.brand-mark,
.login-user-btn.is-selected,
.login-user-btn[aria-pressed="true"],
.auth-card button[type="submit"],
.pin-card button[type="submit"],
.access-form button[type="submit"],
#loginBtn,
#blockedLogoutBtn,
.sequence-order {
  border-color: var(--dd-accent-strong) !important;
  background: var(--dd-accent) !important;
  color: var(--dd-on-accent) !important;
}

.primary-btn *,
.primary-mini *,
.tab.active *,
.filter-chip.active *,
.mode-btn.active *,
.group-heading *,
.secondary-btn.active *,
.quick-btn.primary *,
.brand-mark *,
.login-user-btn.is-selected *,
.login-user-btn[aria-pressed="true"] *,
.auth-card button[type="submit"] *,
.pin-card button[type="submit"] *,
.access-form button[type="submit"] * {
  color: inherit !important;
}

.primary-btn:disabled,
.primary-mini:disabled,
.quick-btn.primary:disabled,
.auth-card button[type="submit"]:disabled,
.pin-card button[type="submit"]:disabled,
.access-form button[type="submit"]:disabled,
#loginBtn:disabled,
#blockedLogoutBtn:disabled,
.primary-btn[aria-disabled="true"],
.primary-mini[aria-disabled="true"] {
  border-color: var(--dd-disabled-border) !important;
  background: var(--dd-disabled-bg) !important;
  color: var(--dd-disabled-text) !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

.primary-btn:disabled *,
.primary-mini:disabled *,
.quick-btn.primary:disabled *,
.primary-btn[aria-disabled="true"] *,
.primary-mini[aria-disabled="true"] * {
  color: inherit !important;
}
