:root{--bg:#F5F0E8;--surface:#FDFAF5;--line:rgba(201,168,76,.28);--rouge:#8B1A1A;--rouge2:#c0392b;--gold:#C9A84C;--gold2:#A07830;--text:#2C1A0E;--text2:#6B5540;--text3:#9a8070;--ok:#2d6b2d;--low:#b5281a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Jost,system-ui,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.app{display:flex;min-height:100vh}.side{width:230px;background:linear-gradient(180deg,#1c100a,#120a05);color:#f0dcb4;display:flex;flex-direction:column;padding:1.2rem 0}.brand{font-family:Playfair Display,serif;font-style:italic;font-size:1.4rem;color:#fff;padding:0 1.3rem 1rem;border-bottom:1px solid rgba(201,168,76,.25);margin-bottom:.8rem}.brand small{display:block;font-style:normal;font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-top:.3rem}.nav button{width:100%;text-align:left;background:none;border:none;color:#cdb79f;padding:.7rem 1.3rem;cursor:pointer;font-size:.9rem;display:flex;gap:.6rem;align-items:center}.nav button:hover{background:#c9a84c1a;color:#fff}.nav button.on{background:#c9a84c29;color:#fff;border-left:3px solid var(--gold)}.side-foot{margin-top:auto;padding:1rem 1.3rem;font-size:.78rem;color:#9a7a54}.side-foot button{margin-top:.5rem;background:none;border:1px solid rgba(201,168,76,.4);color:#e6b85c;border-radius:6px;padding:.35rem .7rem;cursor:pointer;font-size:.75rem}.main{flex:1;padding:1.6rem 2rem;overflow:auto}.h1{font-family:Playfair Display,serif;font-style:italic;font-size:1.8rem;color:var(--rouge);margin-bottom:1.2rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.6rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem}.card .k{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold2)}.card .v{font-family:Playfair Display,serif;font-size:2rem;color:var(--text);margin-top:.3rem}.card.alert .v{color:var(--low)}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}th,td{text-align:left;padding:.6rem .8rem;font-size:.85rem;border-bottom:1px solid var(--line)}th{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold2);background:#c9a84c0f}tr:last-child td{border-bottom:none}.badge{font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:20px}.badge.ok{background:#2d6b2d1f;color:var(--ok)}.badge.low{background:#b5281a1f;color:var(--low)}.right{text-align:right}.btn{background:var(--rouge);color:#fff;border:none;border-radius:6px;padding:.45rem .9rem;cursor:pointer;font-size:.8rem}.btn:hover{background:var(--rouge2)}.btn.ghost{background:none;border:1px solid var(--line);color:var(--text2)}.btn.gold{background:var(--gold)}input,select{font-family:inherit;font-size:.85rem;padding:.45rem .6rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text)}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.muted{color:var(--text3);font-size:.8rem}.login{margin:auto;max-width:360px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:2rem;display:flex;flex-direction:column;gap:.8rem}.login h2{font-family:Playfair Display,serif;font-style:italic;color:var(--rouge);text-align:center}.login input{width:100%}.err{color:var(--low);font-size:.8rem}.center{min-height:100vh;display:flex}.algs{display:flex;gap:3px;flex-wrap:wrap}.alg{font-size:.58rem;background:#b5281a1a;color:var(--low);border:1px solid rgba(181,40,26,.25);border-radius:10px;padding:1px 7px;white-space:nowrap}.count{font-variant-numeric:tabular-nums}.count.warn{color:#b5701a;font-weight:700}.count.danger{color:var(--low);font-weight:700}.lock{max-width:340px;margin:2rem auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.6rem;text-align:center;display:flex;flex-direction:column;gap:.7rem}textarea{font-family:inherit;font-size:.85rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;width:100%;min-height:120px}.scan-box{background:var(--surface);border:1px dashed var(--gold2);border-radius:10px;padding:1rem;margin-bottom:1rem}video{width:100%;max-width:360px;border-radius:8px;background:#000}.pw-field{position:relative;width:100%}.pw-field input{width:100%;padding-right:2.5rem}.pw-eye{position:absolute;top:50%;right:.45rem;transform:translateY(-50%);background:none;border:none;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.25rem;border-radius:6px}.pw-eye:hover{color:var(--rouge)}
