/* Портал МО «Ланское».
   Палитра и типографика — общие с СЭД (crm.colordrive.ru), чтобы у сотрудников
   не было ощущения двух разных систем. Шрифты подключаются локально
   (vendor/fonts/fonts.css подключён отдельным <link> в шаблонах, чтобы
   браузер тянул его параллельно, а не после разбора этого файла):
   рабочие места МА могут быть без внешнего доступа, поэтому с CDN
   не тянем ничего. */

:root{
  --ink:#2b2822;
  --ink-soft:#5c5648;
  --muted:#8a8271;
  --paper:#faf7f0;
  --card:#fffdf8;
  --line:#e6e0d2;
  --line-strong:#ddd5c3;
  --accent:#2f6b4f;
  --accent-ink:#fdfbf4;
  --warn-bg:#fdf6ec; --warn-line:#ecd9b8; --warn-accent:#c2a23a; --warn-ink:#8a6a1f;
  --info-bg:#eef3f6; --info-line:#cfdde6; --info-accent:#4a7a96; --info-ink:#4a7a96;
  --danger-bg:#fdf1ee; --danger-line:#e0b7ad; --danger-accent:#a8452e; --danger-ink:#a8452e;
  --ok-bg:#f0f4ee; --ok-line:#d4dfcd;
  --grey-bg:#f2ede1;
  /* оранжевый светофора: между жёлтым и красным, в той же тёплой гамме */
  --orange-bg:#fbeee2; --orange-line:#e6c9a8; --orange-ink:#a2611f;
}

*{box-sizing:border-box}
body{font-family:'Golos Text',-apple-system,Arial,sans-serif;margin:0;
  background:var(--paper);color:var(--ink)}
