@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --bg:#eef1f7;
  --bg-grad:
    radial-gradient(1100px 560px at 100% -10%, #ffe9d8 0%, rgba(255,233,216,0) 60%),
    radial-gradient(1000px 520px at -8% 6%, #e6ecff 0%, rgba(230,236,255,0) 55%),
    #eef1f7;
  --panel:#ffffff;
  --card:#ffffff;
  --card-soft:#f5f7fc;
  --border:#e5e9f2;
  --border-strong:#d5dbe8;
  --text:#171a23;
  --text-dim:#6a7285;
  --accent:#ff6a1a;
  --accent-2:#ff9433;
  --accent-grad:linear-gradient(135deg,#ff6a1a 0%,#ff9433 100%);
  --accent-soft:#fff1e7;
  --brand2:#3f5bff;
  --brand2-soft:#ecefff;
  --hazard:#e08a00;
  --hazard-soft:#fff2d6;
  --ok:#12a150; --ok-soft:#e6f7ee;
  --bad:#e5484d; --bad-soft:#fdecec;
  --shadow:0 1px 2px rgba(23,26,35,.04), 0 6px 20px rgba(23,26,35,.06);
  --shadow-md:0 4px 14px rgba(23,26,35,.08);
  --shadow-accent:0 8px 22px rgba(255,106,26,.28);
  --radius:16px;
  --radius-sm:10px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'IBM Plex Sans',sans-serif;
  background:var(--bg-grad);
  background-attachment:fixed;
  color:var(--text);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
.app{display:flex;min-height:100vh;}

/* ============ SIDEBAR ============ */
.sidebar{
  width:250px;flex-shrink:0;background:var(--panel);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;padding:24px 0;
  position:sticky;top:0;height:100vh;
  box-shadow:1px 0 0 rgba(23,26,35,.02);
}
.brand{padding:0 22px 20px 22px;margin-bottom:16px;position:relative;}
.brand::after{
  content:"";position:absolute;left:22px;right:22px;bottom:0;height:4px;border-radius:4px;
  background:var(--accent-grad);
}
.brand-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:21px;letter-spacing:.4px;text-transform:uppercase;line-height:1.1;}
.brand-sub{font-size:11.5px;color:var(--text-dim);margin-top:5px;letter-spacing:.4px;}
.nav{display:flex;flex-direction:column;gap:3px;padding:0 12px;}
.nav-btn{
  display:flex;align-items:center;gap:12px;padding:11px 13px;border:none;background:transparent;
  color:var(--text-dim);font-family:'IBM Plex Sans';font-size:14px;font-weight:600;
  border-radius:11px;cursor:pointer;text-align:left;transition:all .16s ease;
}
.nav-btn svg{width:19px;height:19px;flex-shrink:0;opacity:.7;transition:opacity .16s;}
.nav-btn:hover{background:var(--card-soft);color:var(--text);}
.nav-btn.active{background:var(--accent-grad);color:#fff;box-shadow:var(--shadow-accent);}
.nav-btn.active svg{opacity:1;}

/* ============ MAIN ============ */
.main{flex:1;padding:38px 46px 60px;max-width:1080px;}
.page-title{font-family:'Oswald',sans-serif;font-size:32px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;line-height:1.05;}
.page-sub{color:var(--text-dim);font-size:15px;margin-bottom:26px;max-width:720px;line-height:1.5;}
.tab-content{display:none;}
.tab-content.active{display:block;animation:fadeIn .28s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ============ STAT STRIP ============ */
.stat-strip{display:flex;gap:14px;margin-bottom:24px;flex-wrap:wrap;}
.stat-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 20px;min-width:130px;box-shadow:var(--shadow);}
.stat-num{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:600;color:var(--accent);}
.stat-lbl{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-weight:600;}

/* ============ RICH TEXT (shared: методичка контент, CRM, эталоны теста) ============ */
.rich,.acc-body-inner,.module-content,.quiz-answer{color:var(--text-dim);font-size:14px;line-height:1.72;}
.rich b,.acc-body-inner b,.module-content b,.quiz-answer b{color:var(--text);font-weight:600;}
.rich ul,.acc-body-inner ul,.module-content ul,.quiz-answer ul{margin:7px 0 11px 20px;}
.rich ol,.acc-body-inner ol,.module-content ol{margin:7px 0 11px 20px;}
.rich li,.acc-body-inner li,.module-content li,.quiz-answer li{margin-bottom:5px;}
.rich p,.module-content p{margin:4px 0;}
.hl{color:#c85a00;background:var(--hazard-soft);padding:0 4px;border-radius:4px;font-weight:600;}
.money{color:var(--ok);font-weight:600;}
.warn{color:var(--hazard);font-weight:600;}
.rich table,.acc-body-inner table,.module-content table{width:100%;border-collapse:collapse;margin:10px 0 14px;font-size:13px;background:var(--card);border-radius:10px;overflow:hidden;border:1px solid var(--border);}
.rich th,.acc-body-inner th,.module-content th{text-align:left;padding:8px 11px;background:var(--card-soft);color:var(--text);font-weight:600;border-bottom:1px solid var(--border);}
.rich td,.acc-body-inner td,.module-content td{padding:8px 11px;border-bottom:1px solid var(--border);}
.rich tr:last-child td,.module-content tr:last-child td{border-bottom:none;}
.callout{background:var(--bad-soft);border-left:4px solid var(--bad);padding:11px 15px;border-radius:0 10px 10px 0;margin:12px 0;color:var(--text);font-size:13.5px;line-height:1.6;}
.callout-sell{background:var(--ok-soft);border-left:4px solid var(--ok);padding:11px 15px;border-radius:0 10px 10px 0;margin:12px 0;color:var(--text);font-size:13.5px;line-height:1.6;}
.checklist-box{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--hazard);border-radius:0 12px 12px 0;padding:16px 18px;margin-top:18px;font-size:13.5px;color:var(--text-dim);line-height:1.65;box-shadow:var(--shadow);}
.checklist-box b{color:var(--hazard);}

/* ============ ACCORDION (Регламент CRM) ============ */
.acc-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .16s;}
.acc-item:hover{box-shadow:var(--shadow-md);}
.acc-head{display:flex;align-items:center;gap:15px;padding:16px 20px;cursor:pointer;user-select:none;}
.acc-num{font-family:'IBM Plex Mono',monospace;font-weight:600;color:#fff;background:var(--accent-grad);border-radius:9px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;}
.acc-title{font-weight:600;font-size:15.5px;flex:1;color:var(--text);}
.acc-chevron{color:var(--text-dim);transition:transform .2s;font-size:11px;}
.acc-item.open .acc-chevron{transform:rotate(90deg);}
.acc-body{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.acc-item.open .acc-body{max-height:2600px;}
.acc-body-inner{padding:0 20px 18px 67px;}

/* ============ ПУТЬ ОБУЧЕНИЯ (Методичка) ============ */
.lp-head{
  background:linear-gradient(135deg,#ffffff 0%,#fff6ef 100%);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:22px 24px;margin-bottom:22px;box-shadow:var(--shadow-md);position:relative;overflow:hidden;
}
.lp-head::before{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(255,106,26,.12),transparent 70%);}
.lp-head-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;position:relative;}
.lp-head-title{font-family:'Oswald',sans-serif;font-size:17px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;}
.lp-head-count{font-family:'IBM Plex Mono',monospace;font-size:20px;font-weight:600;color:var(--accent);}
.lp-progress{height:12px;background:var(--card-soft);border:1px solid var(--border);border-radius:20px;margin:12px 0 10px;overflow:hidden;position:relative;}
.lp-progress-fill{height:100%;background:var(--accent-grad);border-radius:20px;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 10px rgba(255,106,26,.4);}
.lp-head-sub{font-size:13px;color:var(--text-dim);line-height:1.5;position:relative;}
.lp-reset{margin-top:12px;background:transparent;border:1px solid var(--border-strong);color:var(--text-dim);font-size:12px;font-weight:600;padding:6px 12px;border-radius:8px;cursor:pointer;transition:all .15s;}
.lp-reset:hover{border-color:var(--bad);color:var(--bad);}

.lp-list{display:flex;flex-direction:column;gap:11px;}
.module-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .18s,transform .18s,border-color .18s;}
.module-card.open:hover{box-shadow:var(--shadow-md);}
.module-card.done{border-color:#bce6cd;}
.module-card.locked{opacity:.72;background:var(--card-soft);}
.module-head{display:flex;align-items:center;gap:15px;padding:16px 20px;user-select:none;}
.module-card.open .module-head,.module-card.done .module-head{cursor:pointer;}
.module-card.locked .module-head{cursor:not-allowed;}
.module-badge{
  width:36px;height:36px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:15px;color:#fff;
}
.module-card.open .module-badge{background:var(--accent-grad);box-shadow:var(--shadow-accent);}
.module-card.done .module-badge{background:linear-gradient(135deg,#12a150,#2fc36e);}
.module-card.locked .module-badge{background:var(--border-strong);color:var(--panel);}
.module-badge svg{width:17px;height:17px;}
.module-titlewrap{flex:1;min-width:0;}
.module-title{font-weight:600;font-size:15.5px;color:var(--text);line-height:1.3;}
.module-card.locked .module-title{color:var(--text-dim);}
.module-status{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-top:3px;}
.module-card.open .module-status{color:var(--accent);}
.module-card.done .module-status{color:var(--ok);}
.module-card.locked .module-status{color:var(--text-dim);}
.module-chevron{color:var(--text-dim);font-size:13px;transition:transform .25s;flex-shrink:0;}
.module-card.expanded .module-chevron{transform:rotate(180deg);}
.module-body{display:none;border-top:1px solid var(--border);}
.module-card.expanded .module-body{display:block;animation:fadeIn .25s ease;}
.module-body-inner{padding:20px 22px 22px;}
.module-content{margin-bottom:4px;}

/* Тест внутри модуля */
.mtest{margin-top:20px;background:var(--card-soft);border:1px solid var(--border);border-radius:var(--radius-sm);padding:18px 20px;}
.mtest-title{font-family:'Oswald',sans-serif;font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.mtest-meta{font-family:'IBM Plex Sans';font-size:11.5px;font-weight:500;color:var(--text-dim);text-transform:none;letter-spacing:0;}
.mtest-q{padding:14px 0;border-bottom:1px solid var(--border);}
.mtest-q:last-of-type{border-bottom:none;}
.mtest-qtext{font-weight:600;font-size:14.5px;color:var(--text);margin-bottom:10px;line-height:1.45;}
.mtest-opts{display:flex;flex-direction:column;gap:7px;}
.mtest-opt{display:flex;align-items:flex-start;gap:10px;padding:10px 13px;background:var(--card);border:1.5px solid var(--border);border-radius:10px;cursor:pointer;font-size:13.5px;color:var(--text);transition:all .13s;line-height:1.4;}
.mtest-opt:hover{border-color:var(--accent-2);background:var(--accent-soft);}
.mtest-opt input{margin-top:2px;accent-color:var(--accent);flex-shrink:0;cursor:pointer;}
.mtest-opt.opt-correct{border-color:var(--ok);background:var(--ok-soft);}
.mtest-opt.opt-chosen-wrong{border-color:var(--bad);background:var(--bad-soft);}
.mtest-opt.opt-correct::after{content:"✓";margin-left:auto;color:var(--ok);font-weight:700;}
.mtest-opt.opt-chosen-wrong::after{content:"✕";margin-left:auto;color:var(--bad);font-weight:700;}
.mtest-actions{margin-top:16px;display:flex;gap:9px;flex-wrap:wrap;}
.mtest-result{margin-top:15px;padding:12px 16px;border-radius:10px;font-size:14px;line-height:1.5;}
.mtest-result.res-ok{background:var(--ok-soft);border:1px solid #b6e6c9;color:#0d7a3d;}
.mtest-result.res-bad{background:var(--bad-soft);border:1px solid #f4c0c2;color:#b3383c;}
.mtest-result b{font-family:'IBM Plex Mono',monospace;font-size:16px;}

/* ============ КАРТИНКИ В МОДУЛЯХ ============ */
.mfig{margin:14px 0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card);box-shadow:var(--shadow);}
.mfig img{display:block;width:100%;height:auto;cursor:zoom-in;transition:opacity .15s;}
.mfig img:hover{opacity:.92;}
.mfig figcaption{padding:8px 13px;font-size:12.5px;color:var(--text-dim);border-top:1px solid var(--border);background:var(--card-soft);line-height:1.45;}
.mfig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:15px 0;}
.mfig-grid .mfig{margin:0;}
.mfig-grid .mfig img{aspect-ratio:4/3;object-fit:cover;}
.mfig-wide{max-width:560px;}
#lbx{position:fixed;inset:0;background:rgba(9,11,16,.92);display:none;align-items:center;justify-content:center;z-index:9999;padding:28px;flex-direction:column;gap:14px;cursor:zoom-out;}
#lbx.open{display:flex;animation:fadeIn .18s ease;}
#lbx img{max-width:100%;max-height:80vh;border-radius:10px;box-shadow:0 12px 44px rgba(0,0,0,.55);}
#lbx .lbx-cap{color:#f2f2f2;font-size:14px;text-align:center;max-width:820px;line-height:1.5;}
#lbx .lbx-hint{color:#8a8f9c;font-size:11.5px;}

/* ============ FLASHCARD TEST (вкладка «Тест») ============ */
.quiz-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;max-width:720px;box-shadow:var(--shadow-md);}
.quiz-progress{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--text-dim);margin-bottom:8px;display:flex;justify-content:space-between;font-weight:500;}
.quiz-bar{height:5px;background:var(--card-soft);border-radius:3px;margin-bottom:20px;overflow:hidden;}
.quiz-bar-fill{height:100%;background:var(--accent-grad);transition:width .3s;}
.quiz-q{font-size:18px;font-weight:600;margin-bottom:16px;line-height:1.5;color:var(--text);}
.quiz-hint{font-size:13px;color:var(--text-dim);font-style:italic;margin-bottom:16px;}
.quiz-answer{background:var(--card-soft);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:16px;}
.quiz-answer b{color:var(--text);}
.quiz-answer ul{margin:6px 0 0 18px;}
.btn{font-family:'IBM Plex Sans';font-weight:600;font-size:14px;padding:11px 22px;border-radius:10px;border:none;cursor:pointer;transition:all .15s;}
.btn-primary{background:var(--accent-grad);color:#fff;box-shadow:var(--shadow-accent);}
.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px);}
.btn-ok{background:var(--ok-soft);color:var(--ok);border:1.5px solid var(--ok);}
.btn-ok:hover{background:var(--ok);color:#fff;}
.btn-bad{background:var(--bad-soft);color:var(--bad);border:1.5px solid var(--bad);}
.btn-bad:hover{background:var(--bad);color:#fff;}
.btn-ghost{background:var(--card);border:1.5px solid var(--border-strong);color:var(--text);}
.btn-ghost:hover{border-color:var(--text-dim);}
.quiz-actions{display:flex;gap:9px;flex-wrap:wrap;}
.quiz-result{text-align:center;}
.quiz-score{font-family:'Oswald',sans-serif;font-size:56px;font-weight:700;color:var(--accent);margin:10px 0;}
.weak-list{text-align:left;background:var(--card-soft);border:1px solid var(--border);border-radius:10px;padding:15px 17px;margin:16px 0;font-size:13.5px;color:var(--text-dim);line-height:1.7;}
.weak-list b{color:var(--bad);}

/* ============ TOOLBAR / SEARCH ============ */
.toolbar{display:flex;gap:11px;margin-bottom:18px;flex-wrap:wrap;align-items:center;}
.search-input{flex:1;min-width:220px;background:var(--card);border:1.5px solid var(--border);color:var(--text);padding:11px 15px;border-radius:11px;font-family:'IBM Plex Sans';font-size:14px;transition:border-color .15s;box-shadow:var(--shadow);}
.search-input:focus{outline:none;border-color:var(--accent);}
.chip{padding:10px 15px;border-radius:11px;border:1.5px solid var(--border);background:var(--card);color:var(--text-dim);font-size:13px;cursor:pointer;font-weight:600;box-shadow:var(--shadow);}
.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}

/* ============ ENTRY CARDS (Заводы / Спецтехника) ============ */
.entry-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:17px 20px;margin-bottom:11px;box-shadow:var(--shadow);transition:box-shadow .16s;}
.entry-card:hover{box-shadow:var(--shadow-md);}
.entry-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.entry-name{font-weight:600;font-size:16px;color:var(--text);}
.entry-actions{display:flex;gap:6px;flex-shrink:0;}
.icon-btn{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:6px;border-radius:8px;transition:all .13s;}
.icon-btn:hover{color:var(--accent);background:var(--accent-soft);}
.badge{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:20px;letter-spacing:.3px;text-transform:uppercase;}
.cat-filter{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.cat-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:20px;letter-spacing:.2px;}
.cat-beton{background:var(--brand2-soft);color:var(--brand2);}
.cat-asfalt{background:#e7ebf2;color:#454f68;}
.cat-ruda{background:var(--hazard-soft);color:#a15c00;}
.rate-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:20px;letter-spacing:.2px;}
.rate-row{display:flex;align-items:center;gap:9px;margin-top:11px;flex-wrap:wrap;}
.rate-row-lbl{font-size:12.5px;font-weight:600;color:var(--text-dim);}
.rate-dots{display:inline-flex;gap:3px;flex-wrap:wrap;}
.rate-dot{width:25px;height:25px;border:1.5px solid var(--border);background:var(--card-soft);color:var(--text-dim);border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;transition:all .1s;font-family:'IBM Plex Mono',monospace;padding:0;}
.rate-dot:hover{border-color:var(--accent);color:var(--accent);}
.rate-dot.th{background:var(--ok);color:#fff;border-color:var(--ok);}
.rate-dot.tm{background:var(--hazard);color:#fff;border-color:var(--hazard);}
.rate-dot.tl{background:var(--bad);color:#fff;border-color:var(--bad);}
.rate-dot.th:hover,.rate-dot.tm:hover,.rate-dot.tl:hover{filter:brightness(1.08);color:#fff;}
.rate-clear{background:none;border:none;color:var(--text-dim);font-size:11.5px;cursor:pointer;text-decoration:underline;padding:0;}
.rate-clear:hover{color:var(--bad);}
.rate-hint{font-size:11.5px;color:var(--text-dim);font-style:italic;}
.rate-high{background:var(--ok-soft);color:var(--ok);}
.rate-mid{background:var(--hazard-soft);color:#a15c00;}
.rate-low{background:var(--bad-soft);color:var(--bad);}
.filter-bar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:11px 14px;box-shadow:var(--shadow);}
.filter-group{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding-right:12px;border-right:1px solid var(--border);}
.filter-group--last{border-right:none;}
.filter-lbl{font-size:12px;font-weight:600;color:var(--text-dim);white-space:nowrap;}
.mini-select,.mini-input{background:var(--card-soft);border:1.5px solid var(--border);color:var(--text);padding:8px 10px;border-radius:9px;font-family:'IBM Plex Sans';font-size:13px;}
.mini-input{width:96px;}
.mini-select:focus,.mini-input:focus{outline:none;border-color:var(--accent);}
.price-inputs{display:flex;gap:8px;flex-wrap:wrap;}
.price-inputs input{width:94px;background:var(--card);border:1.5px solid var(--border);color:var(--text);padding:9px 11px;border-radius:9px;font-family:'IBM Plex Sans';font-size:13.5px;}
.price-inputs input:focus{outline:none;border-color:var(--accent);}
.badge-fav{background:var(--hazard);color:#fff;}
.badge-std{background:var(--card-soft);border:1px solid var(--border);color:var(--text-dim);}
.badge-res{background:transparent;border:1px solid var(--border-strong);color:var(--text-dim);}
.entry-meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:11px;font-size:12.5px;color:var(--text-dim);font-family:'IBM Plex Mono',monospace;}
.entry-meta b{color:var(--text);font-family:'IBM Plex Sans',sans-serif;}
.entry-note{margin-top:9px;font-size:13.5px;color:var(--text-dim);line-height:1.55;}
.empty-state{text-align:center;padding:50px 20px;color:var(--text-dim);}
.empty-state svg{opacity:.35;margin-bottom:12px;}

/* ============ FORMS ============ */
.form-box{background:var(--card);border:1.5px dashed var(--accent);border-radius:var(--radius);padding:20px;margin-bottom:18px;box-shadow:var(--shadow);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;}
.form-field{display:flex;flex-direction:column;gap:5px;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-size:11.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.3px;font-weight:600;}
.form-field input,.form-field select,.form-field textarea{background:var(--card);border:1.5px solid var(--border);color:var(--text);padding:10px 12px;border-radius:9px;font-family:'IBM Plex Sans';font-size:14px;transition:border-color .15s;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);}
.form-field textarea{resize:vertical;min-height:52px;}
.form-actions{display:flex;gap:9px;margin-top:16px;}
.add-btn{display:flex;align-items:center;gap:8px;background:var(--accent-grad);color:#fff;border:none;padding:11px 20px;border-radius:11px;font-weight:600;font-size:14px;cursor:pointer;margin-bottom:14px;box-shadow:var(--shadow-accent);transition:all .15s;}
.add-btn:hover{filter:brightness(1.05);transform:translateY(-1px);}

/* ============ FAQ ============ */
.faq-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;box-shadow:var(--shadow);transition:box-shadow .16s;}
.faq-item:hover{box-shadow:var(--shadow-md);}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 18px;cursor:pointer;font-weight:600;font-size:14.5px;color:var(--text);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .28s;}
.faq-item.open .faq-a{max-height:900px;}
.faq-a-inner{padding:0 18px 17px 18px;color:var(--text-dim);font-size:14px;line-height:1.68;}
.faq-a-inner b{color:var(--text);}
.faq-cat{display:inline-block;font-size:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.4px;margin-top:10px;font-weight:700;background:var(--accent-soft);padding:3px 9px;border-radius:20px;}
.loading-text{color:var(--text-dim);font-size:13.5px;padding:22px 0;}

/* ============ RESPONSIVE ============ */
@media(max-width:820px){
  .app{flex-direction:column;}
  .sidebar{width:100%;height:auto;position:static;flex-direction:row;overflow-x:auto;padding:14px;align-items:center;}
  .brand{display:none;}
  .nav{flex-direction:row;padding:0;}
  .nav-btn{white-space:nowrap;}
  .main{padding:22px 18px 44px;}
  .page-title{font-size:26px;}
  .form-grid{grid-template-columns:1fr;}
  .acc-body-inner{padding-left:20px;}
}

/* ---- Телефоны ---- */
@media(max-width:560px){
  .main{padding:16px 13px 40px;}
  .page-title{font-size:22px;}
  .page-sub{font-size:13.5px;margin-bottom:18px;}
  .stat-strip{gap:10px;}
  .stat-box{min-width:calc(50% - 6px);padding:11px 14px;}
  .stat-num{font-size:22px;}
  /* методичка */
  .module-body-inner{padding:16px 14px 18px;}
  .module-head{padding:14px 14px;gap:11px;}
  .module-title{font-size:14.5px;}
  .lp-head{padding:17px 15px;}
  .module-content table,.acc-body-inner table,.rich table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .mfig-grid{grid-template-columns:1fr;}
  /* фильтры заводов — в столбик, поля на всю ширину */
  .filter-bar{padding:10px 12px;gap:9px;}
  .filter-group{width:100%;border-right:none;padding-right:0;padding-bottom:9px;border-bottom:1px solid var(--border);}
  .filter-group--last{border-bottom:none;padding-bottom:0;}
  .filter-group .mini-select{flex:1;min-width:0;}
  .mini-input{flex:1;min-width:0;width:auto;}
  .price-inputs input{flex:1 1 30%;min-width:64px;width:auto;}
  /* шкала оценки */
  .rate-dot{width:26px;height:26px;}
  /* карточки/тесты/формы компактнее */
  .entry-card{padding:15px 15px;}
  .entry-meta{gap:5px 14px;}
  .quiz-card{padding:20px 15px;}
  .mtest{padding:15px 13px;}
  .mtest-opt{padding:9px 11px;}
  .form-box{padding:16px 13px;}
  .toolbar .search-input{min-width:0;}
}

/* ============ МОНИТОРИНГ ============ */
.nav-btn{position:relative;}
.nav-badge{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  background:var(--bad);color:#fff;font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;
  min-width:20px;height:19px;padding:0 6px;border-radius:20px;display:flex;align-items:center;justify-content:center;
}
.nav-btn.active .nav-badge{background:rgba(255,255,255,.28);}

.chip-n{font-family:'IBM Plex Mono',monospace;font-size:11px;opacity:.65;}
.cat-filter{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}

.mon-card{border-left:3px solid transparent;}
.mon-card.mon-new{border-left-color:var(--accent);}
.mon-titlewrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;}

.rel-badge{
  font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:13px;color:#fff;
  min-width:34px;height:26px;padding:0 8px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.rel-high{background:linear-gradient(135deg,#e5484d,#ff7a3d);box-shadow:0 4px 12px rgba(229,72,77,.28);}
.rel-mid{background:var(--hazard);}
.rel-low{background:var(--border-strong);color:var(--text-dim);}

.mon-src-zakupki{background:var(--brand2-soft);color:var(--brand2);}
.mon-src-news{background:var(--card-soft);border:1px solid var(--border);color:var(--text-dim);}
.mon-src-rns,.mon-src-erz,.mon-src-isogd{background:var(--accent-soft);color:var(--accent);}

.mon-road{background:var(--accent-soft);color:var(--accent);border:1px solid #ffd6bd;}
.mon-industrial{background:var(--brand2-soft);color:var(--brand2);border:1px solid #d6dcff;}
.mon-social{background:var(--ok-soft);color:var(--ok);border:1px solid #c3ead4;}
.mon-housing{background:var(--hazard-soft);color:#a86a00;border:1px solid #ffe0a3;}
.mon-unclear{background:var(--card-soft);color:var(--text-dim);border:1px solid var(--border);}

.mon-actions{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap;}
.mon-btn{
  padding:8px 14px;border-radius:9px;border:1.5px solid var(--border);background:var(--card);
  color:var(--text-dim);font-size:12.5px;font-weight:600;cursor:pointer;font-family:'IBM Plex Sans';transition:all .15s;
}
.mon-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text);}
.mon-btn:disabled{opacity:.6;cursor:default;}
.mon-btn-primary{background:var(--accent-grad);border-color:transparent;color:#fff;box-shadow:var(--shadow-accent);}
.mon-btn-primary:hover:not(:disabled){filter:brightness(1.05);color:#fff;}
.mon-btn-ghost{background:transparent;border-style:dashed;}

.mon-explain{margin-top:12px;padding:13px 15px;background:var(--card-soft);border:1px solid var(--border);border-radius:11px;font-size:13px;}
.mon-explain-row{display:flex;justify-content:space-between;gap:12px;padding:3px 0;color:var(--text-dim);}
.mon-explain-row b{font-family:'IBM Plex Mono',monospace;flex-shrink:0;}
.mon-explain-total{border-top:1px solid var(--border);margin-top:6px;padding-top:7px;color:var(--text);font-weight:600;}
.mon-explain-note{margin-top:8px;font-size:12px;color:var(--text-dim);opacity:.85;line-height:1.5;}
.mon-explain-hist{margin-top:10px;padding-top:9px;border-top:1px solid var(--border);font-size:12.5px;color:var(--text-dim);line-height:1.7;}
.mon-explain-hist a{color:var(--brand2);text-decoration:none;}
.mon-explain-hist a:hover{text-decoration:underline;}

.mon-status{margin-top:22px;padding:13px 16px;background:var(--card);border:1px solid var(--border);border-radius:12px;
  font-size:12.5px;color:var(--text-dim);line-height:1.65;box-shadow:var(--shadow);}
.mon-status b{color:var(--text);}

/* --- Мониторинг: плановые сроки --- */
.filter-check{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--text-dim);cursor:pointer;white-space:nowrap;}
.filter-check input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;}
.mon-when.when-ahead{color:var(--accent);font-weight:600;}
.mon-when.when-ahead b{color:var(--accent);}
.mon-when.when-past{opacity:.75;}

/* ============ ЭКРАН ВХОДА ============ */
.login-body{display:flex;align-items:center;justify-content:center;padding:24px;}
.login-card{
  width:100%;max-width:390px;background:var(--panel);border:1px solid var(--border);
  border-radius:var(--radius);padding:30px 30px 24px;box-shadow:var(--shadow-md);
}
.login-brand{padding-bottom:18px;margin-bottom:22px;position:relative;}
.login-brand::after{content:"";position:absolute;left:0;width:56px;bottom:0;height:4px;border-radius:4px;background:var(--accent-grad);}
.login-form{display:flex;flex-direction:column;gap:14px;}
.login-submit{width:100%;margin-top:4px;}
.login-error{background:var(--bad-soft);color:var(--bad);border-radius:9px;padding:10px 13px;font-size:13px;font-weight:600;}
.login-note{margin-top:20px;font-size:12px;color:var(--text-dim);line-height:1.55;}
.login-back{display:inline-block;margin-top:18px;font-size:12.5px;color:var(--text-dim);text-decoration:none;font-weight:600;}
.login-back:hover{color:var(--accent);}

/* ============ ПЕРВЫЙ ЭКРАН: ВЫБОР ПАНЕЛИ ============ */
.choose{width:100%;max-width:760px;}
.choose-head{text-align:center;margin-bottom:26px;}
.choose-head .brand-title{font-size:26px;}
.choose-head .brand-sub{margin-top:6px;}
.choose-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
.choose-card{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
  padding:24px 24px 20px;text-decoration:none;color:var(--text);
  box-shadow:var(--shadow);transition:border-color .16s,box-shadow .16s,transform .16s;
}
.choose-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px);}
.choose-icon{display:flex;width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent);
  align-items:center;justify-content:center;margin-bottom:8px;}
.choose-icon svg{width:23px;height:23px;}
.choose-title{font-family:'Oswald',sans-serif;font-size:19px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;}
.choose-sub{font-size:13px;color:var(--text-dim);line-height:1.5;}
.choose-go{margin-top:10px;font-size:13px;font-weight:600;color:var(--accent);}
.choose-note{text-align:center;margin-top:24px;font-size:12px;color:var(--text-dim);}

/* ============ ПОЛЬЗОВАТЕЛЬ В САЙДБАРЕ ============ */
.side-user{margin-top:auto;padding:16px 22px 0;border-top:1px solid var(--border);margin-left:0;}
.side-user-name{font-weight:600;font-size:14px;color:var(--text);}
.side-user-role{font-size:11.5px;color:var(--text-dim);margin-top:2px;}
.side-user-actions{display:flex;gap:14px;margin-top:10px;}
.side-link{background:none;border:none;padding:0;font-family:'IBM Plex Sans';font-size:12px;font-weight:600;color:var(--text-dim);cursor:pointer;transition:color .15s;}
.side-link:hover{color:var(--accent);}

/* ============ БОНУСЫ ============ */
.bonus-section-title{
  font-family:'Oswald',sans-serif;font-size:16px;font-weight:600;text-transform:uppercase;
  letter-spacing:.5px;margin:30px 0 12px;color:var(--text);
}
.bonus-board-note{font-size:13px;margin-bottom:12px;margin-top:-6px;}
.stat-box--wide{min-width:210px;}
.stat-box--wide .stat-num{font-size:23px;}
.admin-section{margin-bottom:14px;}
.entry-card--off{opacity:.6;}

.btable-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto;}
.btable{width:100%;border-collapse:collapse;font-size:13.5px;min-width:560px;}
.btable th{
  text-align:left;padding:11px 14px;background:var(--card-soft);color:var(--text-dim);
  font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:700;border-bottom:1px solid var(--border);white-space:nowrap;
}
.btable td{padding:11px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:top;}
.btable tbody tr:last-child td{border-bottom:none;}
.btable tbody tr:hover{background:var(--card-soft);}
.btable .num{text-align:right;white-space:nowrap;}
.btable .mono{font-family:'IBM Plex Mono',monospace;font-size:12.5px;}
.btable tfoot td{padding:12px 14px;background:var(--card-soft);font-weight:700;border-top:1px solid var(--border-strong);}
.btable-note{font-size:12px;color:var(--text-dim);margin-top:3px;line-height:1.45;}
.btable-me{background:var(--accent-soft);}
.btable-me:hover{background:var(--accent-soft);}
.btable-actions{white-space:nowrap;text-align:right;}

.bhist{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow);}
.bhist-row{display:grid;grid-template-columns:118px 1fr 110px;grid-template-areas:"label bar val" ". sub sub";gap:4px 14px;align-items:center;padding:8px 0;}
.bhist-row + .bhist-row{border-top:1px solid var(--border);}
.bhist-label{grid-area:label;font-size:13px;font-weight:600;}
.bhist-bar{grid-area:bar;height:10px;background:var(--card-soft);border:1px solid var(--border);border-radius:20px;overflow:hidden;}
.bhist-fill{height:100%;background:var(--accent-grad);border-radius:20px;}
.bhist-val{grid-area:val;text-align:right;font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;color:var(--ok);}
.bhist-sub{grid-area:sub;font-size:11.5px;color:var(--text-dim);}

/* ============ ПЛАН ОЗВУЧКИ ============
   Список тем: слева задание, справа статус. Цветная полоса слева показывает
   состояние темы, чтобы список читался одним взглядом сверху вниз. */
.vp-block{margin-bottom:26px;}
.vp-block-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.vp-block-num{font-family:'IBM Plex Mono',monospace;font-weight:600;color:#fff;background:var(--accent-grad);
  border-radius:9px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;}
.vp-block-title{font-family:'Oswald',sans-serif;font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex:1;}
.vp-block-count{font-size:11.5px;color:var(--text-dim);font-family:'IBM Plex Mono',monospace;white-space:nowrap;}

.vp-topic{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px;
  background:var(--card);border:1px solid var(--border);border-left:4px solid var(--border-strong);
  border-radius:var(--radius);padding:14px 18px;margin-bottom:9px;box-shadow:var(--shadow);}
.vp-topic.is-rec{border-left-color:var(--hazard);}
.vp-topic.is-done{border-left-color:var(--ok);}
.vp-topic-name{font-weight:600;font-size:15px;color:var(--text);}
.vp-topic-num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--accent);margin-right:9px;}
.vp-topic-ask{font-size:13.5px;color:var(--text-dim);line-height:1.55;margin-top:6px;}
.vp-topic-note{font-size:12.5px;color:var(--text);background:var(--card-soft);border-radius:9px;
  padding:8px 11px;margin-top:9px;line-height:1.5;}
.vp-topic-side{display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.vp-states{display:flex;flex-direction:column;gap:4px;width:100%;}
.vp-state{font-family:'IBM Plex Sans';font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:8px;
  border:1.5px solid var(--border);background:var(--card);color:var(--text-dim);cursor:pointer;text-align:left;transition:all .14s;}
.vp-state:hover{border-color:var(--border-strong);color:var(--text);}
.vp-state.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}
.vp-topic-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;}
.vp-link{background:none;border:none;padding:0;font-family:'IBM Plex Sans';font-size:11.5px;font-weight:600;
  color:var(--text-dim);cursor:pointer;}
.vp-link:hover{color:var(--accent);}
@media (max-width:900px){
  .vp-topic{grid-template-columns:1fr;}
  .vp-topic-side{align-items:stretch;}
  .vp-topic-actions{justify-content:flex-start;}
}

/* ============ КАРТА ЗАВОДОВ ============
   Своя карта на Leaflet: точки берутся из нашей базы заводов. */
.zmap-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);margin-bottom:22px;overflow:hidden;}
.zmap-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 16px;border-bottom:1px solid var(--border);}
.zmap-title{font-family:'Oswald',sans-serif;font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;}
.zmap-hint{font-size:12px;color:var(--text-dim);flex:1;min-width:150px;}
.zmap-btn{padding:7px 12px;font-size:12px;}
.zmap{height:420px;width:100%;background:var(--card-soft);}
.zmap.is-picking{cursor:crosshair;}
.zmap.is-picking .leaflet-grab{cursor:crosshair;}
.zmap-legend{display:flex;gap:16px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--border);
  font-size:11.5px;color:var(--text-dim);}
