:root{
  --bg:#f3f5f8;--card:#fff;--text:#1d2430;--muted:#6b7280;--line:#dfe3e8;
  --accent:#1769e0;--accent2:#0f56bd;--danger:#d33b3b;--ok:#168a54;
  --shadow:0 8px 30px rgba(20,30,50,.08)
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}
header{height:64px;background:#172033;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:20}
.brand{font-size:21px;font-weight:800}.brand span{color:#65a7ff}
.header-actions{display:flex;gap:8px}
button,input,select{font:inherit}
button{border:0;border-radius:9px;padding:10px 14px;cursor:pointer;font-weight:700}
.btn{background:var(--accent);color:#fff}.btn:hover{background:var(--accent2)}
.btn-light{background:#eef3fa;color:#24324a}.btn-danger{background:#fff0f0;color:var(--danger)}
.btn-ok{background:#e9f8f0;color:var(--ok)}
.layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 64px)}
aside{background:#fff;border-right:1px solid var(--line);padding:18px 12px}
nav button{display:block;width:100%;text-align:left;background:transparent;color:#384152;margin:4px 0}
nav button.active{background:#eaf2ff;color:#0d5ac7}
main{padding:22px;overflow:auto}
.view{display:none}.view.active{display:block}
h1{font-size:26px;margin:0 0 18px}h2{font-size:18px;margin:0 0 14px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:17px}
.kpi .label{color:var(--muted);font-size:13px}.kpi .value{font-size:25px;font-weight:800;margin-top:8px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
input,select{border:1px solid #cfd5dd;border-radius:8px;padding:9px 10px;background:#fff}
input[type=number]{width:120px}
.grow{flex:1;min-width:180px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:middle}
th{font-size:12px;text-transform:uppercase;color:#687385;background:#f8fafc;position:static}
td.num,th.num{text-align:right}
.small{font-size:12px;color:var(--muted)}
.badge{padding:4px 8px;border-radius:20px;background:#eef3f9;font-size:12px}
.empty{padding:30px;text-align:center;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.form-grid label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:5px}





.section-title{display:flex;justify-content:space-between;align-items:center;margin:8px 0 12px}
.note{background:#fff9e8;border:1px solid #f0df9f;padding:12px;border-radius:9px;color:#705c14;margin-bottom:15px}
.auto-row{background:#fbfdff}.relation-row{display:grid;grid-template-columns:1fr 140px 90px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
@media(max-width:900px){.layout{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid var(--line);padding:8px;position:sticky;top:64px;z-index:10}nav{display:flex;overflow:auto}nav button{min-width:max-content;width:auto}.grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}main{padding:14px}}

header .header-actions{min-width:0}
header #currentCompanyButton{max-width:280px;overflow:hidden;text-overflow:ellipsis}

@media(max-width:560px){.grid,.form-grid{grid-template-columns:1fr}.header-actions .optional{display:none}.brand{font-size:18px}input[type=number]{width:92px}}

/* v2.4: основные работы */
tr.main-work-row td{background:#f7f0df}
tr.main-work-row td:first-child{box-shadow:inset 4px 0 0 #d5bd87}
tr.main-work-row:hover td{background:#f3e8cf}
.main-work-hint{cursor:help}


/* v2.5: сворачиваемые связанные материалы */



.linked-material-row td{background:#fcfcfb}
.linked-material-row td:first-child{box-shadow:inset 4px 0 0 #eadfca}
.linked-material-row .linked-indent{padding-left:24px}



/* v3.1: группировка работ по категориям */
.work-category-row td{
  background:#eef3f8;
  color:#26364a;
  font-size:14px;
  padding:12px 10px;
  border-top:2px solid #d8e0ea;
}


/* v3.2: сворачиваемые категории базы работ */
.work-cat-toggle{
  width:30px;height:30px;padding:0;margin-right:8px;
  border-radius:7px;border:1px solid #c8d2df;
  background:#fff;color:#334155;font-size:19px;font-weight:800;
  vertical-align:middle
}
.work-cat-toggle:hover{background:#f4f7fa}
.work-category-row td{cursor:default}


/* v3.6: единое верхнее меню File */
.file-menu{position:relative}
.file-menu-button{min-width:88px}
.file-menu-dropdown{
  display:none;
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  min-width:230px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:var(--shadow);
  padding:6px;
  z-index:60;
}
.file-menu-dropdown.open{display:block}
.file-menu-dropdown button{
  display:block;
  width:100%;
  text-align:left;
  background:transparent;
  color:#26364a;
  padding:10px 12px;
  border-radius:7px;
  font-weight:600;
}
.file-menu-dropdown button:hover{background:#eef3fa}
.file-menu-section-title{margin:8px 8px 4px;padding:7px 8px 5px;border-top:1px solid #e6ebf2;color:#667386;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.file-menu-section-title:first-child{margin-top:0;border-top:0}
.export-menu-group{border-top:1px solid #edf0f4}
.export-menu-group:first-of-type{border-top:0}
.export-menu-parent{display:flex!important;align-items:center;justify-content:space-between}
.export-menu-parent::after{content:"›";font-size:22px;line-height:1;transition:transform .15s ease}
.export-menu-group.open .export-menu-parent::after{transform:rotate(90deg)}
.export-format-menu{display:none;padding:2px 0 5px 12px}
.export-menu-group.open .export-format-menu{display:block}
.export-format-menu button{font-weight:500!important;padding:8px 12px!important;color:#465568!important}
.export-format-menu button::before{display:inline-block;width:42px;font-size:11px;font-weight:800;color:#1769e0}
.export-format-menu button[data-format="pdf"]::before{content:"PDF"}
.export-format-menu button[data-format="excel"]::before{content:"XLSX"}
.export-format-menu button[data-format="word"]::before{content:"DOCX"}

html.mobile-menu-open,
body.mobile-menu-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
}
body.mobile-menu-open{
  position:fixed!important;
  left:0!important;
  right:0!important;
  width:100%!important;
}
@media(max-width:560px){
  .file-menu-dropdown{
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
  }
}

@media(max-width:560px){
  header{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    grid-template-areas:
      "brand user"
      "status status"
      "actions actions"!important;
    gap:8px 10px!important;
    padding:10px 12px!important;
    align-items:center!important;
    overflow:visible!important;
  }
  header .brand{grid-area:brand;min-width:0}
  #currentUserButton{
    grid-area:user;
    max-width:46vw;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    justify-self:end;
  }
  #saveStatus{
    grid-area:status;
    margin:0!important;
    width:100%;
    min-height:18px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .header-actions{
    grid-area:actions;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;
    width:100%!important;
    gap:8px!important;
    align-items:stretch!important;
  }
  #currentCompanyButton{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    justify-content:center;
    align-items:center;
  }
  .header-actions .file-menu{
    position:static!important;
    min-width:0!important;
  }
  .header-actions .file-menu-button{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:10px 8px!important;
    white-space:nowrap;
  }
  .file-menu-dropdown{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    top:auto!important;
    min-width:0!important;
    width:auto!important;
    max-width:none!important;
    max-height:68vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    margin-top:8px!important;
    z-index:99999!important;
    border-radius:14px!important;
    box-shadow:0 18px 55px rgba(15,23,42,.24)!important;
  }
  #fileMenuDropdown{top:132px!important}
  #serviceMenuDropdown{top:132px!important}
  .file-menu-dropdown button{
    white-space:normal!important;
    line-height:1.25!important;
    padding:12px 14px!important;
  }
  .export-format-menu{
    padding-left:6px!important;
  }
  .export-format-menu button{
    padding:10px 12px!important;
  }
}
@media(max-width:380px){
  .header-actions{
    grid-template-columns:1fr 1fr!important;
  }
  #currentCompanyButton{
    grid-column:1 / -1!important;
  }
  #fileMenuDropdown,#serviceMenuDropdown{
    top:176px!important;
  }
}


/* v4.8: состав работ */
.subwork-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 90px 110px 120px 120px auto;
  gap:8px;
  align-items:center;
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.subwork-row .sum{font-weight:700;text-align:right}
@media(max-width:760px){
  .subwork-row{grid-template-columns:1fr 1fr}
  .subwork-row .subwork-name{grid-column:1/-1}
}


/* v4.9: состав работ в основной смете */
.estimate-subwork-row td{
  background:#fffdf8;
  color:#4b5563;
  font-size:12px;
}
.estimate-subwork-row td:first-child{
  box-shadow:inset 4px 0 0 #e8d7ae;
}
.estimate-subwork-name{
  padding-left:28px !important;
}
.estimate-subwork-label{
  font-size:11px;
  color:#8a6f3d;
  font-weight:700;
}


/* v5.1: независимые раскрывающиеся состав работ и материалы */
.work-subgroup-row td{
  background:#faf7ef;
  border-bottom:1px solid #eadfc8;
}
.work-subgroup-toggle{
  width:30px;height:30px;padding:0;margin-right:8px;
  border-radius:7px;border:1px solid #dfc995;
  background:#fffaf0;color:#6d5627;font-size:18px;font-weight:800;
  vertical-align:middle
}
.work-subgroup-title{font-weight:700;color:#6d5627}
.work-subgroup-count{margin-left:6px;color:#8b7a5a;font-size:12px}


/* v5.5: одинаковая типографика состава работ и материалов */
.estimate-subwork-row td,
.linked-material-row td{
  font-size:13px;
  font-weight:400;
  color:var(--text);
}
.estimate-subwork-row .estimate-subwork-name,
.linked-material-row .linked-indent{
  font-size:13px;
  font-weight:400;
}
.estimate-subwork-row .estimate-subwork-label,
.linked-material-row .badge{
  font-size:11px;
  font-weight:700;
}


/* v5.6: итоги по каждой основной работе */
.work-total-row td{
  background:#f7f8fa;
  font-size:13px;
  font-weight:700;
  color:#374151;
  border-top:1px solid #dfe3e8;
}
.work-total-row.final td{
  background:#eef3f8;
  color:#1f4e78;
}
.work-total-label{
  text-align:right;
}


/* v6.8: заметная кнопка создания сметы с AI */
.ai-main-create-btn{
  width:100%;
  min-height:56px;
  font-size:18px;
  border-radius:12px;
  box-shadow:0 8px 22px rgba(23,105,224,.22);
}
.ai-main-create-btn:hover{transform:translateY(-1px)}


/* v7.2: группировка материалов по категориям */
.material-category-row td{
  background:#eef3f8;
  color:#26364a;
  font-size:14px;
  padding:12px 10px;
  border-top:2px solid #d8e0ea;
}
.material-cat-toggle{
  width:30px;height:30px;padding:0;margin-right:8px;
  border-radius:7px;border:1px solid #c8d2df;
  background:#fff;color:#334155;font-size:19px;font-weight:800;
  vertical-align:middle
}
.material-cat-toggle:hover{background:#f4f7fa}

