:root{--bg:#f5efe4;--bg-2:#e8ddca;--card:#fffef9;--ink:#2a241d;--accent:#0f7a5f;--accent-active:#0a6550;--accent-2:#f0762f;--muted:#706a63;--danger:#c82f2f;--danger-bg:#ffeaea;--border:#d8ccb8}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(circle at 15% 15%, #ffe8b2 0, transparent 35%), radial-gradient(circle at 85% 20%, #c6f6e6 0, transparent 38%), linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);min-height:100vh;margin:0;font-family:Space Grotesk,Segoe UI,sans-serif}.page{max-width:1200px;margin:0 auto;padding:24px}.hero{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}h1{margin:0;font-size:1.9rem}p{color:var(--muted);margin:6px 0 0}.helper-text{color:var(--muted);margin:2px 0 8px;font-size:.9rem}.tabs{flex-wrap:wrap;gap:8px;margin:12px 0 18px;display:flex}button,select,input{font:inherit;background:#fff;border:1px solid #c7bda8;border-radius:10px;padding:10px 12px}textarea{font:inherit;resize:vertical;background:#fff;border:1px solid #c7bda8;border-radius:10px;width:100%;padding:10px 12px}button{background:var(--accent);color:#fff;cursor:pointer;border:none;transition:background .15s}button:hover:not(:disabled){background:var(--accent-active)}button:disabled{opacity:.55;cursor:not-allowed}button.ghost{color:var(--ink);background:#fff;border:1px solid #bfb09b}button.ghost:hover:not(:disabled){background:#f5efe4}button.danger{color:var(--danger);border-color:#e8b0b0}button.danger:hover:not(:disabled){background:var(--danger-bg)}button.small-btn{border-radius:999px;padding:4px 8px;font-size:.8rem}.tabs button{color:var(--ink);background:#f7f1e8;border:1px solid #cabca6}.tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.grid{gap:12px;display:grid}.cols-4,.overview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:14px;box-shadow:0 8px 18px #26190014}.metric h3{color:var(--muted);margin:0;font-size:.95rem}.metric strong{margin-top:8px;font-size:2rem;display:block}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #eee2d0;padding:10px}td.wrap-cell{white-space:normal}td.empty-row{text-align:center;color:var(--muted);padding:20px;font-style:italic}.cell-list{flex-wrap:wrap;gap:6px;display:flex}.authz-list{white-space:normal;max-width:520px;color:var(--muted);font-size:.86rem;line-height:1.35}.mono{font-family:JetBrains Mono,monospace;font-size:.85rem}.pill{background:#ece7de;border-radius:999px;padding:4px 10px;font-size:.8rem;display:inline-block}.pill.success{color:#0a6040;background:#d5f5e6}.pill.failed,.pill.dropped{color:#a02020;background:#ffdcdc}.pill.processing,.pill.queued,.pill.received{color:#7a5500;background:#fff3ce}.pill.published,.pill.logged{color:#0a6040;background:#d5f5e6}.pill.pending{color:#7a5500;background:#fff3ce}.pill.skipped{color:#5a4a20;background:#e6e0d0}.row{align-items:center;display:flex}.between{justify-content:space-between}.gap-sm{gap:8px}.login-wrap{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{gap:10px;width:min(460px,100%);display:grid}.error{color:var(--danger)}.banner{background:var(--danger-bg);border:1px solid #e8b0b0;border-radius:10px;margin-bottom:12px;padding:10px 14px;font-weight:600}pre{color:#f4f4f4;white-space:pre;word-break:normal;box-sizing:border-box;background:#131313;border-radius:10px;width:100%;min-width:0;max-height:320px;padding:10px;font-family:JetBrains Mono,monospace;font-size:.82rem;overflow:auto}.output-panel{background:#fff9f1;border:1px solid #e7dbc8;border-radius:12px;min-width:0;padding:10px;overflow:hidden}.output-header{margin-bottom:6px}.result-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px;font-size:.9rem;display:grid}.result-meta span{color:var(--muted)}.service-status-card{grid-column:1/-1}.service-status-card h2{margin:0;font-size:1.2rem}.service-status-list{gap:10px;margin-top:10px;display:grid}.service-status-item{background:#fff9f1;border:1px solid #e7dbc8;border-radius:10px;padding:10px}.service-status-detail{white-space:normal;word-break:break-word;margin-top:6px}.history-card{gap:14px;min-width:0;display:grid}.history-card>*{min-width:0}.history-card .table-wrap{max-width:100%}.history-header{align-items:flex-start}.history-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.history-metric{gap:6px;display:grid}.history-metric span{color:var(--muted);font-size:.86rem}.history-metric strong{font-size:1.55rem}.history-controls{align-items:flex-start}.admin-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:14px;display:grid}.admin-col{gap:14px;min-width:0;display:grid}.admin-card{gap:12px;min-width:0;display:grid}.admin-card h2{border-bottom:1px solid #e8dcc7;margin:0;padding-bottom:10px;font-size:1.05rem}.admin-card h3{color:var(--muted);margin:0;font-size:.95rem}.admin-actions-row{flex-wrap:wrap;gap:8px;margin:6px 0 4px;display:flex}.admin-fields-stack{gap:10px;margin-bottom:14px;display:grid}.field-group{gap:6px;display:grid}.field-group label{margin:0;font-weight:600;display:block}.field-group input,.field-group select{width:100%;min-width:0}.cert-subsection{border:1px solid #e8dcc7;border-radius:12px;gap:10px;padding:12px;display:grid}.cert-subsection h4{color:var(--muted);margin:0;font-size:.95rem;font-weight:600}.role-mgmt-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.clickable-row{cursor:pointer}.clickable-row:hover{background:#0f7a5f0f}.ellipsis-cell{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.time-cell{white-space:nowrap;flex-direction:column;gap:2px;display:flex}.status-legend{flex-wrap:wrap;gap:8px 16px;display:flex}.status-legend-item{align-items:center;gap:6px;display:inline-flex}.status-legend-item .helper-text{margin:0}.hero-actions{flex-wrap:wrap;justify-content:flex-end}.auto-refresh-toggle{color:var(--muted);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.auto-refresh-toggle input{width:auto;margin:0;padding:0}.toggle-pill{font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #c7bda8;border-radius:10px;align-items:center;gap:6px;padding:10px 12px;display:inline-flex}.toggle-pill input{width:auto;margin:0;padding:0}.modal-body{flex:auto;align-content:start;gap:14px;min-height:0;margin-top:12px;display:grid;overflow:auto}.detail-grid{grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:6px 14px;display:grid}.detail-row{display:contents}.detail-key{color:var(--muted);font-size:.85rem;font-weight:600}.detail-val{word-break:break-word}.detail-payload{gap:6px;display:grid}.detail-payload .modal-payload{margin:0}.modal-overlay{z-index:1000;background:#1a120573;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;width:min(720px,100%);max-height:85vh;padding:16px;display:flex;box-shadow:0 18px 48px #26190047}.modal-header{flex:none}.modal-header h3{margin:0;font-size:1.1rem}.modal-payload{white-space:pre-wrap;word-break:break-word;max-height:45vh;margin:0;overflow:auto}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=1100px){.overview-grid,.history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.cols-4,.cols-2,.overview-grid,.history-summary,.admin-layout,.result-meta{grid-template-columns:1fr}.hero{flex-direction:column;align-items:stretch}.admin-actions-row>button{width:100%}.history-controls{flex-direction:column;width:100%}.history-controls>*{width:100%}.role-mgmt-grid{grid-template-columns:1fr}}@media (width<=640px){.page{padding:14px}h1{font-size:1.45rem}.hero h1+p,.hero p{font-size:.85rem}.tabs{flex-wrap:nowrap;gap:6px;padding-bottom:4px;overflow-x:auto}.tabs button{white-space:nowrap}.history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.history-header{flex-direction:column;gap:10px}.history-header .history-controls{width:100%}.card{border-radius:14px;padding:12px}th,td{padding:8px;font-size:.85rem}.modal-card{max-height:90vh;padding:12px}.detail-grid{grid-template-columns:1fr;gap:2px 0}.detail-grid .detail-val{margin-bottom:6px}.status-legend{flex-direction:column;gap:6px}}
