/* НИЦ «Строительство»: оформление существующей ИСУ, версия 1.0.1. */
:root {
  --bg-page:#f2f5fa; --bg-card:#fff; --bg-subtle:#f5f8fc;
  --border:#e3eaf3; --border-strong:#bccbdc;
  --text-primary:#203348; --text-secondary:#50647c; --text-muted:#65768b;
  --accent:#0a58af; --accent-strong:#08478e; --accent-bg:#eaf3ff;
  --accent-on-tint:#124f91;
  --rail-bg:#143d73; --rail-text:#c8d8ec; --rail-text-strong:#fff;
  --rail-text-muted:#acc4e0; --rail-accent:#9ac8ff;
  --radius:14px; --radius-sm:8px;
  --shadow-card:0 2px 12px rgba(24,58,99,.035);
  --shadow-raise:0 5px 18px rgba(24,58,99,.09);
  --shadow-pop:0 10px 35px rgba(24,58,99,.16);
}
body { background:var(--bg-page); }
.app-screen { padding:16px; gap:24px; }
.sidebar { flex-basis:264px; width:264px; padding:22px 13px 12px; }
.isu-brand { display:flex; align-items:center; gap:9px; padding:0 4px 18px; color:#fff; text-decoration:none; flex-shrink:0; }
.isu-brand img { width:73px; height:57px; object-fit:contain; flex-shrink:0; }
.isu-brand-text { min-width:0; display:block; line-height:1.15; }
.isu-brand-text b { display:block; font-size:15px; }
.isu-brand-text strong { display:block; font-weight:500; font-size:17px; letter-spacing:-.4px; }
.isu-brand-text small { display:block; font-size:7px; white-space:nowrap; margin-top:4px; color:#d5e4f6; }
.isu-system-label { padding:0 5px 18px; margin-bottom:18px; border-bottom:1px solid #ffffff20; font-size:8px; letter-spacing:.09em; color:#b6cde7; flex-shrink:0; }
.side-item,.side-document-create { min-height:43px; border-radius:7px; }
.side-item.active { background:#ffffff17; box-shadow:inset 3px 0 #91c1ff; }
.side-create { background:#0a65c5; color:#fff; border:1px solid #4b8bd0; min-height:43px; border-radius:7px; }
.side-document-create:hover,.side-document-create[aria-expanded="true"] { background:#ffffff15; }
.side-profile { border-top:1px solid #ffffff20; border-radius:0; margin:12px 0 4px; padding:15px 8px 8px; }
.side-profile-name { font-size:13px; }
.side-profile-role { font-size:11px; }
.side-avatar { background:#315d94; color:#edf5ff; border:1px solid #6587b0; }
.side-sep { background:#ffffff17; margin:12px 8px; }
.files-section { flex-direction:column; gap:0; }
.isu-workspace-heading { padding:14px 0 24px; flex-shrink:0; }
.isu-workspace-heading h1 { font-size:28px; line-height:1.25; letter-spacing:-.025em; margin:0 0 10px; font-weight:600; }
.isu-workspace-heading p { margin:0; color:var(--text-muted); font-size:13px; }
.files-section:has(#columnsView.hidden) > .isu-workspace-heading { display:none; }
.columns-view { gap:20px; }
.col { padding:22px; }
.col-header { margin-bottom:20px; }
.col-title { font-size:20px; }
.col-toolbar { padding-bottom:12px; }
.row-item { min-height:62px; padding:10px; border-bottom:1px solid #f0f4f9; }
.row-item .icon { color:#4779ae; }
.folder-view { padding:24px; }
.folder-title { letter-spacing:-.025em; }
.breadcrumbs { color:var(--text-muted); }
.file-row { min-height:56px; }
.file-row .icon { stroke:#507ba9; }
.case-banner { background:#f3f8ff; border-color:#dbe8f8; }
.case-sec { border-color:var(--border); }
.reg-tile { padding:22px; box-shadow:none; }
.reg-tile-num { color:var(--accent); }
.reg-row { padding-top:15px; padding-bottom:15px; }
.reg-chip.none { color:var(--text-muted); }
.jr-table th { background:#f5f8fd; color:#526982; }
.jr-table td { border-color:var(--border); }
.jr-table tbody tr:hover { background:#f3f8ff; }
.jr-tab.active,.jr-tab[aria-selected="true"] { background:var(--accent-bg); color:var(--accent); }
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible { outline:2px solid #397dcc; outline-offset:3px; }
.login-screen { background:radial-gradient(ellipse at 20% 10%,#dcecff,transparent 60%),var(--bg-page); }
.login-panel { border-color:var(--border); box-shadow:0 12px 45px #143d7312; }
@media (min-width:901px) {
  /* Панель растёт вместе со всеми пунктами. Жёсткие 100vh раньше
     оставляли нижние кнопки за пределами синего фона. */
  .app-screen { height:auto; min-height:100vh; min-height:100dvh; }
  .sidebar { min-height:calc(100vh - 32px); min-height:calc(100dvh - 32px); height:auto; overflow:visible; align-self:stretch; }
  .sidebar > * { flex-shrink:0; }
  /* Рабочая область сохраняет собственную прокрутку и высоту окна. */
  .app-screen > .section { height:calc(100vh - 32px); height:calc(100dvh - 32px); position:sticky; top:16px; align-self:flex-start; }
}
@media (max-width:1100px) and (min-width:901px) {
  .app-screen { gap:16px; }
  .sidebar { flex-basis:236px; width:236px; padding-left:10px; padding-right:10px; }
  .isu-brand img { width:60px; }
  .isu-brand-text strong { font-size:15px; }
  .isu-brand-text small { font-size:6px; }
  .isu-system-label { font-size:7px; }
  .col { padding:17px; }
}
@media (max-width:900px) {
  .app-screen { padding:12px; gap:14px; }
  .sidebar { width:auto; flex-basis:auto; padding:15px; }
  .isu-brand { padding:0 12px 8px 0; }
  .isu-brand img { height:45px; }
  .isu-system-label { display:none; }
  .side-profile { border:0; margin:0; padding:8px; }
  .side-bottom { flex-wrap:wrap; align-items:center; }
  .isu-workspace-heading { padding:10px 0 20px; }
  .columns-view { gap:14px; }
  .col { padding:18px; }
  .folder-view { padding:18px; }
}
@media (max-width:620px) {
  .columns-view { flex-direction:column; }
  .col { min-width:0; flex-basis:auto; }
  .col-body { max-height:55vh; }
  .isu-workspace-heading h1 { font-size:24px; }
  .side-profile-name { max-width:150px; }
}
