:root{--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e2e8f0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0f172a}*{box-sizing:border-box}body{background:radial-gradient(at top,#1e293b 0%,#0f172a 60%);min-height:100svh;margin:0}#root{min-height:100svh}.app{color:#e2e8f0;max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem}h1{background:linear-gradient(90deg,#6366f1,#ec4899);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 .25rem;font-size:2rem}.subtitle{color:#94a3b8;margin:0 0 1.5rem}.grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.compose-cols{grid-template-columns:2fr 3fr;align-items:start;gap:1rem;display:grid}.col{flex-direction:column;gap:1rem;display:flex}@media (width<=800px){.grid,.compose-cols{grid-template-columns:1fr}}.card{background:#1e293b;border:1px solid #334155;border-radius:.75rem;padding:1.25rem}.card h2{text-transform:uppercase;letter-spacing:.05em;color:#a5b4fc;border-bottom:1px solid #334155;margin:0 0 .75rem;padding-bottom:.5rem;font-size:.95rem}.card-head{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.card-head h2{border:none;margin:0;padding:0}.card h2:not(:first-child){margin-top:1.25rem}label{color:#cbd5e1;margin-bottom:.85rem;font-size:.85rem;display:block}.row{gap:.75rem;display:flex}.row label{flex:1}input,textarea,select{color:#f1f5f9;width:100%;font:inherit;box-sizing:border-box;background:#0f172a;border:1px solid #334155;border-radius:.5rem;margin-top:.3rem;padding:.55rem .7rem;display:block}textarea{resize:vertical;font-family:inherit}input[type=file]{cursor:pointer;background:#0f172a;padding:.6rem}input[type=file]::file-selector-button{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:.35rem;margin-right:.75rem;padding:.4rem .8rem}.hint{color:#94a3b8;margin:.5rem 0 0;font-size:.85rem}.preview{background:#0f172a;border-radius:.5rem;margin-top:.75rem;padding:.75rem 1rem;font-size:.85rem}.preview ul{color:#94a3b8;margin:.5rem 0 0;padding-left:1.25rem}.attach-list{color:#94a3b8;margin:.75rem 0 0;padding-left:1.25rem;font-size:.85rem}.alert{word-break:break-word;border-radius:.5rem;margin-top:1rem;padding:.85rem 1rem;font-size:.9rem}.alert.error{color:#fecaca;background:#450a0a;border:1px solid #7f1d1d}.alert.success{color:#bbf7d0;background:#052e16;border:1px solid #166534}.progress-card{margin-top:1rem}.progress-track{background:#0f172a;border:1px solid #334155;border-radius:.5rem;height:1.1rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#4f46e5,#ec4899);height:100%;transition:width .4s}.progress-card p{color:#cbd5e1;font-size:.9rem}details{font-size:.85rem}summary{cursor:pointer;color:#fca5a5}.error-list{color:#fecaca;max-height:200px;overflow:auto}.actions{gap:.75rem;margin-top:1.5rem;display:flex}.btn{color:#e2e8f0;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:.5rem;padding:.7rem 1.5rem;font-size:.95rem}.btn:hover:not(:disabled){background:#334155}.btn.primary{color:#fff;background:#4f46e5;border-color:#4f46e5;font-weight:600}.btn.primary:hover:not(:disabled){background:#6366f1}.btn:disabled{opacity:.6;cursor:not-allowed}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.tabs{gap:.5rem;display:flex}.tab{color:#e2e8f0;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:.5rem;padding:.55rem 1.1rem;font-size:.9rem}.tab.active{color:#fff;background:#4f46e5;border-color:#4f46e5;font-weight:600}.checkbox{color:#cbd5e1;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.85rem;display:flex}.checkbox input{width:auto;margin:0}.dup-box{border-radius:.5rem;margin-top:.75rem;padding:.6rem .8rem;font-size:.85rem}.dup-box.warn{color:#fde68a;background:#422006;border:1px solid #92400e}.dup-box.ok{color:#bbf7d0;background:#052e16;border:1px solid #166534}.batch-table{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.85rem}.batch-table th,.batch-table td{text-align:left;color:#cbd5e1;border-bottom:1px solid #334155;padding:.55rem .6rem}.batch-table th{color:#a5b4fc;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.btn.small{padding:.35rem .7rem;font-size:.8rem}.status{text-transform:capitalize;border-radius:999px;padding:.15rem .55rem;font-size:.75rem}.status.completed{color:#bbf7d0;background:#052e16;border:1px solid #166534}.status.failed{color:#fecaca;background:#450a0a;border:1px solid #7f1d1d}.status.sending{color:#bfdbfe;background:#1e3a8a;border:1px solid #1d4ed8}.status.pending{color:#e2e8f0;background:#334155;border:1px solid #475569}.batch-summary{color:#cbd5e1;flex-wrap:wrap;align-items:center;gap:1rem;margin:.75rem 0 1rem;font-size:.85rem;display:flex}.date-group{margin-top:.6rem}.date-group>strong{color:#a5b4fc;font-size:.85rem}.log-list{color:#94a3b8;max-height:260px;margin:.25rem 0 0;padding-left:1.1rem;font-size:.8rem;overflow:auto}.log-toolbar{color:#cbd5e1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0 .5rem;font-size:.85rem;display:flex}.filter-group{gap:.4rem;display:flex}.filter-group .tab{padding:.35rem .8rem;font-size:.8rem}.err-cell{color:#fca5a5;word-break:break-word;max-width:360px;font-size:.78rem}.pager{color:#cbd5e1;justify-content:center;align-items:center;gap:1rem;margin-top:.75rem;font-size:.85rem;display:flex}.monitor-footer{color:#cbd5e1;border-top:1px solid #334155;margin-top:1rem;padding-top:.85rem;font-size:.9rem}.mf-row{grid-template-columns:80px repeat(4,1fr);align-items:center;gap:1rem;display:grid}.mf-head{text-transform:uppercase;letter-spacing:.04em;color:#a5b4fc;border-bottom:1px solid #334155;margin-bottom:.35rem;padding-bottom:.35rem;font-size:.75rem}.mf-head span:not(:first-child),.mf-row span:not(:first-child){text-align:right}.mf-label{letter-spacing:.05em;font-weight:700}.mf-row .ok{color:#bbf7d0;font-weight:600}.mf-row .bad{color:#fecaca;font-weight:600}.mf-row .warn{color:#fde68a;font-weight:600}
