/* Plyaskin: «Тёплая классика». Layout correction 2. */
body.warm-classic {
  --ink:#25271f; --paper:#faf8f4; --card:#fff; --bg:#faf8f4;
  --gold:#b18a40; --gold-soft:#e8d9b5; --gold-dark:#846323;
  --line:#e8e5dc; --muted:#736f62; --text:#25271f;
  --primary:#d9b86a; --primary-hover:#cdae60; --primary-active:#b9994e;
  --primary-subtle:#f3ebd9; --primary-subtle-hover:#eee2c7;
  --surface:#fff; --surface-sunken:#faf8f4; --surface-hover:#fbf9f3;
  --sunken:#f3f1eb; --border:#e8e5dc; --border-strong:#cdc5b4; --divider:#eeebe3;
  --text-primary:#25271f; --text-secondary:#504e43; --text-muted:#736f62;
  --success:#39714d; --success-subtle:#eaf3ed;
  --warning:#8f641f; --warning-subtle:#f8efde;
  --error:#a8453d; --danger:#a8453d; --error-subtle:#fbeeea;
  --info:#48629c; --info-subtle:#edf1fa;
  --neutral:#736f62; --neutral-subtle:#f3f1eb;
  --radius:8px; --radius-sm:8px; --radius-md:12px; --radius-lg:14px;
  --shadow:0 2px 8px rgba(37,39,31,.04); --shadow-sm:0 2px 8px rgba(37,39,31,.04);
  --sidebar-w:232px;
  background:var(--paper); color:var(--text-primary);
  font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  -webkit-font-smoothing:antialiased; accent-color:var(--gold-dark);
}
.warm-classic :is(h1,h2,h3) {color:var(--text-primary)}
.warm-classic :is(button,input,select,textarea,a):focus-visible {outline:2px solid var(--gold-dark);outline-offset:3px}
.warm-classic :is(input,select,textarea) {max-width:100%}
.warm-classic .btn {border-radius:8px;min-height:36px;background:var(--primary);border-color:var(--primary);color:#252419;box-shadow:none}
.warm-classic .btn:hover {background:var(--primary-hover);border-color:var(--primary-hover)}
.warm-classic .btn:active,.warm-classic .btn-active {background:var(--primary-active);border-color:var(--primary-active);color:#252419}
.warm-classic .btn-secondary {background:var(--surface);border-color:var(--border);color:var(--text-primary)}
.warm-classic .btn-secondary:hover {background:var(--surface-hover);border-color:var(--border-strong)}
.warm-classic .btn-ghost {background:transparent;border-color:transparent;color:var(--text-secondary)}
.warm-classic .btn-ghost:hover {background:var(--neutral-subtle);border-color:transparent}
.warm-classic .btn-danger {background:var(--error);border-color:var(--error);color:#fff}
.warm-classic .btn-danger:hover {background:#913a33;border-color:#913a33}
.warm-classic .card {box-shadow:none;border-color:var(--border);border-radius:12px}
.warm-classic .status {padding:4px 10px;letter-spacing:0;font-size:12px;border:0}
.warm-classic .errorlist {color:var(--error)}
.warm-staff .sidebar {background:#25271f;color:#f1efdf;height:100vh;height:100dvh}
.warm-staff .sidebar .brand-block {padding:26px 22px 22px}
.warm-staff .sidebar .brand-block a {font-size:23px;line-height:1.1;color:#e1c894;font-weight:600;letter-spacing:-.5px}
.warm-staff .sidebar .brand-block small {font-family:Inter,sans-serif;color:#b6b9a8;font-size:11px;letter-spacing:1.7px;margin-top:9px}
.warm-staff .sidebar-search {margin:16px 14px 10px}
.warm-staff .sidebar-search :is(input,input::placeholder),.warm-staff .sidebar-search-icon {color:#b6b9a8}
.warm-staff .sidebar-search input {font-size:12px;background:#ffffff08;border-color:#ffffff20}
.warm-staff .sidebar nav a,.warm-staff .nav-group-head {color:#b6b9a8;font-size:13px}
.warm-staff .sidebar nav a.active {background:#ffffff12;color:#f1efdf}
.warm-staff .sidebar nav a.active::before {background:#d9b86a}
.warm-staff .nav-group-head:hover,.warm-staff .sidebar nav a:hover {background:#ffffff0b;color:#fff}
.warm-staff .sidebar .sidebar-user-name {color:#f1efdf}
.warm-staff .sidebar .sidebar-user-role {color:#b6b9a8;font-size:11px}
.warm-staff .topbar {height:56px;background:var(--surface);padding:0 28px}
.warm-staff .topbar-section {font-size:13px;font-weight:500;color:var(--text-secondary)}
.warm-staff .topbar-avatar {width:34px;height:34px;background:var(--primary-subtle);color:var(--gold-dark)}
.warm-staff .topbar-user-role {font-size:11px}
.warm-staff .toolbar {margin-bottom:18px;gap:12px}
.warm-staff .entity-header {padding:20px;border-color:var(--border)}
.warm-staff .entity-meta {gap:10px 20px;line-height:1.7}
.warm-staff .entity-nav {border-top-color:var(--divider);gap:6px;flex-wrap:wrap}
.warm-staff .entity-nav a {border-radius:6px;font-size:13px;padding:9px 12px;min-height:38px}
.warm-staff .entity-nav a:hover {background:var(--primary-subtle);color:var(--gold-dark)}
.warm-staff .kpi-card {box-shadow:none;border-radius:12px;border-color:var(--border)}
.warm-staff .kpi-label {font-size:11px;color:var(--text-muted);letter-spacing:.05em}
.warm-staff .kpi-value {font-family:Inter,sans-serif;font-weight:500;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.warm-staff .row-actions a {color:var(--gold-dark);font-size:12px}
.warm-staff .filter-chip {font-size:12px;background:var(--surface);border-color:var(--border)}
.warm-staff .filter-chip.is-on {background:var(--primary-subtle);border-color:var(--gold-soft)}
.warm-staff .pb-col,.warm-staff .kanban-column {border-color:var(--border);box-shadow:none}
.warm-staff .warm-project-name {font-size:14px;color:var(--text-primary);text-decoration:none}
.warm-staff .warm-project-name:hover {color:var(--gold-dark);text-decoration:underline}
.warm-staff .warm-project-filters {background:var(--surface);box-shadow:none}
.warm-staff .warm-table-scroll {max-width:100%;overflow-x:auto}
.warm-staff .warm-project-table {min-width:720px}
.warm-staff .warm-project-table :is(th,td) {vertical-align:top}
.warm-staff .warm-expense-form {max-width:680px;margin:24px auto 28px;scroll-margin-top:90px}
.warm-staff .warm-expense-form h3 {font-size:23px;margin:0 0 8px;border:0;padding:0}
.warm-staff .warm-form-intro {color:var(--text-muted);font-size:13px;margin:0 0 20px}
.warm-staff .warm-field {min-width:0;margin-bottom:16px}
.warm-staff .warm-field label {display:block;margin-bottom:6px;font-size:13px;color:var(--text-secondary);font-weight:500}
.warm-staff .warm-field :is(input,select,textarea) {width:100%;font:inherit;min-height:42px}
.warm-staff .warm-field textarea {height:96px;resize:vertical}
.warm-staff .warm-field.warm-amount input {font-size:26px;font-weight:500;padding:12px 14px;font-variant-numeric:tabular-nums}
.warm-staff .warm-field-grid {display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.warm-staff .warm-required {color:var(--gold-dark)}
.warm-staff .warm-field-help {display:block;font-size:12px;color:var(--text-muted);margin-top:5px}
.warm-staff .warm-field .errorlist {margin:5px 0 0;padding-left:18px;font-size:13px}
.warm-staff .warm-checkbox {display:flex;gap:9px;align-items:center;margin:4px 0 16px;font-size:13px;min-height:40px}
.warm-staff .warm-checkbox input {width:18px;height:18px;margin:0;flex-shrink:0}
.warm-staff .warm-expense-extra {border-top:1px solid var(--divider);padding-top:14px;margin-bottom:20px}
.warm-staff .warm-expense-extra summary {color:var(--gold-dark);font-size:13px;cursor:pointer;padding:4px 0;min-height:32px}
.warm-staff .warm-expense-extra[open] summary {margin-bottom:16px}
.warm-staff .warm-form-actions {display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-top:4px}
.warm-staff .warm-form-actions a {color:var(--text-muted);font-size:13px;min-height:40px;display:inline-flex;align-items:center}
.warm-portal .card,.warm-portal .event-card {border:1px solid var(--border);box-shadow:none;border-radius:12px}
.warm-portal .topbar {background:#25271f}
.warm-portal :is(.brand,.topbar-user a,.topbar-user) {color:#e1c894}
.warm-portal .events-grid {grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.warm-classic .warm-login-card {border-radius:14px!important;border-top-color:var(--primary)!important;box-shadow:var(--shadow)!important}
@media (max-width:1100px) and (min-width:861px) {
  .warm-staff .topbar {padding:0 22px}
  .warm-staff .warm-project-table :is(td,th) {padding:12px 10px}
}
@media (max-width:860px) {
  .warm-staff .main-area {margin-left:0}
  .warm-staff .sidebar {width:min(290px,calc(100vw - 56px))}
  .warm-staff .sidebar-overlay {left:min(290px,calc(100vw - 56px))}
  .warm-staff .mobile-topbar {height:60px;background:#25271f;padding:0 20px}
  .warm-staff .mobile-topbar .brand-block a {font-size:23px;color:#e1c894}
  .warm-staff .mobile-menu-btn {min-height:44px;min-width:64px}
  .warm-staff .topbar {position:static;min-height:58px;height:auto;padding:10px 20px;gap:8px}
  .warm-staff .toolbar {gap:14px}
  .warm-staff .toolbar .project-actions {flex-direction:row;flex-wrap:wrap;gap:8px}
  .warm-staff .toolbar .project-actions .btn {flex:1 1 140px;width:auto}
  .warm-staff .warm-table-scroll {overflow:visible}
  .warm-staff .warm-project-table {display:block;min-width:0;overflow:visible;background:none;border:0}
  .warm-staff .warm-project-table thead {position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .warm-staff .warm-project-table tbody {display:grid;gap:12px;white-space:normal}
  .warm-staff .warm-project-table tbody tr {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}
  .warm-staff .warm-project-table td {display:block;width:auto!important;padding:0;border:0;min-width:0;overflow-wrap:anywhere;white-space:normal}
  .warm-staff .warm-project-table td::before {content:attr(data-label);display:block;color:var(--text-muted);font-size:11px;margin-bottom:5px}
  .warm-staff .warm-project-table :is(.warm-project-title,.row-actions,.warm-project-empty) {grid-column:1 / -1}
  .warm-staff .warm-project-table .warm-project-title {grid-row:1}
  .warm-staff .warm-project-table .warm-project-title::before,.warm-staff .warm-project-table .row-actions::before {display:none}
  .warm-staff .warm-project-name {display:inline-block;font-size:17px;min-height:32px;line-height:1.4}
  .warm-staff .warm-project-table .row-actions {display:flex;gap:18px;border-top:1px solid var(--divider);padding-top:10px;flex-wrap:wrap}
  .warm-staff .warm-project-table .row-actions a {display:inline-flex;align-items:center;min-height:44px;margin:0;padding:0;font-size:13px}
  .warm-staff .warm-expense-form {scroll-margin-top:76px}
}
@media (max-width:560px) {
  .warm-classic :is(input[type=text],input[type=date],input[type=time],input[type=number],input[type=email],input[type=password],input[type=url],input[type=search],select,textarea) {font-size:16px;min-height:44px}
  .warm-classic .btn {min-height:44px;font-size:14px;white-space:normal}
  .warm-staff .entity-header {padding:20px 16px}
  .warm-staff .entity-actions {gap:8px;flex-wrap:wrap}
  .warm-staff .entity-actions .warm-expense-link {flex-basis:100%}
  .warm-staff .entity-nav a {min-height:44px;padding:11px 12px}
  .warm-staff .warm-field-grid {grid-template-columns:1fr}
  .warm-staff .warm-form-actions {align-items:stretch;flex-direction:column}
  .warm-staff .warm-form-actions .btn {width:100%}
  .warm-staff .warm-form-actions a {justify-content:center;min-height:44px}
  .warm-staff .warm-checkbox {min-height:44px}
  .warm-staff .warm-expense-extra summary {min-height:44px;padding:10px 0}
  .warm-staff .topbar-user-name {max-width:150px;overflow-wrap:anywhere}
  .warm-staff .topbar-section {font-size:12px;flex:1 1 100%}
  .warm-staff .topbar-right {margin-left:0;width:100%;justify-content:space-between}
  .warm-portal :is(.top-bar,.top-links) {flex-wrap:wrap;gap:12px}
  .warm-portal .top-bar>form {max-width:100%;flex-wrap:wrap}
  .warm-portal .wrap {max-width:100%}
  .warm-portal .top-links :is(a,button) {display:inline-flex;align-items:center;min-height:44px}
}
@media (prefers-reduced-motion:reduce) {
  .warm-classic :is(.btn,.sidebar,.event-card,.event-cover img) {transition:none}
}

/* Geometry is scoped to the component: calendar, forms and reports keep their own rules. */
.warm-staff .main-area {min-width:0}
.warm-staff main {width:100%;max-width:1140px;margin:0 auto;padding:24px 28px 64px;min-width:0}
.warm-staff main > .card-narrow {margin-inline:auto}
.warm-staff main > .card[style*="max-width"] {margin-inline:auto}
.warm-staff .toolbar {align-items:center}
.warm-staff .toolbar h2,.warm-staff main > h2 {font-size:28px;line-height:1.25}
.warm-staff .entity-title {font-size:28px;line-height:1.25;overflow-wrap:break-word}
.warm-staff .warm-project-table th {padding:10px 12px;text-transform:none;letter-spacing:0;font-size:12px;font-weight:500;background:#f6f4ed}
.warm-staff .warm-project-table td {padding:10px 12px;font-size:13px;vertical-align:middle}
.warm-staff .warm-project-name {font-size:13px;line-height:1.4}
.warm-staff .sidebar-search input[type="text"] {padding:9px 10px 9px 34px}
.warm-staff .sidebar-search input::placeholder {color:#b6b9a8}
.warm-staff .warm-project-filter-form {display:grid;grid-template-columns:minmax(180px,2fr) minmax(90px,.6fr) minmax(150px,1.3fr) 94px auto;gap:12px;align-items:end}
.warm-staff .warm-project-filter-form > div {min-width:0}
.warm-staff .warm-project-filter-form :is(input[type="text"],select) {height:38px;min-height:38px;font-size:13px}
.warm-staff .warm-filter-actions {display:flex;gap:8px;grid-row:1;grid-column:5}
.warm-staff .warm-filter-actions .btn {min-height:38px;padding:8px 14px}
.warm-staff .warm-filter-statuses {grid-column:1/-1;border-top:1px solid var(--divider);padding-top:10px}
.warm-staff .warm-project-filters > p {margin-top:10px!important;padding-top:10px!important}
.warm-staff .wide-card {background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:24px;min-width:0}
.warm-staff :is(.cal-page-nav,.week-nav,.day-nav) {display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;margin-bottom:18px}
.warm-staff :is(.cal-page-nav,.week-nav,.day-nav) > a {white-space:normal;justify-self:start;text-align:center;max-width:100%}
.warm-staff :is(.cal-page-nav,.week-nav,.day-nav) > a:last-child {justify-self:end}
.warm-staff :is(.cal-page-title,.week-title,.day-title) {text-align:center;line-height:1.25;min-width:0}
.warm-staff .cal-scroll,.warm-staff .week-scroll {max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.warm-staff table.big-calendar {display:table;width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.warm-staff table.big-calendar thead {display:table-header-group;white-space:normal}
.warm-staff table.big-calendar tbody {display:table-row-group;white-space:normal}
.warm-staff table.big-calendar tr {display:table-row}
.warm-staff table.big-calendar th {display:table-cell;position:static;width:14.285714%;text-align:center;padding:9px 6px;background:var(--surface-sunken);border:0;border-bottom:1px solid var(--border);font-size:11px;line-height:1.4}
.warm-staff table.big-calendar td {display:table-cell;width:14.285714%;height:112px;padding:6px;vertical-align:top;border-right:1px solid var(--divider);border-bottom:1px solid var(--divider);white-space:normal}
.warm-staff table.big-calendar td.empty {background:var(--surface-sunken);border-color:var(--divider)}
.warm-staff table.big-calendar tr > td:last-child {border-right:0}
.warm-staff table.big-calendar tbody tr:last-child > td {border-bottom:0}
.warm-staff table.big-calendar .cal-item,.warm-staff table.big-calendar .cal-item:hover {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;min-width:0;max-width:100%;white-space:normal;overflow:hidden;overflow-wrap:anywhere;box-shadow:none;line-height:1.35}
.warm-staff table.big-calendar td.today .day-num {color:#252419}
.warm-staff .week-grid {min-width:800px;grid-template-columns:56px repeat(7,minmax(0,1fr))}
.warm-staff .day-grid {grid-template-columns:56px minmax(0,1fr)}
.warm-staff :is(.week-grid,.day-grid) .hour-label-col,.warm-staff .week-body,.warm-staff .day-body {height:calc(var(--calendar-hours,17) * 60px)}
.warm-staff .week-grid .hour-label,.warm-staff .day-grid .hour-label {font-size:11px}
.warm-staff .week-grid .cal-event-block:is(:hover,:focus-visible) {z-index:20;background:var(--primary-subtle)}
@media (min-width:861px) and (max-width:1100px) {
  .warm-staff main {padding:24px 20px 56px}
  .warm-staff .warm-project-filter-form {grid-template-columns:repeat(2,minmax(0,1fr))}
  .warm-staff .warm-filter-search {grid-column:1/-1}
  .warm-staff .warm-filter-actions {grid-column:auto;grid-row:auto}
}
@media (max-width:860px) {
  .warm-staff main {padding:20px 16px 48px}
  .warm-staff .wide-card {padding:14px}
  .warm-staff .warm-project-filter-form {grid-template-columns:repeat(2,minmax(0,1fr))}
  .warm-staff .warm-filter-search {grid-column:1/-1}
  .warm-staff .warm-filter-actions {grid-column:auto;grid-row:auto}
  .warm-staff .warm-project-table td {padding:0;vertical-align:top}
  .warm-staff .warm-project-name {font-size:16px}
  .warm-staff table.big-calendar {min-width:700px;table-layout:fixed}
  .warm-staff table.big-calendar td {height:100px}
  .warm-staff .dashboard-cols {grid-template-columns:1fr}
}
@media (max-width:560px) {
  .warm-staff main {padding:18px 12px 40px}
  .warm-staff .toolbar h2,.warm-staff main > h2,.warm-staff .entity-title {font-size:26px}
  .warm-staff .warm-project-filter-form {display:grid!important;grid-template-columns:1fr}
  .warm-staff .warm-project-filter-form > div {width:auto}
  .warm-staff .warm-project-filter-form :is(input[type="text"],select) {height:44px;min-height:44px;font-size:16px}
  .warm-staff .warm-filter-actions .btn {min-height:44px;flex:1}
  .warm-staff :is(.cal-page-nav,.week-nav,.day-nav) {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .warm-staff :is(.cal-page-title,.week-title,.day-title) {grid-row:1;grid-column:1/-1;font-size:23px}
  .warm-staff :is(.cal-page-nav,.week-nav,.day-nav) > a {justify-self:stretch!important;display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px;font-size:12px}
  .warm-staff .wide-card {padding:12px}
  .warm-staff .agenda-item {padding:12px;align-items:flex-start;min-width:0}
  .warm-staff .agenda-item > div {min-width:0;overflow-wrap:break-word}
  .warm-staff .pb-settings {grid-template-columns:minmax(0,1fr)}
  .warm-staff .donut-block {flex-wrap:wrap}
  .warm-staff .donut-legend {min-width:0}
  .warm-staff .entity-meta > span {min-width:0;flex-wrap:wrap;overflow-wrap:break-word}
  .warm-staff .entity-title .status {white-space:normal}
}

/* Mobile correction 3. Keep desktop geometry and the existing palette. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.warm-classic :is(input,select,textarea,button) {font-family:inherit}
.warm-staff .warm-letter-layout {display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}
.warm-staff .warm-calculation-column {flex:1;min-width:320px}

@media (max-width:860px) {
  /* Deliberate priority: inline widget font sizes must not shrink phone fields. */
  .warm-classic :is(input:not([type]),input[type=text],input[type=search],input[type=tel],input[type=email],input[type=url],input[type=password],input[type=number],input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],input[type=file],select,textarea) {font-size:16px!important;line-height:1.4;min-height:44px;min-width:0;max-width:100%}
  .warm-classic .btn {min-height:44px;font-size:14px!important;line-height:1.4;white-space:normal}
  .warm-staff .warm-field.warm-amount input {font-size:26px!important}
  .warm-staff .sidebar-search input[type=text] {font-size:16px!important}
  .warm-staff .warm-project-filter-form :is(input[type=text],select) {height:44px;min-height:44px}
  .warm-staff .warm-letter-layout {grid-template-columns:minmax(0,1fr)}
  .warm-staff .warm-letter-layout > * {min-width:0}
  .warm-staff .warm-calculation-column {min-width:0;flex-basis:100%}
  .warm-staff .warm-task-actions,.warm-staff .warm-task-actions > form {flex-wrap:wrap;min-width:0;max-width:100%}
  .warm-staff .warm-task-actions > form {display:flex;width:100%}
  .warm-staff .warm-task-actions select {flex:1 1 180px}
  .warm-staff .kanban-board {max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:12px}
  .warm-staff .kanban-column {flex:0 0 min(300px,100%);min-width:0}
  .warm-staff .task-card-title,.warm-staff .task-card-desc {overflow-wrap:anywhere}
  .warm-staff .task-card-meta,.warm-staff .task-card-meta > span {flex-wrap:wrap;gap:6px;min-width:0}
  .warm-staff .task-card-meta select[name=template_id] {max-width:160px!important;width:160px}
  .warm-staff :is(.task-card-delete,.add-subtask-btn,.remove-row-btn,.delete-saved-btn,.more-menu-toggle,.pb-edit) {min-width:44px;min-height:44px}
  .warm-staff .pb-task {padding-right:54px}
  .warm-staff .task-modal {max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior-y:contain}
  .warm-staff .estimate-card {padding:18px 16px;min-width:0}
  .warm-staff .estimate-card > h2 {overflow-wrap:anywhere}
  .warm-staff .estimate-header-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .warm-staff .estimate-header-grid > div {min-width:0}
  .warm-staff .section-head {flex-wrap:wrap}
  .warm-staff .section-head .section-actions {flex-wrap:wrap;max-width:100%}
  .warm-staff :is(.kpi-label,.kpi-context,.pb-settings-title,.pb-task-meta,.warm-field-help) {font-size:13px}
  .warm-staff :is(.warm-field label,.estimate-header-grid label) {font-size:13px}
  .warm-staff table.big-calendar th {font-size:12px}
  .warm-staff :is(.week-grid,.day-grid) .hour-label {font-size:12px}
  .warm-portal :is(.top-bar,.topbar,.top-links) {flex-wrap:wrap}
  .warm-portal :is(.top-bar,.topbar) > div {min-width:0;max-width:100%}
  .warm-portal :is(h1,.event-name,.row-main,.upcoming-name) {overflow-wrap:anywhere}
  .warm-portal :is(.top-links,.top-bar > form) {flex-wrap:wrap;gap:12px;max-width:100%}
  .warm-portal :is(.top-links,.top-bar > form) :is(a,button) {min-height:44px;display:inline-flex;align-items:center}
  .warm-portal .cal-nav {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .warm-portal .cal-title {grid-row:1;grid-column:1/-1;text-align:center}
  .warm-portal .cal-nav a {min-height:44px;display:flex;align-items:center;justify-content:center}
  .warm-portal table.calendar {table-layout:fixed}
  .warm-portal table.calendar th,.warm-portal table.calendar .day-num {font-size:12px}
  .warm-portal table.calendar .event-dot {font-size:12px}
  .warm-portal table.calendar td.empty {border-color:var(--border)}
}
@media (max-width:640px) {
  /* Each editable line becomes a labelled card; all fields remain present. */
  .warm-staff table.lines-table,.warm-staff table.lines-table tbody {display:block;width:100%;white-space:normal;overflow:visible}
  .warm-staff table.lines-table thead {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .warm-staff table.lines-table .line-row {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:14px}
  .warm-staff table.lines-table .line-row > td {display:block;width:auto!important;min-width:0;padding:0!important;border:0;text-align:left;white-space:normal}
  .warm-staff table.lines-table .line-row > td[data-label]::before {content:attr(data-label);display:block;font-size:13px;color:var(--text-muted);margin-bottom:5px}
  .warm-staff table.lines-table .inline-edit-row.open {display:block}
  .warm-staff table.lines-table .inline-edit-row > td {display:block;width:100%;white-space:normal}
  .warm-staff table.lines-table .col-detail button {min-width:44px;min-height:44px}
  .warm-staff .tm-table,.warm-staff .tm-table tbody {white-space:normal}
  .warm-staff .tm-table tr.tm-row {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:8px;white-space:normal}
  .warm-staff .tm-table tr.tm-row > td {grid-column:1/-1;min-width:0}
  .warm-staff .tm-table tr.tm-row td:is(.col-time,.col-end) {display:block!important;width:auto!important;grid-column:auto;margin:0}
  .warm-staff .tm-table .col-task :is(button,a) {font-size:13px!important;min-height:44px;display:inline-flex;align-items:center}
  .warm-staff .tm-table tr.tm-row td[data-label]::before {font-size:13px}
}
@media (max-width:560px) {
  .warm-staff .estimate-header-grid {grid-template-columns:minmax(0,1fr)}
  .warm-staff .warm-fluid-fields > div {min-width:0!important;max-width:100%;flex-basis:100%!important}
  .warm-staff .warm-fluid-fields label {font-size:13px!important;white-space:normal}
  .warm-staff .warm-project-table td::before {font-size:13px}
  .warm-staff .pb-settings-row {flex-wrap:wrap}
  .warm-staff .pb-settings-row input[type=text] {flex-basis:100%}
  .warm-staff .pb-task {padding-right:54px}
  .warm-staff .pb-edit {top:0;right:0}
  .warm-staff .pb-column {flex-basis:min(280px,100%);min-width:0}
  .warm-staff :is(.memo-text,.note-text,.messages) {overflow-wrap:anywhere}
  .warm-staff .card img {max-width:100%;height:auto}
  .warm-staff .card pre {max-width:100%;overflow-x:auto}
  .warm-portal .rating-options,.warm-portal .rating-options > div {flex-wrap:wrap;max-width:100%}
  .warm-portal .rating-options label {min-height:44px;display:inline-flex;align-items:center}
  .warm-portal .box {padding:20px 16px}
}
