@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{--bg: #111111;--bg-card: #1a1a1a;--bg-card-hover: #212121;--bg-input: #222222;--border: #2a2a2a;--accent: #e2ff5d;--accent-dim: rgba(226, 255, 93, .12);--text: #f0f0f0;--text-muted: #777;--text-dim: #999;--red: #ff5d5d;--red-dim: rgba(255, 93, 93, .12);--green: #5dff8f;--radius: 10px;--radius-sm: 6px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:DM Sans,sans-serif;background-color:var(--bg);background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:40px 40px;color:var(--text);min-height:100vh}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:40px 36px;width:100%;max-width:380px}.login-card .logo{font-size:28px;font-weight:700;color:var(--accent);letter-spacing:-.5px;margin-bottom:4px}.login-card .tagline{color:var(--text-muted);font-size:14px;margin-bottom:28px}.login-card form{display:flex;flex-direction:column;gap:12px}input,textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:14px;padding:10px 12px;width:100%;transition:border-color .15s;outline:none}input:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:80px}button{cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-sm);padding:10px 18px;transition:opacity .15s,transform .1s}button:disabled{opacity:.5;cursor:not-allowed}button:not(:disabled):active{transform:scale(.97)}.btn-primary,form button[type=submit]{background:var(--accent);color:#111}.btn-primary:not(:disabled):hover,form button[type=submit]:not(:disabled):hover{opacity:.88}.btn-secondary{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text)}.btn-danger{background:var(--red);color:#111}.btn-danger-outline{background:transparent;border:1px solid var(--red);color:var(--red)}.btn-danger-outline:hover{background:var(--red-dim)}.btn-outlined{background:transparent;border:1px solid var(--accent);color:var(--accent)}.btn-outlined:hover{background:var(--accent-dim)}.toggle-btn{background:none;border:none;color:var(--accent);font-size:13px;font-weight:400;margin-top:12px;padding:0;text-align:center;width:100%}.toggle-btn:hover{text-decoration:underline}.error{color:var(--red);font-size:13px}.dashboard{max-width:900px;margin:0 auto;padding:24px 20px 60px}.dashboard-header{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:28px}.dashboard-header .logo{font-size:22px;font-weight:700;color:var(--accent);letter-spacing:-.5px;margin-right:auto}.stats-bar{display:flex;gap:16px}.stat{display:flex;flex-direction:column;align-items:center;min-width:56px}.stat-num{font-size:22px;font-weight:700;line-height:1}.stat-num.failed{color:var(--red)}.stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.header-actions{display:flex;gap:8px}.header-actions .btn-primary{background:var(--accent);color:#111}.header-actions .btn-primary:hover{opacity:.88}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:24px}.tab{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;color:var(--text-muted);font-size:14px;font-weight:500;margin-bottom:-1px;padding:8px 16px 10px;transition:color .15s,border-color .15s}.tab.active{border-bottom-color:var(--accent);color:var(--accent)}.tab:not(.active):hover{color:var(--text)}.tab:not(:disabled):active{transform:none}.posts-grid{display:grid;gap:12px}.empty{color:var(--text-muted);font-size:14px;padding:24px 0;text-align:center}.post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;transition:background .15s,transform .15s}.post-card:hover{background:var(--bg-card-hover);transform:translateY(-1px)}.post-card.sent{border-left:3px solid var(--green)}.post-card.failed{border-left:3px solid var(--red)}.post-message{font-size:15px;line-height:1.5;margin-bottom:12px;white-space:pre-wrap;word-break:break-word}.post-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.countdown{background:var(--accent-dim);border-radius:4px;color:var(--accent);font-size:13px;font-weight:600;padding:2px 8px}.webhook{color:var(--text-muted);font-family:monospace;font-size:11px}.post-scheduled{color:var(--text-dim);font-size:13px;margin-bottom:10px}.post-actions{display:flex;gap:8px;align-items:center}.post-actions span{color:var(--text-muted);font-size:13px}.post-actions button{font-size:13px;padding:6px 12px}.status-badge{border-radius:4px;font-size:12px;font-weight:600;padding:2px 8px;text-transform:uppercase}.status-badge.sent{background:#5dff8f1f;color:var(--green)}.status-badge.failed{background:var(--red-dim);color:var(--red)}.sent-at{color:var(--text-muted);font-size:13px}.error-text{color:var(--red);font-size:12px;margin-top:6px;width:100%}.post-form-container{max-width:900px;margin:0 auto;padding:24px 20px;display:grid;gap:32px;grid-template-columns:1fr 1fr}@media (max-width: 640px){.post-form-container{grid-template-columns:1fr}}.post-form{display:flex;flex-direction:column;gap:12px}.post-form h2{font-size:20px;font-weight:700;margin-bottom:4px}.post-form label{color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.form-actions{display:flex;gap:8px;margin-top:4px}.preview-panel h3{color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.discord-preview{background:#36393f;border-radius:var(--radius-sm);display:flex;gap:12px;padding:14px 16px}.discord-avatar{background:#5865f2;border-radius:50%;flex-shrink:0;height:40px;width:40px}.discord-content{flex:1;min-width:0}.discord-header{display:flex;gap:8px;align-items:baseline;margin-bottom:4px}.discord-username{color:#fff;font-size:15px;font-weight:600}.discord-timestamp{color:#72767d;font-size:11px}.discord-message{color:#dcddde;font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.discord-message .placeholder{color:#72767d;font-style:italic}.emoji-picker{position:absolute;z-index:100;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px;width:280px;box-shadow:0 8px 24px #0006}.emoji-tabs{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap}.emoji-tab{background:none;border:1px solid transparent;border-radius:4px;color:var(--text-muted);font-size:11px;font-weight:600;padding:3px 8px;text-transform:uppercase;letter-spacing:.4px}.emoji-tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.emoji-btn{background:none;border:none;border-radius:4px;font-size:18px;line-height:1;padding:4px;text-align:center;transition:background .1s}.emoji-btn:hover{background:var(--bg-card-hover)}.emoji-btn:not(:disabled):active{transform:scale(.9)}.emoji-btn:focus-visible,.emoji-tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.embed-form-wrapper{display:flex;flex-direction:column;gap:0}.embed-toggle{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:10px 14px;text-align:left;width:100%}.embed-toggle:not(:disabled):active{transform:none}.embed-toggle-switch{display:block;width:32px;height:18px;background:var(--border);border-radius:10px;position:relative;flex-shrink:0;transition:background .2s}.embed-toggle-switch:after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;background:var(--bg);border-radius:50%;transition:left .2s}.embed-toggle-switch.on{background:var(--accent)}.embed-toggle-switch.on:after{left:16px}.embed-toggle-label{font-size:14px;font-weight:600;color:var(--accent)}.embed-toggle-hint{font-size:12px;color:var(--text-muted);margin-left:auto}.embed-fields{background:var(--bg-card);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);display:flex;flex-direction:column;gap:8px;padding:14px}.embed-label{color:var(--text-muted);display:block;font-size:10px;font-weight:600;letter-spacing:.5px;margin-bottom:3px;text-transform:uppercase}.embed-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.embed-field-group{display:flex;flex-direction:column}.embed-field-group input{font-size:13px;padding:7px 10px}.color-picker-row{display:flex;align-items:center;gap:6px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;height:36px}.color-input{width:24px;height:24px;padding:0;border:none;background:none;cursor:pointer;border-radius:3px}.color-hex{font-family:monospace;font-size:12px;color:var(--text-muted)}.embed-fields-section{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;padding-top:10px;margin-top:4px}.embed-field-row{display:flex;gap:6px;align-items:center}.embed-field-row input{font-size:12px;padding:6px 8px}.embed-remove-field{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-size:16px;font-weight:400;padding:3px 8px;line-height:1}.embed-remove-field:hover{border-color:var(--red);color:var(--red)}.embed-add-field{background:none;border:1px dashed var(--border);border-radius:4px;color:var(--text-muted);font-size:12px;font-weight:500;padding:5px 12px;width:100%;text-align:center}.embed-add-field:hover{border-color:var(--accent);color:var(--accent)}.discord-embed{border-left:4px solid #4e5058;background:#2f3136;border-radius:0 4px 4px 0;margin-top:4px;max-width:400px;padding:10px 12px}.discord-embed-author{align-items:center;display:flex;gap:6px;margin-bottom:6px}.discord-embed-author-icon{border-radius:50%;height:16px;width:16px}.discord-embed-author span{color:#fff;font-size:12px;font-weight:600}.discord-embed-title{color:#fff;font-size:13px;font-weight:600;margin-bottom:6px}.discord-embed-body{display:flex;gap:10px}.discord-embed-fields{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.discord-embed-field-name{color:#fff;font-size:11px;font-weight:700}.discord-embed-field-value{color:#dcddde;font-size:11px}.discord-embed-thumbnail{border-radius:4px;flex-shrink:0;height:60px;object-fit:cover;width:60px}.discord-embed-image{border-radius:4px;display:block;margin-top:8px;max-width:100%}.discord-embed-footer{border-top:1px solid #40444b;color:#72767d;font-size:11px;margin-top:8px;padding-top:8px}.message-field-wrapper{position:relative}.emoji-trigger{position:absolute;right:8px;top:8px;background:none;border:none;font-size:18px;line-height:1;opacity:.5;padding:2px;transition:opacity .15s}.emoji-trigger:hover{opacity:1}.emoji-trigger:not(:disabled):active{transform:scale(.9)}.emoji-picker-anchor{position:absolute;right:0;top:calc(100% + 4px);z-index:100}.form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.recurrence-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:14px;padding:10px 12px;width:100%;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.recurrence-select:focus{border-color:var(--accent)}.preview-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.badge-recurrence{background:var(--accent-dim);color:var(--accent);font-size:12px;font-weight:600;padding:3px 10px;border-radius:4px}.badge-embed{background:#5865f226;color:#8b9eff;font-size:12px;font-weight:600;padding:3px 10px;border-radius:4px}.csv-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.csv-modal{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:16px;max-height:85vh;overflow-y:auto;padding:24px;width:100%;max-width:680px}.csv-modal-header{display:flex;align-items:center;justify-content:space-between}.csv-modal-header h2{font-size:20px;font-weight:700}.csv-close{background:none;border:none;color:var(--text-muted);font-size:22px;font-weight:400;line-height:1;padding:2px 6px}.csv-close:hover{color:var(--text)}.csv-drop-zone{border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;padding:32px;text-align:center;background:var(--bg-card);transition:border-color .15s}.csv-drop-zone:hover{border-color:var(--accent)}.csv-drop-icon{font-size:32px;line-height:1;margin-bottom:4px}.csv-drop-title{font-size:15px;font-weight:600}.csv-drop-hint{color:var(--text-muted);font-size:12px;margin-bottom:8px}.csv-choose-btn{font-size:13px;padding:7px 16px}.csv-template-row{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px}.csv-template-link{background:none;border:none;color:var(--accent);font-size:12px;font-weight:500;padding:0;text-decoration:underline}.csv-format-hint{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:6px}.csv-format-label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.csv-format-code{background:var(--bg);border-radius:4px;color:var(--accent);font-family:monospace;font-size:12px;overflow-x:auto;padding:8px 10px;white-space:nowrap}.csv-format-note{color:var(--text-muted);font-size:11px}.csv-format-note code{color:var(--text-dim);font-family:monospace}.csv-preview-header{display:flex;align-items:center;justify-content:space-between}.csv-preview-count{font-size:13px;font-weight:600}.csv-preview-errors{color:var(--red)}.csv-table-wrapper{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:auto;max-height:320px}.csv-table{border-collapse:collapse;font-size:12px;width:100%}.csv-table th{background:var(--bg-card);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:10px;font-weight:600;letter-spacing:.5px;padding:8px 10px;text-align:left;text-transform:uppercase;white-space:nowrap}.csv-table td{border-bottom:1px solid #1e1e1e;padding:8px 10px;vertical-align:middle}.csv-table tr:last-child td{border-bottom:none}.csv-row-error td{background:#ff5d5d0a}.csv-row-num{color:var(--text-muted);font-family:monospace}.csv-message{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csv-date{font-family:monospace;white-space:nowrap}.csv-date-err{color:var(--red)}.csv-none{color:var(--text-muted)}.csv-valid{color:var(--green);font-size:11px}.csv-error-badge{color:var(--red);font-size:11px}.csv-actions{display:flex;gap:8px;margin-top:4px}.admin-panel{padding:0 24px 24px;display:flex;flex-direction:column;gap:32px}.admin-section{display:flex;flex-direction:column;gap:12px}.admin-section-title{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0}.invite-form{display:flex;gap:8px}.invite-form input{flex:1}.invite-success{font-size:13px;color:#57f287}.users-table{border:1px solid #2a2a2a;border-radius:8px;overflow:hidden}.users-table-header,.users-table-row{display:grid;grid-template-columns:1fr 80px 100px 160px;gap:0;padding:10px 14px;align-items:center}.users-table-header{background:#1a1a1a;border-bottom:1px solid #2a2a2a;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.users-table-row{font-size:13px;border-bottom:1px solid #1e1e1e}.users-table-row:last-child{border-bottom:none}.role-badge{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:700;text-transform:uppercase;display:inline-block}.role-admin{background:#e2ff5d1f;color:var(--accent)}.role-user{background:#ffffff0f;color:#888}.you-label{font-size:11px;color:var(--text-muted);font-style:italic}.btn-danger{background:transparent;border:1px solid rgba(255,80,80,.4);color:#ff5d5d;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer}.btn-danger:hover{background:#ff50501a}.revoke-confirm{font-size:12px;color:#ff5d5d}.revoke-confirm button{font-size:11px;padding:2px 8px;margin-left:4px}.admin-filter{display:flex;align-items:center;gap:10px;padding:0 24px 12px;font-size:13px;color:var(--text-muted)}.admin-filter select{background:#1a1a1a;border:1px solid #2a2a2a;color:var(--text);border-radius:6px;padding:6px 10px;font-size:13px;min-width:200px}
