:root{--b:#29ABE2;--bd:#1565C0;--bn:#0D3B6E;--bg:#F4F8FC;--brd:#C8DFF0;--tx:#1A2B3C;--mu:#6B8CAE;--gs:#1B7F4A;--gb:#E8F5EE;--rs:#B71C1C;--rb:#FDECEC;--ws:#E65100;--wb:#FFF3E0;--gr:#8FA5B8;--grb:#EEF3F8;--r:10px;--rs2:6px}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--tx);font-size:13px;min-height:100vh}

.overlay{min-height:100vh;background:linear-gradient(135deg,#0D3B6E 0%,#1565C0 100%);display:flex;align-items:center;justify-content:center}
.box{background:#fff;border-radius:var(--r);padding:36px 40px;width:420px;border:0.5px solid var(--brd)}
.grv-logo{text-align:center;margin-bottom:22px}
.grv-logo .g{font-size:28px;font-weight:700;color:var(--bn);letter-spacing:2px}
.grv-logo .s{font-size:11px;color:var(--b);letter-spacing:3px;text-transform:uppercase;margin-top:2px}
.grv-logo .d{height:1px;background:var(--brd);margin:14px 0}
.grv-logo .t{font-size:14px;color:var(--mu)}
.err-box{background:var(--rb);color:var(--rs);font-size:12px;padding:8px 12px;border-radius:var(--rs2);margin-bottom:12px;display:none}
.err-box.show{display:block}

.fg{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.fg label{font-size:11px;font-weight:600;color:var(--mu);text-transform:uppercase;letter-spacing:.5px}
.fg input,.fg select,.fg textarea{padding:10px 13px;border:1px solid var(--brd);border-radius:var(--rs2);font-size:13px;color:var(--tx);background:var(--bg);font-family:inherit;transition:border-color .15s;outline:none;width:100%}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--b);background:#fff}

.btn{padding:9px 18px;border-radius:var(--rs2);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .15s;display:inline-flex;align-items:center;gap:6px;font-family:inherit}
.bp{background:var(--b);color:#fff}.bp:hover{background:var(--bd)}
.bo{background:#fff;color:var(--b);border:1px solid var(--b)}.bo:hover{background:#E6F4FB}
.bs{background:var(--gs);color:#fff}.bs:hover{background:#145E38}
.bd2{background:#fff;color:var(--rs);border:1px solid #F5C6C6}.bd2:hover{background:var(--rb)}
.bsm{padding:5px 10px;font-size:11px}
.bfull{width:100%;justify-content:center}
.btn:disabled{opacity:.5;cursor:not-allowed}

.header{background:var(--bn);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:52px;border-bottom:2px solid var(--b)}
.hlogo{display:flex;align-items:center;gap:10px}
.hlogo .g{font-size:16px;font-weight:700;letter-spacing:1px;color:#fff}
.hlogo .div{width:1px;height:20px;background:rgba(255,255,255,.2)}
.hlogo .s{font-size:10px;color:var(--b);letter-spacing:2px;text-transform:uppercase}
.hright{display:flex;align-items:center;gap:10px}
.huser{font-size:11px;color:rgba(255,255,255,.6)}

.tabs{display:flex;background:#fff;border-bottom:1px solid var(--brd);padding:0 24px;flex-wrap:wrap}
.tab{padding:12px 18px;cursor:pointer;font-size:13px;color:var(--mu);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;user-select:none;display:flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}
.tab:hover{color:var(--b)}
.tab.active{color:var(--b);border-bottom-color:var(--b);font-weight:600}

.cnt{padding:20px 24px;max-width:1200px;margin:0 auto}
.panel{display:none}.panel.active{display:block}
.card{background:#fff;border:1px solid var(--brd);border-radius:var(--r);padding:18px 22px;margin-bottom:14px}
.ctitle{font-size:14px;font-weight:600;color:var(--bn);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.ctitle::before{content:'';width:3px;height:16px;background:var(--b);border-radius:2px;display:inline-block}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.div{height:1px;background:var(--brd);margin:14px 0}

.kr{background:#E6F4FB;border:1px solid var(--b);border-radius:var(--r);padding:14px 18px;margin-top:14px;display:none}
.kr.show{display:block}
.krlb{font-size:10px;font-weight:600;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.krv{font-size:19px;font-weight:700;color:var(--bn);letter-spacing:3px;font-family:'Courier New',monospace;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.krmeta{margin-top:8px;font-size:11px;color:var(--mu);display:flex;gap:16px;flex-wrap:wrap}
.cpb{padding:4px 12px;background:var(--b);color:#fff;border:none;border-radius:var(--rs2);font-size:11px;cursor:pointer;font-weight:600;font-family:inherit}
.cpb:hover{background:var(--bd)}.cpb.ok{background:var(--gs)}

.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{background:var(--bn);color:#fff;padding:9px 10px;text-align:left;font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}
td{padding:8px 10px;border-bottom:1px solid var(--brd);font-size:12px;vertical-align:middle}
tr:hover td{background:#F0F7FD}
tr:last-child td{border-bottom:none}
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}
.ba{background:var(--gb);color:var(--gs)}.be{background:var(--rb);color:var(--rs)}
.bi{background:var(--grb);color:var(--gr)}.bw2{background:var(--wb);color:var(--ws)}
.bf{background:#E6F4FB;color:var(--bn)}
.kc{font-family:'Courier New',monospace;font-size:10px;color:var(--bn);letter-spacing:1px}

.tbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.tr{margin-left:auto;display:flex;gap:8px}
.sb{padding:7px 11px;border:1px solid var(--brd);border-radius:var(--rs2);font-size:12px;width:200px;outline:none;font-family:inherit}
.sb:focus{border-color:var(--b)}
.fs{padding:7px 11px;border:1px solid var(--brd);border-radius:var(--rs2);font-size:11px;outline:none;font-family:inherit;color:var(--tx);background:#fff}

.sg{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.sc{background:#fff;border:1px solid var(--brd);border-radius:var(--r);padding:14px 16px;border-top:3px solid var(--b)}
.sc.g{border-top-color:var(--gs)}.sc.g .sv{color:var(--gs)}
.sc.r{border-top-color:var(--rs)}.sc.r .sv{color:var(--rs)}
.sc.w{border-top-color:var(--ws)}.sc.w .sv{color:var(--ws)}
.sl{font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:4px}
.sv{font-size:26px;font-weight:700;color:var(--bn)}
.es{text-align:center;padding:32px;color:var(--mu)}

.mo{display:none;position:fixed;inset:0;background:rgba(13,59,110,.4);z-index:200;align-items:center;justify-content:center}
.mo.show{display:flex}
.md{background:#fff;border-radius:var(--r);padding:24px;width:440px}
.mt2{font-size:15px;font-weight:700;color:var(--bn);margin-bottom:14px}
.ma{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}

.notif{position:fixed;top:20px;right:20px;background:var(--gs);color:#fff;padding:11px 18px;border-radius:var(--rs2);font-size:13px;font-weight:600;z-index:9999;display:none;box-shadow:0 4px 16px rgba(0,0,0,.15)}
.notif.show{display:block;animation:sli .3s ease}
.notif.err{background:var(--rs)}.notif.warn{background:var(--ws)}
@keyframes sli{from{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}

.footer{background:var(--bn);color:rgba(255,255,255,.5);font-size:11px;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}
.footer a{color:var(--b);text-decoration:none}

.type-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg);border:1px solid var(--brd);border-radius:var(--rs2);margin-bottom:8px}
.spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
