
    :root {
      --bg:#f4f7fb; --card:#fff; --text:#152033; --muted:#6b7280; --line:#dbe3ee;
      --primary:#185adb; --primary2:#0f3f9e; --ok:#178447; --warn:#b66a00; --danger:#c93535;
      --soft:#eef4ff;
    }
    * { box-sizing:border-box; }
    body { margin:0; font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; background:var(--bg); color:var(--text); }
    button,input,select,textarea { font:inherit; }
    button { cursor:pointer; }
    .hidden { display:none !important; }
    .shell { max-width:1360px; margin:0 auto; padding:18px 20px 34px; }
    .topbar { position:relative; z-index:1; width:100%; background:#081f43 url('header-background.jpg') center 52%/cover no-repeat; border-bottom:1px solid #183b68; color:#fff; }
    .topbar::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,20,48,.20) 0%,rgba(4,20,48,.08) 55%,rgba(4,20,48,.04) 100%); pointer-events:none; }
    .topbar-inner { position:relative; z-index:2; width:100%; max-width:none; min-height:148px; padding:24px clamp(18px,4vw,64px); display:flex; align-items:center; justify-content:flex-end; gap:26px; }
    .brand { display:flex; align-items:center; gap:22px; }
    .brand-logo { width:170px; height:170px; border-radius:28px; object-fit:contain; box-shadow:0 12px 36px rgba(0,0,0,.28); background:rgba(255,255,255,.96); }
    .brand-copy { text-shadow:0 2px 14px rgba(0,0,0,.35); }
    .brand-copy .company { font-size:clamp(30px,3vw,50px); line-height:1; font-weight:900; letter-spacing:.01em; text-wrap:balance; }
    .brand-copy .slogan { margin-top:9px; font-size:clamp(18px,1.7vw,28px); font-weight:800; color:#ffd54a; }
    .brand-copy .subtitle { margin-top:8px; font-size:14px; color:#d7e7ff; font-weight:650; letter-spacing:.05em; text-transform:uppercase; }
    .topbar .brand { display:none; }
    .topbar #roleText { display:none !important; }
    .topbar .userbox { background:rgba(5,24,54,.56); border:1px solid rgba(255,255,255,.20); padding:10px 12px; border-radius:14px; color:#eef6ff; backdrop-filter:blur(8px); }
    .topbar .userbox .btn.secondary { background:rgba(255,255,255,.92); }
    .header-emblem { position:absolute; left:clamp(10px,1.8vw,26px); bottom:4px; height:clamp(86px,9vw,142px); width:auto; max-width:min(58vw,620px); filter:drop-shadow(0 8px 18px rgba(0,0,0,.45)); pointer-events:none; user-select:none; }
    #roleText { color:#d7e7ff !important; text-align:left !important; margin:8px 0 0 194px !important; font-size:13px !important; }

    .login-brand { display:flex; justify-content:center; margin-bottom:14px; }
    .login-brand .brand-logo { width:min(300px,78vw); height:auto; max-height:300px; border-radius:22px; object-fit:contain; box-shadow:0 4px 16px rgba(0,0,0,.12); background:#fff; }
    @media (max-width:700px){
      .topbar{background-position:62% 52%;}
      .topbar-inner{min-height:108px;padding:10px 12px;align-items:flex-start;justify-content:flex-end;}
      .brand{gap:12px;align-items:center;}
      .brand-logo{width:104px;height:104px;border-radius:20px;}
      .brand-copy .company{font-size:28px;}
      .brand-copy .slogan{font-size:17px;margin-top:5px;}
      .brand-copy .subtitle{font-size:10px;margin-top:5px;}
      .topbar .userbox{position:absolute;right:12px;top:12px;padding:6px 8px;background:rgba(5,24,54,.70);}
      #roleText{margin:6px 0 0 116px !important;font-size:11px !important;}
      .login-brand .brand-logo{width:min(290px,82vw);height:auto;}
    }
    .userbox { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:14px; }
    .planning-window { margin:0 0 14px; padding:10px 12px; border-radius:10px; background:#eef4ff; color:#17345f; font-size:14px; border:1px solid #d7e5ff; }
    .planning-window.closed { background:#fff1f1; color:#8b1e1e; border-color:#f3cccc; }
    .next-task { margin:12px 0 16px; padding:16px 18px; border-radius:16px; border:1px solid #dfe7f2; background:#fff; box-shadow:0 7px 24px rgba(20,40,80,.06); display:grid; grid-template-columns:1fr auto; gap:14px; align-items:center; }
    .next-task.action { background:#fff8ed; border-color:#f2c984; }
    .next-task.service { background:#edf8f1; border-color:#a9d7b9; }
    .next-task.wait { background:#eef6ff; border-color:#b9d7f7; }
    .next-task-title { font-size:18px; font-weight:900; margin-bottom:4px; }
    .next-task-meta { color:#58677c; font-size:14px; line-height:1.45; }
    .next-task-count { display:inline-flex; align-items:center; justify-content:center; min-width:38px; padding:4px 9px; border-radius:999px; background:rgba(255,255,255,.72); font-weight:900; }
    @media (max-width:700px){ .next-task{grid-template-columns:1fr;padding:13px 14px}.next-task .btn{width:100%}.next-task-title{font-size:16px} }

    .btn.disabled-plan { opacity:.5; cursor:not-allowed; }
    .btn { border:0; border-radius:10px; padding:10px 14px; background:var(--primary); color:#fff; font-weight:700; }
    .btn:hover { background:var(--primary2); }
    .btn.secondary { background:#e9eef7; color:#26354b; }
    .btn.danger { background:var(--danger); }
    .btn.small { padding:7px 10px; font-size:13px; }
    .card { background:var(--card); border:1px solid #dfe7f2; border-radius:16px; box-shadow:0 7px 24px rgba(20,40,80,.06); }
    .login { width:min(440px,92vw); margin:10vh auto; padding:26px; }
    h1,h2,h3 { margin:0 0 12px; }
    .field { margin:12px 0; }
    label { display:block; font-size:13px; font-weight:700; margin-bottom:6px; color:#38475d; }
    input,select,textarea { width:100%; border:1px solid #cfd8e5; border-radius:10px; padding:10px 11px; background:#fff; color:var(--text); }
    textarea { min-height:92px; resize:vertical; }
    .error { color:var(--danger); font-size:14px; margin-top:10px; }
    .success { color:var(--ok); font-size:14px; margin-top:10px; }

    .installation-simple{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px}
    .installation-address{margin-top:7px;font-size:14px;color:var(--muted);line-height:1.4}
    .installation-next{margin-top:9px;display:flex;gap:7px;flex-wrap:wrap;align-items:center}
    .passport-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
    .passport-item{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}
    .passport-item span{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
    .future-service-list{display:grid;gap:8px;margin-top:10px}
    .future-service-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dce7f4;border-radius:12px;background:#f8fbff}
    .installation-timeline{display:grid;gap:10px;margin-top:12px}
    .timeline-item{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}
    .timeline-item.service{border-left:5px solid #1971c2}
    .timeline-item.emergency{border-left:5px solid #d52b2b}
    .timeline-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
    .timeline-docs{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
    .installation-history-modal{max-width:900px}

    .installation-card-page{display:grid;gap:14px}
    .installation-card-section{padding:15px}
    .past-service-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
    .equipment-list{display:grid;gap:8px;margin-top:10px}
    .equipment-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(130px,1fr) 90px minmax(140px,.8fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}
    .equipment-responsibility.spbb{color:#0b6b3a;font-weight:800}
    .equipment-responsibility.customer{color:#9b5516;font-weight:800}
    .equipment-responsibility.shared{color:#315b9a;font-weight:800}
    @media(max-width:700px){.equipment-row{grid-template-columns:1fr}.installation-card-section{padding:12px}}

    @media(max-width:700px){
      .installation-simple{grid-template-columns:1fr}
      .installation-simple>div:last-child{justify-content:flex-start!important}
      .passport-grid{grid-template-columns:1fr}
      .future-service-row{align-items:flex-start;flex-direction:column}
    }
    #adminBrigadeModeBtn.active{background:#165dba;color:#fff;border-color:#165dba;box-shadow:0 5px 15px rgba(22,93,186,.22)}
    #adminBrigadeModeBtn{white-space:nowrap;min-width:150px;max-width:190px}
    @media(max-width:700px){#adminBrigadeModeBtn{width:100%;min-height:46px}}
    .toolbar { display:grid; grid-template-columns:minmax(260px,1fr) 190px 190px; gap:10px; margin:18px 0 10px; padding:12px; background:#fff; border:1px solid #dfe7f2; border-radius:16px; box-shadow:0 6px 20px rgba(20,40,80,.04); }
    .stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:16px 0 20px; }
    .stat { padding:16px 17px; position:relative; overflow:hidden; }
    .stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary);}
    .stat:nth-child(2)::before{background:#e58a11}.stat:nth-child(3)::before{background:#c93535}.stat:nth-child(4)::before{background:#178447}
    .stat b { display:block; font-size:26px; margin-top:4px; }
    .muted { color:var(--muted); }
    .tabs { display:flex; gap:7px; margin:14px 0 16px; flex-wrap:wrap; padding:6px; background:#eaf0f8; border-radius:14px; width:max-content; max-width:100%; }
    .tab { border:0; background:transparent; color:#42526a; border-radius:10px; padding:9px 13px; font-weight:800; transition:.15s; }
    .tab.active { background:#fff; color:var(--primary); box-shadow:0 3px 10px rgba(20,40,80,.10); }
    .grid { display:grid; gap:12px; }
    .installation { padding:16px; display:grid; grid-template-columns:1fr auto; gap:14px; align-items:start; transition:.15s; }
    .installation:hover{border-color:#bcd0ed;box-shadow:0 10px 28px rgba(20,55,105,.09);}
    .installation .title { font-weight:800; font-size:16px; }
    .meta { margin-top:7px; display:flex; flex-wrap:wrap; gap:7px; }
    .chip { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border-radius:999px; background:#edf2f7; font-size:12px; color:#3b4a5f; }
    .chip.ok { background:#e7f7ee; color:#146c3b; }
    .chip.warn { background:#fff1dc; color:#8a5000; }
    .chip.danger { background:#fde7e7; color:#9b2626; }
    .chip.confirmed { background:#e6f4ff; color:#0b5f91; }
    .chip.off { background:#e5e7eb; color:#4b5563; }
    .plan-row { padding:14px; display:grid; grid-template-columns:170px 1fr 170px; gap:12px; align-items:center; }
    .datebox { font-weight:800; }
    .modal-bg { position:fixed; inset:0; background:rgba(12,20,33,.52); z-index:50; display:flex; align-items:flex-end; justify-content:center; }
    .modal { width:min(760px,100%); max-height:92vh; overflow:auto; border-radius:20px 20px 0 0; background:#fff; padding:18px; }
    .modal-head { display:flex; justify-content:space-between; gap:12px; align-items:start; }
    .close { border:0; background:#edf1f7; border-radius:50%; width:34px; height:34px; font-size:18px; }
    .formgrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .formgrid .wide { grid-column:1/-1; }
    .notice { border-radius:10px; padding:10px 12px; margin:10px 0; font-size:14px; }
    .notice.ok { background:#e8f7ef; color:#146c3b; }
    .notice.warn { background:#fff3df; color:#8a5000; }
    .notice.danger { background:#fde9e9; color:#9b2626; }
    .admin-table { overflow:auto; }
    table { width:100%; border-collapse:collapse; min-width:900px; }
    th,td { padding:9px 10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; font-size:13px; }
    th { position:sticky; top:0; background:#f7f9fc; }

    .calendar-head { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-bottom:6px; }
    .calendar-head div { text-align:center; font-size:12px; font-weight:800; color:var(--muted); padding:6px; }
    .calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
    .calendar-day { min-height:126px; background:#fff; border:1px solid #e0e7f0; border-radius:10px; padding:8px; overflow:hidden; box-shadow:0 2px 7px rgba(20,40,80,.025); }
    .calendar-day.outside { opacity:.35; background:#f7f9fc; }
    .calendar-day.today { outline:2px solid var(--primary); outline-offset:-2px; }
    .day-num { font-weight:800; font-size:13px; margin-bottom:6px; }
    .cal-event { position:relative; overflow:hidden; width:100%; border:0; text-align:left; border-radius:8px; padding:6px 30px 6px 7px; margin:0 0 5px; background:#edf4ff; color:#17345f; font-size:11px; line-height:1.25; }
    .cal-event::after { position:absolute; right:6px; top:50%; transform:translateY(-50%); font-size:22px; opacity:.22; pointer-events:none; }
    .cal-event.day::after { content:'☀️'; }
    .cal-event.night::after { content:'🌙'; }
    .cal-event.done { background:#e7f7ee; color:#146c3b; }
    .cal-event.issue { background:#fde7e7; color:#922626; }
    .cal-event.preliminary { background:#ffe0a8; color:#7a4300; box-shadow:inset 0 0 0 1px #f1ad45; }
    .cal-event.confirmed { background:#dff3ff; color:#0b5f91; box-shadow:inset 0 0 0 1px #86c8ea; }
    .cal-event b { display:block; font-size:11px; position:relative; z-index:1; }
    .cal-event .event-meta { position:relative; z-index:1; }
    .legend { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 12px; }
    .doc-preview { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:7px; }
    .checkrow { display:flex; gap:10px; align-items:center; padding:10px 0; }
    .checkrow input[type=checkbox] { width:auto; transform:scale(1.2); }
    .yn-row { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:8px; }
    .yn-row .yn-option { display:flex; align-items:center; gap:7px; font-weight:600; cursor:pointer; }
    .yn-row input[type=radio] { width:auto; transform:scale(1.15); }
    .conditional-block { margin-top:10px; }
    .service-summary { padding:12px; margin-top:8px; }
    .history-card { padding:14px; }
    .emergency-launch { display:flex; align-items:center; gap:14px; margin:0 0 16px; padding:13px 15px; border:1px solid #f1b7b7; background:#fff4f4; border-radius:16px; }
    .emergency-launch-btn { min-width:190px; padding:15px 22px; border-radius:13px; background:#c81e1e; color:#fff; border:0; font-size:20px; font-weight:900; letter-spacing:.03em; box-shadow:0 7px 18px rgba(200,30,30,.22); }
    .emergency-launch-btn:hover { background:#a91414; }
    .emergency-card { padding:15px; border-left:5px solid #c81e1e; }
    .emergency-card.closed { border-left-color:#178447; }
    .emergency-times { display:flex; gap:7px; flex-wrap:wrap; margin-top:8px; }
    .emergency-badge { background:#fde7e7; color:#9b2626; font-weight:800; }
    .emergency-event { box-shadow:inset 0 0 0 2px rgba(201,53,53,.35); }
    .emergency-act { margin-top:9px; display:flex; gap:8px; flex-wrap:wrap; }
    .emergency-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:12px 0; }
    .emergency-stat { padding:13px 14px; }
    .emergency-stat b { display:block; font-size:24px; margin-top:4px; }
    .emergency-admin-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:12px; margin-top:12px; }
    .taxi-costs { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    @media (max-width:800px){ .emergency-stats{grid-template-columns:1fr 1fr}.emergency-admin-grid{grid-template-columns:1fr}.taxi-costs{grid-template-columns:1fr} }
    @media (max-width:700px){ .emergency-launch{align-items:stretch;flex-direction:column}.emergency-launch-btn{width:100%;font-size:19px} }
    .history-top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; flex-wrap:wrap; }
    .history-docs { display:flex; gap:7px; flex-wrap:wrap; margin-top:9px; }
    .history-resolution { margin-top:9px; padding:10px; border-radius:10px; background:#e8f7ef; color:#146c3b; }
    .history-unresolved { margin-top:9px; padding:10px; border-radius:10px; background:#fde9e9; color:#9b2626; }
    .calendar-day.weekend { background:#fff5f5; border-color:#efc5c5; }
    .calendar-day.weekend .day-num { color:#c93535; }
    .calendar-head .weekend-head { color:#c93535; }
    .station-event { padding-right:30px; }
    .station-event .event-count { font-weight:700; opacity:.8; }
    .filters-row { display:grid; grid-template-columns:repeat(5,minmax(140px,1fr)); gap:10px; margin:0 0 14px; padding:11px; background:#f0f4fa; border:1px solid #e0e8f3; border-radius:14px; }
    .details-grid { display:flex; gap:6px; flex-wrap:wrap; margin-top:7px; }
    .station-install-list { display:grid; gap:9px; margin-top:12px; }
    .station-install-item { padding:12px; }
    @media (max-width:800px) { .filters-row { grid-template-columns:1fr 1fr; } }
    @media (max-width:800px) {
      .calendar-grid, .calendar-head { grid-template-columns:repeat(7,minmax(42px,1fr)); gap:3px; }
      .calendar-day { min-height:92px; padding:4px; border-radius:8px; }
      .calendar-head div { font-size:10px; padding:3px 0; }
      .cal-event { font-size:9px; padding:4px; }
      .cal-event b { font-size:9px; }
    }
    @media (max-width:800px) {
      .shell { padding:10px; }
      .toolbar { grid-template-columns:1fr 1fr; }
      .toolbar #searchInput { grid-column:1/-1; }
      .toolbar #monthInput { grid-column:1/-1; width:100%; }
      .stats { grid-template-columns:1fr 1fr; }
      .installation { grid-template-columns:1fr; }
      .plan-row { grid-template-columns:1fr; }
      .formgrid { grid-template-columns:1fr; }
      .userbox span { display:none; }
      .tabs{width:100%;overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;}
      .tab{white-space:nowrap;}
      .toolbar{padding:10px;}
      .filters-row{padding:8px;}
    }
  
    .calendar-day.has-plans{cursor:pointer}
    .calendar-day.has-plans:hover{box-shadow:inset 0 0 0 2px rgba(22,93,186,.35)}
    .day-open-hint{font-size:10px;color:var(--muted);margin:2px 0 5px}
    .day-plan-item{padding:13px 14px}
    .day-plan-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;margin-top:10px}
    .reschedule-date-list{display:grid;gap:8px;margin-top:7px}
    .reschedule-date-row{display:flex;gap:8px;align-items:center}
    .reschedule-date-row input{flex:1}
    .reschedule-queue{display:grid;gap:10px;margin:10px 0 14px}
    .reschedule-request{padding:13px 14px;border-left:5px solid #d98000}
    .reschedule-options{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
    @media(max-width:700px){
      .day-plan-actions .btn{width:100%}
      .reschedule-options .btn{width:100%}
    }


    .calendar-day.has-plans{outline:1px solid rgba(22,93,186,.18)}
    .calendar-day.has-plans .day-num{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:50%;background:#e8f2ff;color:#145cba;font-weight:900}
    .calendar-day.has-plans .day-open-hint{font-weight:800;color:#145cba}


    .chip.admin-changed{background:#f1e9ff;color:#6c37a6;border-color:#d8c2f5}
    .cal-event.admin-changed{background:#f3ebff;border-color:#bb8ce8;box-shadow:inset 4px 0 0 #8b4fc2}
    .admin-change-note{margin-top:8px;padding:9px 11px;border-radius:10px;background:#f6f0ff;border:1px solid #dfcdf5;color:#593183}


    /* v59: рабочий список даты остаётся под формами действий */
    #stationModalBg{z-index:50}
    #modalBg,
    #serviceModalBg,
    #maintenanceFailedModalBg,
    #emergencyModalBg,
    #resolutionModalBg{z-index:80}


    .calendar-day.planning-day{cursor:pointer}
    .calendar-day.planning-day:not(.has-plans){background:#f8fbff;border-style:dashed;border-color:#aac6e8}
    .calendar-day.planning-day:not(.has-plans):hover{background:#eef6ff;box-shadow:inset 0 0 0 2px rgba(22,93,186,.18)}
    .day-plan-hint{font-size:10px;font-weight:800;color:#1764bd;margin:3px 0 5px}
    .bulk-install-list{display:grid;gap:8px;max-height:46vh;overflow:auto;margin-top:10px}
    .bulk-install-item{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}
    .bulk-install-item:hover{background:#f8fbff}
    .bulk-install-item input{width:20px;height:20px;margin-top:2px;flex:0 0 auto}
    .bulk-install-main{flex:1;min-width:0}
    .bulk-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:10px}
    .bulk-toolbar label{display:flex;gap:7px;align-items:center;font-weight:700}
    .day-add-installations{padding:10px 12px;margin-bottom:10px;background:#eef6ff;border:1px dashed #9fc0e7;border-radius:12px;display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
    #bulkPlanModalBg{z-index:80}


    .bulk-maint-types{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;padding-top:8px;border-top:1px dashed var(--line)}
    .bulk-maint-type{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #cfd9e7;border-radius:9px;background:#f8fbff;font-size:12px;font-weight:800;cursor:pointer}
    .bulk-maint-type input{width:16px;height:16px;margin:0}
    .bulk-maint-type:has(input:checked){background:#e8f2ff;border-color:#76a9df;color:#145cba}
    .approval-types{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
    .approval-type{display:flex;align-items:center;gap:6px;border:1px solid #cbd8e8;border-radius:10px;padding:9px 11px;background:#f8fbff;font-weight:800;cursor:pointer}
    .approval-type input{width:18px;height:18px;margin:0}
    .approval-type:has(input:checked){background:#e6f1ff;border-color:#6ca2dd;color:#145aa8}
    #adminApproveModalBg{z-index:90}


    .calendar-toolbar{
      display:grid;
      grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);
      gap:14px;
      align-items:center;
      margin:4px 0 14px;
    }
    .calendar-month-nav{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:10px;
    }
    .calendar-month-title{
      min-width:230px;
      text-align:center;
      font-size:24px;
      line-height:1.1;
      font-weight:900;
      color:var(--text);
      text-transform:capitalize;
    }
    .calendar-arrow{
      width:42px;
      height:42px;
      border-radius:50%;
      border:1px solid #c9d7e8;
      background:#fff;
      color:#174f91;
      font-size:28px;
      line-height:1;
      font-weight:900;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      box-shadow:0 2px 8px rgba(20,50,90,.06);
    }
    .calendar-arrow:hover{background:#eef6ff;border-color:#8db3df}
    .calendar-arrow:disabled{opacity:.35;cursor:not-allowed;background:#f4f6f9}
    .calendar-brigade-filter{
      justify-self:end;
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
    }
    .calendar-brigade-filter label{
      font-size:13px;
      font-weight:800;
      color:var(--muted);
    }
    .calendar-brigade-filter select{min-width:210px;width:auto}
    @media(max-width:760px){
      .calendar-toolbar{grid-template-columns:1fr;gap:9px}
      .calendar-brigade-filter{justify-self:stretch}
      .calendar-brigade-filter select{width:100%}
      .calendar-month-title{min-width:0;font-size:21px}
      .calendar-arrow{width:38px;height:38px}
    }


    .chip.customer-reschedule{background:#efe7ff;color:#6331a5;border-color:#cbb2ef}
    .cal-event.customer-reschedule{background:#f4eeff;border-color:#b894e6;box-shadow:inset 4px 0 0 #8151bd}
    .customer-reschedule-note{margin-top:8px;padding:9px 11px;border-radius:10px;background:#f6f0ff;border:1px solid #dbc8f3;color:#56307d}
    #customerRescheduleModalBg{z-index:90}


    .initial-load-overlay{
      position:fixed;
      inset:0;
      z-index:300;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px;
      background:rgba(241,246,252,.94);
      backdrop-filter:blur(3px);
    }
    .initial-load-card{
      width:min(460px,100%);
      background:#fff;
      border:1px solid #d8e2ee;
      border-radius:18px;
      padding:24px;
      box-shadow:0 18px 60px rgba(20,45,80,.16);
      text-align:center;
    }
    .initial-load-spinner{
      width:38px;
      height:38px;
      margin:0 auto 14px;
      border:4px solid #dfe9f5;
      border-top-color:#1764bd;
      border-radius:50%;
      animation:initial-spin .8s linear infinite;
    }
    @keyframes initial-spin{to{transform:rotate(360deg)}}
    .initial-load-title{font-size:20px;font-weight:900;margin-bottom:6px}
    .initial-load-meta{font-size:14px;color:var(--muted);line-height:1.45}


#calendarExportRow.hidden{display:none!important}

    .power-off-choice{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      margin-top:9px;
    }
    .power-off-choice .approval-type{min-width:92px;justify-content:center}
    .bulk-power-off{
      margin-top:10px;
      padding-top:9px;
      border-top:1px dashed #d8e2ee;
    }
    .bulk-power-off-title{
      width:100%;
      font-size:12px;
      font-weight:800;
      color:var(--muted);
      margin-bottom:6px;
    }


    .multi-date-list{display:flex;flex-direction:column;gap:7px;margin-top:7px}
    .multi-date-row{display:flex;gap:7px;align-items:center}
    .multi-date-row input{flex:1}
    .brigade-reassign{
      margin-top:12px;padding:12px;border:1px solid #dbe5f0;border-radius:12px;background:#f8fbff
    }
    .brigade-reassign-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
    .brigade-reassign-controls select{min-width:230px;flex:1}


    .earnings-card{
      padding:14px;
      display:grid;
      grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(130px,.7fr));
      gap:12px;
      align-items:center;
    }
    .earnings-main b{font-size:24px;display:block;margin-top:3px}
    .earnings-metric{padding:10px 12px;border-left:1px solid var(--line)}
    .earnings-metric b{font-size:20px;display:block;margin-top:3px}
    .rate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .rate-field{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fafcff}
    .rate-field label{display:block;font-weight:800;margin-bottom:6px}
    .rate-input-wrap{display:flex;align-items:center;gap:7px}
    .rate-input-wrap input{flex:1;min-width:0}
    @media(max-width:720px){
      .earnings-card{grid-template-columns:1fr}
      .earnings-metric{border-left:0;border-top:1px solid var(--line)}
      .rate-grid{grid-template-columns:1fr}
    }


    .payout-summary-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:10px;
      margin:12px 0;
    }
    .payout-summary-item{
      padding:11px 12px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fafcff;
    }
    .payout-summary-item b{display:block;font-size:20px;margin-top:3px}
    .payout-request-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
    .payout-request{
      display:grid;
      grid-template-columns:auto 1fr auto;
      gap:10px;
      align-items:start;
      padding:10px 11px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
    }
    .payout-history{display:flex;flex-direction:column;gap:8px;margin-top:10px}
    .payout-history-item{
      padding:10px 11px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fbfcfe;
    }
    .payout-history-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
    .earnings-history{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px}
    .earnings-history-row{padding:8px 0;border-bottom:1px solid var(--line)}
    @media(max-width:720px){
      .payout-summary-grid{grid-template-columns:1fr}
      .payout-request{grid-template-columns:auto 1fr}
      .payout-request > b{grid-column:2}
    }


    .initial-load-failure-brand{
      display:flex;
      flex-direction:column;
      align-items:center;
      text-align:center;
      gap:5px;
    }
    .initial-load-failure-logo{
      width:118px;
      height:118px;
      object-fit:contain;
      margin-bottom:5px;
      filter:drop-shadow(0 6px 14px rgba(18,42,80,.12));
    }
    .initial-load-failure-name{
      font-size:30px;
      line-height:1;
      font-weight:900;
      color:#101a31;
      letter-spacing:.02em;
    }
    .initial-load-failure-slogan{
      margin-top:5px;
      font-size:18px;
      line-height:1.35;
      color:var(--muted);
      font-weight:700;
    }


    .mchs-card{border-left:5px solid #7a4bc2}
    .mchs-event{background:#f1eaff!important;border-color:#bba2e4!important;box-shadow:inset 4px 0 0 #7a4bc2!important}
    .mchs-conflict{margin-top:10px;padding:11px 12px;border-radius:12px;border:1px solid #f0bd7a;background:#fff8ec}
    .mchs-conflict.ok{border-color:#b8dfc5;background:#f3fbf6}
    .finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
    .finance-summary .card{padding:14px}.finance-summary b{display:block;font-size:24px;margin-top:4px}
    .finance-employee{padding:14px}
    .finance-row{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(120px,.7fr));gap:10px;align-items:center}
    .finance-box{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fafcff}
    .finance-box b{display:block;margin-top:3px}
    .mchs-list{display:flex;flex-direction:column;gap:10px}
    @media(max-width:800px){.finance-summary{grid-template-columns:1fr}.finance-row{grid-template-columns:1fr 1fr}.finance-row>div:first-child{grid-column:1/-1}}

    .calendar-day.official-off{background:#fff0f0;border-color:#e8aaaa}
    .calendar-day.official-off .day-num{color:#b92525}
    .calendar-day.shortened-work{background:#fff9e8;border-color:#e4c56d}
    .calendar-day.provisional-calendar{border-style:dashed}
    .workday-label{
      font-size:9px;line-height:1.15;font-weight:800;margin:-2px 0 5px;padding:2px 5px;
      border-radius:6px;display:inline-block;max-width:100%;
    }
    .workday-label.off{background:#fde0e0;color:#9c2020}
    .workday-label.short{background:#fff0bb;color:#7a5a00}
    .workday-label.work{background:#e7f7ee;color:#17663b}
    .workday-label.provisional{outline:1px dashed currentColor;outline-offset:-1px}
    .work-calendar-source{
      margin:7px 0 11px;padding:9px 11px;border-radius:10px;border:1px solid var(--line);
      background:#f7f9fc;font-size:12px;color:var(--muted)
    }
    .work-calendar-source a{font-weight:800}
    .calendar-off{background:#fde7e7!important;color:#9b2626!important}
    .calendar-short{background:#fff0bb!important;color:#765900!important}
    @media(max-width:800px){
      .workday-label{font-size:8px;padding:1px 3px}
      .work-calendar-source{font-size:10px}
    }


    .maintenance-type-planner-card{padding:14px}
    .to-planner-toolbar{
      display:grid;grid-template-columns:minmax(180px,.85fr) minmax(220px,1.2fr) repeat(2,minmax(150px,.7fr));
      gap:9px;align-items:end;margin-bottom:12px
    }
    .to-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;margin:10px 0}
    .to-rule-card{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fafcff}
    .to-rule-card.due{border-color:#e3b35d;background:#fff9ea}
    .to-rule-card.overdue{border-color:#e19191;background:#fff1f1}
    .to-rule-card label{display:flex;gap:7px;align-items:center;font-weight:900}
    .to-rule-stats{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.35}
    .to-planner-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}
    .to-install-list{display:flex;flex-direction:column;gap:7px;max-height:520px;overflow:auto;padding-right:3px}
    .to-install-row{
      display:grid;grid-template-columns:auto minmax(210px,1.4fr) minmax(170px,1fr) minmax(260px,1.5fr);
      gap:9px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff
    }
    .to-install-row.current{background:#f8fbff}
    .to-statuses{display:flex;gap:5px;flex-wrap:wrap}
    .to-status{font-size:10px;padding:3px 6px;border-radius:999px;background:#eef2f7}
    .to-status.due{background:#fff0bd;color:#705300}
    .to-status.overdue{background:#ffdcdc;color:#9f1d1d}
    .to-status.early{background:#e9f3ff;color:#1d5c91}
    .to-status.start{background:#f1e9ff;color:#68419a}
    .to-status.selected{outline:2px solid #3b82f6}
    .to-rule-composition{display:flex;flex-direction:column;gap:7px}
    .to-rule-item{padding:9px 10px;border-bottom:1px solid var(--line)}
    .to-rule-item:last-child{border-bottom:0}
    @media(max-width:900px){
      .to-planner-toolbar{grid-template-columns:1fr}
      .to-install-row{grid-template-columns:auto 1fr}
      .to-install-row>div:nth-child(3),.to-install-row>div:nth-child(4){grid-column:2}
    }


    .master-users-card{padding:14px}
    .master-user-form{
      margin-top:14px;
      display:grid;
      grid-template-columns:repeat(2,minmax(220px,1fr));
      gap:10px;
      align-items:end;
    }
    .master-user-form label{display:block;font-weight:800;margin-bottom:5px}
    .password-create-row{display:flex;gap:7px;align-items:center}
    .password-create-row input{flex:1;min-width:0}
    .master-user-submit{display:flex;align-items:end;height:100%}
    .master-users-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
    .master-user-row{
      display:grid;
      grid-template-columns:minmax(190px,1.15fr) minmax(190px,1.15fr) minmax(130px,.7fr) minmax(170px,.9fr) auto;
      gap:10px;
      align-items:center;
      padding:11px 12px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
    }
    .master-user-row.master{background:#fff9e9;border-color:#e8c768}
    .master-user-name{font-weight:900}
    .master-user-badge{
      display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;
      font-size:11px;font-weight:800;background:#eef3f8;color:#46566d
    }
    .master-user-badge.admin{background:#e9f1ff;color:#174f95}
    .master-user-badge.customer{background:#e7f7ef;color:#17613c}
    .master-user-badge.master{background:#fff0b9;color:#6d5200}
    .master-user-badge.inactive{background:#ffe5e5;color:#9f2323}
    @media(max-width:820px){
      .master-user-form{grid-template-columns:1fr}
      .master-user-row{grid-template-columns:1fr}
    }


    .customer-mode #appView main.shell > :not(#customerPortal){display:none!important}
    .customer-portal-head{
      padding:16px;
      display:flex;
      justify-content:space-between;
      gap:16px;
      align-items:flex-end;
      flex-wrap:wrap;
    }
    .customer-portal-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
    .customer-portal-controls label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:5px}
    .customer-portal-controls select{min-width:190px}
    .customer-summary{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:0;
      margin:12px 0;
      overflow:hidden;
    }
    .customer-summary>div{padding:13px 15px;border-right:1px solid var(--line)}
    .customer-summary>div:last-child{border-right:0}
    .customer-summary span,.customer-summary b{display:block}
    .customer-summary b{font-size:20px;margin-top:3px}
    .customer-calendar-grid .calendar-day{cursor:default}
    .customer-calendar-grid .calendar-day:hover{transform:none}
    .customer-event{cursor:default!important;text-align:left;width:100%}
    .customer-list-card{padding:14px;margin-top:12px}
    .customer-schedule-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
    .customer-schedule-row{
      display:grid;
      grid-template-columns:110px minmax(180px,1fr) minmax(240px,1.4fr) 140px minmax(120px,.8fr);
      gap:10px;
      align-items:center;
      padding:10px 11px;
      border:1px solid var(--line);
      border-radius:11px;
      background:#fff;
    }
    .customer-schedule-row .date{font-weight:900}
    @media(max-width:800px){
      .customer-summary{grid-template-columns:1fr}
      .customer-summary>div{border-right:0;border-bottom:1px solid var(--line)}
      .customer-summary>div:last-child{border-bottom:0}
      .customer-schedule-row{grid-template-columns:1fr}
    }


    .protected-zone-line{
      margin-top:6px;
      font-size:13px;
      line-height:1.35;
      color:#52657f;
      font-weight:500;
    }
    .protected-zone-line b{color:#2e425f}
    .doc-preview.multi-docs{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
    .selected-files-list{margin-top:7px;font-size:12px;color:var(--muted);line-height:1.5}


    .selected-service-files{
      margin-top:8px;
      display:flex;
      flex-direction:column;
      gap:6px;
    }
    .selected-service-file{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:8px;
      padding:7px 9px;
      border:1px solid var(--line);
      border-radius:9px;
      background:#f8fbff;
      font-size:12px;
    }
    .selected-service-file-name{
      min-width:0;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .selected-service-file button{
      flex:0 0 auto;
      border:0;
      border-radius:7px;
      padding:4px 7px;
      background:#ffe7e7;
      color:#9d2323;
      font-weight:800;
    }


    .equipment-responsibility.unspecified{background:#eef1f5;color:#536174}
    .equipment-source-note{margin:8px 0 10px;padding:9px 11px;border-radius:10px;background:#f5f8fc;color:#53657e;font-size:12px}
    .equipment-source-scope{margin-top:4px;color:#64758b;font-size:11px;font-weight:600}


    .equipment-pdf-source{margin-top:10px;border:1px solid #cfdbea;border-radius:12px;background:#fbfdff;padding:12px}
    .equipment-pdf-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px;color:#17365d}
    .equipment-pdf-head span{font-size:12px;color:var(--muted);font-weight:700}
    .equipment-pdf-text{white-space:pre-wrap;line-height:1.55;font-size:13px;color:#1f3048}
    .equipment-structured-title{margin:14px 0 7px;color:#50627a;font-size:12px}


    .equipment-pdf-details{margin-top:12px;border:1px solid #d6e0ec;border-radius:12px;background:#f8fbff;overflow:hidden}
    .equipment-pdf-details>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;font-weight:850;color:#35516f;user-select:none}
    .equipment-pdf-details>summary::-webkit-details-marker{display:none}
    .equipment-pdf-details>summary:before{content:'▸';font-size:14px;color:#6a7d94;margin-right:2px}
    .equipment-pdf-details[open]>summary:before{content:'▾'}
    .equipment-pdf-details>summary span:first-of-type{flex:1}
    .equipment-pdf-page{font-size:12px;color:var(--muted);font-weight:750;white-space:nowrap}
    .equipment-pdf-details .equipment-pdf-source{margin:0;border:0;border-top:1px solid #d6e0ec;border-radius:0;background:#fff;padding:12px}


    .installation-card-action{white-space:nowrap}

    #installationQuickCardModalBg{
      z-index:105;
      align-items:center;
      padding:18px;
    }
    .installation-quick-modal{
      width:min(1180px,calc(100% - 12px));
      max-height:94vh;
      border-radius:20px;
      padding:18px;
    }
    .installation-quick-head{
      position:sticky;
      top:-18px;
      z-index:3;
      background:#fff;
      padding:4px 0 12px;
      border-bottom:1px solid var(--line);
      margin-bottom:12px;
    }
    .installation-quick-footer{
      position:sticky;
      bottom:-18px;
      z-index:3;
      display:flex;
      justify-content:flex-end;
      margin-top:14px;
      padding:12px 0 4px;
      background:#fff;
      border-top:1px solid var(--line);
    }
    @media(max-width:700px){
      #installationQuickCardModalBg{align-items:flex-end;padding:0}
      .installation-quick-modal{
        width:100%;
        max-height:94vh;
        border-radius:20px 20px 0 0;
      }
      .installation-quick-footer .btn{width:100%}
    }


    .equipment-head{
      display:grid;
      grid-template-columns:minmax(180px,1.4fr) minmax(130px,1fr) 90px minmax(140px,.8fr);
      gap:10px;
      padding:0 12px 3px;
      margin-top:10px;
      color:#60738c;
      font-size:11px;
      font-weight:850;
      text-transform:uppercase;
      letter-spacing:.02em;
    }
    .equipment-tools{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap;margin:9px 0 5px}
    .replace-status{
      width:100%;
      border:1px solid transparent;
      border-radius:10px;
      padding:8px 9px;
      font-size:12px;
      font-weight:900;
      cursor:pointer;
      text-align:center;
      line-height:1.15;
    }
    .replace-status.replaceable{background:#dff5e8;color:#11683b;border-color:#a9dfbf}
    .replace-status.not-replaceable{background:#fde3e3;color:#9e2525;border-color:#efb5b5}
    .replace-status.manual{box-shadow:inset 0 0 0 2px rgba(35,88,160,.15)}
    .replace-status small{display:block;margin-top:3px;font-size:9px;font-weight:700;opacity:.78}
    #replacementCatalogModalBg{z-index:125;align-items:center;padding:18px}
    .replacement-catalog-modal{width:min(1000px,calc(100% - 12px));max-height:94vh;border-radius:20px;padding:18px}
    .replacement-catalog-head{position:sticky;top:-18px;background:#fff;z-index:4;padding:4px 0 12px;border-bottom:1px solid var(--line)}
    .replacement-search-toolbar{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0 4px}
    .replacement-search-toolbar input{min-height:44px}
    .replacement-catalog-hint{font-size:12px;margin:5px 0 10px}
    .replacement-catalog-results{display:grid;gap:7px}
    .replacement-catalog-row{
      display:grid;
      grid-template-columns:58px minmax(0,1fr) auto;
      gap:10px;
      align-items:center;
      padding:10px 11px;
      border:1px solid var(--line);
      border-radius:11px;
      background:#fff;
    }
    .replacement-catalog-row.linked{background:#eaf8ef;border-color:#9fd6b5}
    .replacement-catalog-no{font-size:11px;font-weight:900;color:#65758a}
    .replacement-catalog-name{font-size:13px;line-height:1.35}
    .replacement-catalog-score{font-size:10px;color:var(--muted);margin-top:3px}
    .replacement-catalog-footer{
      position:sticky;
      bottom:-18px;
      z-index:4;
      display:flex;
      justify-content:flex-end;
      gap:8px;
      flex-wrap:wrap;
      background:#fff;
      border-top:1px solid var(--line);
      margin-top:12px;
      padding:12px 0 4px;
    }
    @media(max-width:700px){
      .equipment-head{display:none}
      #replacementCatalogModalBg{align-items:flex-end;padding:0}
      .replacement-catalog-modal{width:100%;max-height:94vh;border-radius:20px 20px 0 0}
      .replacement-catalog-row{grid-template-columns:44px 1fr}
      .replacement-catalog-row>div:last-child{grid-column:2}
      .replacement-search-toolbar{grid-template-columns:1fr}
      .replacement-catalog-footer .btn{flex:1 1 180px}
    }


    .equipment-original-name{
      margin-top:4px;
      font-size:11px;
      line-height:1.35;
      color:#748297;
      font-weight:500;
    }
    .equipment-original-name b{color:#65758a}


    .replacement-page-head{
      padding:15px 16px;
      display:flex;
      justify-content:space-between;
      gap:14px;
      align-items:center;
      flex-wrap:wrap;
    }
    .replacement-page-count{
      min-width:105px;
      padding:9px 13px;
      border-radius:12px;
      background:#eaf2ff;
      color:#24558e;
      text-align:center;
    }
    .replacement-page-count b{display:block;font-size:22px}
    .replacement-page-count span{font-size:11px;font-weight:800}
    .replacement-page-search{
      padding:12px;
      margin-top:12px;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:8px;
    }
    .replacement-page-search input{min-height:46px;font-size:15px}
    .replacement-page-hint{margin:9px 2px 10px}
    .replacement-page-results{display:grid;gap:7px}
    .replacement-page-row{
      display:grid;
      grid-template-columns:75px minmax(0,1fr);
      gap:10px;
      align-items:center;
      padding:11px 13px;
      border:1px solid var(--line);
      border-radius:11px;
      background:#fff;
    }
    .replacement-page-no{
      color:#64758b;
      font-size:12px;
      font-weight:900;
    }
    .replacement-page-name{
      color:#132c4b;
      font-size:14px;
      font-weight:750;
      line-height:1.35;
    }
    @media(max-width:700px){
      .replacement-page-search{grid-template-columns:1fr}
      .replacement-page-row{grid-template-columns:56px minmax(0,1fr)}
    }


    #maintenanceActsModalBg{z-index:115;align-items:center;padding:18px}
    .maintenance-acts-modal{width:min(1020px,calc(100% - 12px));max-height:94vh;border-radius:20px;padding:18px}
    .maintenance-acts-head{
      position:sticky;top:-18px;z-index:4;background:#fff;
      padding:4px 0 12px;border-bottom:1px solid var(--line);margin-bottom:12px
    }
    .maintenance-acts-meta{
      display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px
    }
    .maintenance-acts-grid{
      display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px
    }
    .maintenance-act-card{
      display:flex;flex-direction:column;gap:8px;
      padding:13px;border:1px solid var(--line);border-radius:13px;background:#f9fbfe
    }
    .maintenance-act-title{font-weight:900;color:#17365d;font-size:15px}
    .maintenance-act-purpose{font-size:12px;line-height:1.45;color:#5c6c82;flex:1}
    .maintenance-act-recommendation{min-height:20px}
    .maintenance-acts-note{margin-top:12px}
    .maintenance-acts-footer{
      position:sticky;bottom:-18px;z-index:4;display:flex;justify-content:flex-end;
      margin-top:12px;padding:12px 0 4px;background:#fff;border-top:1px solid var(--line)
    }
    .service-act-shortcut{display:flex;justify-content:flex-end;margin:8px 0 10px}
    @media(max-width:720px){
      #maintenanceActsModalBg{align-items:flex-end;padding:0}
      .maintenance-acts-modal{width:100%;max-height:94vh;border-radius:20px 20px 0 0}
      .maintenance-acts-grid{grid-template-columns:1fr}
      .maintenance-act-card .btn{width:100%}
      .maintenance-acts-footer .btn{width:100%}
    }


    .calendar-day.to-complete{
      border-color:#69bd8b;
      box-shadow:inset 0 0 0 1px rgba(35,145,82,.16);
    }
    .calendar-day.to-partial{
      border-color:#e6b14f;
      box-shadow:inset 0 0 0 1px rgba(214,145,16,.13);
    }
    .to-day-progress{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:4px;
      width:100%;
      border-radius:7px;
      padding:4px 5px;
      margin:2px 0 5px;
      font-size:9px;
      line-height:1.15;
      font-weight:900;
      text-align:center;
    }
    .to-day-progress.all{
      background:#dff5e8;
      color:#11683b;
      border:1px solid #a8ddbb;
    }
    .to-day-progress.partial{
      background:#fff0c9;
      color:#855500;
      border:1px solid #e8c46c;
    }
    .to-progress-legend.all{background:#dff5e8;color:#11683b}
    .to-progress-legend.partial{background:#fff0c9;color:#855500}
    @media(max-width:800px){
      .to-day-progress{
        font-size:8px;
        padding:3px 2px;
        margin-bottom:3px;
      }
      .to-day-progress .to-progress-word{display:none}
    }


    .planning-coverage{
      margin:10px 0 12px;
      border-radius:13px;
      border:1px solid var(--line);
      overflow:hidden;
      background:#fff;
    }
    .planning-coverage.complete{border-color:#9fd6b5;background:#f4fbf7}
    .planning-coverage.incomplete{border-color:#e6bd68;background:#fffaf0}
    .planning-coverage>summary{
      list-style:none;
      cursor:pointer;
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:center;
      padding:11px 13px;
      font-weight:850;
    }
    .planning-coverage>summary::-webkit-details-marker{display:none}
    .planning-coverage>summary:before{content:'▸';color:#66778d}
    .planning-coverage[open]>summary:before{content:'▾'}
    .planning-coverage-title{flex:1}
    .planning-coverage-body{padding:0 12px 12px}
    .coverage-station{
      border:1px solid var(--line);
      border-radius:10px;
      margin-top:7px;
      overflow:hidden;
      background:#fff;
    }
    .coverage-station>summary{
      cursor:pointer;
      list-style:none;
      display:grid;
      grid-template-columns:minmax(170px,1fr) auto;
      gap:10px;
      align-items:center;
      padding:9px 10px;
      font-size:12px;
      font-weight:850;
    }
    .coverage-station>summary::-webkit-details-marker{display:none}
    .coverage-station.none>summary{background:#fde8e8;color:#942626}
    .coverage-station.partial>summary{background:#fff2cf;color:#805500}
    .coverage-missing-list{padding:7px 10px 10px;display:grid;gap:5px}
    .coverage-missing-item{
      padding:7px 8px;
      border-radius:8px;
      background:#f7f9fc;
      font-size:11px;
      line-height:1.35;
    }

    #copyScheduleModalBg{z-index:118;align-items:center;padding:18px}
    .copy-schedule-modal{width:min(900px,calc(100% - 12px));max-height:94vh;border-radius:20px;padding:18px}
    .copy-schedule-summary{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 12px}
    .copy-schedule-preview{display:grid;gap:6px;margin-top:10px;max-height:340px;overflow:auto}
    .copy-preview-row{
      display:grid;
      grid-template-columns:120px 34px 120px minmax(120px,1fr) auto;
      gap:8px;
      align-items:center;
      padding:8px 10px;
      border:1px solid var(--line);
      border-radius:10px;
      background:#fff;
      font-size:12px;
    }
    .copy-preview-row.adjusted{background:#fff8e8;border-color:#e7c46c}
    .copy-preview-arrow{text-align:center;color:#758499;font-weight:900}
    .copy-preview-count{font-weight:850}
    .copy-schedule-footer{
      position:sticky;
      bottom:-18px;
      z-index:4;
      display:flex;
      justify-content:flex-end;
      gap:8px;
      margin-top:12px;
      padding:12px 0 4px;
      background:#fff;
      border-top:1px solid var(--line);
    }
    @media(max-width:700px){
      #copyScheduleModalBg{align-items:flex-end;padding:0}
      .copy-schedule-modal{width:100%;max-height:94vh;border-radius:20px 20px 0 0}
      .copy-preview-row{grid-template-columns:1fr auto 1fr}
      .copy-preview-row .copy-preview-meta{grid-column:1 / -1}
      .copy-preview-count{grid-column:1 / -1}
      .copy-schedule-footer .btn{flex:1}
    }


    #documentViewerModalBg{
      z-index:220;
      padding:14px;
      background:rgba(12,22,36,.88);
      backdrop-filter:blur(4px);
    }
    .document-viewer-modal{
      width:min(1180px,100%);
      height:min(94vh,920px);
      margin:auto;
      display:grid;
      grid-template-rows:auto minmax(0,1fr) auto auto;
      background:#111a27;
      color:#fff;
      border-radius:18px;
      overflow:hidden;
      box-shadow:0 24px 80px rgba(0,0,0,.42);
    }
    .document-viewer-head{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
      padding:12px 14px;
      background:#172334;
      border-bottom:1px solid rgba(255,255,255,.12);
    }
    .document-viewer-head-text{min-width:0}
    .document-viewer-title{
      font-size:16px;
      font-weight:900;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .document-viewer-meta{
      margin-top:2px;
      color:#aebbd0;
      font-size:11px;
    }
    .document-viewer-close{
      flex:0 0 auto;
      background:#253348;
      color:#fff;
      border:0;
    }
    .document-viewer-stage-wrap{
      min-height:0;
      position:relative;
      display:grid;
      grid-template-columns:54px minmax(0,1fr) 54px;
      background:#0b111b;
    }
    .document-viewer-stage{
      min-width:0;
      min-height:0;
      position:relative;
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:auto;
      overscroll-behavior:contain;
    }
    .document-viewer-image{
      display:block;
      max-width:100%;
      max-height:100%;
      width:auto;
      height:auto;
      object-fit:contain;
      user-select:none;
      -webkit-user-drag:none;
    }
    .document-viewer-pdf{
      width:100%;
      height:100%;
      min-height:560px;
      border:0;
      background:#fff;
    }
    .document-viewer-pdf-note{
      position:absolute;
      left:10px;
      bottom:10px;
      z-index:2;
      padding:5px 8px;
      border-radius:8px;
      background:rgba(10,20,35,.76);
      color:#fff;
      font-size:10px;
      pointer-events:none;
    }
    .document-viewer-loading,
    .document-viewer-error{
      padding:20px;
      color:#cbd6e5;
      text-align:center;
    }
    .document-viewer-nav{
      border:0;
      background:transparent;
      color:#fff;
      font-size:48px;
      cursor:pointer;
      opacity:.82;
      z-index:3;
    }
    .document-viewer-nav:hover{background:rgba(255,255,255,.08)}
    .document-viewer-nav:disabled{opacity:.18;cursor:default}
    .document-viewer-thumbs{
      display:flex;
      gap:7px;
      overflow-x:auto;
      padding:8px 12px;
      background:#111a27;
      border-top:1px solid rgba(255,255,255,.08);
      scrollbar-width:thin;
    }
    .document-viewer-thumb{
      flex:0 0 auto;
      max-width:180px;
      border:1px solid rgba(255,255,255,.18);
      background:#202d40;
      color:#d9e3f1;
      border-radius:9px;
      padding:6px 9px;
      font-size:10px;
      cursor:pointer;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .document-viewer-thumb.active{
      background:#245fc5;
      border-color:#72a2f5;
      color:#fff;
    }
    .document-viewer-footer{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
      flex-wrap:wrap;
      padding:10px 14px 12px;
      background:#172334;
      border-top:1px solid rgba(255,255,255,.12);
    }
    .document-viewer-counter{
      color:#c1cee0;
      font-size:12px;
      font-weight:800;
    }
    .document-viewer-actions{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
    }
    @media(max-width:720px){
      #documentViewerModalBg{padding:0}
      .document-viewer-modal{
        width:100%;
        height:100dvh;
        max-height:none;
        border-radius:0;
      }
      .document-viewer-stage-wrap{
        grid-template-columns:38px minmax(0,1fr) 38px;
      }
      .document-viewer-nav{font-size:40px}
      .document-viewer-pdf{min-height:0;height:100%}
      .document-viewer-footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}
      .document-viewer-actions{width:100%}
      .document-viewer-actions .btn{flex:1}
    }

/* v117 — редактирование документов проведённого ТО */
#documentEditorModalBg{z-index:210;align-items:center;padding:18px}
.document-editor-modal{width:min(920px,calc(100% - 12px));max-height:94vh;border-radius:20px;padding:18px}
.document-editor-head{position:sticky;top:-18px;background:#fff;z-index:4;padding:4px 0 12px;border-bottom:1px solid var(--line)}
.document-editor-sections{display:grid;gap:10px;margin-top:12px}
.document-editor-section{border:1px solid var(--line);border-radius:13px;background:#f9fbfe;padding:12px}
.document-editor-section-title{font-weight:900;color:#17365d;margin-bottom:8px}
.document-editor-existing,.document-editor-new{display:grid;gap:6px}
.document-editor-file{
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;
  padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:12px
}
.document-editor-file.removed{background:#fff5f5}
.document-editor-file.removed .document-editor-file-name{text-decoration:line-through;color:#697586}
.document-edit-remove{display:inline-flex;align-items:center;justify-content:center;justify-self:end;width:44px;min-height:44px;padding:8px;border:0;border-radius:8px;background:transparent;color:#667085;cursor:pointer}
.document-edit-remove:hover{background:#f2f4f7;color:#344054}
.document-edit-remove:focus-visible{outline:2px solid #245991;outline-offset:2px}
.document-edit-remove.document-edit-restore{width:auto;font-size:14px;color:#245991}
.document-edit-removal-note{grid-column:1/-1;font-size:12px;color:#9b3535}
.document-editor-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document-editor-add-label{
  display:inline-flex;align-items:center;justify-content:center;position:relative;
  margin-top:8px;padding:8px 10px;border-radius:9px;
  border:1px dashed #8eadd5;background:#eef5ff;color:#245991;font-weight:850;cursor:pointer
}
.document-editor-add-label input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.document-editor-new{margin-top:7px}
.document-editor-footer{
  position:sticky;bottom:-18px;z-index:4;display:flex;justify-content:flex-end;gap:8px;
  margin-top:12px;padding:12px 0 4px;background:#fff;border-top:1px solid var(--line)
}

/* v117 — постраничный PDF прямо в просмотрщике */
.document-viewer-stage.pdf-mode{
  display:block;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y pinch-zoom;
  padding:10px 8px 24px;
  background:#444b55;
}
.document-pdf-pages{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}
.document-pdf-page{
  position:relative;background:#fff;box-shadow:0 2px 14px rgba(0,0,0,.35);max-width:100%
}
.document-pdf-page canvas{display:block;max-width:100%;height:auto}
.document-pdf-page-number{
  position:absolute;right:6px;bottom:6px;padding:3px 6px;border-radius:7px;
  background:rgba(10,20,35,.72);color:#fff;font-size:9px;font-weight:800
}
@media(max-width:720px){
  #documentEditorModalBg{align-items:flex-end;padding:0}
  .document-editor-modal{width:100%;max-height:96vh;border-radius:20px 20px 0 0}
  .document-editor-file{grid-template-columns:minmax(0,1fr) auto}
  .document-editor-file-name{grid-column:1/-1}
  .document-editor-file .document-edit-view{grid-column:1;justify-self:start;min-height:44px}
  .document-editor-file .document-edit-remove{grid-column:2}
  .document-editor-footer .btn{flex:1}
  .document-viewer-stage.pdf-mode{padding:6px 4px 22px}
  .document-pdf-pages{gap:8px}
}
