@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --gold:#FE4301;--gold-d:#D93A00;--gold-l:#F08060;--gold-pale:#FDF0EC;
  --dark:#8F8888;--dark-2:#7E7878;--dark-3:#6E6868;
  --gray:#6B6B6B;--gray-l:#BBBBBB;--gray-pale:#F2F2F2;
  --border:#D0D0D0;--bg:#F5F5F5;
  --red:#B83232;--red-l:#FDEAEA;--green:#2D6A4F;--green-l:#EAF4EE;
  --ink:#1A1612;--border-soft:#DDD8D8;
}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--dark);min-height:100vh;font-size:14px}
h1,h2,h3,.logo-text{font-family:'Playfair Display',serif}
button,input,select,textarea{font-family:inherit}

/* ── Header ──────────────────────────────────────────────────────── */
.header{background:#8F8888;border-bottom:3px solid #FE4301;padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:50;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.logo{display:flex;align-items:center;gap:0;font-size:15px;font-weight:700;color:var(--gold);cursor:pointer;font-family:"Playfair Display",serif;letter-spacing:.02em}
.logo-box{display:none}
.header-nav{display:flex;gap:6px}
.nav-btn{font-size:12px;padding:6px 14px;border-radius:4px;background:transparent;border:none;cursor:pointer;color:rgba(255,255,255,.8);transition:all .15s;letter-spacing:.04em;text-transform:uppercase;font-weight:500}
.nav-btn:hover,.nav-btn.active{background:rgba(200,169,126,.15);color:var(--gold);font-weight:500}
.header-right{display:flex;align-items:center;gap:10px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;cursor:pointer}
.notif-wrap{position:relative;cursor:pointer}
.notif-wrap .dot{position:absolute;top:0;right:0;width:8px;height:8px;background:var(--red);border-radius:50%;display:none}

/* ── Buttons ─────────────────────────────────────────────────────── */
.btn{padding:8px 16px;border-radius:3px;font-size:13px;font-weight:500;cursor:pointer;border:none;transition:all .15s;display:inline-flex;align-items:center;gap:6px}
.btn-primary{background:var(--gold);color:#fff;font-weight:600;letter-spacing:.04em}.btn-primary:hover{background:var(--gold-d);color:#fff}
.btn-secondary{background:transparent;color:var(--dark);border:1px solid var(--border)}.btn-secondary:hover{background:var(--gray-pale)}
.btn-danger{background:transparent;color:var(--red);border:1px solid #E8BFBF}.btn-danger:hover{background:var(--red-l)}
.btn-success{background:var(--green);color:#fff}.btn-success:hover{background:#235c41}
.btn-warn{background:#A07820;color:#fff}.btn-warn:hover{background:#8a6618}
.btn-sm{padding:5px 11px;font-size:12px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ── Hero (public) ───────────────────────────────────────────────── */
.hero{background:linear-gradient(160deg,var(--dark) 0%,var(--dark-2) 60%,var(--dark-3) 100%);color:#fff;padding:4rem 1.5rem 3rem;text-align:center;position:relative;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23C8A97E' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.hero h1{font-size:36px;font-weight:700;margin-bottom:.75rem;font-family:"Playfair Display",serif;letter-spacing:.01em}
.hero p{font-size:14px;opacity:.65;margin-bottom:2rem;letter-spacing:.06em;text-transform:uppercase;font-weight:300}
.hero-stats{display:inline-flex;gap:2.5rem;background:rgba(200,169,126,.12);border:1px solid rgba(200,169,126,.25);border-radius:4px;padding:1rem 2.5rem}
.hero-stat .hs-val{font-size:28px;font-weight:700;color:var(--gold);font-family:"Playfair Display",serif}
.hero-stat .hs-lbl{font-size:11px;opacity:.6;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}

/* ── Public toolbar ──────────────────────────────────────────────── */
.pub-toolbar{background:#8F8888;border-bottom:1px solid #888;padding:.85rem 1.5rem;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.search-wrap{flex:1;min-width:200px;position:relative}
.search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--gold-l)}
.search-wrap input{width:100%;padding:8px 10px 8px 34px;border:1px solid rgba(200,169,126,.3);border-radius:4px;font-size:13px;background:rgba(255,255,255,.08);color:#fff}
.search-wrap input:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.12)}
select.flt{padding:8px 10px;border:1px solid rgba(200,169,126,.3);border-radius:4px;font-size:12px;background:rgba(255,255,255,.08);color:#e0d5c8;cursor:pointer;letter-spacing:.02em}select.flt option{background:#fff;color:#1a1a2e}
select.flt:focus{outline:none;border-color:var(--gold)}

/* ── Layout ──────────────────────────────────────────────────────── */
.page{display:none}.page.active{display:block}
.app-layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 57px)}.app-layout.no-sidebar{grid-template-columns:1fr}
.sidebar{background:#8F8888;border-right:1px solid #888;padding:1.25rem;position:sticky;top:57px;height:calc(100vh - 57px);overflow-y:auto}
.sb-section{margin-bottom:1rem}
.sb-label{
  font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.4);margin-bottom:6px;padding:0 8px;
  font-family:'JetBrains Mono',monospace;
}
.sb-sep{height:1px;background:rgba(255,255,255,.1);margin:8px 8px 10px}
.sb-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 8px;border-radius:3px;cursor:pointer;
  font-size:12px;color:rgba(255,255,255,.75);
  transition:all .15s;width:100%;background:none;border:none;
  text-align:left;letter-spacing:.01em;
}
.sb-item:hover{background:rgba(255,255,255,.12);color:#fff}
.sb-item.active{
  background:rgba(255,255,255,.15);color:#fff;font-weight:600;
  border-left:2px solid #FE4301;border-radius:0 3px 3px 0;
  padding-left:6px;
}
.sb-icon{
  width:15px;height:15px;flex-shrink:0;
  opacity:.65;transition:opacity .15s;
}
.sb-item:hover .sb-icon,.sb-item.active .sb-icon{opacity:1}
.sb-badge{
  margin-left:auto;background:var(--red);color:#fff;
  font-size:9px;padding:1px 6px;border-radius:10px;
  display:none;font-family:'JetBrains Mono',monospace;
  transition:transform .2s;
}
/* Уведомления — простой красный кружочек без числа */
#sb-notif,#sb-notif-admin{
  width:8px;height:8px;padding:0;border-radius:50%;
  font-size:0;min-width:unset;flex-shrink:0;
}
/* Пульсация бейджа при новых уведомлениях */
@keyframes notif-pulse {
  0%,100%{ transform:scale(1);   opacity:1 }
  50%    { transform:scale(1.8); opacity:.8 }
}
/* Пульсация точки уведомления в шапке */
.notif-wrap .dot { animation:none; }
@keyframes dot-pulse {
  0%,100%{ opacity:1;   transform:scale(1)   }
  50%    { opacity:.5;  transform:scale(1.6) }
}
.content{padding:1.5rem;overflow-y:auto;min-height:calc(100vh - 57px);background:var(--bg)}
.view{display:none}.view.active{display:block}

/* ── Cards ───────────────────────────────────────────────────────── */
.card{background:#fff;border:1px solid var(--border);border-radius:4px;padding:1.25rem;box-shadow:0 1px 4px rgba(28,25,22,.06)}
.card-title{font-size:14px;font-weight:600;margin-bottom:1rem;font-family:"Playfair Display",serif;letter-spacing:.01em;color:var(--dark);display:flex;align-items:center;justify-content:space-between;gap:8px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:1.25rem}
.stat-card{background:#fff;border:1px solid var(--border);border-bottom:3px solid #FE4301;border-radius:2px;padding:.9rem 1rem}
.stat-card .lbl{font-size:12px;color:var(--gray);margin-bottom:4px}
.stat-card .val{font-size:22px;font-weight:700;font-family:"Playfair Display",serif;color:var(--dark)}
.stat-card .sub{font-size:11px;color:#9ca3af;margin-top:2px}

/* ── Tender cards ────────────────────────────────────────────────── */
.tender-list{display:flex;flex-direction:column;gap:10px}
.tc{background:#fff;border:1px solid var(--border);border-left:3px solid transparent;border-radius:2px;padding:1rem 1.25rem;cursor:pointer;transition:all .15s}
.tc:hover{border-left-color:#FE4301;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.tc.sel{border-left-color:#FE4301;border-color:#F0A080;box-shadow:0 2px 12px rgba(217,79,42,.15)}
.tc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.tc-id{font-size:11px;color:var(--gray);font-family:'JetBrains Mono',monospace;background:var(--gray-pale);padding:2px 7px;border-radius:3px}
.tc-title{font-size:14px;font-weight:600;flex:1;line-height:1.4}
.tc-amount{font-size:15px;font-weight:700;color:var(--gold-d);white-space:nowrap;font-family:"Playfair Display",serif}
.tc-meta{display:flex;gap:12px;font-size:12px;color:var(--gray);flex-wrap:wrap;margin-bottom:10px}
.tc-foot{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid #f3f4f6;gap:8px}
.tc-acts{display:flex;gap:6px;flex-shrink:0}
.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.b-active{background:#EAF5EE;color:#2D6A4F}
.b-closed{background:var(--gray-pale);color:var(--gray)}
.b-awarded{background:var(--gold-pale);color:var(--gold-d)}
.b-review{background:#FDF3E3;color:#8C5E1A}
.b-procurement{background:var(--gray-pale);color:var(--dark-3)}
.b-price{background:#F5EFE6;color:var(--gold-d)}
.b-cat{background:var(--gray-pale);color:var(--gray)}

/* ── Detail panel ────────────────────────────────────────────────── */
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:90}
.overlay.open{display:block}
.panel{position:fixed;right:0;top:0;bottom:0;width:460px;background:#fff;border-left:1px solid var(--border);border-top:3px solid var(--gold);z-index:91;overflow-y:auto;transform:translateX(100%);transition:transform .22s ease}
.panel.open{transform:translateX(0)}
.panel-head{padding:1rem 1.25rem;border-bottom:1px solid #888;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#8F8888;z-index:1;color:#fff}
.panel-head h3{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.xbtn{background:none;border:none;cursor:pointer;color:rgba(255,255,255,.8);font-size:22px;line-height:1;padding:2px 6px;border-radius:4px}
.xbtn:hover{background:rgba(255,255,255,.2)}
.panel-body{padding:1.25rem}
.section-label{font-size:10px;font-weight:600;color:#8F8888;text-transform:uppercase;letter-spacing:.08em;margin:1rem 0 8px;border-bottom:1px solid #E0D8D0;padding-bottom:4px}
.info-row{display:flex;justify-content:space-between;font-size:13px;padding:7px 0;border-bottom:1px solid #f9fafb}
.info-row:last-child{border:none}
.info-row .il{color:var(--gray);font-size:12px;letter-spacing:.02em}
.info-row .iv{font-weight:500;text-align:right;max-width:60%;color:var(--dark)}
/* ── Карточки заявок в кабинете участника ────────────────────────── */
.bid-card{
  display:flex;align-items:center;gap:12px;
  background:#fff;border:1px solid var(--border-soft);
  border-left:3px solid transparent;
  padding:14px 16px;margin-bottom:6px;
  cursor:pointer;transition:all .15s;
}
.bid-card:hover{border-left-color:#FE4301;box-shadow:0 2px 10px rgba(0,0,0,.07)}
.bid-id{
  font-family:'JetBrains Mono',monospace;font-size:10px;
  color:#B0AABE;background:#F5F2F0;
  padding:3px 8px;border-radius:2px;flex-shrink:0;letter-spacing:.05em;
}
.bid-title{font-size:13px;font-weight:500;color:#1A1612;line-height:1.4}
.bid-org{font-size:11px;color:var(--gray);margin-top:2px}
.bid-amount{
  font-family:'Playfair Display',serif;
  font-size:15px;font-weight:700;color:var(--gold-d);
  white-space:nowrap;
}
.bid-nmc{font-size:10px;color:#B0AABE;text-align:right}
.bid-status{flex-shrink:0}

/* ── Карточки заявок в панели деталей (admin/panel) ─────────────── */
.bid-row{background:var(--gray-pale);border:1px solid var(--border);border-radius:4px;padding:.75rem;margin-bottom:6px}
.bid-row.winner{border-color:var(--gold);background:var(--gold-pale)}
.bid-row.bid-row-rejected{background:#fafafa;border-color:#e0e0e0;opacity:.75}
.bid-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:3px}
.bid-co{font-size:13px;font-weight:500;flex:1}
.bid-amt{font-size:13px;font-weight:700;color:var(--gold-d);font-family:"Playfair Display",serif}
.bid-sub{font-size:11px;color:#9ca3af}
.bid-acts{display:flex;gap:4px;margin-top:7px;justify-content:flex-end}
.file-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #f9fafb}
.file-name{flex:1;color:#FE4301;cursor:pointer;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-size{font-size:11px;color:#9ca3af;white-space:nowrap}
.drop-zone{border:2px dashed #ccc;border-radius:4px;padding:1.5rem;text-align:center;font-size:13px;color:var(--gray);cursor:pointer;margin-top:8px}
.drop-zone:hover{border-color:#FE4301}
.my-bid-banner{background:var(--gold-pale);border:1px solid var(--gold-l);border-radius:4px;padding:10px 12px;font-size:13px;color:#166534}
.warn-banner{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:10px 12px;font-size:13px;color:#c2410c;margin-bottom:12px}

/* ── Auth ────────────────────────────────────────────────────────── */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:#8F8888}
.auth-card{background:#fff;border-radius:4px;border:1px solid #ddd;border-top:4px solid #FE4301;padding:2.5rem;width:100%;max-width:440px;box-shadow:0 8px 40px rgba(0,0,0,.2)}
.auth-logo{text-align:center;margin-bottom:2rem}
.auth-logo .icon{width:52px;height:52px;background:var(--gold);border-radius:4px;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;font-size:24px}
.auth-logo h1{font-size:22px;font-weight:700;color:var(--dark);font-family:"Playfair Display",serif;letter-spacing:.01em}
.auth-logo p{font-size:13px;color:var(--gray);margin-top:4px}
.form-row{margin-bottom:14px}
.form-row label{display:block;font-size:12px;color:#374151;margin-bottom:5px;font-weight:500}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:14px;color:#1a1a2e;transition:border-color .15s}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,169,126,.15)}
.form-row textarea{height:90px;resize:vertical}
.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.auth-link{text-align:center;font-size:12px;color:var(--gray);margin-top:16px}
.auth-link a{color:#FE4301;cursor:pointer;font-weight:500}
.err-box{background:var(--red-l);color:var(--red);border-radius:4px;border-left:3px solid var(--red);padding:10px 12px;font-size:13px;margin-bottom:14px;display:none}
.ok-box{background:var(--green-l);color:var(--green);border-radius:4px;border-left:3px solid var(--green);padding:10px 12px;font-size:13px;margin-bottom:14px;display:none}

/* ── Modal ───────────────────────────────────────────────────────── */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;align-items:center;justify-content:center}
.modal-bg.open{display:flex}
.modal{background:#fff;border-radius:4px;border:1px solid var(--border);border-top:4px solid var(--gold);width:560px;max-width:96vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 50px rgba(0,0,0,.18)}
.modal-head{padding:1.25rem 1.5rem;border-bottom:1px solid #888;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#8F8888;z-index:1;color:#fff}
.modal-head h3{font-size:14px;font-weight:600;color:#fff}
.modal-body{padding:1.5rem}
.modal-foot{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;background:#fff}

/* ── Tables ──────────────────────────────────────────────────────── */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;padding:8px 12px;border-bottom:2px solid #FE4301;color:var(--gray);font-weight:600;font-size:9px;font-family:'JetBrains Mono',monospace;background:var(--gray-pale);letter-spacing:.1em;text-transform:uppercase}
.tbl td{padding:10px 12px;border-bottom:1px solid #f9fafb;vertical-align:middle}
.tbl tr:hover td{background:#fafbff}
.tbl .acts{display:flex;gap:5px}

/* ── Notif ───────────────────────────────────────────────────────── */
.notif-item{padding:.85rem;border-bottom:1px solid #f9fafb}
.notif-item.unread{background:#fafbff}
.notif-msg{font-size:13px;color:#374151;margin-bottom:3px}
.notif-time{font-size:11px;color:#9ca3af}

/* ── SMTP settings ───────────────────────────────────────────────── */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ── Misc ────────────────────────────────────────────────────────── */
.empty{text-align:center;padding:3rem 1rem;color:#9ca3af;font-size:14px}
.spin{display:inline-block;width:20px;height:20px;border:2px solid #e5e7eb;border-top-color:var(--blue-l);border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.loading{display:flex;justify-content:center;padding:3rem}
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:#8F8888;color:#fff;max-width:420px;word-break:break-word;padding:12px 18px;border-radius:10px;font-size:13px;z-index:999;transform:translateY(80px);opacity:0;transition:all .25s;max-width:340px}
.toast.show{transform:translateY(0);opacity:1}
.toast.err{background:var(--red);border-left:3px solid #ff6b6b}
.divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0}

/* ── Accreditation ───────────────────────────────────────────────── */
.accr-status{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}
.accr-pending{background:#FCF0EC;color:#B83D1E}
.accr-approved{background:var(--green-l);color:var(--green)}
.accr-rejected{background:var(--red-l);color:var(--red)}
.spec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:1rem}
.spec-group{margin-bottom:1rem}
.spec-group-label{font-size:10px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.spec-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:13px;transition:all .15s;user-select:none}
.spec-item:hover{border-color:var(--gold-l);background:var(--gold-pale)}
.spec-item.checked{border-color:var(--gold);background:var(--gold-pale);color:var(--dark)}
.spec-item input{accent-color:var(--gold)}
.doc-type-select{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;margin-bottom:6px;background:#fff}
.accr-file-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #f9fafb;font-size:13px}
.accr-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#FE4301;cursor:pointer}
.doc-type-badge{font-size:10px;padding:2px 6px;background:var(--gray-pale);border-radius:3px;color:var(--gray);white-space:nowrap}
.step-tabs{display:flex;gap:0;margin-bottom:1.5rem;border:1px solid var(--border);border-radius:4px;overflow:hidden}
.step-tab{flex:1;padding:10px;text-align:center;font-size:12px;font-weight:600;cursor:pointer;background:#fff;border:none;color:var(--gray);letter-spacing:.04em;text-transform:uppercase;transition:all .15s;border-right:1px solid var(--border)}
.step-tab:last-child{border-right:none}
.step-tab.active{background:#8F8888;color:#fff}
.step-tab.done{background:var(--green-l);color:var(--green)}

/* ── Chat ────────────────────────────────────────────────────────── */
.chat-wrap{display:flex;flex-direction:column;height:420px;border:1px solid var(--border);border-radius:4px;overflow:hidden}
.chat-archived{background:#F5EFE6;border-bottom:1px solid var(--gold-l);padding:8px 12px;font-size:12px;color:var(--gold-d);display:flex;align-items:center;gap:6px}
.chat-threads{width:180px;border-right:1px solid var(--border);background:#f9fafb;overflow-y:auto;flex-shrink:0}
.chat-thread-item{padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border);font-size:12px;transition:background .15s}
.chat-thread-item:hover{background:var(--gold-pale)}
.chat-thread-item.active{background:var(--gold-pale);border-left:3px solid var(--gold)}
.chat-thread-name{font-weight:600;color:#1a1a2e;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-thread-preview{color:#9ca3af;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#fff}
.chat-msg{max-width:80%;padding:8px 12px;border-radius:10px;font-size:13px;line-height:1.5}
.chat-msg.from-admin{background:#8F8888;color:#fff;border:1px solid #888;align-self:flex-start;border-radius:4px 10px 10px 10px}
.chat-msg.from-user{background:var(--gold-pale);border:1px solid var(--gold-l);align-self:flex-end;border-radius:10px 4px 10px 10px}
.chat-msg.from-me{background:var(--gold);color:#fff;align-self:flex-end;border-radius:10px 4px 10px 10px}
.chat-msg-author{font-size:11px;font-weight:600;margin-bottom:3px;opacity:.75}
.chat-msg-time{font-size:10px;opacity:.6;margin-top:4px;text-align:right}
.chat-msg-text{word-break:break-word;white-space:pre-wrap}
.chat-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:#f9fafb}
.chat-input{flex:1;padding:8px 11px;border:1px solid var(--border);border-radius:8px;font-size:13px;resize:none;height:38px;font-family:inherit;transition:border-color .15s}
.chat-input:focus{outline:none;border-color:var(--gold)}
.chat-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#9ca3af;font-size:13px;text-align:center;padding:1rem}
.chat-layout{display:flex;flex:1;overflow:hidden}
.unread-dot{width:8px;height:8px;background:#ef4444;border-radius:50%;display:inline-block;margin-left:4px}

/* ── Tender full page ───────────────────────────────────────────── */
.tender-page{max-width:1100px;margin:0 auto;padding:1.5rem}
.tender-page-grid{display:grid;grid-template-columns:1fr 340px;gap:1.5rem;align-items:start}
.tender-page-title{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--dark);margin-bottom:.5rem;line-height:1.3}
.tender-page-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--gray);margin-bottom:1.25rem;align-items:center}
.tender-desc{font-size:14px;color:#3D3530;line-height:1.8;white-space:pre-wrap}
.back-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--gray);cursor:pointer;margin-bottom:1.25rem;background:none;border:none;padding:0;font-family:inherit}
.back-btn:hover{color:var(--dark)}
.sidebar-card{background:#fff;border:1px solid var(--border);border-radius:4px;padding:1.25rem;margin-bottom:1rem}
.sidebar-card-title{font-size:11px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.amount-big{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--gold-d);margin-bottom:.25rem}

/* ── Directory management ────────────────────────────────────────── */
.dir-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.dir-table td{padding:8px 10px;border-bottom:1px solid #f9fafb}
.dir-table tr:hover td{background:#fafbff}
.dir-add-row{display:flex;gap:8px;margin-top:10px}
.dir-add-row input{flex:1;padding:7px 10px;border:1px solid var(--border);border-radius:4px;font-size:13px;font-family:inherit}
.dir-add-row input:focus{outline:none;border-color:var(--gold)}

.tender-form-wrap{max-width:860px;margin:0 auto;padding:1.5rem}
.pub-mode-group{display:flex;flex-direction:column;gap:10px}
.pub-mode-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:all .15s}
.pub-mode-option:hover{border-color:var(--gold);background:var(--gold-pale)}
.pub-mode-option input[type=radio]{accent-color:#FE4301;width:16px;height:16px;cursor:pointer}
.pub-mode-option.selected{border-color:#FE4301;background:#FDF0EC}
.pub-mode-label{font-size:13px;font-weight:500;color:var(--dark)}
.pub-mode-desc{font-size:11px;color:var(--gray);margin-top:2px}

/* ══ VEREN TENDERS PAGE STYLE ══════════════════════════════════════ */

/* Hero */
.v-hero{background:#8F8888;padding:72px 0 64px;position:relative;overflow:hidden}
.v-hero::before{content:'ТЕНДЕРЫ';position:absolute;right:-20px;top:-20px;font-family:'Playfair Display',serif;font-size:180px;font-weight:900;color:rgba(0,0,0,.06);letter-spacing:-.05em;line-height:1;pointer-events:none;user-select:none}
.v-hero::after{content:'';position:absolute;right:0;top:0;bottom:0;width:40%;background:linear-gradient(90deg,transparent,rgba(200,169,126,.04));pointer-events:none}
.v-hero-inner{max-width:900px;margin:0 auto;padding:0 2rem}
.v-hero-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-bottom:1.5rem}
.v-hero-title{font-family:'Playfair Display',serif;font-size:64px;font-weight:700;color:#fff;line-height:.95;letter-spacing:.02em;margin:0 0 12px}
.v-hero-sub{font-size:15px;color:rgba(255,255,255,.65);line-height:1.65;max-width:520px;margin-bottom:12px}
.v-hero-desc{font-size:13px;color:rgba(255,255,255,.45);line-height:1.8;max-width:500px;margin-bottom:40px}
.v-hero-stats{display:flex;align-items:center;gap:0;border-top:1px solid rgba(255,255,255,.12);padding-top:32px;margin-top:8px}
.v-stat{display:flex;flex-direction:column;gap:4px;padding:0 40px 0 0;margin-right:40px;border-right:1px solid rgba(255,255,255,.12)}
.v-stat:last-child{border-right:none}
.v-stat-val{font-family:'Playfair Display',serif;font-size:36px;font-weight:700;color:#fff;line-height:1}
.v-stat-lbl{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:4px}
.v-stat-sep{display:none}

/* Filters */
.v-filters{background:#fff;border-bottom:1px solid #E0D8D0}
.v-filters-inner{max-width:960px;margin:0 auto;padding:.875rem 2rem;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.v-search-wrap{flex:1;min-width:200px;position:relative}
.v-search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af}
.v-search-wrap input{width:100%;padding:9px 12px 9px 36px;border:1px solid #E0D8D0;border-radius:3px;font-size:13px;font-family:inherit;background:#FAF8F5;color:var(--dark)}
.v-search-wrap input:focus{outline:none;border-color:var(--gold);background:#fff}
.v-flt{padding:9px 12px;border:1px solid #E0D8D0;border-radius:3px;font-size:12px;font-family:inherit;background:#FAF8F5;color:var(--dark);cursor:pointer;letter-spacing:.02em}
.v-flt:focus{outline:none;border-color:var(--gold)}
.v-flt option{color:var(--dark);background:#fff}

/* Tender list */
.v-tenders-wrap{max-width:960px;margin:0 auto;padding:2rem 2rem 4rem}
.v-tender-list{display:flex;flex-direction:column}

/* Tender row — Veren style */
.v-tender-row{display:grid;grid-template-columns:200px 1fr 220px;gap:0;background:#fff;border:1px solid #DDD8D8;border-left:3px solid transparent;margin-bottom:2px;cursor:pointer;transition:all .15s}
.v-tender-row:first-child{border-top:1px solid #DDD8D8}
.v-tender-row:hover{border-left-color:#FE4301;box-shadow:0 4px 20px rgba(0,0,0,.07)}
.v-tender-row--closed{opacity:.65}
.v-tender-dates{padding:28px 24px 28px 28px;border-right:1px solid #EEE9E9;display:flex;flex-direction:column;justify-content:center;gap:16px}
.v-tender-date-item{display:flex;flex-direction:column;gap:3px}
.v-date-label{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#B0AAA8;font-family:'JetBrains Mono',monospace}
.v-date-val{font-family:'Playfair Display',serif;font-size:15px;font-weight:600;color:#1A1612}
.v-tender-main{padding:24px 32px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.v-tender-project{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:600}
.v-tender-location{font-size:11px;color:#9ca3af;margin-bottom:2px}
.v-tender-name{font-family:'Playfair Display',serif;font-size:19px;font-weight:600;color:#1A1612;line-height:1.35}
.v-tender-meta-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.v-tender-actions{padding:24px 28px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:10px;border-left:1px solid #EEE9E9;min-width:200px}
.v-tender-amount{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:#D93A00;white-space:nowrap}
.v-tender-amount-lbl{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#B0AABE;margin-top:-6px}

/* Veren badges */
.v-badge{display:inline-flex;align-items:center;padding:3px 8px;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border-radius:2px}
.v-badge--active{background:#EAF4EE;color:#2D6A4F}
.v-badge--closed,.v-badge--awarded{background:#F0EDE9;color:#7A6E65}
.v-badge--review{background:#FDF3E3;color:#8C5E1A}
.v-badge--draft{background:#F5F2F0;color:#8F8888}
.v-badge--scheduled{background:#FDF3E3;color:#8C5E1A}
.v-badge--cancelled{background:#FDE8E8;color:#B83232}
.v-badge--type{background:#F0EDE9;color:#5C4A3A}
.v-badge--cat{background:#F5EFE6;color:#7A6E65}

/* Veren buttons */
.v-btn-outline{display:block;width:100%;padding:8px 16px;border:1.5px solid #1A1612;background:transparent;color:#1A1612;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;font-family:inherit;border-radius:2px;text-align:center;transition:all .2s}
.v-btn-outline:hover{background:#1A1612;color:#fff}
.v-btn-gold{display:block;width:100%;padding:8px 16px;background:#FE4301;color:#fff;border:none;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;font-family:inherit;border-radius:2px;text-align:center;transition:all .2s}
.v-btn-gold:hover{background:var(--gold-d)}
.v-participate .btn{border-radius:2px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:9px 18px}

/* v-tender-row--app: logged-in variant (same grid, highlighted selected) */
.v-tender-row--app.sel{border-left-color:#FE4301;border-color:#F0A080;box-shadow:0 2px 12px rgba(217,79,42,.15)}

/* Admin progress bar in tender card */
.tc-bids-bar{margin-top:6px}
.tc-bids-bar-track{height:3px;background:#F0EDE9;border-radius:2px;overflow:hidden;margin-top:3px}
.tc-bids-bar-fill{height:100%;background:#FE4301;border-radius:2px}

/* Bid submitted badge for participants */
.my-bid-badge{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:4px 10px;border-radius:20px;background:#EAF4EE;color:#2D6A4F}
.my-bid-winner{background:var(--gold-pale);color:var(--gold-d)}

/* ══════════════════════════════════════════════════════════════════
   АДАПТИВНЫЙ ДИЗАЙН
   Брейкпоинты: 900px (планшет), 768px (мобильный), 480px (малый)
══════════════════════════════════════════════════════════════════ */

/* ── Кнопка выхода в сайдбаре (мобильные) ───────────────────────── */
/* На десктопе скрыта — там кнопка в шапке */
.sb-logout-wrap { display: none; }

/* На мобильных — показываем внизу сайдбара */
@media(max-width:900px) {
  .sb-logout-wrap {
    display: block;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,.12);
  }
  .sb-user-info {
    font-size: 11px;
    color: rgba(255,255,255,.5);
    padding: 6px 10px 2px;
    letter-spacing: .02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .sb-logout-btn {
    color: rgba(255,255,255,.7) !important;
    width: 100%;
  }
  .sb-logout-btn:hover {
    color: #fff !important;
    background: rgba(184,50,50,.25) !important;
  }
}

/* ── Гамбургер-кнопка ────────────────────────────────────────────── */
.burger-btn{
  display:none;
  flex-direction:column;justify-content:center;align-items:center;
  gap:5px;width:36px;height:36px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);
  border-radius:4px;cursor:pointer;padding:0;flex-shrink:0;
}
.burger-btn span{
  display:block;width:18px;height:2px;
  background:#fff;border-radius:2px;
  transition:transform .22s,opacity .22s;
}
.burger-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger-btn.open span:nth-child(2){opacity:0}
.burger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── Мобильный оверлей сайдбара ──────────────────────────────────── */
.sidebar-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.5);z-index:149;
  backdrop-filter:blur(2px);
}
.sidebar-overlay.open{display:block}

/* ══ 900px — планшет ═══════════════════════════════════════════════ */
@media(max-width:900px){

  /* Шапка */
  .header{padding:.75rem 1rem}
  .header-nav{display:none}
  .btn-desktop{display:none!important}
  .burger-btn{display:flex}

  /* Сайдбар становится drawer */
  .app-layout{grid-template-columns:1fr}
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;
    width:240px;z-index:150;
    transform:translateX(-100%);
    transition:transform .25s ease;
    height:100vh;top:0;
    padding-top:60px; /* под шапку */
  }
  .sidebar.mobile-open{transform:translateX(0)}

  /* Основной контент */
  .content{padding:1rem;min-height:auto}

  /* Статистика */
  .stats-grid{grid-template-columns:1fr 1fr}

  /* Тендер — детальная страница */
  .tender-page-grid{grid-template-columns:1fr}
  .tender-page{padding:1rem}

  /* Директории: 3→2 колонки */
  #view-admin-dirs > div[style*="grid-template-columns:1fr 1fr 1fr"],
  #view-admin-dirs > div{grid-template-columns:1fr 1fr!important}

  /* Панель деталей */
  .panel{width:380px}

  /* Форма тендера */
  #view-tender-form > div > div[style*="grid-template-columns:1fr 320px"]{
    grid-template-columns:1fr!important
  }

  /* Интеграции: 2→1 */
  #view-admin-integrations > div[style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important
  }

  /* SMTP: 2→1 */
  #view-admin-smtp > div[style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important
  }
  .settings-grid{grid-template-columns:1fr}
}

/* ══ 768px — мобильный ═════════════════════════════════════════════ */
@media(max-width:768px){

  /* ── Шапка ───────────────────────────────────────────────────── */
  .header{padding:.65rem .875rem;gap:8px}
  .logo svg{width:130px;height:28px}

  /* ── Контент ─────────────────────────────────────────────────── */
  .content{padding:.875rem}
  .card{padding:1rem}
  .card-title{font-size:13px}

  /* ── Статистика (admin) ──────────────────────────────────────── */
  .stats-grid{grid-template-columns:1fr 1fr;gap:8px}
  .stat-card .val{font-size:18px}

  /* ── Директории: 2→1 ─────────────────────────────────────────── */
  #view-admin-dirs > div{grid-template-columns:1fr!important}

  /* ── Панель деталей ──────────────────────────────────────────── */
  .panel{width:100%;border-left:none}

  /* ── Модалки — bottom sheet ──────────────────────────────────── */
  .modal-bg{align-items:flex-end!important}
  .modal-bg.open{display:flex}
  .modal{
    width:100%!important;max-width:100%!important;
    max-height:92vh!important;overflow-y:auto;
    border-radius:12px 12px 0 0!important;
    border-left:none;border-right:none;border-bottom:none;
    margin:0;
  }

  /* ── Форма авторизации ───────────────────────────────────────── */
  .auth-card{padding:1.5rem}
  .auth-wrap{padding:1rem;align-items:flex-start;padding-top:2.5rem}

  /* ── Гриды 2→1 ───────────────────────────────────────────────── */
  .form-2col{grid-template-columns:1fr}
  .settings-grid{grid-template-columns:1fr}

  /* ── Таблицы — горизонтальный скролл ────────────────────────── */
  .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tbl{min-width:500px}
  .tbl td,.tbl th{padding:8px 10px;white-space:nowrap}

  /* ── Тендерные карточки (app список) ────────────────────────── */
  .tc-head{flex-wrap:wrap;gap:6px}
  .tc-amount{font-size:14px}
  .tc-foot{flex-direction:column;align-items:flex-start;gap:8px}
  .tc-acts{flex-wrap:wrap;gap:6px}
  .tc-acts .btn{font-size:11px;padding:4px 9px}

  /* ── Заголовки разделов ──────────────────────────────────────── */
  [id^="view-admin-"] > div[style*="justify-content:space-between"]{
    flex-direction:column;align-items:flex-start!important;gap:10px!important
  }

  /* ── Тост ────────────────────────────────────────────────────── */
  .toast{left:.75rem;right:.75rem;max-width:none;bottom:.75rem}

  /* ── HERO — публичная главная ────────────────────────────────── */
  .v-hero{padding:2.5rem 0 2rem}
  .v-hero-inner{padding:0 1.25rem}
  .v-hero-label{font-size:10px;letter-spacing:.12em;margin-bottom:.875rem}
  .v-hero-title{font-size:36px;margin-bottom:1rem;line-height:1.1}
  .v-hero-sub{font-size:14px;line-height:1.6;margin-bottom:.5rem;max-width:100%}
  .v-hero-desc{font-size:12px;margin-bottom:1.75rem;max-width:100%}

  /* Статистика hero: горизонтально с переносом, выровнены по левому краю */
  .v-hero-stats{
    display:flex;flex-wrap:wrap;
    gap:.5rem 0;
    align-items:flex-start;
  }
  .v-stat{
    display:flex;flex-direction:column;gap:2px;
    padding:.5rem 2rem .5rem 0;  /* gap между stats через padding-right */
    min-width:0;
  }
  .v-stat-val{font-size:24px}
  .v-stat-lbl{font-size:10px;letter-spacing:.04em}
  .v-stat-sep{width:1px;height:28px;margin:.5rem 1rem .5rem 0;align-self:center}

  /* ── Фильтры ─────────────────────────────────────────────────── */
  .v-filters-inner{padding:.75rem 1rem;gap:8px}
  .v-search-wrap{flex:0 0 100%;order:-1}       /* поиск на всю строку первым */
  .v-flt{flex:1 1 calc(50% - 4px);font-size:12px;padding:8px 10px}

  /* ── Список тендеров (публичный) ─────────────────────────────── */
  .v-tenders-wrap{padding:.875rem 1rem 3rem}

  /* Строка тендера: 3 колонки → 1 колонка (стек сверху вниз) */
  .v-tender-row{
    display:flex;flex-direction:column;
    border-bottom:1px solid #E0D8D0;
  }
  .v-tender-row:first-child{border-top:1px solid #E0D8D0}

  /* Блок дат: компактный, горизонтальный, только нужные данные */
  .v-tender-dates{
    border-right:none;
    border-bottom:1px solid #F0EDE9;
    padding:.75rem 1rem;
    flex-direction:row;
    flex-wrap:wrap;
    gap:.25rem 1.5rem;           /* маленький vertical gap, большой horizontal */
    align-items:flex-start;
  }
  .v-tender-date-item{flex-direction:row;gap:4px;align-items:baseline;flex-wrap:wrap}
  .v-date-label{white-space:nowrap}
  .v-date-val{font-size:12px;font-family:inherit;font-weight:600}

  /* Основной блок */
  .v-tender-main{padding:.875rem 1rem .75rem}
  .v-tender-name{font-size:15px}

  /* ▶▶ ИСПРАВЛЕНИЕ: блок действий — КОЛОНКА, не ряд ◀◀ */
  .v-tender-actions{
    padding:.875rem 1rem 1rem;
    display:flex;
    flex-direction:column;        /* ← вертикально, как на десктопе */
    align-items:flex-start;       /* ← по левому краю */
    justify-content:flex-start;
    gap:8px;
    min-width:auto;
    border-top:1px solid #F0EDE9;
  }
  .v-tender-amount{font-size:17px}  /* чуть меньше чем 18px на десктопе */
  .v-tender-amount-lbl{margin-top:0}

  /* Кнопки в блоке действий — в ряд */
  .v-tender-actions > button,
  .v-tender-actions > span.v-participate{
    display:inline-flex;
  }

  /* ── Чат ─────────────────────────────────────────────────────── */
  .chat-wrap{height:300px}
  .chat-threads{width:130px}

  /* ── ВОР — горизонтальный скролл ────────────────────────────── */
  #bid-vor-section > div,
  #c-vor-preview,
  [id*="vor-table"]{overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* ── ВОР-редактор в форме тендера ───────────────────────────── */
  #vor-editor-table{min-width:480px}
  #vor-editor-table td,#vor-editor-table th{padding:4px 5px}
}

/* ══ 480px — телефон ════════════════════════════════════════════════ */
@media(max-width:480px){

  /* ── Шапка ───────────────────────────────────────────────────── */
  .header{padding:.6rem .75rem;gap:6px}
  .logo svg{width:110px;height:24px}
  #btn-login{font-size:11px;padding:5px 10px}

  /* ── Статистика (admin) ──────────────────────────────────────── */
  .stats-grid{grid-template-columns:1fr}

  /* ── HERO stats: на телефоне — вертикальный стек ─────────────── */
  .v-hero{padding:2rem 0 1.75rem}
  .v-hero-inner{padding:0 1rem}
  .v-hero-title{font-size:26px;margin-bottom:.875rem}
  .v-hero-sub{font-size:13px}
  .v-hero-desc{display:none}           /* скрываем длинный подзаголовок */

  .v-hero-stats{
    flex-direction:column;
    gap:.5rem;
    align-items:flex-start;
    margin-bottom:0;
  }
  .v-stat{
    flex-direction:row;                /* ▶▶ число и подпись в ОДНУ строку ◀◀ */
    align-items:baseline;
    gap:.5rem;
    padding:0;
  }
  .v-stat-val{
    font-size:22px;
    font-weight:700;
    color:#fff;
    min-width:2ch;                     /* минимальная ширина под число */
    flex-shrink:0;
  }
  .v-stat-lbl{
    font-size:12px;
    letter-spacing:.03em;
    text-transform:none;               /* убираем caps для читаемости */
    opacity:.8;
    line-height:1.3;
  }
  .v-stat-sep{display:none}

  /* ── Фильтры ─────────────────────────────────────────────────── */
  .v-flt{flex:0 0 100%;min-width:100%}  /* каждый фильтр на всю строку */
  .v-search-wrap{flex:0 0 100%}

  /* ── Список тендеров ─────────────────────────────────────────── */
  .v-tender-name{font-size:14px}
  .v-tender-amount{font-size:16px}
  .v-tender-actions{padding:.75rem 1rem .875rem}

  /* Кнопки в tender actions — в ряд если влезают */
  .v-btn-outline,.v-btn-gold{
    font-size:11px;padding:7px 14px;letter-spacing:.04em
  }

  /* ── Таблицы ─────────────────────────────────────────────────── */
  .tbl td,.tbl th{padding:7px 8px;font-size:12px}

  /* ── Кнопки в заголовках вью ─────────────────────────────────── */
  .view .btn-primary{font-size:12px;padding:7px 12px}

  /* ── Форма авторизации ───────────────────────────────────────── */
  .auth-card{padding:1.25rem}
  .auth-logo h1{font-size:18px}
  .auth-wrap{padding-top:1.5rem}

  /* ── Модалки ─────────────────────────────────────────────────── */
  .modal-body{padding:1rem}
  .modal-foot{padding:.75rem 1rem;flex-wrap:wrap;gap:6px}
  .modal-foot .btn{flex:1;justify-content:center;min-width:0}
  .modal-head{padding:.875rem 1rem}

  /* ── Аккредитация ────────────────────────────────────────────── */
  .step-tabs{flex-wrap:wrap}
  .step-tab{flex:0 0 50%;font-size:11px;padding:8px;border-right:none;border-bottom:1px solid var(--border)}
  .step-tab:nth-child(odd){border-right:1px solid var(--border)}

  /* ── Сайдбар ─────────────────────────────────────────────────── */
  .sidebar{width:280px}

  /* ── Нотификации в кабинете — компакт ───────────────────────── */
  .accr-status{font-size:11px;padding:3px 8px}
}
/* ── Mono ID utility ─────────────────────────────────────────────── */
.mono-id{font-family:'JetBrains Mono',monospace;font-size:10px;color:#B0AABE;background:#F5F2F0;padding:2px 7px;border-radius:2px}

.notif-item{padding:10px 12px;border-bottom:1px solid #f9fafb;display:flex;align-items:flex-start;gap:10px;border-radius:4px;transition:background .15s}
.notif-icon{font-size:16px;flex-shrink:0;margin-top:1px}
.notif-clickable{cursor:pointer}
.notif-clickable:hover{background:#FAF8F5}
.notif-item.unread{background:#FFF8F6}
.notif-item.unread .notif-msg{font-weight:500}

/* ── Аналитика ───────────────────────────────────────────────────── */
#analytics-row1,#analytics-row2,#analytics-row3,#analytics-row4{display:grid;gap:1.25rem}
#analytics-row1{grid-template-columns:2fr 1fr}
#analytics-row2,#analytics-row3,#analytics-row4{grid-template-columns:1fr 1fr}
@media(max-width:900px){
  #analytics-row1,#analytics-row2,#analytics-row3,#analytics-row4{grid-template-columns:1fr}
}

/* ── Утилиты адаптивности ────────────────────────────────────────── */
/* Горизонтальный скролл для таблиц */
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Скрыть на мобильном */
@media(max-width:768px){
  .hide-mobile{display:none!important}
  /* Ячейки таблиц пользователей — скрыть второстепенные */
  .tbl .col-phone,.tbl .col-created{display:none}
  /* Уменьшить паддинг таблиц */
  .tbl td,.tbl th{padding:8px 10px}
  /* Кнопки в таблицах */
  .tbl .acts .btn{padding:4px 8px;font-size:11px}
  /* Аудит-таблица */
  #audit-table .col-ip,.audit-table .col-details{display:none}
}
@media(max-width:480px){
  .tbl td,.tbl th{padding:6px 8px;font-size:12px}
  /* Только самое важное в заявках */
  .bid-row .bid-sub{display:none}
  /* Bid card mobile */
  .bid-card{flex-wrap:wrap;gap:8px}
  .bid-card .bid-nmc{display:none}
  .bid-amount{font-size:14px}
}

/* ══ СРАВНЕНИЕ ЗАЯВОК ══════════════════════════════════════════ */
.cmp-page{padding:24px;max-width:100%;min-height:calc(100vh - 120px)}
.cmp-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.cmp-header-title{flex:1;min-width:0}
.cmp-nmc-bar{display:flex;align-items:center;gap:8px;font-size:13px;padding:10px 14px;background:#f5f5f5;border-radius:3px;margin-bottom:20px}
.cmp-nmc-bar strong{font-family:'Playfair Display',serif;font-size:16px;color:var(--gold-d)}
/* Карточки участников */
.cmp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:20px}
.cmp-card{border:1px solid var(--border);border-radius:4px;padding:14px 16px;background:#fff}
.cmp-card-best{border-color:#4caf50;border-width:2px;background:#f1fdf1}
.cmp-card-name{font-weight:700;font-size:13px;color:var(--ink);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmp-card-inn{font-size:10px;color:var(--gray);font-family:'JetBrains Mono',monospace;margin-bottom:8px}
.cmp-card-amount{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--gold-d);margin-bottom:4px}
.cmp-card-savings{font-size:12px;font-weight:600;color:var(--green)}
.cmp-card-savings.bad{color:var(--red)}
.cmp-card-badge{display:inline-block;margin-top:8px;font-size:10px;background:#e8f5e9;color:#2e7d32;border-radius:2px;padding:2px 8px}
.cmp-card-badge.winner{background:var(--gold-pale);color:var(--gold-d)}
/* Легенда */
.cmp-legend{display:flex;gap:16px;margin-bottom:12px;font-size:11px;flex-wrap:wrap}
.cmp-legend-item{display:flex;align-items:center;gap:6px;padding:3px 10px;border-radius:2px}
.cmp-legend-item.cmp-min{background:#e8f5e9;color:#2e7d32}
.cmp-legend-item.cmp-max{background:#fff3f3;color:#c62828}
.cmp-legend-item.cmp-no-data{background:#f5f5f5;color:#9e9e9e}
/* Таблица */
.cmp-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:4px;background:#fff}
.cmp-table{width:100%;border-collapse:collapse;font-size:12px}
.cmp-table thead th{padding:8px 10px;border-bottom:2px solid var(--border);background:#f9f9f9;font-family:'JetBrains Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;text-align:right}
.cmp-th-pos,.cmp-th-name{text-align:left}
.cmp-th-company{font-family:inherit;font-size:11px;font-weight:700;text-transform:none;letter-spacing:0;white-space:nowrap;overflow:hidden;max-width:140px;text-overflow:ellipsis;color:var(--ink)}
.cmp-th-sub{font-size:9px;color:var(--gray);font-weight:400;text-transform:lowercase;letter-spacing:0}
.cmp-th-min{background:#e8f5e9!important}
.cmp-table tbody tr:hover{background:#fafafa}
.cmp-pos{padding:5px 8px;color:var(--gray);white-space:nowrap;font-family:'JetBrains Mono',monospace;font-size:11px}
.cmp-name{padding:5px 10px;max-width:220px}
.cmp-unit{padding:5px 8px;text-align:center;color:var(--gray);white-space:nowrap}
.cmp-qty{padding:5px 10px;text-align:right;color:var(--gray);white-space:nowrap}
.cmp-cell{padding:5px 10px;text-align:right;white-space:nowrap;cursor:default}
.cmp-cell.cmp-min{background:#e8f5e9;color:#2e7d32;font-weight:700}
.cmp-cell.cmp-max{background:#fff3f3;color:#c62828}
.cmp-cell.cmp-no-data{color:#ccc;font-style:italic}
.cmp-min-col{background:#f1fdf1!important;font-weight:600;color:#2e7d32;padding:5px 10px;text-align:right;white-space:nowrap}
.cmp-section td{background:#f0f0f0!important}
.cmp-total-row td{border-top:2px solid var(--border);font-weight:700;font-size:13px}
.cmp-total{padding:8px 10px;text-align:right;font-family:'Playfair Display',serif}
.cmp-total.cmp-min{background:#e8f5e9;color:#2e7d32}
.cmp-wins-row td{border-top:1px solid #eee;font-size:11px;color:var(--gray)}
.cmp-wins{padding:5px 10px;text-align:right;white-space:nowrap}

/* ══ ИИ-АНАЛИТИКА ══════════════════════════════════════════════ */
.btn-ai{background:linear-gradient(135deg,#6e40c9,#4c6ef5);color:#fff;border:none}
.btn-ai:hover{background:linear-gradient(135deg,#5a32b0,#3b5bdb);color:#fff}
.ai-prov-btn{border:2px solid var(--border);background:#fff;transition:background .15s,color .15s,border-color .15s}
.ai-prov-btn:hover{border-color:var(--dark)}
/* Чат-попап */
#chat-popup .chat-wrap{border-radius:0;border:none}
#chat-popup .chat-messages{flex:1;overflow-y:auto;padding:12px}
#chat-popup .chat-input-row{padding:10px 12px;border-top:1px solid var(--border);flex-shrink:0}
#chat-popup .chat-layout{flex:1;display:flex;overflow:hidden}
#chat-popup .chat-threads{width:140px;border-right:1px solid var(--border);overflow-y:auto;font-size:12px}
@media(max-width:480px){
  #chat-popup{width:calc(100vw - 16px)!important;right:8px!important;left:8px!important;bottom:8px!important}
}
/* Тело результата */
.ai-result-body{font-size:13px;line-height:1.7;color:var(--ink)}
.ai-section-title{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;margin:20px 0 8px;color:var(--ink);padding-bottom:4px;border-bottom:1px solid var(--border)}
.ai-p{margin:6px 0}
.ai-sep{border:none;border-top:1px solid var(--border);margin:16px 0}
.ai-result-body ul{margin:6px 0 6px 20px;padding:0}
.ai-result-body li{margin-bottom:3px}
.ai-risk-low{display:inline-block;background:#e8f5e9;color:#2e7d32;border-radius:3px;padding:1px 6px;font-weight:600}
.ai-risk-mid{display:inline-block;background:#fff8e1;color:#e65100;border-radius:3px;padding:1px 6px;font-weight:600}
.ai-risk-hi{display:inline-block;background:#ffebee;color:#c62828;border-radius:3px;padding:1px 6px;font-weight:600}
