  :root{
    --ink:#182233;
    --ink-soft:#5B667A;
    --base:#EEF1F6;
    --surface:#FFFFFF;
    --line:#E2E7EF;
    --line-soft:#EDF0F5;
    --primary:#1C6E8C;
    --primary-dark:#154F63;
    --primary-tint:#E7F1F5;
    --accent:#E8A33D;
    --danger:#C4472B;
    --danger-tint:#FBEAE5;
    --actual:#8C6BBE;
    --actual-dark:#5F477F;
    --actual-solid:#A88ACF;
    --actual-soft:#DED4ED;
    --actual-tint:rgba(140,107,190,.24);
    --mortgage:#6F56B3;
    --mortgage-dark:#513C8B;
    --mortgage-tint:#F0ECFA;

    --primary-type:#E8A33D;   /* Первичный */
    --primary-type-tint:#FBF0DC;
    --regular-type:#3C9A6E;   /* Обычный */
    --regular-type-tint:#E4F4EC;
    --secondary-type:#3E7CB8; /* Вторичный */
    --secondary-type-tint:#E6F0FA;

    --radius-s:6px;
    --radius-m:10px;
    --radius-l:16px;
    --shadow-card: 0 1px 2px rgba(24,34,51,.06), 0 1px 0 rgba(24,34,51,.04);
    --shadow-pop: 0 12px 32px rgba(24,34,51,.18), 0 2px 8px rgba(24,34,51,.08);
    font-size: 15px;
  }

  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--base);
    color:var(--ink);
    font-family:'Inter', system-ui, sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{font-family:'Manrope',sans-serif;}
  button{font-family:inherit;}
  :focus-visible{outline:2px solid var(--primary); outline-offset:2px;}

  /* ===== Оболочка приложения: рабочая область во всю ширину ===== */
  .app{max-width:1600px; margin:0 auto; padding:18px 24px 60px;}

  /* Разделы переключаются классом active, а не атрибутом hidden. */
  .app-page{display:none;}
  .app-page.active{display:block;}
  [hidden]{display:none !important;}

  /* ===== Верхняя панель ===== */
  .topbar{
    display:flex; align-items:center; gap:16px;
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-l); padding:14px 18px;
    box-shadow:var(--shadow-card);
    flex-wrap:wrap;
  }
  .brand{display:flex; align-items:center; gap:10px; margin-right:6px;}
  .brand-mark{
    width:36px; height:36px; border-radius:10px;
    background:#fff; border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    overflow:hidden;
  }
  .brand-mark img{width:30px; height:30px; object-fit:contain; display:block;}
  .brand-text h1{font-size:16.5px; font-weight:800; margin:0; line-height:1.15; letter-spacing:-.01em;}
  .brand-text span{font-size:11.5px; color:var(--ink-soft); font-weight:500;}


  /* Навигация по разделам */
  .app-nav{display:flex; align-items:center; gap:4px; padding:3px; background:var(--base); border-radius:9px; flex-wrap:wrap;}
  .app-nav-btn{
    border:0; background:transparent; color:var(--ink-soft);
    padding:8px 11px; border-radius:7px;
    font-size:12.5px; font-weight:800; cursor:pointer; white-space:nowrap;
  }
  .app-nav-btn:hover{color:var(--ink); background:rgba(255,255,255,.7);}
  .app-nav-btn.active{background:var(--surface); color:var(--primary); box-shadow:0 1px 3px rgba(24,34,51,.12);}

  /* Кто вошёл и кнопка выхода */
  .user-box{display:flex; align-items:center; gap:10px; margin-left:auto;}
  .user-info{font-size:12px; color:var(--ink-soft); text-align:right; line-height:1.35;}
  .user-name{display:block; color:var(--ink); font-size:13px; font-weight:800;}
  .user-role{display:block;}

  /* ===== Экран входа ===== */
  .login-screen{
    position:fixed; inset:0; z-index:1200;
    display:flex; align-items:center; justify-content:center; padding:24px;
    background:linear-gradient(160deg, #1e2b45 0%, #223a5e 55%, #2c4a74 100%);
  }
  .login-card{
    width:100%; max-width:380px; padding:30px 32px 26px;
    background:var(--surface); border-radius:16px;
    box-shadow:0 22px 60px rgba(14,22,38,.38);
    display:flex; flex-direction:column; gap:16px;
  }
  .login-brand{display:flex; align-items:center; gap:12px; margin-bottom:4px;}
  .login-brand h1{margin:0; font-family:'Manrope',sans-serif; font-size:19px; font-weight:800; color:var(--ink);}
  .login-brand span{font-size:12px; color:var(--ink-soft);}
  .login-field{display:flex; flex-direction:column; gap:6px;}
  .login-field label{font-size:12px; font-weight:700; color:var(--ink-soft);}
  .login-field input{
    padding:11px 13px; border:1px solid var(--line); border-radius:9px;
    font-family:inherit; font-size:14px; color:var(--ink); background:var(--surface);
  }
  .login-field input:focus{outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(58,134,201,.16);}
  .login-error{min-height:17px; font-size:12px; font-weight:600; color:var(--danger);}
  .login-submit{width:100%; justify-content:center; padding:11px 16px; font-size:14px;}
  .login-hint{margin:0; font-size:11.5px; line-height:1.5; color:var(--ink-soft);}

  /* ===== Панель даты, поиска и сохранения ===== */
  .workspace-toolbar{display:flex; gap:16px; align-items:center; margin-top:14px; flex-wrap:wrap;}
  .save-area{display:flex; flex-direction:column; align-items:flex-end; gap:3px; margin-left:auto;}
  .save-actions{display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end;}
  .sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%);}
  .text-link{
    border:0; background:transparent; color:var(--primary);
    padding:3px 0; font-family:inherit; font-size:12px; font-weight:700; cursor:pointer; text-align:left;
  }
  .text-link:hover{text-decoration:underline;}

  /* Строка под фильтрами: что именно показано и выгрузка */
  .filter-context{
    display:flex; justify-content:space-between; align-items:center;
    margin:10px 2px; font-size:12px; color:var(--ink-soft); gap:12px;
  }

  /* Заголовок раздела */
  .page-heading{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin:18px 0 14px;}
  .page-heading h2{font-size:21px; margin:0; font-weight:800;}
  .page-heading p{margin:5px 0 0; color:var(--ink-soft); font-size:12.5px;}

  .date-nav{display:flex; align-items:center; gap:6px;}
  .icon-btn{
    width:34px; height:34px; border-radius:var(--radius-s);
    border:1px solid var(--line); background:var(--surface);
    color:var(--ink-soft); cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:.15s;
  }
  .icon-btn:hover{background:var(--line-soft); color:var(--ink);}
  .date-input{
    border:1px solid var(--line); border-radius:var(--radius-s);
    padding:8px 10px; font-family:inherit; font-size:13.5px; font-weight:600;
    color:var(--ink); background:var(--surface); cursor:pointer;
  }
  .today-btn{
    border:1px solid var(--line); background:var(--surface); border-radius:var(--radius-s);
    padding:8px 12px; font-size:13px; font-weight:600; color:var(--primary); cursor:pointer;
  }
  .today-btn:hover{background:var(--primary-tint);}

  .search-wrap{position:relative; flex:1; min-width:220px;}
  .search-input{
    width:100%; border:1px solid var(--line); border-radius:var(--radius-s);
    padding:9px 12px 9px 34px; font-family:inherit; font-size:13.5px;
    background:var(--base);
  }
  .search-input:focus{background:var(--surface);}
  .search-icon{position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--ink-soft); pointer-events:none;}
  .search-results{
    position:absolute; top:calc(100% + 6px); left:0; right:0;
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m);
    box-shadow:var(--shadow-pop); max-height:320px; overflow-y:auto; z-index:40; display:none;
  }
  .search-results.open{display:block;}
  .search-result-item{
    padding:10px 14px; border-bottom:1px solid var(--line-soft); cursor:pointer; display:flex; flex-direction:column; gap:2px;
  }
  .search-result-item:last-child{border-bottom:none;}
  .search-result-item:hover{background:var(--primary-tint);}
  .sr-name{font-weight:700; font-size:13.5px;}
  .sr-meta{font-size:11.5px; color:var(--ink-soft);}
  .search-empty{padding:16px 14px; font-size:13px; color:var(--ink-soft); text-align:center;}

  /* ===== Stats row ===== */
  .stats{
    display:flex; gap:12px; margin-top:14px; flex-wrap:wrap;
  }
  .filterbar{
    display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
    margin-top:14px; padding:12px 14px; background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-m); box-shadow:var(--shadow-card);
  }
  .sync-meta{font-size:11.5px;color:var(--ink-soft);}
  .save-state{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--regular-type);font-weight:700;}
  .filter-group{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  .filter-label{font-size:11px; color:var(--ink-soft); font-weight:800; text-transform:uppercase; letter-spacing:.04em;}
  .filter-select{border:1px solid var(--line); border-radius:var(--radius-s); background:#fff; padding:8px 10px; font:600 12.5px inherit; color:var(--ink);}
  .period-switch{display:flex; border:1px solid var(--line); border-radius:8px; overflow:hidden;}
  .period-switch button{border:0; border-right:1px solid var(--line); background:#fff; padding:8px 12px; color:var(--ink-soft); font-size:12px; font-weight:700; cursor:pointer;}
  .period-switch button:last-child{border-right:0;}
  .period-switch button.active{background:var(--primary); color:#fff;}
  .summary-table{width:100%; border-collapse:collapse; font-size:12.5px;}
  .summary-table th,.summary-table td{padding:10px 12px; border-bottom:1px solid var(--line-soft); text-align:left;}
  .summary-table th{background:var(--base); color:var(--ink-soft); font-size:11px; text-transform:uppercase; letter-spacing:.03em;}
  .summary-table tr:last-child td{border-bottom:0;}
  .day-list{border-top:1px solid var(--line); background:#fff;}
  .day-list-details summary{list-style:none;cursor:pointer;}
  .day-list-details summary::-webkit-details-marker{display:none;}
  .day-list-title{padding:11px 14px; font:800 12px 'Manrope',sans-serif; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;display:flex;justify-content:space-between;align-items:center;}
  .day-list-title::after{content:'▾';font-size:12px;transition:transform .15s;}
  .day-list-details[open] .day-list-title::after{transform:rotate(180deg);}
  .day-list-scroll{max-height:300px;overflow:auto;border-top:1px solid var(--line-soft);}
  .status-pill{display:inline-flex; padding:3px 7px; border-radius:999px; font-size:10.5px; font-weight:800;}
  .status-pill.plan{background:var(--primary-tint); color:var(--primary-dark);}
  .status-pill.fact{background:#EFE7FA; color:var(--actual-dark); border:1px dashed var(--actual);}
  .status-pill.fact-only{background:var(--actual-soft); color:var(--actual-dark); border:1px solid var(--actual);}
  .stat-card{
    flex:1; min-width:118px; background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-m); padding:12px 14px; box-shadow:var(--shadow-card);
  }
  .stat-num{font-family:'Manrope'; font-size:22px; font-weight:800; line-height:1.1;}
  .stat-label{font-size:11.5px; color:var(--ink-soft); font-weight:600; margin-top:3px;}
  .stat-card.dot .stat-num{display:flex; align-items:center; gap:7px;}
  .stat-card.dot .swatch{width:10px; height:10px; border-radius:3px; flex-shrink:0;}

  .occupancy-card{
    display:flex; align-items:center; gap:12px; min-width:170px;
  }
  .ring{flex-shrink:0;}
  .ring circle{transition:stroke-dashoffset .4s ease;}

  /* ===== Office tabs ===== */
  .office-row{
    display:flex; align-items:center; gap:8px; margin-top:18px; flex-wrap:wrap;
  }
  .office-tab{
    display:flex; align-items:center; gap:7px;
    padding:9px 14px; border-radius:999px; border:1px solid var(--line);
    background:var(--surface); font-size:13px; font-weight:700; color:var(--ink-soft);
    cursor:pointer; transition:.15s; white-space:nowrap;
  }
  .office-tab:hover{border-color:var(--primary);}
  .office-tab.active{background:var(--primary); border-color:var(--primary); color:#fff;}
  .office-tab .count{
    font-size:10.5px; font-weight:700; background:rgba(0,0,0,.08); border-radius:999px; padding:1px 6px;
  }
  .office-tab.active .count{background:rgba(255,255,255,.22);}
  .add-office-btn{
    display:flex; align-items:center; gap:5px; padding:9px 14px; border-radius:999px;
    border:1px dashed var(--line); background:transparent; color:var(--ink-soft);
    font-size:13px; font-weight:700; cursor:pointer;
  }
  .add-office-btn:hover{border-color:var(--primary); color:var(--primary);}
  .add-office-btn[disabled]{opacity:.4; cursor:not-allowed;}

  /* ===== Office toolbar ===== */
  .office-toolbar{
    display:flex; align-items:center; justify-content:space-between; gap:14px;
    margin-top:14px; padding:12px 16px; background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-m); flex-wrap:wrap;
  }
  .office-title{display:flex; align-items:center; gap:10px;}
  .office-title h2{font-size:16px; margin:0; font-weight:800;}
  .rename-btn, .remove-office-btn{
    border:none; background:transparent; color:var(--ink-soft); cursor:pointer; padding:4px; border-radius:6px; display:flex;
  }
  .rename-btn:hover{background:var(--line-soft); color:var(--primary);}
  .remove-office-btn:hover{background:var(--danger-tint); color:var(--danger);}

  .stepper{display:flex; align-items:center; border:1px solid var(--line); border-radius:var(--radius-s); overflow:hidden;}
  .stepper button{
    width:30px; height:30px; border:none; background:var(--surface); cursor:pointer; font-size:16px; color:var(--primary); font-weight:700;
  }
  .stepper button:hover{background:var(--primary-tint);}
  .stepper button[disabled]{opacity:.35; cursor:not-allowed;}
  .stepper .val{width:38px; text-align:center; font-weight:700; font-size:13.5px; border-left:1px solid var(--line); border-right:1px solid var(--line); padding:5px 0;}

  .office-main-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}


  /* ===== Calendar ===== */
  .gantt-card{
    margin-top:12px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m);
    box-shadow:var(--shadow-card); overflow:hidden;
  }
  .gantt-scroll{overflow:auto;max-height:720px;}
  .gantt-inner{min-width:760px;}

  .day-calendar{--hour-height:72px;display:grid;grid-template-columns:74px 1fr;min-width:760px;}
  .day-corner{position:sticky;top:0;z-index:9;background:var(--base);border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 8px;font-size:10.5px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;text-align:center;}
  .slot-heads{position:sticky;top:0;z-index:8;display:grid;background:var(--base);border-bottom:1px solid var(--line);}
  .slot-head{padding:9px 8px;text-align:center;border-right:1px solid var(--line);font-size:12px;font-weight:800;color:var(--ink);white-space:nowrap;}
  .slot-head.mortgage-head{background:var(--mortgage-tint);color:var(--mortgage-dark);border-left:4px solid var(--mortgage);}
  .slot-head.mortgage-head + .mortgage-head{border-left:1px solid #d9d0ef;}
  .slot-head:last-child{border-right:0;}
  .time-axis{position:relative;height:calc((var(--hour-height)) * 11);background:var(--base);border-right:1px solid var(--line);}
  .time-label{position:absolute;right:10px;transform:translateY(-50%);font-size:10.5px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums;}
  .time-label:first-child{transform:none;}
  .time-label:last-child{transform:translateY(-100%);}
  .slots-area{position:relative;height:calc((var(--hour-height)) * 11);display:grid;}
  .slot-column{position:relative;cursor:cell;border-right:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,var(--line-soft),var(--line-soft) 1px,transparent 1px,transparent calc(var(--hour-height) / 4));}
  .slot-column.mortgage-column{background-color:rgba(240,236,250,.42);border-left:4px solid var(--mortgage);}
  .slot-column.mortgage-column + .mortgage-column{border-left:1px solid #d9d0ef;}
  .slot-column:last-child{border-right:0;}
  .slot-column:hover{background-color:rgba(231,241,245,.45);}
  .hour-line{position:absolute;left:0;right:0;height:1px;background:var(--line);pointer-events:none;z-index:1;}
  .now-line{
    position:absolute; left:0; right:0; height:2px; background:var(--danger); z-index:6; pointer-events:none;
  }
  .now-line .now-tip{
    position:absolute; top:50%; left:4px; transform:translateY(-50%);
    background:var(--danger); color:#fff; font-size:9.5px; font-weight:700; padding:2px 5px; border-radius:5px; white-space:nowrap;
  }

  .bar{
    position:absolute; left:5px; right:5px; border-radius:8px; padding:6px 7px;
    cursor:pointer; overflow:hidden; display:flex; flex-direction:column; justify-content:center;
    border:1px solid transparent; transition:.12s transform ease;
    box-shadow:0 1px 3px rgba(0,0,0,.10);z-index:3;min-height:22px;
  }
  .bar:hover{transform:translateX(1px); box-shadow:0 4px 10px rgba(0,0,0,.14); z-index:7;}
  /* Цвет полосы кодирует проект: переменные приходят из projectColorStyle().
   * Значения ниже — запасные, если проект почему-то неизвестен. */
  .bar,.compact-event,.month-event{
    --record-color:var(--primary); --record-tint:var(--primary-tint);
    --record-pattern:rgba(28,110,140,.18); --record-border:rgba(21,79,99,.48);
  }
  .bar{background:var(--record-tint); border-color:var(--record-border);}
  .bar.planned,.bar.plan-fact{background-color:#fff;background-image:repeating-linear-gradient(135deg,var(--record-pattern) 0 2px,transparent 2px 8px);border:1px dashed var(--record-border);}
  .bar.plan-fact::before{content:'';position:absolute;inset:0 50% 0 0;background:var(--actual-soft);border-right:1px solid rgba(95,71,127,.16);pointer-events:none;}
  .bar.fact-only{background:var(--actual-soft);border:1px solid var(--actual);}
  .bar.fact-only .bar-name{color:var(--actual-dark);}
  .bar.fact-only .bar-time{color:#6E5A89;}
  .bar.layer-plan{background:var(--record-color);background-image:none;border-color:var(--record-color);}
  .bar.layer-plan::before{display:none;}
  .bar.layer-plan .bar-name,.bar.layer-plan .bar-time{color:#fff;}
  .bar.layer-fact{background:var(--actual-solid);background-image:none;border-color:var(--actual);}
  .bar.layer-fact::before{display:none;}
  .bar.layer-fact .bar-name,.bar.layer-fact .bar-time{color:#fff;}
  .bar-name,.bar-time{position:relative;z-index:1;}
  .bar-name{font-size:12px; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .bar-time{font-size:10.5px; color:var(--ink-soft); font-weight:600; white-space:nowrap; overflow:hidden;}
  .bar-flag{
    position:absolute; top:4px; right:5px; width:6px; height:6px; border-radius:50%;
  }
  .bar-flag.linked{background:var(--primary);}

  .gantt-empty{padding:40px 20px; text-align:center; color:var(--ink-soft); font-size:13.5px;}

  .period-calendar{padding:10px;background:var(--surface);}
  .calendar-title{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:3px 3px 10px;font:800 14px 'Manrope',sans-serif;}
  .calendar-hint{font:500 11px 'Inter',sans-serif;color:var(--ink-soft);}
  .week-grid{display:grid;grid-template-columns:repeat(7,minmax(108px,1fr));border:1px solid var(--line);border-radius:9px;overflow:hidden;}
  .week-day{min-height:238px;border-right:1px solid var(--line);background:#fff;cursor:pointer;}
  .week-day:last-child{border-right:0;}
  .week-day.today,.month-day.today{background:var(--primary-tint);}
  .week-day.selected,.month-day.selected{box-shadow:inset 0 0 0 2px var(--primary);}
  .week-day-head{position:sticky;top:0;padding:8px 8px 7px;border-bottom:1px solid var(--line);background:inherit;z-index:2;}
  .weekday{font-size:10px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;}
  .daynum{font:800 18px 'Manrope',sans-serif;margin-top:1px;}
  .day-count{font-size:10px;color:var(--ink-soft);}
  .compact-events{display:flex;flex-direction:column;gap:4px;padding:6px;}
  .compact-event{border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:6px;padding:5px 6px;background:#fff;cursor:pointer;overflow:hidden;}
  .compact-event{border-left-color:var(--record-color); background:var(--record-tint);}
  .compact-event.planned,.compact-event.plan-fact{background-color:#fff;background-image:repeating-linear-gradient(135deg,var(--record-pattern) 0 2px,transparent 2px 8px);border:1px dashed var(--record-border);}
  .compact-event.plan-fact{background-image:linear-gradient(90deg,var(--actual-soft) 0 50%,transparent 50% 100%),repeating-linear-gradient(135deg,var(--record-pattern) 0 2px,transparent 2px 8px);}
  .compact-event.fact-only{border:1px solid var(--actual);background:var(--actual-soft);color:var(--actual-dark);}
  .compact-event.layer-plan{background:var(--record-color);background-image:none;border-color:var(--record-color);color:#fff;}
  .compact-event.layer-fact{background:var(--actual-solid);background-image:none;border-color:var(--actual);color:#fff;}
  .compact-event-time{font-size:9.5px;font-weight:800;font-variant-numeric:tabular-nums;}
  .compact-event-name{font-size:10.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
  .more-events{padding:3px 6px;font-size:10px;font-weight:800;color:var(--primary);}
  .month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);}
  .month-weekdays{border:1px solid var(--line);border-bottom:0;border-radius:9px 9px 0 0;overflow:hidden;background:var(--base);}
  .month-weekdays div{text-align:center;padding:7px;font-size:10px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;border-right:1px solid var(--line);}
  .month-weekdays div:last-child{border-right:0;}
  .month-grid{border-left:1px solid var(--line);border-top:1px solid var(--line);}
  .month-day{min-height:104px;padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;cursor:pointer;overflow:hidden;}
  .month-day.outside{background:#f8f9fb;color:#a8afba;}
  .month-day-number{display:flex;align-items:center;justify-content:space-between;font:800 11px 'Manrope',sans-serif;margin-bottom:4px;}
  .month-day-number span{font:700 9px 'Inter',sans-serif;color:var(--ink-soft);}
  .month-event{font-size:9.5px;font-weight:700;padding:3px 4px;border-radius:4px;background:var(--record-tint);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .month-event.planned,.month-event.plan-fact{background-color:#fff;background-image:repeating-linear-gradient(135deg,var(--record-pattern) 0 1px,transparent 1px 6px);border:1px dashed var(--record-border);}
  .month-event.plan-fact{background-image:linear-gradient(90deg,var(--actual-soft) 0 50%,transparent 50% 100%),repeating-linear-gradient(135deg,var(--record-pattern) 0 1px,transparent 1px 6px);}
  .month-event.fact-only{border:1px solid var(--actual);background:var(--actual-soft);color:var(--actual-dark);}
  .month-event.layer-plan{background:var(--record-color);background-image:none;border-color:var(--record-color);color:#fff;}
  .month-event.layer-fact{background:var(--actual-solid);background-image:none;border-color:var(--actual);color:#fff;}

  /* ===== Modal ===== */
  .overlay{
    position:fixed; inset:0; background:rgba(21,29,45,.5); display:none; align-items:center; justify-content:center;
    z-index:100; padding:20px;
  }
  .overlay.open{display:flex;}
  .modal{
    background:var(--surface); border-radius:var(--radius-l); width:100%; max-width:580px;
    max-height:90vh; overflow-y:auto; box-shadow:var(--shadow-pop);
  }
  .modal-head{
    display:flex; align-items:center; justify-content:space-between; padding:18px 22px;
    border-bottom:1px solid var(--line);
  }
  .modal-head h3{margin:0; font-size:16.5px; font-weight:800;}
  .modal-close{border:none; background:transparent; cursor:pointer; color:var(--ink-soft); padding:4px; border-radius:6px;}
  .modal-close:hover{background:var(--line-soft);}
  .modal-body{padding:20px 22px; display:flex; flex-direction:column; gap:14px;}

  .field{display:flex; flex-direction:column; gap:5px;}
  .field label{font-size:12px; font-weight:700; color:var(--ink-soft);}
  .field input[type=text], .field input[type=tel], .field input[type=date], .field input[type=time], .field select, .field textarea{
    border:1px solid var(--line); border-radius:var(--radius-s); padding:9px 11px; font-family:inherit; font-size:13.5px; color:var(--ink); background:var(--surface);
  }
  .field textarea{resize:vertical; min-height:60px;}
  .field.readonly input, .field.readonly select{background:var(--base); color:var(--ink-soft);}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}

  .segmented{display:flex; border:1px solid var(--line); border-radius:var(--radius-s); overflow:hidden;}
  .segmented button{
    flex:1; border:none; background:var(--surface); padding:8px 6px; font-size:12px; font-weight:700; color:var(--ink-soft); cursor:pointer; border-right:1px solid var(--line);
  }
  .segmented button:last-child{border-right:none;}
  .segmented button.active{background:var(--primary); color:#fff;}

  .deal-box{border:1px solid var(--line); border-radius:var(--radius-m); padding:12px; background:var(--base);}
  .deal-box .deal-linked{display:flex; align-items:center; justify-content:space-between; gap:8px;}
  .deal-linked-name{font-size:13px; font-weight:700;}
  .deal-linked-meta{font-size:11.5px; color:var(--ink-soft); margin-top:2px;}
  .deal-actions{display:flex; gap:8px; flex-wrap:wrap;}
  .deal-search-results{max-height:280px; overflow-y:auto; margin-top:8px; display:flex; flex-direction:column; gap:6px;}
  .deal-search-hint{font-size:11.5px;color:var(--ink-soft);margin-top:8px;}
  .deal-contact-group{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden;}
  .deal-contact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 9px;background:var(--base);border-bottom:1px solid var(--line);}
  .deal-contact-name{font-size:12.5px;font-weight:800;color:var(--ink);}
  .deal-contact-meta{font-size:10.5px;color:var(--ink-soft);margin-top:2px;}
  .deal-contact-count{font-size:10px;font-weight:800;color:var(--primary-dark);background:var(--primary-tint);border-radius:999px;padding:3px 7px;white-space:nowrap;}
  .contact-deals{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);}
  .contact-deals-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:11.5px;font-weight:800;color:var(--ink-soft);}
  .contact-deal-list{display:flex;flex-direction:column;gap:5px;}
  .contact-deal-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px 10px;cursor:pointer;color:var(--ink);font-family:inherit;}
  .contact-deal-row:hover{border-color:var(--primary);background:var(--primary-tint);}
  .contact-deal-row.current{border-color:var(--primary);background:var(--primary-tint);box-shadow:inset 3px 0 0 var(--primary);}
  .contact-deal-row > span:first-of-type{display:flex;flex-direction:column;gap:3px;min-width:0;}
  .contact-deal-main{min-width:0;font-size:11.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .contact-deal-meta{display:block;font-size:10.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .contact-deal-status{font-size:9.5px;font-weight:800;color:var(--primary-dark);background:var(--primary-tint);border-radius:999px;padding:3px 8px;white-space:nowrap;}
  .deal-option{
    padding:7px 9px; border:1px solid var(--line); border-radius:7px; background:var(--surface); cursor:pointer; font-size:12.5px;
  }
  .deal-option:hover{border-color:var(--primary); background:var(--primary-tint);}
  .unlink-btn{border:none; background:transparent; color:var(--danger); font-size:11.5px; font-weight:700; cursor:pointer;}
  .deal-create{display:flex;flex-direction:column;gap:8px;}
  .deal-create .field label{font-size:11.5px;}
  .deal-create select{width:100%;border:1px solid var(--line);border-radius:var(--radius-s);padding:8px 10px;font-family:inherit;font-size:13px;background:#fff;color:var(--ink);}

  .btn{
    border:none; border-radius:var(--radius-s); padding:9px 15px; font-family:inherit; font-size:13px; font-weight:700; cursor:pointer;
  }
  .btn-primary{background:var(--primary); color:#fff;}
  .btn-primary:hover{background:var(--primary-dark);}
  .btn-mortgage{background:var(--mortgage);color:#fff;}
  .btn-mortgage:hover{background:var(--mortgage-dark);}
  .btn-ghost{background:var(--base); color:var(--ink);}
  .btn-ghost:hover{background:var(--line-soft);}
  .btn-danger{background:var(--danger-tint); color:var(--danger);}
  .btn-danger:hover{background:#F5D6CC;}
  .btn-sm{padding:6px 10px; font-size:12px; border-radius:7px;}
  .btn[disabled]{opacity:.4; cursor:not-allowed;}

  .modal-footer{
    display:flex; align-items:center; justify-content:space-between; padding:16px 22px; border-top:1px solid var(--line); gap:10px; flex-wrap:wrap;
  }
  .modal-footer .left-actions{display:flex; gap:8px;}
  .modal-footer .right-actions{display:flex; gap:8px;}

  /* ===== Monthly slot planner ===== */
  .slot-plan-modal{max-width:960px;overflow:hidden;}
  .slot-plan-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:12px;overflow:auto;}
  .slot-plan-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--base);}
  .slot-plan-selects{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;}
  .slot-plan-field{display:flex;flex-direction:column;gap:5px;}
  .slot-plan-field label{font-size:10.5px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;}
  .slot-plan-field select,.slot-plan-field input{height:35px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:6px 9px;font:700 12.5px inherit;color:var(--ink);}
  .slot-plan-month-nav{display:flex;align-items:center;gap:6px;}
  .slot-plan-month-title{min-width:150px;text-align:center;font:800 13.5px 'Manrope',sans-serif;text-transform:capitalize;}
  .slot-plan-bulk{display:flex;align-items:flex-end;gap:7px;flex-wrap:wrap;}
  .slot-plan-bulk .slot-plan-field input{width:64px;text-align:center;}
  .slot-plan-summary{display:flex;gap:8px;flex-wrap:wrap;}
  .slot-plan-chip{padding:6px 9px;border-radius:999px;background:var(--primary-tint);color:var(--primary-dark);font-size:11.5px;font-weight:700;}
  .slot-plan-chip.closed{background:var(--line-soft);color:var(--ink-soft);}
  .slot-plan-weekdays,.slot-plan-grid{display:grid;grid-template-columns:repeat(7,minmax(92px,1fr));}
  .slot-plan-weekdays{border:1px solid var(--line);border-bottom:0;border-radius:9px 9px 0 0;background:var(--base);}
  .slot-plan-weekdays div{padding:7px;text-align:center;font-size:10.5px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;}
  .slot-plan-grid{border-left:1px solid var(--line);border-top:1px solid var(--line);}
  .slot-plan-day{min-height:98px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;display:flex;flex-direction:column;gap:7px;}
  .slot-plan-day.outside{background:var(--base);color:var(--ink-soft);opacity:.56;}
  .slot-plan-day.today{box-shadow:inset 0 0 0 2px var(--primary);}
  .slot-plan-day.conflict{background:var(--danger-tint);box-shadow:inset 0 0 0 1px var(--danger);}
  .slot-plan-day-head{display:flex;align-items:center;justify-content:space-between;gap:6px;}
  .slot-plan-day-num{font:800 13px 'Manrope',sans-serif;}
  .slot-plan-booked{font-size:9.5px;font-weight:700;color:var(--ink-soft);white-space:nowrap;}
  .slot-plan-day .stepper{margin-top:auto;align-self:center;background:#fff;}
  .slot-plan-day .stepper .val{width:32px;}
  .slot-plan-day-status{text-align:center;font-size:9.5px;font-weight:700;color:var(--ink-soft);}
  .slot-plan-day-status.active{color:var(--regular-type);}
  .slot-plan-day-status.closed{color:var(--danger);}
  .slot-plan-hint{font-size:11.5px;color:var(--ink-soft);}
  .slot-plan-footer-note{font-size:11px;color:var(--ink-soft);margin-right:auto;}
  .day-slot-badge{display:inline-flex;padding:3px 7px;border-radius:999px;background:var(--primary-tint);color:var(--primary-dark);font-size:10.5px;font-weight:800;}
  .day-slot-badge.closed{background:var(--danger-tint);color:var(--danger);}
  .day-slot-badge.mortgage{background:var(--mortgage-tint);color:var(--mortgage-dark);border:1px solid #d9d0ef;}
  .day-slot-badge.mortgage.closed{background:var(--danger-tint);color:var(--danger);border-color:#f0c3b8;}
  .month-slot-count{float:right;margin-left:5px;padding:1px 5px;border-radius:999px;background:var(--primary-tint);color:var(--primary-dark);font-size:8.5px;font-weight:800;}

  .view-only-banner{
    background:var(--primary-tint); color:var(--primary-dark); font-size:12px; font-weight:600; padding:9px 12px; border-radius:8px;
    display:flex; align-items:center; gap:7px;
  }

  /* ===== Toast ===== */
  .toast-stack{position:fixed; bottom:22px; left:50%; transform:translateX(-50%); z-index:200; display:flex; flex-direction:column; gap:8px; align-items:center;}
  .toast{
    background:var(--ink); color:#fff; font-size:13px; font-weight:600; padding:11px 18px; border-radius:999px;
    box-shadow:var(--shadow-pop); opacity:0; transform:translateY(8px); transition:.2s;
  }
  .toast.show{opacity:1; transform:translateY(0);}

  /* ===== План / факт: неявки и легенда =====
   * Прошедшая встреча, оставшаяся только плановой, — это неявка.
   * Штриховка сохраняется, но рамка и подпись становятся тревожными. */
  .bar.missed{border:1px dashed var(--danger); opacity:.86;}
  .bar.missed .bar-name{color:var(--danger); text-decoration:line-through; text-decoration-thickness:1px;}
  .bar-flag.missed{background:var(--danger);}
  .compact-event.missed,.month-event.missed{border:1px dashed var(--danger); color:var(--danger);}
  .compact-event.missed .compact-event-name{text-decoration:line-through;}
  .status-pill.plan-only{background:var(--primary-tint); color:var(--primary-dark);}
  .status-pill.plan-fact{background:#EFE7FA; color:var(--actual-dark); border:1px dashed var(--actual);}
  .status-pill.missed{background:var(--danger-tint); color:var(--danger);}

  /* Легенда состояний и цветов проектов */
  .legend-panel{
    display:flex; justify-content:space-between; align-items:center;
    margin:12px 2px; gap:12px; font-size:11px; color:var(--ink-soft);
  }
  .legend-panel details{max-width:60%;}
  .legend-panel summary{cursor:pointer; text-align:right; font-weight:700; color:var(--primary);}
  .legend{display:flex; gap:14px; flex-wrap:wrap;}
  .legend span,.project-list span{display:inline-flex; align-items:center; gap:6px;}
  .legend-sample{display:inline-block; width:22px; height:14px; border-radius:3px;}
  .planned-sample{background-color:#fff; background-image:repeating-linear-gradient(135deg,rgba(60,154,110,.28) 0 2px,transparent 2px 8px); border:1px dashed rgba(43,121,83,.5);}
  .combined-sample{background-color:#fff; background-image:linear-gradient(90deg,var(--actual-soft) 0 50%,transparent 50% 100%),repeating-linear-gradient(135deg,rgba(60,154,110,.28) 0 2px,transparent 2px 8px); border:1px dashed rgba(43,121,83,.5);}
  .fact-sample{background:var(--actual-soft); border:1px solid var(--actual);}
  .missed-sample{background-color:#fff; background-image:repeating-linear-gradient(135deg,rgba(196,71,43,.22) 0 2px,transparent 2px 8px); border:1px dashed var(--danger);}
  .mortgage-sample{background:var(--mortgage-tint); border-left:3px solid var(--mortgage); border-top:1px solid #d9d0ef; border-right:1px solid #d9d0ef; border-bottom:1px solid #d9d0ef;}
  .project-list{display:flex; flex-wrap:wrap; gap:10px; font-size:11px; margin-top:10px;}
  .project-list i{width:8px; height:8px; border-radius:2px; display:inline-block;}

  /* ===== Раздел «Журнал действий» ===== */
  .audit-page-head{
    display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l);
    padding:20px 22px; box-shadow:var(--shadow-card); margin-top:16px;
  }
  .audit-page-title h2{font-size:21px; margin:0 0 4px; font-weight:800;}
  .audit-page-title p{margin:0; color:var(--ink-soft); font-size:12.5px;}
  .audit-page-actions{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  .audit-summary{display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:12px; margin-top:14px;}
  .audit-stat{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:13px 15px; box-shadow:var(--shadow-card);}
  .audit-stat strong{display:block; font:800 22px 'Manrope',sans-serif; line-height:1.15;}
  .audit-stat span{display:block; color:var(--ink-soft); font-size:11.5px; font-weight:600; margin-top:3px;}
  .audit-filters{
    display:grid; grid-template-columns:minmax(220px,1fr) repeat(3,minmax(145px,auto)) auto;
    gap:10px; align-items:end; margin-top:14px; padding:14px;
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); box-shadow:var(--shadow-card);
  }
  .audit-filter-field{display:flex; flex-direction:column; gap:5px;}
  .audit-filter-field label{font-size:10.5px; color:var(--ink-soft); font-weight:800; text-transform:uppercase; letter-spacing:.04em;}
  .audit-filter-field input,.audit-filter-field select{
    width:100%; border:1px solid var(--line); border-radius:var(--radius-s);
    padding:9px 10px; background:#fff; color:var(--ink); font:600 12.5px inherit;
  }
  .audit-table-card{
    margin-top:14px; background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-l); box-shadow:var(--shadow-card); overflow:hidden;
  }
  .audit-table-scroll{overflow:auto; max-height:620px;}
  .audit-table{width:100%; border-collapse:collapse; font-size:12.5px;}
  .audit-table th{
    position:sticky; top:0; z-index:2; background:#F7F8FA; color:var(--ink-soft);
    font-size:10.5px; text-transform:uppercase; letter-spacing:.045em;
    text-align:left; padding:11px 14px; border-bottom:1px solid var(--line);
  }
  .audit-table td{padding:12px 14px; border-bottom:1px solid var(--line-soft); vertical-align:top;}
  .audit-table tr:last-child td{border-bottom:0;}
  .audit-table tr:hover td{background:#FAFBFC;}
  .audit-time{color:var(--ink-soft); font-variant-numeric:tabular-nums; white-space:nowrap;}
  .audit-actor{font-weight:700; white-space:nowrap;}
  .audit-category{
    display:inline-flex; align-items:center; padding:3px 7px; border-radius:999px;
    background:var(--primary-tint); color:var(--primary-dark);
    font-size:10.5px; font-weight:800; white-space:nowrap;
  }
  .audit-category.delete{background:var(--danger-tint); color:var(--danger);}
  .audit-category.automation{background:#EFE8F8; color:var(--actual-dark);}
  .audit-category.data{background:#E8F4ED; color:#287451;}
  .audit-category.deal{background:var(--secondary-type-tint); color:#2C5F8F;}
  .audit-category.slots{background:var(--primary-type-tint); color:#8A5B12;}
  .audit-detail{font-size:11px; color:var(--ink-soft); margin-top:6px;}
  .audit-detail summary{cursor:pointer;}
  .audit-detail pre{white-space:pre-wrap; font:inherit; line-height:1.6; max-width:700px; margin:6px 0 0;}
  .audit-empty{padding:54px 20px; text-align:center; color:var(--ink-soft);}
  .audit-empty strong{display:block; color:var(--ink); font-size:14px; margin-bottom:4px;}

  /* ===== Аналитика ===== */
  .analytics-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(178px,1fr)); gap:10px; margin-top:14px;}
  .metric-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:14px; box-shadow:var(--shadow-card);}
  .metric-value{font:800 26px 'Manrope',sans-serif; line-height:1.1;}
  .metric-label{font-size:12px; font-weight:700; color:var(--ink-soft); margin-top:4px;}
  .metric-hint{font-size:10.5px; color:var(--ink-soft); margin-top:5px; line-height:1.35;}
  .metric-card.accent-fact .metric-value{color:var(--actual-dark);}
  .metric-card.accent-danger .metric-value{color:var(--danger);}
  .metric-card.accent-plan .metric-value{color:var(--primary-dark);}

  .panel{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:16px 18px; margin-top:14px; box-shadow:var(--shadow-card);}
  .panel-head{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:12px; flex-wrap:wrap;}
  .panel-head h3{margin:0; font-size:14px; font-weight:800;}
  .panel-hint{font-size:11.5px; color:var(--ink-soft);}
  .panel-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px;}

  .dist-row{display:grid; grid-template-columns:minmax(120px,1.4fr) 1fr auto; gap:10px; align-items:center; padding:6px 0; border-bottom:1px solid var(--line-soft);}
  .dist-row:last-child{border-bottom:0;}
  .dist-name{font-size:12.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .dist-bar{position:relative; height:16px; border-radius:5px; background:var(--line-soft); overflow:hidden;}
  .dist-bar span{position:absolute; top:0; bottom:0; left:0; border-radius:5px;}
  .dist-bar span.plan{background:var(--primary); opacity:.24;}
  .dist-bar span.fact{background:var(--actual-solid);}
  .dist-values{font-size:11.5px; font-weight:700; color:var(--ink-soft); white-space:nowrap; font-variant-numeric:tabular-nums;}
  .analytics-empty{padding:26px; text-align:center; color:var(--ink-soft); font-size:13px;}

  /* ===== Настройки ===== */
  .settings-tabs{display:flex; gap:7px; flex-wrap:wrap; margin-top:14px;}
  .settings-tabs button{
    border:1px solid var(--line); background:var(--surface); border-radius:999px;
    padding:8px 14px; font-size:12.5px; font-weight:700; color:var(--ink-soft); cursor:pointer;
  }
  .settings-tabs button.active{background:var(--primary); border-color:var(--primary); color:#fff;}
  .settings-table{width:100%; border-collapse:collapse; font-size:13px;}
  .settings-table th,.settings-table td{padding:9px 10px; border-bottom:1px solid var(--line-soft); text-align:left; vertical-align:middle;}
  .settings-table th{background:var(--base); color:var(--ink-soft); font-size:11px; text-transform:uppercase; letter-spacing:.03em;}
  .settings-table input,.settings-table select{
    border:1px solid var(--line); border-radius:var(--radius-s); padding:7px 9px; font:600 12.5px inherit; color:var(--ink); background:#fff; width:100%; max-width:280px;
  }
  .settings-row-actions{display:flex; gap:6px; justify-content:flex-end;}
  .settings-add{display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end; margin-top:12px; padding-top:12px; border-top:1px solid var(--line-soft);}
  .settings-field{display:flex; flex-direction:column; gap:5px;}
  .settings-field label{font-size:10.5px; font-weight:800; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;}
  .settings-field input,.settings-field select{border:1px solid var(--line); border-radius:var(--radius-s); padding:8px 10px; font:600 12.5px inherit; color:var(--ink); background:#fff;}
  .settings-hint{font-size:11px; color:var(--ink-soft); margin-top:4px; line-height:1.4;}
  .badge{display:inline-flex; padding:3px 8px; border-radius:999px; font-size:10.5px; font-weight:800;}
  .badge.on{background:var(--regular-type-tint); color:#2B7953;}
  .badge.off{background:var(--line-soft); color:var(--ink-soft);}
  .badge.role-admin{background:var(--primary-tint); color:var(--primary-dark);}
  .badge.role-manager{background:var(--secondary-type-tint); color:#2F6294;}
  .badge.role-viewer{background:var(--line-soft); color:var(--ink-soft);}

  @media (max-width:980px){
    /* На узких экранах меню разделов переносится на отдельную строку. */
    .topbar{gap:12px;}
    .app-nav{order:3; width:100%;}
    .user-box{margin-left:auto;}
    .audit-page-head{flex-direction:column;}
    .audit-summary{grid-template-columns:repeat(2,minmax(120px,1fr));}
    .audit-filters{grid-template-columns:1fr 1fr;}
    .audit-filter-field:first-child{grid-column:1/-1;}
    .legend-panel{flex-direction:column; align-items:flex-start;}
    .legend-panel details{max-width:100%;}
    .legend-panel summary{text-align:left;}
  }

  @media (max-width:720px){
    .app{padding:12px 12px 40px;}
    .stats{gap:8px;}
    .dist-row{grid-template-columns:1fr auto;}
    .dist-bar{display:none;}
    .stat-card{min-width:100px;}
    .office-toolbar{flex-direction:column; align-items:stretch;}
    .day-calendar{--hour-height:66px;}
    .week-grid{grid-template-columns:repeat(7,minmax(96px,1fr));}
    .month-day{min-height:88px;}
    .slot-plan-modal{max-width:100%;}
    .slot-plan-weekdays,.slot-plan-grid{grid-template-columns:repeat(7,minmax(76px,1fr));min-width:560px;}
    .slot-plan-body{overflow:auto;}
    .slot-plan-toolbar{align-items:stretch;}
    .workspace-toolbar{gap:10px;}
    .date-nav{width:100%;}
    .search-wrap{min-width:0; flex-basis:100%;}
    .save-area{flex-direction:row; width:100%; justify-content:space-between; align-items:center;}
    .filter-context{flex-direction:column; align-items:flex-start; gap:8px;}
    .audit-filters{grid-template-columns:1fr;}
    .audit-page-head{padding:16px;}
  }
