:root{--ink:#14213d;--mut:#5c6578;--bg:#f7f8fb;--card:#fff;--acc:#0b6e4f;--acc2:#e8f5ef;--warn:#9a5b00;--warnbg:#fff4e0;--err:#a1121f;--errbg:#fde8ea;--line:#e3e6ee}
*{box-sizing:border-box}body{margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--acc)}header.top{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;max-width:1080px;margin:auto}
.logo{font-weight:800;text-decoration:none;color:var(--ink);font-size:19px}.logo span{color:var(--acc)}nav a{margin-left:16px;text-decoration:none;color:var(--mut);font-weight:500}
main{max-width:1080px;margin:auto;padding:8px 20px 60px}h1{font-size:clamp(28px,4.4vw,44px);line-height:1.15;margin:.4em 0 .3em}h2{margin-top:2em}
.lead{font-size:19px;color:var(--mut);max-width:720px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;margin:18px 0}
.drop{border:2px dashed #b8c2d6;border-radius:14px;background:#fff;padding:38px 20px;text-align:center;cursor:pointer;transition:.15s}
.drop.over{border-color:var(--acc);background:var(--acc2)}.drop strong{font-size:18px}.drop p{color:var(--mut);margin:.4em 0 0}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:10px;padding:12px 18px;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none}
.btn.sec{background:#fff;color:var(--acc);border:1.5px solid var(--acc)}.btn:disabled{opacity:.5;cursor:not-allowed}
.stats{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.stat{background:var(--bg);border-radius:10px;padding:8px 12px;font-size:14px}.stat b{display:block;font-size:17px}
.ok{background:var(--acc2);color:var(--acc)}.warn{background:var(--warnbg);color:var(--warn)}.err{background:var(--errbg);color:var(--err);border-radius:10px;padding:12px 14px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:14px;background:#fff}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.desc{white-space:normal;min-width:180px}
tr.blur td{filter:blur(4px);user-select:none}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.price{font-size:34px;font-weight:800}.mut{color:var(--mut)}
.cmp td,.cmp th{white-space:normal}footer{border-top:1px solid var(--line);padding:22px 20px;text-align:center;color:var(--mut);font-size:14px}footer a{margin:0 8px}
.hidden{display:none!important}.spinner{display:inline-block;width:16px;height:16px;border:2px solid #ccd;border-top-color:var(--acc);border-radius:50%;animation:s 1s linear infinite;vertical-align:-3px;margin-right:6px}@keyframes s{to{transform:rotate(1turn)}}
details{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:8px 0}summary{font-weight:600;cursor:pointer}
@media (max-width:640px){nav a{margin-left:10px;font-size:14px}header.top{padding:12px 14px}main{padding:4px 14px 40px}.card{padding:16px}.btn{width:100%;text-align:center}.actions{flex-direction:column;align-items:stretch}.lead{font-size:17px}}
.stat.bad{background:#fdecec;border:2px solid #c62828;color:#7f1d1d;flex-basis:100%}.stat.bad b{color:#c62828}
#preview{min-width:560px}.tablewrap{-webkit-overflow-scrolling:touch;max-width:100%}
@media (max-width:640px){.tablewrap{overflow-x:scroll}td.desc{min-width:180px}}
