*{box-sizing:border-box}:root{color-scheme:light;--bg: #f4f6f8;--surface: #ffffff;--text: #17212b;--muted: #657180;--border: #dfe4ea;--accent: #146c5a;--accent-dark: #0d4f42;--danger: #b42318;--warn: #9a6700;--ok: #17663a;--sidebar: #14211d;--sidebar-text: #dbe7e2;--radius: 10px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}html,body,#root{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.05rem}h3{font-size:.95rem}p{margin:.5rem 0}button,input,select,textarea{font:inherit}button{border:0;border-radius:7px;background:var(--accent);color:#fff;padding:.55rem .9rem;cursor:pointer;font-weight:600}button:hover{background:var(--accent-dark)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary,.button-link.secondary{background:#eef2f1;color:var(--text);border:1px solid var(--border)}button.secondary:hover{background:#e3e9e7}button.danger{background:var(--danger)}button.warn{background:var(--warn)}button.small,.button-link.small{padding:.35rem .55rem;font-size:.8rem}button.icon{background:transparent;color:var(--muted);font-size:1.4rem;padding:0 .4rem}button.link{background:transparent;color:var(--accent);padding:.25rem 0;font-weight:500;text-align:left}.button-link{display:inline-block;border-radius:7px;padding:.55rem .9rem;background:var(--accent);color:#fff;font-weight:600}.button-link:hover{text-decoration:none;background:var(--accent-dark)}input,select,textarea{width:100%;border:1px solid var(--border);background:#fff;border-radius:7px;padding:.5rem .6rem;color:var(--text)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(20,108,90,.25);border-color:var(--accent)}label.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem;font-weight:600}label.field small{font-weight:400}label.check{display:flex;align-items:center;gap:.45rem;margin:.5rem 0;font-weight:500}label.check input{width:auto}label.inline-field{display:flex;align-items:center;gap:.4rem;font-weight:600;white-space:nowrap}label.inline-field input{width:auto}.shell{display:flex;min-height:100vh}.sidebar{width:235px;flex:0 0 235px;background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;padding:1rem .75rem;position:sticky;top:0;height:100vh}.brand{font-weight:800;font-size:1.15rem;color:#fff;padding:.4rem .6rem 1.2rem;letter-spacing:.01em}.brand span{display:block;color:#7fb4a4;font-weight:600;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.brand.large{color:var(--text);padding:0 0 1rem}.brand.large span{color:var(--accent)}.sidebar nav{display:flex;flex-direction:column;gap:.15rem}.nav-item{color:var(--sidebar-text);padding:.55rem .65rem;border-radius:7px;font-weight:500}.nav-item:hover{background:#ffffff12;text-decoration:none}.nav-item.active{background:var(--accent);color:#fff}.sidebar-foot{margin-top:auto;padding:.8rem .65rem;font-size:.75rem;color:#8ba39a}.main{flex:1;min-width:0}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.user{display:flex;align-items:center;gap:.7rem}.role-pill{font-size:.7rem;font-weight:700;letter-spacing:.06em;background:#e8f3ef;color:var(--accent-dark);padding:.2rem .45rem;border-radius:99px}.content{padding:1.5rem;max-width:1500px;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.page-header p{margin:.35rem 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem;box-shadow:0 1px 2px #10182808}.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1100px){.grid.three,.grid.two{grid-template-columns:1fr}}@media(max-width:800px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;flex:none}.sidebar nav{flex-direction:row;flex-wrap:wrap}.sidebar-foot{display:none}}.stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem .9rem}.stat span{display:block;color:var(--muted);font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat strong{display:block;font-size:1.7rem;margin-top:.2rem}.stat.ok strong{color:var(--ok)}.stat.warn strong{color:var(--warn)}.stat.bad strong{color:var(--danger)}table{width:100%;border-collapse:collapse;font-size:.86rem}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);padding:.55rem .5rem;white-space:nowrap}td{border-bottom:1px solid #edf0f2;padding:.55rem .5rem;vertical-align:top}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbfb}.badge{display:inline-block;font-size:.7rem;font-weight:700;padding:.16rem .45rem;border-radius:99px;letter-spacing:.03em;white-space:nowrap}.badge.ok{background:#e4f4e9;color:var(--ok)}.badge.warn{background:#fff3d6;color:var(--warn)}.badge.bad{background:#fde8e6;color:var(--danger)}.badge.neutral{background:#e9edf2;color:#44515f}.muted{color:var(--muted)}.small{font-size:.78rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.error-text{color:var(--danger)}.break{word-break:break-all}.pad{padding:1.2rem}.center{text-align:center}.row{display:flex;align-items:center;gap:.5rem}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.filters{display:flex;gap:.5rem;align-items:center;margin-bottom:.9rem;flex-wrap:wrap}.filters input,.filters select{width:auto;min-width:150px}.filters.wrap{flex-wrap:wrap}.pagination{margin-top:.9rem}.kv{display:grid;grid-template-columns:max-content 1fr;gap:.35rem .9rem;margin:0}.kv dt{color:var(--muted);font-weight:500}.kv dd{margin:0}.json{background:#f7f9fa;border:1px solid var(--border);border-radius:7px;padding:.7rem;max-height:280px;overflow:auto;font-size:.78rem;white-space:pre-wrap;word-break:break-word}.banner{border-radius:8px;padding:.65rem .8rem;margin:.8rem 0;font-size:.85rem}.banner.error{background:#fdecea;color:#7a1c15;border:1px solid #f6cfca}.banner.notice{background:#eef6f3;color:#164c3e;border:1px solid #cfe5dc}.empty{border:1px dashed var(--border);border-radius:8px;padding:1.2rem;text-align:center;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c14127a;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{width:100%;max-width:520px;margin:0;max-height:92vh;overflow:auto}.modal.wide{max-width:900px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(135deg,#eef5f2,#f7f8fa)}.login-panel{width:100%;max-width:420px}.codes{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin:.8rem 0;padding:.7rem;background:#f7f9fa;border:1px solid var(--border);border-radius:7px}.tabs{display:flex;gap:.4rem;margin-bottom:.8rem}.tab{background:#e9edf2;color:var(--text)}.tab.active{background:var(--accent);color:#fff}.history{display:flex;flex-direction:column;gap:.5rem;max-height:420px;overflow:auto}.history-row{border:1px solid var(--border);border-radius:7px;padding:.55rem .65rem}.error-page{padding:2rem}.tabs{flex-wrap:wrap}.ok-text{color:var(--ok)}@media(max-width:800px){.card{overflow-x:auto}.page-header{flex-direction:column}}
