:root{
  --font:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --bg:#f6f7f8; --panel:#fff; --text:#1f2328; --muted:#6b7280; --muted2:#9aa1ab;
  --border:#e6e8eb; --hover:#f1f2f4; --accent:#4f46e5; --accent-soft:#eef0fe;
  --ok:#16a34a; --ok-soft:#e8f6ec; --warn:#b45309; --warn-soft:#fdf3e3;
  --danger:#dc2626; --danger-soft:#fdeaea; --price:#0f766e; --price-soft:#e6f4f1;
  --radius:12px; --shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.04);
  --pattern-opacity:.20;
}
[data-theme="dark"]{
  --bg:#141519; --panel:#1c1e24; --text:#e7e8ea; --muted:#9aa1ad; --muted2:#79808d;
  --border:#2a2d35; --hover:#23262d; --accent:#8b90ff; --accent-soft:#232544;
  --ok:#4ade80; --ok-soft:#17321f; --warn:#fbbf24; --warn-soft:#33260f;
  --danger:#f87171; --danger-soft:#3a1d1d; --price:#5eead4; --price-soft:#12312c; --shadow:none;
  --pattern-opacity:.12;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 var(--font);-webkit-text-size-adjust:100%}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px 90px}

.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.topbar .inner{max-width:1180px;margin:0 auto;padding:9px 16px;display:flex;gap:12px;align-items:center;position:relative}
.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}
/* Логотип: PNG с полями, поэтому показываем его крупно и обрезаем контейнером */
.annawrap{display:inline-block;width:128.8px;height:60px;overflow:hidden;position:relative;flex:0 0 auto}
.annawrap img.lg{position:absolute;width:190.6px;height:190.6px;left:-30.9px;top:-61.8px;max-width:none;display:none}
.annawrap img.lg-light{display:block}
[data-theme="dark"] .annawrap img.lg-light{display:none}
[data-theme="dark"] .annawrap img.lg-dark{display:block}
.grow{flex:1}
.btn{border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:8px 12px;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--hover)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.ghost{background:transparent}
.btn.icon{padding:8px 11px}
.menu{position:absolute;right:8px;top:52px;background:var(--panel);border:1px solid var(--border);
  border-radius:12px;box-shadow:var(--shadow);padding:6px;min-width:236px;z-index:30}
.menu .mname{padding:8px 10px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--border);margin-bottom:4px}
.menu a,.menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;cursor:pointer}
.menu .mdiv{height:1px;background:var(--border);margin:5px 4px}

h1{font-size:19px;margin:18px 0 4px}
h2{font-size:16px;margin:0 0 10px}
.sub{color:var(--muted);font-size:13px}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.panel+.panel{margin-top:12px}
.rowflex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.between{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.badge{display:inline-flex;gap:5px;align-items:center;border-radius:999px;padding:3px 9px;font-size:12.5px;white-space:nowrap}
.badge.ok{background:var(--ok-soft);color:var(--ok)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.danger{background:var(--danger-soft);color:var(--danger)}
.badge.gray{background:var(--hover);color:var(--muted)}
.badge.acc{background:var(--accent-soft);color:var(--accent)}
.mono{font-variant-numeric:tabular-nums}

/* Паттерн-подложка блока поиска и настроек (как в согласованном моке) */
.filterpanel{position:relative;overflow:hidden}
.filterpanel::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url("/static/pattern-lv.jpg");background-size:330px auto;background-repeat:repeat;
  background-position:center;opacity:var(--pattern-opacity);filter:grayscale(1) contrast(.9);mix-blend-mode:multiply}
[data-theme="dark"] .filterpanel::before{filter:grayscale(1) invert(1) contrast(.7);mix-blend-mode:screen}
.filterpanel>*{position:relative;z-index:1}

.filters{display:grid;grid-template-columns:1.6fr .8fr 1fr;gap:10px;align-items:end}
.fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fld label{font-size:12.5px;color:var(--text);font-weight:700}
.inp,select.inp{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel);outline:none}
.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel)}
.seg button,.seg a{border:0;background:transparent;padding:8px 11px;cursor:pointer;color:var(--muted);font-size:13.5px}
.seg .on{background:var(--accent-soft);color:var(--accent);font-weight:600}