.zmap-legend span{display:inline-flex;align-items:center;gap:6px;}
.zmap-dot{width:11px;height:11px;border-radius:50%;display:inline-block;border:2px solid #fff;box-shadow:0 0 0 1px var(--border-strong);}
.zmap-dot--beton{background:#3f5bff;}
.zmap-dot--asfalt{background:#39424f;}
.zmap-dot--ruda{background:#12a150;}
.zmap-dot--fav{background:var(--accent);}
.zmap-box.is-collapsed .zmap,
.zmap-box.is-collapsed .zmap-legend{display:none;}

/* Метка на карте: цвет — категория, кольцо — избранный завод. */
.zmap-pin{display:block;width:14px;height:14px;border-radius:50%;border:2px solid #fff;
  box-shadow:0 1px 3px rgba(23,26,35,.45);}
.zmap-pin--beton{background:#3f5bff;}
.zmap-pin--asfalt{background:#39424f;}
.zmap-pin--ruda{background:#12a150;}
.zmap-pin.is-fav{background:var(--accent);width:17px;height:17px;margin:-1.5px 0 0 -1.5px;
  box-shadow:0 0 0 3px rgba(255,106,26,.28), 0 1px 3px rgba(23,26,35,.45);}

.zmap-pop{font-family:'IBM Plex Sans',sans-serif;min-width:190px;}
.zmap-pop-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:2px;}
.zmap-pop-cat{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.4px;margin-bottom:7px;}
.zmap-pop-row{font-size:12.5px;color:var(--text-dim);line-height:1.45;margin-bottom:3px;}
.zmap-pop-actions{display:flex;gap:7px;margin-top:9px;}
.zmap-pop-btn{font-family:'IBM Plex Sans';font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:8px;
  border:1.5px solid var(--border-strong);background:var(--card);color:var(--text);cursor:pointer;}
.zmap-pop-btn:hover{border-color:var(--accent);color:var(--accent);}
.leaflet-popup-content{margin:12px 14px;}
.leaflet-container{font-family:'IBM Plex Sans',sans-serif;}

.zmap-jump{font-family:'IBM Plex Sans';font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
  padding:3px 9px;border-radius:20px;border:1px solid var(--border-strong);background:transparent;
  color:var(--text-dim);cursor:pointer;}
.zmap-jump:hover{border-color:var(--accent);color:var(--accent);}
.entry-card.is-highlight{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft), var(--shadow-md);}

.coord-inputs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.coord-inputs input{width:132px;}
.coord-hint{font-size:11.5px;color:var(--text-dim);}

/* ============ КАБИНЕТ СОБСТВЕННИКА ============ */

/* Страницы кабинета: разделы разнесены, а не свалены в одну простыню. */
.own-page{display:none;}
.own-page.active{display:block;animation:fadeIn .28s ease;}

/* Период и источник данных общие для всех разделов — поэтому над ними. */
.own-topbar{
  display:flex;gap:14px;align-items:center;flex-wrap:wrap;
  padding:0 0 18px;margin-bottom:22px;border-bottom:1px solid var(--border);
}
.own-source{font-size:12px;color:var(--text-dim);font-weight:600;}
.side-link--back{display:inline-block;margin-top:12px;text-decoration:none;}

/* Сигналы на обзоре: строка-кнопка, ведущая в раздел, где можно действовать. */
.own-alerts{display:grid;gap:8px;}
.own-alert{
  display:grid;grid-template-columns:9px 1fr auto;gap:11px;align-items:center;
  width:100%;text-align:left;padding:11px 13px;border-radius:var(--radius-sm);
  border:1px solid var(--border);background:var(--card-soft);cursor:pointer;
  font-family:'IBM Plex Sans';font-size:13px;color:var(--text);line-height:1.4;
  transition:border-color .15s, transform .15s;
}
.own-alert:hover{border-color:var(--accent);transform:translateX(2px);}
.own-alert-dot{width:9px;height:9px;border-radius:50%;}
.own-alert--bad{background:var(--bad-soft);border-color:#f6c9cb;}
.own-alert--bad .own-alert-dot{background:var(--bad);}
.own-alert--warn{background:var(--hazard-soft);border-color:#f0dcae;}
.own-alert--warn .own-alert-dot{background:var(--hazard);}
.own-alert-go{color:var(--text-dim);font-weight:700;}
.own-calm{display:flex;gap:13px;align-items:center;color:var(--text-dim);font-size:13px;line-height:1.5;padding:6px 0;}
.own-calm svg{color:var(--ok);flex-shrink:0;}

.own-band{margin-bottom:30px;}
.own-band-title{
  font-family:'Oswald',sans-serif;font-size:16px;font-weight:600;text-transform:uppercase;
  letter-spacing:.5px;margin:0 0 4px;color:var(--text);
}
.own-band-sub{font-size:12.5px;color:var(--text-dim);margin-bottom:13px;line-height:1.5;}

/* Плитка-показатель: число, подпись и мелкая расшифровка под ней. */
.own-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:13px;margin-bottom:16px;}
.own-tile{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:15px 18px;box-shadow:var(--shadow);}
.own-tile--lead{grid-column:span 2;}
.own-tile-num{font-family:'IBM Plex Mono',monospace;font-size:23px;font-weight:600;color:var(--text);line-height:1.15;letter-spacing:-.4px;}
.own-tile--lead .own-tile-num{font-size:28px;}
.own-tile-lbl{font-size:10.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-top:5px;font-weight:600;}
.own-tile-sub{font-size:11.5px;color:var(--text-dim);margin-top:7px;line-height:1.45;}
.own-tile-num.is-good{color:var(--ok);}
.own-tile-num.is-bad{color:var(--bad);}
.own-tile-num.is-warn{color:var(--hazard);}
.own-tile-num.is-accent{color:var(--accent);}

.own-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;align-items:start;}
.own-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow);}
.own-card-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:12px;}
.own-card-note{font-size:11.5px;color:var(--text-dim);margin-top:11px;line-height:1.5;}

/* Строка «подпись и значение — полоса — расшифровка».
   Подпись занимает свою строку целиком: названия контрагентов длинные и в
   узкой колонке превращались бы в «ООО «ДорСтройПро…». */
.own-row{display:block;padding:9px 0;}
.own-row + .own-row{border-top:1px solid var(--border);}
.own-row-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;}
.own-row-lbl{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.own-row-track{height:9px;background:var(--card-soft);border:1px solid var(--border);border-radius:20px;overflow:hidden;}
.own-row-fill{height:100%;background:var(--accent-grad);border-radius:20px;min-width:2px;}
.own-row-fill.is-good{background:linear-gradient(135deg,#12a150 0%,#3fc47c 100%);}
.own-row-fill.is-bad{background:linear-gradient(135deg,#e5484d 0%,#f2777b 100%);}
.own-row-fill.is-cool{background:linear-gradient(135deg,#3f5bff 0%,#7d90ff 100%);}
.own-row-val{font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:600;white-space:nowrap;flex-shrink:0;}
.own-row-sub{font-size:11px;color:var(--text-dim);margin-top:6px;line-height:1.45;}

/* Возраст дебиторки: одна полоса, поделённая на корзины срочности. */
.own-aging{display:flex;height:18px;border-radius:20px;overflow:hidden;border:1px solid var(--border);background:var(--card-soft);margin-bottom:13px;}
.own-aging-seg{height:100%;}
.own-aging-seg--current{background:#12a150;}
.own-aging-seg--d7{background:#f0b429;}
.own-aging-seg--d14{background:#e08a00;}
.own-aging-seg--d30{background:#f2777b;}
.own-aging-seg--d30plus{background:#c81e23;}
.own-aging-seg--nodue{background:#9aa3b5;}
.own-legend{display:grid;gap:6px;}
.own-legend-row{display:grid;grid-template-columns:11px 1fr auto;gap:9px;align-items:center;font-size:12px;}
.own-legend-dot{width:11px;height:11px;border-radius:3px;}
.own-legend-val{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;white-space:nowrap;}
.own-legend-name{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.own-chart{width:100%;display:block;}
.own-chart-labels{display:grid;margin-top:5px;font-size:11px;color:var(--text-dim);text-align:center;}
.own-chart-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--text-dim);margin-bottom:10px;}
.own-chart-key{display:inline-flex;align-items:center;gap:6px;}
.own-chart-key i{width:11px;height:11px;border-radius:3px;display:inline-block;}

.own-flag{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:20px;letter-spacing:.3px;text-transform:uppercase;}
.own-flag--ok{background:var(--ok-soft);color:var(--ok);}
.own-flag--warn{background:var(--hazard-soft);color:#a06600;}
.own-flag--bad{background:var(--bad-soft);color:var(--bad);}
.own-sort{cursor:pointer;user-select:none;white-space:nowrap;}
.own-sort:hover{color:var(--accent);}
.own-sort.is-active{color:var(--accent);}

@media (max-width:900px){
  .own-tile--lead{grid-column:span 1;}
}
