:root{--ink: #16223f;--ink-2: #223462;--paper: #eef0ea;--panel: #ffffff;--text: #171f2b;--text-dim: #5c6572;--line: #dcdfd6;--line-strong: #c3c8bc;--accent: #c1443b;--accent-hover: #a5372f;--accent-soft: #f8e6e3;--teal: #1f7a67;--teal-soft: #e2f0ea;--amber: #a9720c;--amber-soft: #f6ecd6;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", -apple-system, sans-serif;--font-mono: "IBM Plex Mono", "Consolas", monospace;--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(22, 34, 63, .06);--shadow-md: 0 10px 30px rgba(22, 34, 63, .09)}[data-theme=dark]{--ink: #0a0f1c;--ink-2: #16223f;--paper: #0d1420;--panel: #131b2b;--text: #eef1f6;--text-dim: #8b95a8;--line: #263049;--line-strong: #34406098;--accent: #e2685a;--accent-hover: #ef7d70;--accent-soft: #331d1c;--teal: #4fc3a6;--teal-soft: #123227;--amber: #d9a441;--amber-soft: #2e2412;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 40px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);background:var(--paper);color:var(--text);transition:background .2s ease,color .2s ease;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}::selection{background:var(--accent-soft)}.perforation{height:1px;background-image:repeating-linear-gradient(to right,var(--line-strong) 0,var(--line-strong) 6px,transparent 6px,transparent 13px)}.app-shell{display:flex;min-height:100vh}.sidebar{width:252px;background:var(--ink);color:#dfe6f2;flex-shrink:0;display:flex;flex-direction:column;padding:26px 0 20px}.sidebar-brand{padding:0 24px 22px;display:flex;align-items:baseline;gap:9px}.sidebar-brand .mark{width:30px;height:30px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:.95rem;color:#fff;flex-shrink:0}.sidebar-brand .name{font-family:var(--font-display);font-weight:600;font-size:1.2rem;color:#fff;letter-spacing:-.01em}.sidebar-brand .name span{display:block;font-family:var(--font-body);font-weight:500;font-size:.68rem;color:#93a2bd;letter-spacing:.05em;text-transform:uppercase;margin-top:1px}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:6px 12px}.sidebar-section-label{padding:16px 14px 6px;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#6c7a97;font-weight:600}.sidebar-link{display:flex;align-items:center;gap:11px;padding:10px 14px;border-radius:var(--radius-sm);color:#aab7cd;font-size:.89rem;font-weight:500}.sidebar-link svg{width:17px;height:17px;opacity:.85;flex-shrink:0}.sidebar-link:hover{background:#ffffff0f;color:#fff}.sidebar-link.active{background:var(--accent);color:#fff;font-weight:600}.sidebar-footer{margin-top:auto;padding:16px 24px 0}.sidebar-footer .domain{font-family:var(--font-mono);font-size:.74rem;color:#7c8aa5}.main-area{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{background:var(--panel)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;padding:20px 32px}.topbar h1{font-family:var(--font-display);font-size:1.4rem;margin:0;font-weight:600;letter-spacing:-.01em}.topbar-sub{font-size:.82rem;color:var(--text-dim);margin-top:2px}.topbar-actions{display:flex;align-items:center;gap:14px}.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--panel);display:flex;align-items:center;justify-content:center;color:var(--text)}.icon-btn:hover{background:var(--accent-soft);border-color:var(--accent-soft)}.icon-btn svg{width:17px;height:17px}.admin-chip{display:flex;align-items:center;gap:10px;padding-inline-start:6px;border-inline-start:1px solid var(--line)}.admin-chip .who{font-size:.85rem;font-weight:600}.admin-chip .role{font-size:.72rem;color:var(--text-dim)}.content{padding:32px;flex:1;overflow-y:auto;max-width:1180px;width:100%;margin:0 auto}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:30px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;background:var(--accent-card, var(--accent))}.stat-card .label{font-size:.76rem;color:var(--text-dim);margin-bottom:8px;font-weight:500}.stat-card .value{font-family:var(--font-display);font-size:2rem;font-weight:600;line-height:1}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:24px}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px}.panel-header h2{font-family:var(--font-display);font-size:1.08rem;margin:0;font-weight:600}.panel-header p{margin:3px 0 0;font-size:.8rem;color:var(--text-dim)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-weight:600;padding:12px 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:14px 22px;border-bottom:1px solid var(--line);font-size:.89rem;vertical-align:middle}tr:last-child td{border-bottom:none}.mono{font-family:var(--font-mono);font-size:.84rem}.row-actions{display:flex;gap:8px;justify-content:flex-end}.postmark{display:inline-flex;align-items:center;gap:7px;font-size:.76rem;font-weight:600;padding:4px 11px 4px 6px;border-radius:999px}.postmark .ring{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;flex-shrink:0}.postmark.running{color:var(--amber);background:var(--amber-soft)}.postmark.running .ring{border-style:dashed;animation:spin 2.2s linear infinite}.postmark.success{color:var(--teal);background:var(--teal-soft)}.postmark.success .ring{border-style:solid}.postmark.failed{color:var(--accent);background:var(--accent-soft)}.postmark.active{color:var(--teal);background:var(--teal-soft)}.postmark.inactive{color:var(--text-dim);background:var(--line)}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:.87rem;font-weight:600;transition:all .15s ease;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:transparent;border-color:var(--line);color:var(--text)}.btn-secondary:hover{background:var(--paper)}.btn-danger{background:transparent;color:var(--accent);border-color:transparent}.btn-danger:hover{background:var(--accent-soft)}.btn-sm{padding:6px 12px;font-size:.78rem}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{font-size:.8rem;font-weight:600;color:var(--text-dim)}.field input,.field select{padding:10px 13px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);color:var(--text);font-size:.91rem}.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px}.field-hint{font-size:.76rem;color:var(--text-dim)}.field-error{font-size:.82rem;color:var(--accent);background:var(--accent-soft);padding:11px 14px;border-radius:var(--radius-sm);margin-bottom:14px}.field-row{display:flex;gap:10px;align-items:flex-end}.field-row .field{flex:1}.field-check{display:flex;align-items:center;gap:8px;font-size:.86rem;margin-bottom:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f1c8c;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--panel);border-radius:16px;width:100%;max-width:460px;padding:26px;box-shadow:var(--shadow-md);border:1px solid var(--line);max-height:90vh;overflow-y:auto}.modal h3{font-family:var(--font-display);margin:0 0 20px;font-size:1.15rem;font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ink);background-image:radial-gradient(circle at 20% 15%,rgba(193,68,59,.18),transparent 45%),radial-gradient(circle at 85% 85%,rgba(31,122,103,.18),transparent 40%)}.login-card{width:100%;max-width:400px;background:var(--panel);border-radius:18px;padding:40px 36px;box-shadow:0 24px 70px #0006}.login-brand{text-align:center;margin-bottom:28px}.login-brand .mark{width:46px;height:46px;border-radius:50%;border:1.5px dashed var(--line-strong);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:1.3rem;color:var(--accent);margin:0 auto 14px}.login-brand h1{font-family:var(--font-display);font-size:1.5rem;margin:0 0 4px;font-weight:600}.login-brand p{color:var(--text-dim);font-size:.85rem;margin:0}.log-viewer{background:var(--ink);color:#b7ecd4;font-family:var(--font-mono);font-size:.78rem;line-height:1.65;padding:18px 22px;max-height:560px;overflow-y:auto}.log-line{white-space:pre-wrap;word-break:break-all;border-bottom:1px solid rgba(255,255,255,.05);padding:3px 0}.empty-state{padding:64px 20px;text-align:center;color:var(--text-dim)}.empty-state .glyph{width:46px;height:46px;margin:0 auto 14px;border-radius:50%;border:1.5px dashed var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.empty-state .glyph svg{width:20px;height:20px}.empty-state .title{font-family:var(--font-display);font-size:1rem;color:var(--text);margin-bottom:4px;font-weight:600}.toolbar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;align-items:center}.toolbar input,.toolbar select{padding:9px 13px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:.87rem}.spacer{flex:1}.helper-text{font-size:.85rem;color:var(--text-dim);line-height:1.7}.divider-label{display:flex;align-items:center;gap:10px;margin:22px 0 16px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}@media (max-width: 900px){.sidebar{display:none}.content{padding:20px}.topbar-inner{padding:16px 20px}}
