:root{--bg: #0f1117;--surface: #181b24;--surface-2: #212530;--line: #2a2f3b;--line-soft: rgba(255, 255, 255, .06);--accent: #1aacd9;--accent-bright: #29c6f2;--accent-dim: rgba(26, 172, 217, .14);--ink: #e9edf3;--muted: #8a93a6;--ok: #2fd15a;--warn: #f5a623;--bad: #ff5b5b}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Lato,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent-bright);text-decoration:none}a:hover{text-decoration:underline}.loading,.error,.login{padding:3rem;text-align:center}.error{color:var(--bad)}.muted{color:var(--muted)}.small{font-size:.85rem}.login{max-width:420px;margin:6rem auto}.login img{height:72px;margin-bottom:1.25rem}.login h1{font-size:1.5rem;font-weight:900}.topbar{display:flex;align-items:center;gap:1.5rem;padding:0 1.5rem;height:60px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.topbar .brand{display:flex;align-items:center;gap:.6rem;font-weight:900;letter-spacing:.2px}.topbar .brand img{height:30px;display:block}.topbar nav{display:flex;gap:.25rem;align-items:center;height:100%}.topbar nav>a,.navmenu-label{color:var(--muted);padding:.45rem .75rem;border-radius:8px;cursor:pointer;font-weight:700;font-size:.92rem;white-space:nowrap}.topbar nav>a:hover,.navmenu-label:hover{color:var(--ink);background:var(--surface-2);text-decoration:none}.topbar .spacer{flex:1}.linkbtn{background:none;border:none;color:var(--muted);cursor:pointer;font:inherit;font-weight:700}.linkbtn:hover{color:var(--ink)}.navmenu{position:relative;height:100%;display:flex;align-items:center}.navmenu-items{position:absolute;top:100%;left:0;min-width:190px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.35rem;box-shadow:0 12px 34px #00000073}.navmenu-items a{display:block;padding:.5rem .7rem;border-radius:7px;color:var(--ink);font-size:.92rem;font-weight:600}.navmenu-items a:hover{background:var(--accent-dim);color:var(--accent-bright);text-decoration:none}.content{max-width:1060px;margin:1.75rem auto;padding:0 1.5rem}h1{font-size:1.5rem;font-weight:900;letter-spacing:-.02em;margin:0 0 .35rem}h2{font-size:1.05rem;font-weight:700;margin:2rem 0 .5rem}h3{font-size:.95rem;font-weight:700;margin:1.25rem 0 .5rem}.cards{display:flex;gap:1rem;margin:1.25rem 0 0;flex-wrap:wrap}.card{flex:1;min-width:150px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.35rem}.card .num{font-size:2rem;font-weight:900;line-height:1.1}.card .lbl{color:var(--muted);font-size:.9rem;margin-top:.2rem}.card.bad .num{color:var(--bad)}.card.warn .num{color:var(--warn)}.card.ok .num{color:var(--accent-bright)}a.card{text-decoration:none;color:inherit;transition:border-color .15s}a.card:hover{border-color:var(--accent)}table.grid{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:.75rem}table.grid th,table.grid td{text-align:left;padding:.6rem .85rem;border-bottom:1px solid var(--line-soft);font-size:.92rem}table.grid tbody tr:last-child td{border-bottom:none}table.grid th{background:var(--surface-2);color:var(--muted);font-weight:700;text-transform:uppercase;font-size:.72rem;letter-spacing:.05em}table.grid tbody tr:hover{background:#ffffff06}table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.74rem;font-weight:700;border:1px solid var(--line);color:var(--muted);text-transform:capitalize}.pill.posted,.pill.reconciled{color:#7ee2a0;border-color:#2fd15a66;background:#2fd15a1a}.pill.exception{color:#ff9090;border-color:#ff5b5b66;background:#ff5b5b1a}.pill.skipped,.pill.pending,.pill.readytopost{color:var(--muted)}.actions{display:flex;gap:.6rem;margin:.9rem 0;align-items:center;flex-wrap:wrap}.actions button,button.primary,button.danger{font:inherit;font-weight:700;cursor:pointer;font-size:.9rem;border-radius:999px;padding:.5rem 1.15rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}.actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-bright)}button.primary{background:var(--accent);color:#05222c;border-color:var(--accent)}button.primary:hover:not(:disabled){background:var(--accent-bright);border-color:var(--accent-bright);color:#05222c}button.danger{background:transparent;color:var(--bad);border-color:#ff5b5b80}button.danger:hover:not(:disabled){background:#ff5b5b1f}button:disabled{opacity:.45;cursor:default}input,select{font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:8px;padding:.45rem .6rem}input:focus,select:focus{outline:none;border-color:var(--accent)}select option{background:var(--surface);color:var(--ink)}.filter select{min-width:160px}.connect-row{display:flex;gap:.5rem;margin:1rem 0}.tieout{background:var(--surface);border:1px solid var(--line);border-radius:14px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem 1.25rem;margin:1.25rem 0;max-width:690px}.panel h3{margin-top:0}.panel.danger{border-color:#ff5b5b59}hr.sep{border:none;border-top:1px solid var(--line-soft);margin:1rem 0}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:1rem}.tabs button{font:inherit;font-weight:700;font-size:.9rem;cursor:pointer;background:none;border:none;color:var(--muted);padding:.55rem .9rem;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button:hover{color:var(--ink)}.tabs button.active{color:var(--accent-bright);border-bottom-color:var(--accent)}.tab-body{min-height:52px;margin-bottom:.5rem}details{margin:1.25rem 0;border-top:1px solid var(--line-soft)}details>summary{cursor:pointer;font-weight:700;font-size:1rem;color:var(--muted);padding:.75rem 0;list-style:none;-webkit-user-select:none;user-select:none}details>summary:hover{color:var(--ink)}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"▸";display:inline-block;width:1.1em;color:var(--muted)}details[open]>summary:before{content:"▾"}ul.events{list-style:none;padding:0}ul.events li{padding:.45rem 0;border-bottom:1px solid var(--line-soft);font-size:.92rem}
