:root{--canvas: #f9f9f9;--surface: #ffffff;--ink: #161616;--muted: #6f6f6f;--line: #e0e0e0;--line-strong: #c6c6c6;--primary: #0f62fe;--primary-hover: #0353e9;--primary-ink: #ffffff;--danger: #da1e28;--danger-hover: #b81921;--good: #198038;--warn: #8a3800;--nav: #161616;--nav-ink: #f4f4f4;--nav-muted: #c6c6c6;--nav-active: #393939;--focus: #0f62fe;--row-hover: #f4f4f4;--row-alt: #fcfcfc;--header: #f4f4f4;--radius: 2px;font-family:IBM Plex Sans,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--canvas);font-size:14px;line-height:1.4}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--nav);color:var(--nav-ink);display:flex;flex-direction:column;min-height:100vh;border-right:1px solid #000}.sidebar-brand{padding:20px 16px 16px;border-bottom:1px solid #393939}.sidebar-brand strong{display:block;font-size:13px;letter-spacing:.08em;font-weight:600}.sidebar-brand span{display:block;margin-top:4px;color:var(--nav-muted);font-size:12px}.sidebar nav{display:flex;flex-direction:column;padding:12px 8px;gap:2px}.sidebar a,.sidebar button.link{display:block;width:100%;text-align:left;background:none;border:0;color:var(--nav-ink);text-decoration:none;padding:8px 12px;border-radius:var(--radius);cursor:pointer;font-size:13px}.sidebar a.active,.sidebar a:hover,.sidebar button.link:hover{background:var(--nav-active)}.sidebar-foot{margin-top:auto;padding:16px;border-top:1px solid #393939;font-size:12px;color:var(--nav-muted)}.sidebar-foot strong{display:block;color:var(--nav-ink);font-weight:500}.workspace{display:flex;flex-direction:column;min-width:0;background:var(--canvas)}.topbar{height:48px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.topbar h1{margin:0;font-size:14px;font-weight:600}.topbar-meta{font-size:12px;color:var(--muted)}.canvas{padding:20px 24px 40px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px}.page-head h1{margin:0;font-size:20px;font-weight:600}.page-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.grid{display:grid;gap:12px}.grid.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:1fr 1fr 1fr}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card.flush{padding:0;overflow:hidden}.card h3{margin:0 0 12px;font-size:13px;font-weight:600}.stat .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.stat b{display:block;font-size:22px;margin-top:6px;font-weight:600}.toolbar,.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.field{display:flex;flex-direction:column;gap:4px;min-width:140px;flex:1}.field.short{flex:0 0 150px}.field.check{flex-direction:row;align-items:center;gap:8px;min-width:auto;padding-top:18px}label{font-size:12px;color:var(--muted);font-weight:500}.field.check label{color:var(--ink)}input,select,textarea{border:1px solid var(--line-strong);background:#fff;border-radius:var(--radius);padding:7px 10px;min-height:32px}input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);outline-offset:-2px;border-color:var(--focus)}textarea{min-height:72px}.btn{border:1px solid transparent;background:var(--primary);color:var(--primary-ink);border-radius:var(--radius);padding:0 14px;min-height:32px;cursor:pointer;font-weight:500;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}.btn:hover{background:var(--primary-hover)}.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn.secondary:hover{background:var(--header)}.btn.ghost{background:transparent;color:var(--primary);border-color:transparent;padding:0 8px}.btn.ghost:hover{background:#edf5ff}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{background:var(--danger-hover)}.btn.danger-ghost{background:transparent;color:var(--danger);border-color:transparent}.btn.danger-ghost:hover{background:#fff1f1}.btn:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:var(--header);font-size:12px;font-weight:600}.mono{font-family:IBM Plex Mono,Consolas,monospace;font-size:12px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;background:#e0e0e0;color:#161616;white-space:nowrap}.badge.sent,.badge.good{background:#defbe6;color:var(--good)}.badge.failed,.badge.bad{background:#fff1f1;color:var(--danger)}.badge.pending,.badge.warn{background:#f8f0dc;color:var(--warn)}.badge.skipped,.badge.default{background:#e0e0e0;color:#525252}.badge.yes,.badge.info{background:#edf5ff;color:#0043ce}.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 16px;cursor:pointer;color:var(--muted);font-weight:500}.tabs button.active{color:var(--ink);border-bottom-color:var(--primary)}.section-title{margin:20px 0 8px;font-size:13px;font-weight:600;color:var(--ink)}.error{color:var(--danger);font-size:13px;margin:8px 0 0}.ok{color:var(--good);font-size:13px;margin:8px 0 0}.auth{min-height:100vh;display:grid;place-items:center;background:var(--canvas)}.auth-card{width:min(400px,calc(100% - 32px))}.auth-card h1{margin:8px 0;font-size:20px}.auth-card p{color:var(--muted);margin:0 0 16px}.qr{display:block;width:200px;margin:8px auto 16px;background:#fff;padding:8px;border:1px solid var(--line)}.dt{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.dt-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface)}.dt-search{flex:1;min-width:200px;max-width:360px}.dt-toolbar .field{flex:0 0 auto;min-width:140px}.dt-count{margin-left:auto;color:var(--muted);font-size:12px}.dt-scroll{overflow:auto}.dt table{width:100%;border-collapse:collapse;font-size:13px}.dt th,.dt td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}.dt th{background:var(--header);color:var(--ink);font-size:12px;font-weight:600;position:sticky;top:0;z-index:1}.dt th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.dt th.sortable:hover{background:#e8e8e8}.dt th .sort{color:var(--muted);margin-left:4px;font-weight:400}.dt tbody tr:hover{background:var(--row-hover)}.dt td.wrap{white-space:normal;max-width:320px}.dt-filter{display:block;width:100%;margin-top:6px;min-height:26px;padding:3px 6px;font-size:12px;font-weight:400}.dt-empty{padding:32px 16px;text-align:center;color:var(--muted)}.dt-actions{display:flex;gap:4px;align-items:center;justify-content:flex-end}.dt-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-top:1px solid var(--line);background:var(--surface);font-size:12px;color:var(--muted)}.dt-pages{display:flex;gap:4px;align-items:center}.menu{position:relative;display:inline-block}.menu-pop{position:absolute;right:0;top:calc(100% + 4px);min-width:160px;background:#fff;border:1px solid var(--line-strong);z-index:20}.menu-pop button{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 12px;cursor:pointer}.menu-pop button:hover{background:var(--row-hover)}.menu-pop button.danger{color:var(--danger)}.modal-backdrop{position:fixed;inset:0;background:#16161673;display:grid;place-items:center;z-index:40;padding:24px}.modal{width:min(720px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--surface);border:1px solid var(--line-strong)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:16px;font-weight:600}.modal-body{padding:16px;display:flex;flex-direction:column;gap:12px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}code-list{display:block}.code-row{display:grid;grid-template-columns:140px 120px 1fr auto;gap:8px;margin-bottom:8px;align-items:end}@media(max-width:980px){.app{grid-template-columns:1fr}.sidebar{min-height:auto}.sidebar nav{flex-direction:row;flex-wrap:wrap}.grid.stats,.grid.two,.grid.three,.code-row{grid-template-columns:1fr}}
