:root { --bg:#f3f5f7; --surface:#fff; --ink:#17222c; --muted:#687684; --line:#dfe5e9; --brand:#146c5b; --brand2:#0c4c40; --danger:#a23b3b; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
button,input,select { font:inherit; } button { cursor:pointer; }
.login-wrap { min-height:100vh; display:grid; place-items:center; padding:20px; }
.login-card { width:min(430px,100%); background:#fff; border:1px solid var(--line); border-radius:20px; padding:28px; box-shadow:0 18px 55px rgba(23,34,44,.1); }
.admin-logo { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; background:var(--brand); color:#fff; font-weight:900; }
.admin-logo.small { width:30px; height:30px; border-radius:9px; display:inline-grid; margin-right:8px; }
.kicker { margin:15px 0 4px; color:var(--brand); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; font-weight:850; }
h1 { margin:0; letter-spacing:-.04em; } h2 { margin:0; font-size:1.05rem; }
.login-form { margin-top:20px; } .login-form label { display:grid; gap:7px; color:var(--muted); font-size:.78rem; }
.login-form input { height:44px; border:1px solid var(--line); border-radius:10px; padding:0 12px; }
.login-form button,.hero-actions button,.panel-actions button,.taxonomy-row button,.tax-search button { border:1px solid var(--brand); background:var(--brand); color:#fff; border-radius:10px; padding:10px 13px; font-weight:750; }
.login-form button { width:100%; margin-top:12px; }
.back-link { display:block; text-align:center; margin-top:18px; color:var(--muted); font-size:.78rem; }
.flash { border-radius:11px; padding:11px 13px; margin:14px 0; font-size:.8rem; line-height:1.45; }
.flash.success { background:#e7f4f0; color:#0b5b4c; } .flash.error { background:#f9eaea; color:#842f2f; } .flash.info { background:#eaf1f7; color:#35566f; }
.admin-topbar { height:64px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 24px; position:sticky; top:0; z-index:20; }
.admin-topbar>div { display:flex; align-items:center; } .admin-topbar small { margin-left:7px; color:var(--muted); }
.top-actions { gap:8px; } .top-actions a,.top-actions button { border:1px solid var(--line); background:#fff; color:var(--muted); text-decoration:none; border-radius:9px; padding:8px 10px; font-size:.75rem; }
.admin-wrap { max-width:1440px; margin:0 auto; padding:26px; }
.admin-hero { background:#17262f; color:#fff; border-radius:20px; padding:26px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.admin-hero .kicker { margin-top:0; color:#79c7b6; } .admin-hero p:not(.kicker) { color:#aebac2; max-width:700px; margin:8px 0 0; font-size:.85rem; }
.hero-actions,.panel-actions { display:flex; gap:8px; flex-wrap:wrap; } .hero-actions form,.panel-actions form,.top-actions form { margin:0; }
.hero-actions button.secondary,.panel-actions button.secondary { background:transparent; border-color:#7c8d97; }
.stat-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin:16px 0; }
.stat-grid article { background:#fff; border:1px solid var(--line); border-radius:14px; padding:15px; }
.stat-grid span { color:var(--muted); font-size:.68rem; display:block; } .stat-grid strong { font-size:1.45rem; margin-top:5px; display:block; letter-spacing:-.03em; }
.admin-grid.two { display:grid; grid-template-columns:1.25fr .75fr; gap:14px; }
.panel { background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; margin-bottom:14px; }
.panel-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:14px; }
.panel-head .kicker { margin:0 0 4px; } .muted { color:var(--muted); font-size:.78rem; line-height:1.5; }
.state-list { display:grid; gap:9px; }.state-row { display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:12px; padding:12px; background:#f7f9fa; border-radius:12px; }
.state-row strong,.state-row span,.state-row small { display:block; } .state-row span { font-size:.73rem; margin-top:3px; overflow-wrap:anywhere; } .state-row small { color:var(--muted); font-size:.62rem; text-transform:uppercase; letter-spacing:.05em; }
.state-error { grid-column:1/-1; color:var(--danger); font-size:.72rem; margin:0; }
.config-list { display:grid; gap:0; }.config-list div { display:flex; justify-content:space-between; gap:15px; padding:9px 0; border-bottom:1px solid #edf1f3; font-size:.76rem; }.config-list span { color:var(--muted); }
.command-box { background:#17262f; color:#fff; border-radius:10px; padding:11px; margin-top:10px; }.command-box small { display:block; color:#91a3ad; margin-bottom:5px; }.command-box code { font-size:.68rem; overflow-wrap:anywhere; }
.table-wrap { overflow-x:auto; } table { width:100%; border-collapse:collapse; font-size:.72rem; } th { text-align:left; color:var(--muted); font-weight:700; border-bottom:1px solid var(--line); padding:9px 8px; white-space:nowrap; } td { padding:10px 8px; border-bottom:1px solid #edf1f3; white-space:nowrap; }
.status { display:inline-block; border-radius:999px; padding:4px 7px; background:#edf1f3; text-transform:capitalize; }.status.completed,.status.done { background:#e5f3ed; color:#0e624e; }.status.failed { background:#f8e7e7; color:#8c3333; }.status.running { background:#e8eff8; color:#315c85; }.status.paused,.status.queued { background:#f7f0da; color:#785e19; }
.tax-search { display:flex; gap:6px; }.tax-search input { border:1px solid var(--line); border-radius:9px; padding:8px 10px; min-width:210px; }.tax-search button { padding:8px 11px; }
.taxonomy-list { display:grid; gap:7px; }.taxonomy-row { display:grid; grid-template-columns:minmax(240px,1.3fr) minmax(190px,1fr) 170px auto; gap:9px; align-items:end; background:#f8fafb; border:1px solid #e6ebee; border-radius:12px; padding:10px; }.taxonomy-row label span { display:block; font-size:.62rem; color:var(--muted); margin-bottom:4px; }.taxonomy-row input,.taxonomy-row select { width:100%; height:38px; border:1px solid var(--line); background:#fff; border-radius:8px; padding:0 9px; font-size:.72rem; }.taxonomy-row button { height:38px; padding:0 11px; }.tax-raw small,.tax-raw strong { display:block; }.tax-raw small { color:var(--muted); font-size:.61rem; margin-bottom:4px; }.tax-raw strong { font-size:.76rem; overflow-wrap:anywhere; }
@media(max-width:1050px){.stat-grid{grid-template-columns:repeat(3,1fr)}.admin-grid.two{grid-template-columns:1fr}.taxonomy-row{grid-template-columns:1fr 1fr}.taxonomy-row button{width:100%}}
@media(max-width:650px){.admin-wrap{padding:14px}.admin-topbar{padding:0 14px}.admin-hero{align-items:flex-start;flex-direction:column}.stat-grid{grid-template-columns:repeat(2,1fr)}.state-row{grid-template-columns:1fr 1fr}.taxonomy-row{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}.tax-search input{min-width:0;width:100%}.panel-actions{width:100%}}


/* V1.2 transaction audit */
.transaction-audit-panel { margin-bottom: 18px; }
.transaction-audit-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 22px; }
.transaction-audit-grid h3 { margin: 0 0 10px; font-size: .82rem; }
.audit-pills { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.audit-pills div { border: 1px solid #e2e7eb; background: #f8fafb; border-radius: 12px; padding: 10px 11px; }
.audit-pills span, .audit-pills strong { display: block; }
.audit-pills span { color: #6b7785; font-size: .65rem; line-height: 1.25; }
.audit-pills strong { margin-top: 4px; font-size: 1rem; }
.raw-transaction-list { border: 1px solid #e2e7eb; border-radius: 12px; overflow: hidden; }
.raw-transaction-list div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 10px; border-top: 1px solid #edf1f3; font-size: .72rem; }
.raw-transaction-list div:first-child { border-top: 0; }
.raw-transaction-list code { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 800px) { .transaction-audit-grid { grid-template-columns: 1fr; } .audit-pills { grid-template-columns: repeat(2,minmax(0,1fr)); } }
