:root{--green: #2e7d32;--green-d: #1b5e20;--green-l: #e8f5e9;--bg: #f4f6f4;--card: #fff;--line: #e0e4e0;--txt: #212a21;--mut: #6b756b;--amber: #b45309;--red: #c62828;--blue: #1e56b0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--txt);font-size:14px}.layout{display:flex;min-height:100vh}aside{width:220px;background:#1c271c;color:#cfd8cf;flex-shrink:0;padding:12px 0}aside .logo{padding:8px 16px 14px;font-weight:700;color:#fff;font-size:15px}aside .logo small{display:block;font-weight:400;color:#8fa88f;font-size:11px}aside button.nav{display:block;width:100%;text-align:left;padding:7px 16px;color:#cfd8cf;background:none;border:none;font-size:13px;cursor:pointer;font-family:inherit}aside button.nav:hover{background:#243324}aside button.nav.on{background:var(--green);color:#fff;font-weight:600}aside .grp{padding:10px 16px 4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7d8f7d}main{flex:1;padding:18px 22px;max-width:1320px}h1{font-size:20px;margin-bottom:4px}h2{font-size:15px;margin:16px 0 8px}.sub{color:var(--mut);margin-bottom:14px;font-size:13px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:10px;margin-bottom:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px}.card .v{font-size:21px;font-weight:700;margin-top:4px}.card .l{color:var(--mut);font-size:12px}.card.warn .v{color:var(--amber)}.card.bad .v{color:var(--red)}.card.ok .v{color:var(--green)}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}th,td{padding:7px 9px;text-align:left;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}th{background:#f0f3f0;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.b{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.b.g{background:var(--green-l);color:var(--green-d)}.b.y{background:#fef3c7;color:#92400e}.b.r{background:#fee2e2;color:#991b1b}.b.bl{background:#dbeafe;color:#1e40af}.b.gr{background:#eee;color:#555}.btn{display:inline-block;background:var(--green);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.btn.o{background:#fff;color:var(--green);border:1px solid var(--green)}.btn.sm{padding:4px 9px;font-size:12px}.btn.red{background:var(--red)}.btn.blue{background:var(--blue)}.btn:disabled{background:#b9c2b9;cursor:not-allowed;border:none;color:#fff}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.fld{margin-bottom:9px}.fld label{display:block;font-size:11px;color:var(--mut);margin-bottom:3px;text-transform:uppercase;letter-spacing:.04em}.fld input,.fld select,.fld textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:#fff;font-family:inherit;color:var(--txt)}.note{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:9px 12px;font-size:13px;margin:8px 0}.note.ok{background:var(--green-l);border-color:#a5d6a7}.note.err{background:#fee2e2;border-color:#fca5a5}.steps{display:flex;margin:10px 0 14px}.steps div{flex:1;text-align:center;padding:7px 4px;background:#e5e9e5;font-size:12px;font-weight:600;color:var(--mut)}.steps div.done{background:var(--green-l);color:var(--green-d)}.steps div.cur{background:var(--green);color:#fff}.steps div:first-child{border-radius:8px 0 0 8px}.steps div:last-child{border-radius:0 8px 8px 0}.login-box{max-width:360px;margin:12vh auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}.clickable{cursor:pointer}.clickable:hover{background:#f7faf7}dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;border:1px solid var(--line);border-radius:12px;padding:18px;max-width:760px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 16px 56px #141e1447;z-index:100}dialog::backdrop{background:#141e1473}