h1,h2,h3{font-family:'PT Serif',Georgia,serif;font-weight:700;color:var(--ink)}
h1{font-size:26px;margin:0 0 18px}
h2{font-size:19px;margin:26px 0 12px}
h3{font-size:15.5px;margin:20px 0 10px}
small{color:var(--muted)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------------- шапка */
header.top{background:var(--card);border-bottom:1px solid var(--line);
  border-top:4px solid var(--accent);padding:0 40px;min-height:76px;
  display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.hdr-gerb{width:44px;height:44px;border-radius:50%;object-fit:cover;
  border:1.5px solid var(--line-strong);flex-shrink:0}
.hdr-title-org{font-family:'PT Serif',serif;font-weight:700;font-size:16.5px;
  color:var(--ink);line-height:1.25}
.hdr-title-section{font-size:11px;color:var(--muted);letter-spacing:.06em;
  text-transform:uppercase;margin-top:1px}
.hdr-user{margin-left:auto;display:flex;align-items:center;gap:16px}
.hdr-user-name{text-align:right}
.hdr-user-name b{display:block;font-size:13.5px;font-weight:600;color:var(--ink)}
.hdr-user-name span{font-size:12px;color:var(--muted)}

nav.tabs{display:flex;gap:2px;flex-wrap:wrap;padding:0 40px;background:var(--card);
  border-bottom:1px solid var(--line)}
nav.tabs a{padding:11px 14px;font-size:13.5px;color:var(--ink-soft);
  border-bottom:2px solid transparent;margin-bottom:-1px}
nav.tabs a:hover{color:var(--ink);text-decoration:none;background:var(--paper)}
nav.tabs a.on{color:var(--accent);font-weight:600;border-bottom-color:var(--accent)}

main{max-width:1400px;margin:24px auto 60px;background:var(--card);
  padding:30px 40px;border-radius:16px;border:1px solid var(--line);
  box-shadow:0 1px 3px rgba(43,40,34,.05)}
@media(max-width:900px){
  header.top,nav.tabs{padding:0 16px}
  main{padding:20px 16px;margin:12px;border-radius:12px}
}

/* -------------------------------------------------------------- таблицы */
table{border-collapse:separate;border-spacing:0;width:100%;margin-top:10px;
  border:1px solid var(--line);border-radius:12px;overflow:hidden}
th,td{text-align:left;padding:11px 13px;border-bottom:1px solid #f0ebdf;
  font-size:13.5px;overflow-wrap:break-word;vertical-align:top}
tr:last-child td{border-bottom:none}
th{background:#f7f3e9;font-size:11px;font-weight:600;color:var(--muted);
  text-transform:uppercase;letter-spacing:.04em}
tbody tr:hover{background:#fdfbf4}
td.num,th.num{text-align:right;white-space:nowrap}
table.plain{border:none}
table.plain td{border-bottom:1px solid #f6f2e8;padding:7px 0}
table.plain tr:last-child td{border-bottom:none}
.scroll-x{overflow-x:auto}

/* --------------------------------------------------------------- бейджи */
.badge{display:inline-block;padding:4px 10px;border-radius:7px;font-size:12px;
  font-weight:600;white-space:nowrap}
.badge.green{background:var(--ok-bg);color:var(--accent)}
.badge.yellow{background:var(--warn-bg);color:var(--warn-ink)}
.badge.orange{background:var(--orange-bg);color:var(--orange-ink)}
.badge.red{background:var(--danger-bg);color:var(--danger-accent)}
.badge.grey,.badge.closed,.badge.none{background:var(--grey-bg);color:var(--ink-soft)}
.badge.info{background:var(--info-bg);color:var(--info-ink)}
tr.row-red td:first-child{box-shadow:inset 3px 0 0 var(--danger-accent)}
tr.row-orange td:first-child{box-shadow:inset 3px 0 0 var(--orange-ink)}

/* ---------------------------------------------------------------- формы */
input[type=text],input[type=password],input[type=date],input[type=number],
input[type=file],select,textarea{
  font-family:inherit;font-size:13.5px;padding:10px 13px;margin:4px 0;
  width:100%;max-width:100%;background:var(--paper);
  border:1px solid var(--line-strong);border-radius:9px;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
textarea{min-height:90px;resize:vertical}
label{display:block;margin-top:10px;margin-bottom:2px;font-size:12.5px;
  font-weight:600;color:var(--ink-soft)}

button,.btn{font-family:inherit;background:var(--accent);color:var(--accent-ink);
  border:none;border-radius:9px;padding:10px 20px;font-size:13.5px;
  font-weight:600;cursor:pointer;display:inline-block;text-align:center}
button:hover,.btn:hover{opacity:.92;text-decoration:none}
button.secondary,.btn.secondary{background:var(--card);color:var(--ink-soft);
  border:1px solid var(--line-strong)}
button.danger{background:var(--danger-bg);color:var(--danger-accent);
  border:1px solid var(--danger-line)}
button.small,.btn.small{padding:6px 12px;font-size:12.5px}
form.inline{display:inline}

fieldset{margin-bottom:18px;border:1px solid var(--line);border-radius:14px;
  padding:20px 24px;background:var(--card);counter-increment:dv-step}
form.numbered{counter-reset:dv-step}
legend{display:flex;align-items:center;gap:10px;font-family:'PT Serif',serif;
  font-weight:700;font-size:15.5px;padding:0 6px}
form.numbered legend::before{content:counter(dv-step);width:24px;height:24px;
  border-radius:50%;flex-shrink:0;background:var(--accent);color:var(--accent-ink);
  display:flex;align-items:center;justify-content:center;
  font-family:'Golos Text',sans-serif;font-size:12px;font-weight:600}

.row{display:flex;gap:14px;flex-wrap:wrap}
.row>*{flex:1;min-width:180px}
.toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}
.toolbar .grow{flex:1;min-width:220px}
.toolbar>div{min-width:150px}

/* -------------------------------------------------------------- метрики */
.metrics{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.metric{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:18px 22px;min-width:160px;flex:1;font-size:13px;color:var(--ink-soft)}
.metric b{font-family:'PT Serif',serif;font-size:32px;font-weight:700;
  display:block;color:var(--ink);line-height:1.15}
.metric.warn{background:var(--warn-bg);border-color:var(--warn-line)}
.metric.warn b{color:var(--warn-ink)}
.metric.bad{background:var(--danger-bg);border-color:var(--danger-line)}
.metric.bad b{color:var(--danger-accent)}
.metric.good{background:var(--ok-bg);border-color:var(--ok-line)}
.metric.good b{color:var(--accent)}

/* --------------------------------------------------------------- панели */
.panel{border-radius:12px;padding:16px 22px;margin-bottom:18px;
  border:1px solid var(--line);background:var(--card)}
.panel h3{margin-top:0}
.panel-urgent{background:var(--warn-bg);border:1px solid var(--warn-line);
  border-left:5px solid var(--warn-accent);border-radius:12px;
  padding:16px 22px;margin-bottom:18px}
.panel-urgent h3{margin-top:0;color:var(--warn-ink)}
.panel-info{background:var(--info-bg);border:1px solid var(--info-line);
  border-left:5px solid var(--info-accent);border-radius:12px;
  padding:16px 22px;margin-bottom:18px}
.panel-info h3{margin-top:0;color:var(--info-ink)}
.panel-success{background:var(--ok-bg);border:1px solid var(--ok-line);
  border-left:5px solid var(--accent);border-radius:12px;
  padding:16px 22px;margin-bottom:18px}
.panel-success h3{margin-top:0;color:var(--accent)}
.panel-danger{background:var(--danger-bg);border:1px solid var(--danger-line);
  border-left:5px solid var(--danger-accent);border-radius:12px;
  padding:16px 22px;margin-bottom:18px}
.panel-danger h3{margin-top:0;color:var(--danger-accent)}
.panel-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.panel-row>div{margin-bottom:0}
@media(max-width:900px){.panel-row{grid-template-columns:1fr}}

.muted{color:var(--muted)}
.small{font-size:12.5px}
.hint{font-size:12.5px;color:var(--muted);margin-top:4px}
.error{color:var(--danger-accent);background:var(--danger-bg);
  border:1px solid var(--danger-line);border-radius:10px;padding:10px 16px;
  margin:10px 0}

/* ----------------------------------------------------------------- фото */
.photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.photos a{display:block;width:112px;height:84px;border-radius:9px;
  overflow:hidden;border:1px solid var(--line-strong)}
.photos img{width:100%;height:100%;object-fit:cover;display:block}

/* -------------------------------------------------------- лента событий */
.feed{border-left:2px solid var(--line);margin-left:6px;padding-left:16px}
.feed .ev{margin-bottom:14px;position:relative}
.feed .ev::before{content:"";position:absolute;left:-22px;top:6px;width:8px;
  height:8px;border-radius:50%;background:var(--line-strong)}
.feed .ev.sys::before{background:var(--accent)}
.feed .ev.bad::before{background:var(--danger-accent)}
.feed .ev b{font-size:13.5px}
.feed .ev time{color:var(--muted);font-size:12px;margin-left:8px}
.feed .ev p{margin:4px 0 0;white-space:pre-wrap;font-size:13.5px}

/* ------------------------------------------------------------- чек-лист */
.check{padding:0;margin:6px 0;list-style:none}
.check li{margin:6px 0;font-size:13.5px}
.check .yes::before{content:"✓ ";color:var(--accent);font-weight:700}
.check .no::before{content:"✗ ";color:var(--danger-accent);font-weight:700}
.check .no{color:var(--danger-accent)}
.check em{display:block;font-style:normal;font-size:12px;color:var(--muted);
  margin-left:18px}

/* ----------------------------------------------------------------- дела */
.deed{border:1px solid var(--line);border-radius:12px;padding:14px 18px;
  margin-bottom:10px;background:var(--card)}
.deed.done{background:var(--ok-bg);border-color:var(--ok-line)}
.deed-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.deed-head b{font-size:14px}
.deed-body{margin-top:8px;font-size:13.5px}

/* ------------------------------------------------------------- страницы */
.pager{display:flex;gap:8px;align-items:center;margin-top:16px;flex-wrap:wrap}
.pager .cur{font-weight:600;color:var(--muted);font-size:13px}

/* ----------------------------------------------------------------- вход */
.login-wrap{max-width:400px;margin:8vh auto;background:var(--card);
  border:1px solid var(--line);border-top:4px solid var(--accent);
  border-radius:16px;padding:32px 34px;
  box-shadow:0 1px 3px rgba(43,40,34,.05)}
.login-wrap .gerb{display:block;width:64px;height:64px;border-radius:50%;
  object-fit:cover;border:1.5px solid var(--line-strong);margin:0 auto 14px}
.login-wrap h1{text-align:center;font-size:21px;margin-bottom:4px}
.login-wrap .sub{text-align:center;color:var(--muted);font-size:12.5px;
  margin-bottom:22px;line-height:1.5}
.login-wrap button{width:100%;margin-top:18px}

#map{height:460px;border-radius:12px;border:1px solid var(--line)}
canvas{max-width:100%}
details summary{cursor:pointer;font-weight:600;padding:4px 0}
code{background:var(--grey-bg);padding:1px 6px;border-radius:5px;
  font-family:'IBM Plex Mono',monospace;font-size:12.5px}
pre{background:#332f28;color:#f4efe4;padding:14px;border-radius:10px;
  overflow-x:auto;font-family:'IBM Plex Mono',monospace;font-size:12.5px;
  line-height:1.55}
