.login-page{background:radial-gradient(circle at 20% 50%,rgba(239,68,68,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(252,165,165,.15) 0%,transparent 50%),var(--bg-primary)}.login-card{width:100%;max-width:450px;margin:0 1rem}.error-message{background:#ef44441a;border:1px solid var(--danger);color:var(--danger);padding:.75rem;border-radius:8px;font-size:.9rem;text-align:center}.mailing-page{min-height:100vh;background:var(--bg-primary)}.mailing-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:var(--bg-secondary);border-bottom:1px solid var(--border);box-shadow:var(--shadow);position:sticky;top:0;z-index:10}.mailing-header h1{font-size:1.5rem;margin:0}.mailing-layout{display:grid;grid-template-columns:300px 1fr;gap:2rem;padding:2rem;max-width:1600px;margin:0 auto}.mailing-sidebar{height:fit-content;position:sticky;top:5rem}.mailings-list{display:flex;flex-direction:column;gap:.5rem;max-height:68vh;overflow-y:auto;margin-top:1rem}.mailing-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s ease;gap:.5rem}.mailing-item:hover{background:var(--bg-primary);border-color:var(--border-light)}.mailing-item.active{background:var(--gradient);border-color:var(--primary);color:#fff;font-weight:500}.mailing-item.active .mailing-item-meta{color:#fffc}.mailing-item-info{flex:1;min-width:0}.mailing-item-label{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mailing-item-meta{font-size:.75rem;color:var(--text-muted);margin-top:.2rem}.mailing-item-actions{display:flex;gap:.25rem;flex-shrink:0}.status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.status-draft{background:#fff3e0;color:#e65100}.status-sending{background:#e3f2fd;color:#1565c0}.status-sent{background:#e8f5e9;color:#2e7d32}.status-archived{background:#ede9fe;color:#4f46e5}.mailing-main{min-width:0}.empty-state{padding:4rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.empty-state-icon{font-size:3rem}.mailing-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.mailing-detail-header h2{margin:0;font-size:1.5rem}.mailing-detail-header-left{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.tabs{display:flex;gap:.5rem;margin-bottom:1rem}.tab{padding:.75rem 1.5rem;background:var(--bg-secondary);border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;cursor:pointer;transition:all .2s ease;font-weight:500;font-size:.9rem}.tab:hover{background:var(--bg-tertiary)}.tab.active{background:var(--bg-tertiary);border-color:var(--primary);color:var(--primary)}.tab-content{border-top:2px solid var(--primary)}.sent-banner{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#e8f5e9;border:1px solid #a5d6a7;border-radius:8px;color:#2e7d32;font-weight:500;margin-bottom:1rem}.new-mailing-form{display:flex;gap:.5rem;margin-top:.75rem;margin-bottom:.75rem}.new-mailing-form input{flex:1;min-width:0;padding:.5rem .75rem;font-size:.9rem}.recipients-list{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:8px}.recipient-item{padding:.6rem .9rem;border-bottom:1px solid var(--border);transition:background .15s}.recipient-item:last-child{border-bottom:none}.recipient-item:hover{background:var(--bg-tertiary)}.recipient-email{font-weight:500;font-size:.9rem}.recipient-merge{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}.attachment-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .9rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;margin-bottom:.5rem;transition:all .15s}.attachment-item:hover{border-color:var(--border-light)}@media (max-width: 1024px){.mailing-layout{grid-template-columns:1fr;padding:1rem}.mailing-sidebar{position:static}}.editor-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;padding:.5rem;background:var(--bg-tertiary);border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0}.editor-toolbar button{padding:.25rem .5rem;font-size:.85rem;font-weight:600;background:var(--bg-secondary);border:1px solid var(--border);border-radius:5px;cursor:pointer;transition:all .15s;min-width:28px}.editor-toolbar button:hover{background:var(--bg-primary);border-color:var(--primary)}.editor-toolbar button.active{background:var(--primary);color:#fff;border-color:var(--primary-dark)}.editor-toolbar select{padding:.2rem .4rem;font-size:.8rem;border-radius:5px;border:1px solid var(--border);background:var(--bg-secondary);cursor:pointer;height:28px}.toolbar-sep{width:1px;height:18px;background:var(--border);margin:0 .25rem}.color-palette{position:absolute;top:100%;left:0;z-index:200;display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:#fff;border:1px solid var(--border);border-radius:8px;padding:6px;box-shadow:var(--shadow-lg);width:180px}.merge-dropdown{position:absolute;top:100%;left:0;z-index:200;background:#fff;border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:var(--shadow-lg);min-width:160px}.merge-dropdown button{display:block;width:100%;text-align:left;padding:5px 8px;font-size:.8rem;font-family:monospace;background:none;border:none;border-radius:4px;cursor:pointer;font-weight:400}.merge-dropdown button:hover{background:var(--bg-tertiary)}.tiptap-wrap{border:1px solid var(--border);border-radius:0 0 8px 8px;min-height:300px;background:#fff;overflow-y:auto}.tiptap-footer{min-height:80px;border-top:2px dashed var(--border);background:#fafafa}.tiptap-wrap.readonly{background:var(--bg-tertiary);cursor:default}.tiptap-wrap .ProseMirror{padding:1rem;outline:none;min-height:inherit;font-family:inherit;line-height:1.6}.tiptap-wrap .ProseMirror p{margin-bottom:.75em}.tiptap-wrap .ProseMirror img{max-width:100%;border-radius:4px}.tiptap-wrap .ProseMirror:focus{outline:none}.recipient-ok{background:#f0fdf4!important;border-left:3px solid #22c55e}.recipient-err{background:#fff7ed!important;border-left:3px solid #f97316}.recipient-invalid{background:#fef2f2!important;border-left:3px solid #ef4444}.recipient-email-cell{flex:1;min-width:0}.recipient-email{font-weight:500;font-size:.9rem;cursor:pointer;text-decoration:underline dotted}.recipient-inline-edit{width:100%;font-size:.9rem;padding:2px 6px;border-radius:4px;border:1px solid var(--primary);outline:none;font-family:inherit;min-width:0}.recipient-error-msg{font-size:.72rem;color:#f97316;margin-top:2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:#fff;border-radius:16px;padding:2rem;width:520px;max-width:95vw;box-shadow:var(--shadow-lg)}.modal-box h3{margin-bottom:1rem}.progress-bar-wrap{height:10px;background:var(--border);border-radius:5px;overflow:hidden;margin-bottom:.5rem}.progress-bar-fill{height:100%;background:var(--gradient);border-radius:5px;transition:width .3s ease}.progress-results{max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;margin-top:.75rem}.progress-result-row{padding:.4rem .75rem;border-bottom:1px solid var(--border);font-size:.85rem;display:flex;align-items:center;gap:.4rem}.progress-result-row.ok{color:#15803d}.progress-result-row.err{color:#b45309}:root{--primary: hsl(0, 75%, 65%);--primary-dark: hsl(0, 75%, 55%);--primary-light: hsl(0, 75%, 75%);--secondary: hsl(0, 70%, 85%);--secondary-dark: hsl(0, 70%, 75%);--success: hsl(142, 76%, 50%);--success-light: hsl(142, 76%, 60%);--danger: hsl(0, 84%, 60%);--danger-dark: hsl(0, 84%, 50%);--bg-primary: hsl(0, 0%, 98%);--bg-secondary: hsl(0, 0%, 100%);--bg-tertiary: hsl(0, 30%, 97%);--text-primary: hsl(0, 0%, 15%);--text-secondary: hsl(0, 0%, 35%);--text-muted: hsl(0, 0%, 55%);--border: hsl(0, 15%, 90%);--border-light: hsl(0, 15%, 85%);--shadow: 0 4px 6px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .12);--gradient: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);--gradient-success: linear-gradient(135deg, var(--success) 0%, var(--success-light) 100%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;margin-bottom:.5em}h1{font-size:2.5rem;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}h2{font-size:2rem;color:var(--text-primary)}h3{font-size:1.5rem;color:var(--text-primary)}button{font-family:inherit;font-size:1rem;padding:.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500;outline:none}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient);color:#fff;box-shadow:var(--shadow)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--border-light)}.btn-success{background:var(--gradient-success);color:#fff;box-shadow:var(--shadow)}.btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-dark)}.btn-small{padding:.5rem 1rem;font-size:.9rem}input[type=text],input[type=password],input[type=email],input[type=number],input[type=datetime-local],select,textarea{font-family:inherit;font-size:1rem;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-tertiary);color:var(--text-primary);transition:all .3s ease;outline:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=number]:focus,input[type=datetime-local]:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #7c3aed1a}input[type=radio],input[type=checkbox]{width:auto;margin:0;cursor:pointer}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow);transition:all .3s ease}.card:hover{border-color:var(--border-light)}.glass-card{background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2rem;box-shadow:var(--shadow-lg)}table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:8px;overflow:hidden}thead{background:var(--bg-tertiary)}th,td{padding:1rem;text-align:left;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text-primary);text-transform:uppercase;font-size:.85rem;letter-spacing:.05em}tbody tr{transition:all .2s ease;cursor:pointer}tbody tr:hover{background:var(--bg-tertiary)}tbody tr.selected{background:#22c55e33;border-left:3px solid var(--success)}tbody tr.voted{background:#22c55e26}.container{max-width:1400px;margin:0 auto;padding:2rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-4{gap:2rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-4{margin-top:2rem}.mb-2,.mb-4{margin-bottom:1rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.slide-in{animation:slideIn .4s ease}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.full-height{min-height:100vh}.w-full{width:100%}
