/* CRM ПТГ - оформление по дизайн-системе TENDERGOS, редакция «Деловой 2026» (11.09.2026).
   Токены --d-* - копия design/components/theme-delovoj-2026.css (мозг Госпартнёра), держать равными.
   Onest - всё, JetBrains Mono - только данные (суммы, км, номера). Один акцент действия - синий.
   Поверх стандартной админки Django: её переменные (--primary, --body-bg ...) переназначены на --d-*. */

@font-face{font-family:"Onest";src:url("fonts/onest-var-cyrillic.d1abf183873c.woff2") format("woff2");font-weight:400 700;font-display:swap;
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Onest";src:url("fonts/onest-var-latin.fd7dbbcb3633.woff2") format("woff2");font-weight:400 700;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";src:url("fonts/jetbrains-mono-400-cyrillic.82462194ebb6.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0400-045F}
@font-face{font-family:"JetBrains Mono";src:url("fonts/jetbrains-mono-400-latin.caf0dfde4e44.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:"JetBrains Mono";src:url("fonts/jetbrains-mono-500-cyrillic.af752ba91433.woff2") format("woff2");font-weight:500;font-display:swap;unicode-range:U+0400-045F}
@font-face{font-family:"JetBrains Mono";src:url("fonts/jetbrains-mono-500-latin.a21e038a03f7.woff2") format("woff2");font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}

/* ---------- токены: светлая ---------- */
:root{
  --d-bg:#F4F6FA; --d-surface:#FFFFFF; --d-surface-2:#F0F3F8; --d-hover:#F7F9FC; --d-well:#F4F6FA;
  --d-line:#E4E8F0; --d-line-strong:#D2D8E4;
  --d-text:#141821; --d-text-2:#5C6475; --d-text-3:#8990A1;
  --d-accent:#2F5FBE; --d-accent-hover:#2B58B0; --d-accent-tint:#EAF0FC; --d-accent-ink:#2653AE;
  --d-btn:#3B6FD4; --d-btn-hover:#3363C4; --d-on-btn:#FFFFFF;
  --d-ok:#157A52; --d-ok-tint:#E4F4EC; --d-warn:#95570A; --d-warn-tint:#FFF3E0; --d-danger:#B42318; --d-danger-tint:#FDECEA;
  --d-shadow-pop:0 1px 2px rgba(34,70,150,.06),0 14px 34px -10px rgba(34,70,150,.20),0 36px 72px -30px rgba(34,70,150,.22);
  --d-ring:0 0 0 4px rgba(59,111,212,.20);
  --d-r-card:20px; --d-r-field:14px; --d-r-plaque:12px; --d-r-pill:999px;
  --d-font:"Onest",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --d-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
/* ---------- токены: тёмная (переключатель темы админки + системная тема) ---------- */
html[data-theme="dark"]{
  --d-bg:#0A0B0F; --d-surface:#111319; --d-surface-2:#171A22; --d-hover:#1B1F28; --d-well:#0E1015;
  --d-line:rgba(255,255,255,.08); --d-line-strong:rgba(255,255,255,.14);
  --d-text:#ECEEF3; --d-text-2:#9AA1B2; --d-text-3:#6B7285;
  --d-accent:#5B8CFF; --d-accent-hover:#7BA2FF; --d-accent-tint:rgba(91,140,255,.12); --d-accent-ink:#A9C2F8;
  --d-ok:#56C79A; --d-ok-tint:rgba(86,199,154,.12); --d-warn:#E8AE55; --d-warn-tint:rgba(232,174,85,.12);
  --d-danger:#F0857A; --d-danger-tint:rgba(240,133,122,.12);
  --d-shadow-pop:0 0 0 1px rgba(255,255,255,.06),0 24px 48px -12px rgba(0,0,0,.65);
  --d-ring:0 0 0 4px rgba(91,140,255,.28);
}
@media (prefers-color-scheme:dark){
  html[data-theme="auto"]{
    --d-bg:#0A0B0F; --d-surface:#111319; --d-surface-2:#171A22; --d-hover:#1B1F28; --d-well:#0E1015;
    --d-line:rgba(255,255,255,.08); --d-line-strong:rgba(255,255,255,.14);
    --d-text:#ECEEF3; --d-text-2:#9AA1B2; --d-text-3:#6B7285;
    --d-accent:#5B8CFF; --d-accent-hover:#7BA2FF; --d-accent-tint:rgba(91,140,255,.12); --d-accent-ink:#A9C2F8;
    --d-ok:#56C79A; --d-ok-tint:rgba(86,199,154,.12); --d-warn:#E8AE55; --d-warn-tint:rgba(232,174,85,.12);
    --d-danger:#F0857A; --d-danger-tint:rgba(240,133,122,.12);
    --d-shadow-pop:0 0 0 1px rgba(255,255,255,.06),0 24px 48px -12px rgba(0,0,0,.65);
  }
}

/* ---------- переменные админки Django -> токены ---------- */
html, html[data-theme="light"], html[data-theme="dark"], html[data-theme="auto"]{
  --primary:var(--d-btn); --secondary:var(--d-surface); --accent:var(--d-accent); --primary-fg:var(--d-text);
  --body-fg:var(--d-text); --body-bg:var(--d-bg); --body-quiet-color:var(--d-text-2); --body-medium-color:var(--d-text-2);
  --body-loud-color:var(--d-text);
  --header-color:var(--d-text); --header-branding-color:var(--d-text); --header-bg:var(--d-surface); --header-link-color:var(--d-text);
  --breadcrumbs-fg:var(--d-text-2); --breadcrumbs-link-fg:var(--d-accent); --breadcrumbs-bg:var(--d-bg);
  --link-fg:var(--d-accent); --link-hover-color:var(--d-accent-hover); --link-selected-fg:var(--d-accent-ink);
  --hairline-color:var(--d-line); --border-color:var(--d-line-strong);
  --error-fg:var(--d-danger); --message-success-bg:var(--d-ok-tint); --message-warning-bg:var(--d-warn-tint); --message-error-bg:var(--d-danger-tint);
  --darkened-bg:var(--d-surface-2); --selected-bg:var(--d-accent-tint); --selected-row:var(--d-accent-tint);
  --button-fg:var(--d-on-btn); --button-bg:var(--d-btn); --button-hover-bg:var(--d-btn-hover);
  --default-button-bg:var(--d-btn); --default-button-hover-bg:var(--d-btn-hover);
  --close-button-bg:var(--d-text-3); --close-button-hover-bg:var(--d-text-2);
  --delete-button-bg:var(--d-danger); --delete-button-hover-bg:#8f1c13;
  --object-tools-fg:var(--d-on-btn); --object-tools-bg:var(--d-btn); --object-tools-hover-bg:var(--d-btn-hover);
  --font-family-primary:var(--d-font); --font-family-monospace:var(--d-mono);
}

body{background:var(--d-bg); color:var(--d-text); font-family:var(--d-font); font-size:15px; -webkit-font-smoothing:antialiased}
h1,h2,h3,#site-name{font-family:var(--d-font); letter-spacing:-.01em}
#content h1{font-size:28px; font-weight:700; color:var(--d-text); margin:4px 0 20px; text-wrap:balance}
a{transition:color .14s ease}

/* ---------- шапка: белая плашка с линией, как у банка ---------- */
#header{background:var(--d-surface); color:var(--d-text); border-bottom:1px solid var(--d-line); padding:12px 28px; min-height:64px}
#branding h1, #site-name{margin:0; font-size:18px; font-weight:700}
#site-name a{color:var(--d-text); display:flex; align-items:center; gap:10px; text-decoration:none}
.ptg-logo{display:inline-grid; place-items:center; width:36px; height:36px; border-radius:var(--d-r-plaque);
  background:var(--d-btn); color:#fff; font-weight:700; font-size:13px; letter-spacing:.02em}
.ptg-sub{color:var(--d-text-2); font-weight:500; font-size:14px}
#user-tools{color:var(--d-text-2); text-transform:none; letter-spacing:0; font-size:14px; font-weight:400}
#user-tools a, #logout-form button{color:var(--d-text-2); border-bottom:0}
#user-tools a:hover, #logout-form button:hover{color:var(--d-accent); text-decoration:none}
#user-tools strong{color:var(--d-text); font-weight:600}
div.breadcrumbs{background:transparent; color:var(--d-text-2); padding:14px 28px 0; font-size:13px}
div.breadcrumbs a{color:var(--d-accent)}

/* ---------- боковое меню ---------- */
#nav-sidebar{background:var(--d-bg); border-right:1px solid var(--d-line)}
#nav-sidebar .module, #nav-sidebar table{background:transparent; border:0; box-shadow:none}
#nav-sidebar caption, #nav-sidebar .module caption{background:transparent; color:var(--d-text-3); font-size:12px; font-weight:600;
  letter-spacing:.02em; text-transform:none; padding:14px 12px 6px}
#nav-sidebar th, #nav-sidebar td{border:0; padding:2px 6px}
#nav-sidebar th a{display:block; padding:8px 10px; border-radius:var(--d-r-field); color:var(--d-text); font-weight:500}
#nav-sidebar th a:hover{background:var(--d-hover); text-decoration:none}
#nav-sidebar .current-model th a{background:var(--d-accent-tint); color:var(--d-accent-ink)}
#nav-sidebar .current-model{background:transparent}
#nav-filter{border-radius:var(--d-r-field); background:var(--d-well); border:1px solid var(--d-line); padding:8px 12px; margin:10px 8px}
.toggle-nav-sidebar{background:var(--d-bg); border-right:1px solid var(--d-line); color:var(--d-text-3)}

/* ---------- модули = карточки ---------- */
.main > #content, #content{padding:20px 28px 40px}
.module{background:var(--d-surface); border:1px solid var(--d-line); border-radius:var(--d-r-card); overflow:hidden; margin-bottom:16px}
.module h2, .module caption, .inline-group h2{background:transparent; color:var(--d-text); font-size:16px; font-weight:700;
  text-transform:none; letter-spacing:0; padding:18px 20px 8px; border-bottom:0}
.module caption a.section{color:var(--d-text)}
fieldset.module{padding:4px 8px 8px}
.form-row{border-bottom:1px solid var(--d-line); padding:12px 12px}
.aligned label{color:var(--d-text-2); font-weight:500}
.help, p.help, div.help{color:var(--d-text-3); font-size:12.5px}

/* список разделов на сводке */
#content-main .app-list .module, .dashboard #content-main .module{border-radius:var(--d-r-card)}
.dashboard .module table th a{font-weight:500; color:var(--d-text)}
.dashboard .module table td a.addlink, .dashboard .module table td a.changelink{font-size:13px}

/* ---------- кнопки: таблетки, hover - затемнение ---------- */
.button, input[type=submit], input[type=button], .submit-row input, a.button, button.button{
  border-radius:var(--d-r-pill); padding:10px 18px; font-family:var(--d-font); font-weight:600; font-size:14px;
  background:var(--d-surface-2); color:var(--d-text); border:1px solid var(--d-line)}
.button:hover, input[type=submit]:hover, input[type=button]:hover{background:var(--d-hover); border-color:var(--d-line-strong)}
.button.default, input[type=submit].default, .submit-row input.default{background:var(--d-btn); color:var(--d-on-btn); border-color:var(--d-btn)}
.button.default:hover, input[type=submit].default:hover, .submit-row input.default:hover{background:var(--d-btn-hover); border-color:var(--d-btn-hover)}
.submit-row{background:transparent; border:0; padding:12px 0; gap:10px}
.submit-row a.deletelink{border-radius:var(--d-r-pill); padding:10px 18px; height:auto}
.object-tools a, .object-tools a:link, .object-tools a:visited{border-radius:var(--d-r-pill); padding:8px 16px; text-transform:none;
  letter-spacing:0; font-weight:600; font-size:14px; background:var(--d-btn)}
.object-tools a:hover{background:var(--d-btn-hover)}
#changelist .actions .button{border-radius:var(--d-r-pill)}

/* ---------- поля ---------- */
input[type=text], input[type=email], input[type=password], input[type=number], input[type=url], input[type=search],
input[type=tel], textarea, select, .vTextField, .vDateField, .vTimeField{
  border-radius:var(--d-r-field); border:1px solid var(--d-line-strong); background:var(--d-surface); color:var(--d-text);
  padding:8px 12px; font-family:var(--d-font); font-size:14.5px}
input:focus, textarea:focus, select:focus{outline:none; border-color:var(--d-btn); box-shadow:var(--d-ring)}
.select2-container--admin-autocomplete .select2-selection{border-radius:var(--d-r-field)!important; border-color:var(--d-line-strong)!important}

/* ---------- таблицы и списки ---------- */
#changelist{background:transparent}
#changelist .results, #changelist-form .results{background:var(--d-surface); border:1px solid var(--d-line); border-radius:var(--d-r-card); overflow:auto}
#result_list{width:100%}
#result_list thead th{background:var(--d-surface-2); color:var(--d-text-2); font-size:12.5px; font-weight:600; text-transform:none;
  letter-spacing:0; border-bottom:1px solid var(--d-line); padding:10px 12px}
#result_list thead th a{color:var(--d-text-2)}
#result_list tbody td, #result_list tbody th{padding:11px 12px; border-bottom:1px solid var(--d-line); vertical-align:middle}
#result_list tbody tr:hover td, #result_list tbody tr:hover th{background:var(--d-hover)}
#result_list tbody tr.selected td, #result_list tbody tr.selected th{background:var(--d-accent-tint)}
td.field-km, td.field-odometer_fmt, td[class*="field-money_"], td.field-amount, td.field-amount_fmt, td.field-total_fmt,
td.field-liters, td.field-price, td.field-days_short, td.field-monthly_payment, td.field-balance, td.field-principal,
td.field-value, td.field-interval_km, td.field-interval_hours, td.field-interval_days, td.field-engine_hours{
  font-family:var(--d-mono); font-variant-numeric:tabular-nums; white-space:nowrap}
#toolbar{background:transparent; border:0; padding:0 0 12px}
#toolbar #searchbar{border-radius:var(--d-r-pill); padding:9px 16px; min-width:280px}
#changelist-filter{background:var(--d-surface); border:1px solid var(--d-line); border-radius:var(--d-r-card); padding:6px 0}
#changelist-filter h2{background:transparent; color:var(--d-text); font-size:15px; font-weight:700; text-transform:none; letter-spacing:0; padding:12px 16px 4px}
#changelist-filter h3, #changelist-filter summary{color:var(--d-text-2); font-size:13px; font-weight:600}
#changelist-filter li.selected a{color:var(--d-accent-ink); font-weight:600}
.paginator{color:var(--d-text-2); font-size:13px; border-top:0; background:transparent}
.paginator a:link, .paginator a:visited{border-radius:var(--d-r-pill); background:var(--d-surface-2); color:var(--d-text)}
.paginator .this-page{border-radius:var(--d-r-pill); background:var(--d-btn); color:#fff; padding:4px 10px}
.toplinks, .xfull{font-size:13px}
.inline-group .tabular tr.has_original td{padding-top:12px}
.inline-group{border-radius:var(--d-r-card); border:1px solid var(--d-line); overflow:hidden}
ul.messagelist li{border-radius:var(--d-r-field); padding:12px 16px 12px 44px; margin:0 0 10px; color:var(--d-text); font-size:14px}

/* ---------- вход ---------- */
body.login{background:var(--d-bg)}
.login #container{background:var(--d-surface); border:1px solid var(--d-line); border-radius:var(--d-r-card); box-shadow:var(--d-shadow-pop);
  overflow:hidden; max-width:420px}
.login #header{justify-content:center; border-bottom:1px solid var(--d-line)}
.login #content{padding:24px 28px 28px}
.login .submit-row input{width:100%; background:var(--d-btn); color:#fff; border-color:var(--d-btn); padding:12px}
.login .password-reset-link{text-align:center; margin-top:12px}

/* ---------- сводка ---------- */
.dashboard #content{width:auto; max-width:1280px}
.dashboard #content-main{float:none; width:auto}
.ptg-grid{align-items:start}
.ptg-kpi .v{color:var(--d-text)}
.submit-row input, .button, input[type=submit]{text-transform:none; letter-spacing:0}
#header{flex-wrap:wrap; height:auto; gap:6px 16px}
.ptg-chip svg, .button svg{width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.75;
  stroke-linecap:round; stroke-linejoin:round; flex:none}
.ptg-card h2 .ptg-ico, .ptg-kpi .ptg-ico{flex:none}
.ptg-kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin:0 0 18px}
.ptg-kpi{background:var(--d-surface); border:1px solid var(--d-line); border-radius:var(--d-r-card); padding:16px 18px; display:block;
  color:var(--d-text); text-decoration:none; transition:border-color .14s ease}
a.ptg-kpi:hover{border-color:var(--d-btn); text-decoration:none}
.ptg-kpi .k{color:var(--d-text-2); font-size:13px; font-weight:500; display:flex; align-items:center; gap:8px}
.ptg-kpi .v{font-family:var(--d-mono); font-variant-numeric:tabular-nums; font-size:28px; font-weight:500; margin-top:8px; letter-spacing:-.02em}
.ptg-kpi .n{color:var(--d-text-3); font-size:12.5px; margin-top:4px}
.ptg-kpi.is-alarm .v{color:var(--d-danger)}
.ptg-kpi.is-ok .v{color:var(--d-ok)}
.ptg-ico{display:inline-grid; place-items:center; width:28px; height:28px; border-radius:9px; background:var(--d-accent-tint); color:var(--d-accent)}
.ptg-ico svg{width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round}
.ptg-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.ptg-card{background:var(--d-surface); border:1px solid var(--d-line); border-radius:var(--d-r-card); padding:18px 20px}
.ptg-card h2{font-size:16px; font-weight:700; margin:0 0 10px; display:flex; align-items:center; gap:10px; color:var(--d-text)}
.ptg-row{display:flex; gap:10px; align-items:flex-start; padding:10px 0; border-top:1px solid var(--d-line); font-size:14px}
.ptg-row:first-of-type{border-top:0}
.ptg-row .t{flex:1; min-width:0; overflow-wrap:anywhere}
.ptg-row .w{color:var(--d-text-2); font-size:13px; white-space:nowrap}
.ptg-row .sum{font-family:var(--d-mono); font-variant-numeric:tabular-nums; white-space:nowrap}
.ptg-empty{color:var(--d-text-3); font-size:14px; padding:6px 0}
.ptg-note{color:var(--d-text-3); font-size:12.5px; margin-top:8px}
.lvl{display:inline-block; font-size:12px; font-weight:600; padding:3px 10px; border-radius:var(--d-r-pill); white-space:nowrap}
.lvl-overdue{background:var(--d-danger-tint); color:var(--d-danger)}
.lvl-soon{background:var(--d-warn-tint); color:var(--d-warn)}
.lvl-open{background:var(--d-accent-tint); color:var(--d-accent-ink)}
.ptg-links{display:flex; flex-wrap:wrap; gap:8px}
.ptg-chip{display:inline-flex; align-items:center; gap:8px; border-radius:var(--d-r-pill); padding:8px 14px; background:var(--d-surface-2);
  color:var(--d-text); font-weight:500; font-size:14px; border:1px solid var(--d-line)}
.ptg-chip:hover{border-color:var(--d-btn); text-decoration:none; color:var(--d-text)}
.ptg-section-title{font-size:15px; font-weight:700; color:var(--d-text-2); margin:22px 0 10px}

/* страницы-инструменты (загрузка, подключения, справка) */
.ptg-page{max-width:880px}
.ptg-page .ptg-card + .ptg-card{margin-top:16px}
.ptg-page p, .ptg-page li{font-size:15px; line-height:1.6; color:var(--d-text); max-width:78ch}
.ptg-page code, .ptg-page kbd{font-family:var(--d-mono); background:var(--d-surface-2); border:1px solid var(--d-line); border-radius:8px; padding:1px 6px; font-size:13px}
.ptg-steps{counter-reset:s; list-style:none; padding:0; margin:0}
.ptg-steps > li{counter-increment:s; position:relative; padding:0 0 14px 40px}
.ptg-steps > li::before{content:counter(s); position:absolute; left:0; top:0; width:26px; height:26px; border-radius:50%;
  background:var(--d-accent-tint); color:var(--d-accent-ink); font-weight:700; font-size:13px; display:grid; place-items:center}
.ptg-tip{background:var(--d-accent-tint); border-radius:var(--d-r-field); padding:12px 16px; color:var(--d-accent-ink); font-size:14px}
.ptg-warnbox{background:var(--d-warn-tint); border-radius:var(--d-r-field); padding:12px 16px; color:var(--d-warn); font-size:14px}

@media (max-width:767px){
  html body #header{padding:10px 16px; display:flex; flex-direction:column; flex-wrap:nowrap; height:auto; align-items:flex-start}
  html body #header #branding{float:none; width:100%; display:flex; justify-content:space-between; align-items:center}
  html body #header #user-tools{clear:both; float:none}
  html body #header #user-tools{white-space:normal; margin:0; text-align:left; font-size:13px; max-width:100%; overflow-wrap:anywhere}
  html body .dashboard .module table{min-width:0; width:100%}
  html body .dashboard .module th{white-space:normal}
  #content, .main > #content{padding:14px 16px 30px}
  .ptg-grid{grid-template-columns:1fr}
  .ptg-kpis{grid-template-columns:1fr 1fr}
  .ptg-kpi .v{font-size:22px}
  .ptg-row{flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
