:root{--bg: #1c1917;--bg-card: #252220;--border: #3d3632;--text: #e8e2dc;--text-muted: #a39d93;--accent: #C41E3A;--accent-hover: #e53e5a;--green: #4ade80;--red: #f87171;--yellow: #facc15;--orange: #FB923C;--chart-grid: rgba(255, 255, 255, .06);--chart-tick: #a39d93;--chart-tooltip-bg: #252220;--chart-tooltip-border: #3d3632}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;color:var(--accent-hover)}.app-shell{max-width:1200px;margin:0 auto;padding:1.5rem}header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}header .header-brand{display:flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none}header .header-brand:hover{text-decoration:none;opacity:.9}header .header-logo{width:32px;height:32px;object-fit:contain;border-radius:8px}header h1{font-size:1.25rem;font-weight:600}header nav{display:flex;align-items:center;gap:.5rem}header nav a{margin-left:0;font-size:.9rem;color:var(--text-muted);padding:.35rem .6rem;border-radius:6px;transition:background .15s,color .15s}header nav a:hover,header nav a.active{color:var(--accent);background:#c41e3a26;text-decoration:none}header nav .logout-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;padding:.4rem;margin-left:auto;border-radius:6px;transition:border-color .15s,color .15s,background .15s;display:flex;align-items:center;justify-content:center}header nav .logout-btn:hover{color:var(--text);border-color:var(--text-muted);background:#ffffff0d}header nav .user-select{background:var(--bg-card);border:1px solid var(--border);color:var(--text);font-size:.85rem;padding:.3rem .5rem;border-radius:6px;margin-left:.25rem;cursor:pointer}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 1px 3px #0003}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-grid--summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1rem}.stat-card--summary{border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem;text-align:center;background:var(--bg-card)}.stat-card--summary .value{font-size:2.25rem;font-weight:700;line-height:1.2;color:var(--text)}.stat-card--summary .label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;margin-top:.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;color:var(--text-muted)}.stat-card{text-align:center}.stat-card .value{font-size:2rem;font-weight:700;color:var(--text)}.stat-card .label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stat-grid--primary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1rem}.stat-grid--secondary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:1.5rem;max-width:50%}.stat-card--colored{border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem;text-align:center}.stat-card--colored .value{font-size:2.25rem;font-weight:700;line-height:1.2}.stat-card--colored .label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;margin-top:.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.stat-label-icon{flex-shrink:0;opacity:.9}.stat-card--pending{background:#fb923c1f;border-color:#fb923c4d}.stat-card--pending .value,.stat-card--pending .label{color:var(--orange)}.stat-card--active{background:#c41e3a1f;border-color:#c41e3a4d}.stat-card--active .value,.stat-card--active .label{color:var(--accent)}.stat-card--completed{background:#4ade801f;border-color:#4ade804d}.stat-card--completed .value,.stat-card--completed .label{color:var(--green)}.stat-card--merged{background:#a855f71f;border-color:#a855f74d}.stat-card--merged .value,.stat-card--merged .label{color:#c4b5fd}.stat-card--paused{background:#facc151f;border-color:#facc1547}.stat-card--paused .value,.stat-card--paused .label{color:var(--yellow)}.stat-card--stopped{background:#64748b33;border-color:#64748b66}.stat-card--stopped .value,.stat-card--stopped .label{color:#94a3b8}.stat-card--failed{background:#f871711f;border-color:#f871714d}.stat-card--failed .value,.stat-card--failed .label{color:var(--red)}.stat-grid--secondary .stat-card--colored{padding:.75rem 1rem}.stat-grid--secondary .stat-card--colored .value{font-size:1.5rem}.stat-grid--secondary .stat-card--colored .label{font-size:.7rem}@media(max-width:640px){.stat-grid--primary{grid-template-columns:repeat(2,1fr)}.stat-grid--secondary{max-width:100%}}table{width:100%;border-collapse:collapse;table-layout:fixed}th,td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis}th{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}tr:hover td{background:#ffffff08}.col-status{width:120px}.col-type,.col-user{width:80px}.col-source{width:auto}.col-szuru{width:100px}.col-created{width:80px}.col-time{width:60px}.col-actions{width:140px}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .5rem;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase;white-space:nowrap}.badge-icon{display:inline-flex;flex-shrink:0;opacity:.95}.badge.pending{background:#fb923c2e;color:var(--orange)}.badge.downloading,.badge.tagging,.badge.uploading{background:#c41e3a38;color:#f0a0a8}.badge.paused{background:#facc152e;color:var(--yellow)}.badge.completed{background:#4ade802e;color:var(--green)}.badge.merged{background:#a855f72e;color:#c4b5fd}.badge.stopped{background:#64748b40;color:#94a3b8}.badge.failed{background:#f8717133;color:var(--red)}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:1rem}.pagination button{background:var(--bg-card);color:var(--text);border:1px solid var(--border);padding:.4rem .9rem;border-radius:6px;cursor:pointer;font-size:.85rem;transition:border-color .15s,background .15s}.pagination button:disabled{opacity:.4;cursor:default}.pagination button:hover:not(:disabled){border-color:var(--accent);background:#c41e3a1f}.chart-container{width:100%;height:260px}.detail-grid{display:grid;grid-template-columns:160px 1fr;gap:.35rem 1rem}.detail-grid dt{color:var(--text-muted);font-size:.85rem}.detail-grid dd{font-size:.9rem;word-break:break-all}.tag-list{display:flex;flex-wrap:wrap;gap:.35rem}.tag{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.8rem}.tag--source{background:#22d3ee1f;color:#67e8f9;border:1px solid rgba(34,211,238,.35)}.tag--ai{background:#c41e3a33;color:#f0a0a8;border:1px solid rgba(196,30,58,.35)}.tag--other{background:#ffffff0f;color:var(--text-muted);border:1px solid var(--border)}.filters{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.filters select,.filters input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem .6rem;font-size:.85rem}.filter-pills{align-items:center;justify-content:center}.filter-pill{cursor:pointer;border:1px solid transparent;font:inherit;transition:opacity .15s,border-color .15s,box-shadow .15s}.filter-pill:hover{opacity:.9}.filter-pill.active{box-shadow:0 0 0 2px var(--bg);outline:1px solid currentColor}.badge.all{background:#ffffff14;color:var(--text-muted);border:1px solid var(--border)}.post-link{color:var(--accent);text-decoration:none}.post-link:hover{text-decoration:underline;color:var(--accent-hover)}.source-cell{overflow:hidden;text-overflow:ellipsis}.source-filename{color:var(--text);white-space:nowrap}.multi-source{display:flex;flex-direction:column;gap:.2rem;color:var(--text-muted)}.source-row{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}.source-count{font-size:.85em;color:var(--text-muted);cursor:help;flex-shrink:0}.source-link{color:var(--accent);text-decoration:none;white-space:nowrap}.source-link:hover{text-decoration:underline;color:var(--accent-hover)}.sources-section{margin-top:0}.source-list{list-style:none;padding:0;margin:0}.source-list li{margin:.25rem 0}.source-list a{color:var(--accent);text-decoration:none;word-break:break-all}.source-list a:hover{text-decoration:underline;color:var(--accent-hover)}.related-posts{margin-top:.5rem;font-size:.9em}.related-posts a{color:var(--accent);text-decoration:none}.related-posts a:hover{text-decoration:underline;color:var(--accent-hover)}.login-page{max-width:560px;margin:3rem auto;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.login-hero{text-align:center}.login-hero-img{width:100%;max-width:280px;height:auto;border-radius:16px;object-fit:cover;box-shadow:0 8px 24px #0006;border:1px solid var(--border)}.login-quote{margin:1rem 0 0;padding:0;font-size:.95rem;font-style:italic;color:var(--text-muted);line-height:1.5}.login-quote cite{display:block;margin-top:.35rem;font-size:.85rem;font-style:normal;color:var(--text-muted);opacity:.9}.login-card{width:100%;max-width:360px}.quick-actions{display:flex;gap:.25rem;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .9rem;border-radius:6px;border:1px solid transparent;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-success{background:#4ade801f;color:var(--green);border-color:#4ade8059}.btn-success:hover:not(:disabled){background:#4ade8033}.btn-warning{background:#facc151f;color:var(--yellow);border-color:#facc1559}.btn-warning:hover:not(:disabled){background:#facc1533}.btn-danger{background:#f871711f;color:var(--red);border-color:#f8717159}.btn-danger:hover:not(:disabled){background:#f8717133}.btn-info{background:#94a3b81f;color:var(--text-muted);border-color:#94a3b859}.btn-info:hover:not(:disabled){background:#94a3b833;color:var(--text)}.btn-sm{padding:.2rem .5rem;font-size:.75rem;min-width:1.8rem}form button[type=submit]{background:var(--accent);color:#fff;border:1px solid var(--accent);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;width:100%}form button[type=submit]:hover{background:var(--accent-hover);border-color:var(--accent-hover)}form input[type=text],form input[type=password]{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;font-size:.9rem;color:var(--text)}form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #c41e3a40}.settings-page{max-width:900px;margin:0 auto}.settings-page h2{margin-bottom:1rem;font-size:1.5rem;font-weight:600}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.tab-button{background:transparent;border:none;color:var(--text-muted);padding:.75rem 1rem;font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.tab-button:hover{color:var(--text)}.tab-button.active{color:var(--accent);border-bottom-color:var(--accent)}.settings-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.85rem;color:var(--text-muted);font-weight:500}.form-group input,.form-group select,.form-group textarea{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;font-size:.9rem;color:var(--text);font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #c41e3a40}.form-group small{font-size:.75rem;color:var(--text-muted);opacity:.8}.form-actions{display:flex;gap:.5rem;margin-top:.5rem}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;margin:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border);transition:.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 2px #c41e3a40}.form-actions button{padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s}.form-actions button[type=submit]{background:var(--accent);color:#fff;border-color:var(--accent)}.form-actions button[type=submit]:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.form-actions button[type=button]{background:transparent;color:var(--text-muted);border-color:var(--border)}.form-actions button[type=button]:hover{color:var(--text);border-color:var(--text-muted)}.accordion{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:.75rem}.accordion-header{background:var(--bg-card);border:none;width:100%;padding:.75rem 1rem;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--text);font-size:.9rem;font-weight:500;transition:background .15s}.accordion-header:hover{background:#ffffff08}.accordion-icon{transition:transform .15s}.accordion-icon.open{transform:rotate(180deg)}.accordion-content{padding:1rem;border-top:1px solid var(--border);background:var(--bg)}.users-table{width:100%;margin-top:1rem}.users-table th,.users-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border)}.users-table th{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.users-table tr:hover td{background:#ffffff08}.status-message{padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.85rem}.status-message.success{background:#4ade801f;color:var(--green);border:1px solid rgba(74,222,128,.35)}.status-message.error{background:#f871711f;color:var(--red);border:1px solid rgba(248,113,113,.35)}.password-field{position:relative}.password-field input{padding-right:2.5rem}.password-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;font-size:.85rem}.password-toggle:hover{color:var(--text)}.api-key-display{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.75rem;font-family:Monaco,Courier New,monospace;font-size:.85rem;word-break:break-all;color:var(--text);margin-top:.5rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;max-width:500px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 40px #00000080;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.modal-header h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0}.modal-close{background:transparent;border:none;color:var(--text-muted);font-size:1.75rem;line-height:1;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background .15s,color .15s}.modal-close:hover{background:#ffffff14;color:var(--text)}.modal-body{padding:1.5rem}.fab{position:fixed;bottom:1.5rem;right:1.5rem;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #c41e3a66;transition:background .15s,transform .15s,box-shadow .15s;z-index:100}.fab:hover{background:var(--accent-hover);transform:scale(1.05);box-shadow:0 6px 16px #c41e3a80}.fab:active{transform:scale(.98)}.toast-container{position:fixed;top:1rem;right:1rem;z-index:10000;display:flex;flex-direction:column;gap:.75rem;max-width:400px;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);box-shadow:0 4px 12px #0000004d;pointer-events:auto;cursor:pointer;transition:transform .2s ease,opacity .2s ease;animation:toastSlideIn .3s ease}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast:hover{transform:translateY(-2px)}.toast-exiting{animation:toastSlideOut .3s ease forwards!important}.toast-success{border-color:#22c55e59;background:#22c55e1f}.toast-error{border-color:#ef444459;background:#ef44441f}.toast-icon{display:flex;align-items:center;flex-shrink:0}.toast-success .toast-icon{color:var(--green)}.toast-error .toast-icon{color:var(--red)}.toast-message{flex:1;font-size:.875rem;color:var(--text);line-height:1.4}.toast-close{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:4px;flex-shrink:0;transition:background .15s ease,color .15s ease}.toast-close:hover{background:#ffffff14;color:var(--text)}.onboarding-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:var(--bg)}.onboarding-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:640px;padding:2rem}.onboarding-progress{display:flex;justify-content:center;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap}.onboarding-progress-step{display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:60px}.onboarding-progress-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;background:var(--bg);border:2px solid var(--border);color:var(--text-muted);transition:all .2s}.onboarding-progress-step.active .onboarding-progress-dot{border-color:var(--accent);color:var(--accent);background:#c41e3a1a}.onboarding-progress-step.completed .onboarding-progress-dot{border-color:var(--green);background:var(--green);color:var(--bg)}.onboarding-progress-label{font-size:.7rem;color:var(--text-muted);text-align:center}.onboarding-progress-step.active .onboarding-progress-label{color:var(--text);font-weight:500}h2.onboarding-step-header{margin:0 0 .75rem;font-size:1.3rem}.onboarding-step p{color:var(--text-muted);font-size:.9rem;line-height:1.5;margin-bottom:1rem}.onboarding-checklist{list-style:none;padding:0;margin:1rem 0}.onboarding-checklist li{padding:.4rem 0 .4rem 1.5rem;position:relative;color:var(--text);font-size:.9rem}.onboarding-checklist li:before{content:"•";position:absolute;left:.25rem;color:var(--accent);font-weight:700}.onboarding-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.onboarding-actions .btn{display:inline-flex;align-items:center;gap:.35rem}.onboarding-mappings{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.form-group-row{flex-direction:row!important;align-items:center;gap:1rem!important}.form-group-row label{flex-shrink:0}.form-group-row select{flex:1}.onboarding-sites{margin:1rem 0}.onboarding-next-steps{display:grid;grid-template-columns:1fr;gap:.75rem;margin:1rem 0}.onboarding-next-steps h4{margin:0 0 .25rem;font-size:.95rem}.onboarding-next-steps p{margin:0 0 .5rem}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;transition:color .15s,border-color .15s}.btn-ghost:hover{color:var(--text);border-color:var(--text-muted)}.btn-secondary{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;transition:background .15s,border-color .15s}.btn-secondary:hover{background:var(--border)}.form-hint{font-size:.75rem;color:var(--text-muted)}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