.list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}
.card .top{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.card .ttl{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.card .art{font-weight:700;font-size:16px}
.card .nm{color:var(--muted)}
.card .body{display:grid;grid-template-columns:1.35fr .8fr;gap:14px;margin-top:10px}
.attrlist{display:flex;flex-direction:column;margin-top:8px}
.attrlist>div{display:flex;gap:12px;padding:5px 0;border-bottom:1px dashed var(--border);font-size:13.5px}
.attrlist>div:last-child{border-bottom:0}
.attrlist .k{flex:0 0 148px;color:var(--muted)}
.attrlist .v{font-weight:600;min-width:0;overflow-wrap:anywhere}
.details>summary{cursor:pointer;color:var(--accent);font-size:13.5px;margin-top:8px}

.prices{background:var(--price-soft);border:1px solid color-mix(in srgb,var(--price) 25%,var(--border));border-radius:10px;padding:10px 12px}
.prow{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:5px 0}
.prow+.prow{border-top:1px dashed color-mix(in srgb,var(--price) 20%,var(--border))}
.prow .k{color:var(--muted);font-size:13px}
.prow .v{font-size:16px;font-weight:700;color:var(--price);white-space:nowrap}
.prow .v small{font-weight:500;color:var(--muted);font-size:12px}

.tip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;
  border-radius:50%;background:var(--hover);color:var(--muted);font-size:11px;font-weight:800;cursor:help;outline:none}
.tip:hover,.tip:focus{background:var(--accent-soft);color:var(--accent)}
.tip::after{content:attr(data-tip);position:absolute;left:-6px;bottom:145%;background:#111827;color:#fff;border-radius:9px;
  padding:8px 10px;font-size:12px;line-height:1.4;font-weight:500;white-space:normal;width:max-content;
  max-width:min(300px,calc(100vw - 36px));opacity:0;pointer-events:none;transition:.12s;z-index:40;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.tip:hover::after,.tip:focus::after{opacity:1}
[data-theme="dark"] .tip::after{background:#0b0f19;border:1px solid var(--border)}

table.t{width:100%;border-collapse:collapse;font-size:14px}
.tblwrap{overflow-x:auto}
table.t th{text-align:left;color:var(--muted);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;
  padding:8px 10px;border-bottom:1px solid var(--border)}
table.t td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
table.t tr:hover td{background:var(--hover)}
table.t .num{text-align:right;font-variant-numeric:tabular-nums}
.up{color:var(--danger);font-size:12.5px}
.down{color:var(--ok);font-size:12.5px}

.pager{display:flex;gap:6px;justify-content:center;margin:16px 0;flex-wrap:wrap}
.pager a,.pager span{min-width:34px;border:1px solid var(--border);background:var(--panel);border-radius:9px;padding:6px 9px;text-align:center;cursor:pointer}
.pager .on{background:var(--accent);border-color:var(--accent);color:#fff}
.foot{max-width:1180px;margin:0 auto;padding:18px 16px 30px;color:var(--muted);font-size:12.5px}
.login{max-width:390px;margin:8vh auto 0}
.login .lg{display:flex;justify-content:center;margin-bottom:14px}
.login img{height:64px}
.alert{border-radius:10px;padding:9px 12px;font-size:13.5px;margin-bottom:10px}
.alert.err{background:var(--danger-soft);color:var(--danger)}

dialog{border:1px solid var(--border);border-radius:14px;padding:18px;background:var(--panel);color:var(--text);max-width:430px}
dialog::backdrop{background:rgba(15,18,25,.45)}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}

@media (max-width:900px){ .filters{grid-template-columns:1fr 1fr} .card .body{grid-template-columns:1fr} }
@media (max-width:700px){
  .annawrap{width:80px;height:38px}
  .annawrap img.lg{width:120px;height:120px;left:-19.5px;top:-39px}
  .filters{grid-template-columns:1fr}
  .tblwrap{overflow-x:visible}
  table.t{display:block} table.t thead{display:none} table.t tbody{display:block}
  table.t tr{display:block;border:1px solid var(--border);border-radius:var(--radius);padding:8px 11px;margin-bottom:8px;background:var(--panel)}
  table.t td{display:flex;gap:12px;justify-content:space-between;border:0;padding:4px 0}
  table.t td::before{content:attr(data-l);color:var(--muted);font-size:12.5px}
}
