:root{--bg-base:#09090b;--bg-card:#18181b;--bg-input:#09090b;--bg-active:#27272a;--bg-hover:#1f1f23;--border-color:#27272a;--border-hover:#3f3f46;--border-focus:#4f46e5;--text-primary:#f4f4f5;--text-secondary:#a1a1aa;--text-muted:#52525b;--primary:#4f46e5;--primary-hover:#6366f1;--primary-light:rgba(79,70,229,.1);--success:#10b981;--success-bg:rgba(16,185,129,.1);--success-border:rgba(16,185,129,.2);--error:#ef4444;--error-bg:rgba(239,68,68,.1);--error-border:rgba(239,68,68,.2);--warning:#f59e0b;--warning-bg:rgba(245,158,11,.1);--warning-border:rgba(245,158,11,.2);--font-sans:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.3),0 4px 6px -2px rgba(0,0,0,.05);--transition:all .2s cubic-bezier(.4,0,.2,1);}*{margin:0;padding:0;box-sizing:border-box;}body{font-family:var(--font-sans);background-color:var(--bg-base);color:var(--text-primary);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}body.modal-open{overflow:hidden;}.icon-svg{display:inline-block;flex-shrink:0;width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}.icon-svg-lg{width:2.5rem;height:2.5rem;}.icon-svg-xl{width:3.5rem;height:3.5rem;}.app-container{display:flex;flex-direction:column;min-height:100vh;}.app-header{border-bottom:1px solid var(--border-color);padding:1rem 2rem;background-color:rgba(9,9,11,.8);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;}.brand{display:flex;align-items:center;gap:.75rem;}.brand-icon{background:var(--primary-light);color:var(--primary-hover);width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid rgba(99,102,241,.2);}.brand h1{font-size:1.25rem;font-weight:700;letter-spacing:-.025em;color:var(--text-primary);}.brand p{font-size:.85rem;color:var(--text-secondary);}.header-actions{display:flex;gap:.75rem;}.dashboard-layout{display:flex;flex:1;position:relative;}.sidebar{width:320px;border-right:1px solid var(--border-color);padding:1.5rem;display:flex;flex-direction:column;gap:1.75rem;background-color:rgba(18,18,20,.4);overflow-y:auto;height:calc(100vh - 73px);position:sticky;top:73px;}.sidebar-section{display:flex;flex-direction:column;gap:.75rem;}.sidebar-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;}.main-pane{flex:1;padding:2rem;overflow-y:auto;display:flex;flex-direction:column;gap:2rem;}.upload-card{border:1px dashed var(--border-color);border-radius:12px;padding:2.5rem 1.5rem;text-align:center;background-color:var(--bg-card);transition:var(--transition);cursor:pointer;position:relative;overflow:hidden;}.upload-card:hover{border-color:var(--border-hover);background-color:var(--bg-hover);}.upload-card.dragover{border-color:var(--primary);background-color:rgba(79,70,229,.05);transform:scale(1.01);}.upload-card-icon{color:var(--text-secondary);margin-bottom:1rem;display:flex;justify-content:center;}.upload-card-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem;}.upload-card-sub{font-size:.8rem;color:var(--text-secondary);}.file-input{display:none;}.demo-trigger{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:.5rem;}.or-divider{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;width:100%;}.or-divider::before,.or-divider::after{content:'';flex:1;height:1px;background-color:var(--border-color);margin:0 .75rem;}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition);border:1px solid transparent;text-decoration:none;background-color:transparent;color:var(--text-primary);user-select:none;}.btn .icon-svg{font-size:1rem;}.btn-primary{background-color:var(--primary);color:#ffffff;}.btn-primary:hover{background-color:var(--primary-hover);}.btn-secondary{background-color:var(--bg-card);border-color:var(--border-color);color:var(--text-primary);}.btn-secondary:hover{background-color:var(--bg-active);border-color:var(--border-hover);}.btn-danger{background-color:var(--error-bg);border-color:var(--error-border);color:var(--error);}.btn-danger:hover{background-color:var(--error);color:#ffffff;}.btn-link{font-size:.8rem;color:var(--text-secondary);padding:.25rem .5rem;}.btn-link:hover{color:var(--text-primary);}.btn-small{padding:.4rem .75rem;font-size:.75rem;border-radius:6px;}.btn-group{display:flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;}.btn-group .btn{border-radius:0;border:none;border-right:1px solid var(--border-color);}.btn-group .btn:last-child{border-right:none;}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;}.stat-box{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.25rem;}.stat-value{font-size:1.5rem;font-weight:700;font-family:var(--font-mono);}.stat-desc{font-size:.75rem;color:var(--text-secondary);}.category-list{display:flex;flex-direction:column;gap:.25rem;max-height:250px;overflow-y:auto;padding-right:.25rem;}.category-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:6px;font-size:.85rem;cursor:pointer;transition:var(--transition);color:var(--text-secondary);}.category-item:hover{background-color:var(--bg-hover);color:var(--text-primary);}.category-item.active{background-color:var(--primary-light);color:var(--primary-hover);font-weight:600;}.category-badge{font-family:var(--font-mono);font-size:.75rem;background-color:var(--bg-active);color:var(--text-secondary);padding:.1rem .4rem;border-radius:4px;}.category-item.active .category-badge{background-color:var(--primary);color:#ffffff;}.shortcuts-panel{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;font-size:.75rem;color:var(--text-secondary);background-color:var(--bg-card);border:1px solid var(--border-color);padding:1rem;border-radius:10px;}.shortcut-key{font-family:var(--font-mono);background-color:var(--bg-active);border:1px solid var(--border-hover);padding:.1rem .35rem;border-radius:4px;color:var(--text-primary);text-align:center;}.control-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;background-color:var(--bg-card);border:1px solid var(--border-color);padding:1rem;border-radius:12px;}.search-box{position:relative;flex:1;min-width:280px;}.search-input{width:100%;background-color:var(--bg-base);border:1px solid var(--border-color);color:var(--text-primary);padding:.625rem 1rem .625rem 2.5rem;border-radius:8px;font-size:.875rem;transition:var(--transition);}.search-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--primary-light);}.search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.9rem;pointer-events:none;display:flex;align-items:center;}.clear-search-btn{position:absolute;right:.85rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;}.clear-search-btn:hover{color:var(--text-primary);}.control-actions{display:flex;gap:.75rem;flex-wrap:wrap;}.progress-banner{background-color:var(--primary-light);border:1px solid rgba(99,102,241,.2);border-radius:10px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;animation:fadeIn .3s ease-out;}.progress-info{display:flex;flex-direction:column;gap:.25rem;flex:1;}.progress-text{font-size:.875rem;font-weight:600;}.progress-track{background-color:var(--bg-active);height:6px;border-radius:3px;overflow:hidden;margin-top:.25rem;width:100%;}.progress-bar{background-color:var(--primary-hover);height:100%;width:0;transition:width .3s ease;}.feeds-section-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);padding-bottom:.75rem;}.feeds-section-header h2{font-size:1.1rem;font-weight:600;}.feeds-section-header .feeds-count{font-size:.8rem;color:var(--text-secondary);font-family:var(--font-mono);}.feeds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem;}.feed-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;transition:var(--transition);position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;cursor:pointer;user-select:none;}.feed-card:hover{transform:translateY(-2px);border-color:var(--border-hover);box-shadow:var(--shadow-lg);}.feed-card.selected{border-color:var(--primary);background-color:rgba(79,70,229,.02);}.feed-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;}.feed-card-title-container{display:flex;flex-direction:column;gap:.35rem;flex:1;}.feed-card-title{font-size:.95rem;font-weight:600;color:var(--text-primary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}.feed-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}.feed-card-checkbox{width:1.2rem;height:1.2rem;border:1px solid var(--border-color);border-radius:4px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-base);transition:var(--transition);flex-shrink:0;}.feed-card.selected .feed-card-checkbox{background-color:var(--primary);border-color:var(--primary);}.feed-card.selected .feed-card-checkbox::after{content:'';width:.35rem;height:.6rem;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);display:block;}.feed-card-url{font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary);word-break:break-all;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;background-color:var(--bg-base);padding:.25rem .5rem;border-radius:4px;border:1px solid rgba(255,255,255,.02);}.feed-card-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:2.4rem}.feed-card-actions{display:flex;align-items:center;gap:.5rem;border-top:1px solid var(--border-color);padding-top:.85rem;margin-top:auto;}.feed-card-actions .btn{flex:1;font-size:.75rem;padding:.4rem;}.badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:500;padding:.15rem .5rem;border-radius:9999px;border:1px solid transparent;}.badge .icon-svg{font-size:.75rem;}.badge-category{background-color:var(--bg-active);color:var(--text-secondary);border-color:var(--border-color);}.badge-status{font-family:var(--font-mono);}.badge-status-valid{background-color:var(--success-bg);color:var(--success);border-color:var(--success-border);}.badge-status-invalid{background-color:var(--error-bg);color:var(--error);border-color:var(--error-border);}.badge-status-checking{background-color:var(--warning-bg);color:var(--warning);border-color:var(--warning-border);}.empty-state{text-align:center;padding:5rem 2rem;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:500px;margin:4rem auto;}.empty-state-icon{color:var(--text-muted);}.empty-state-title{font-size:1.2rem;font-weight:600;}.empty-state-sub{font-size:.875rem;color:var(--text-secondary);max-width:320px;}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.8);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:1.5rem;animation:fadeIn .2s ease-out;overflow:hidden}.modal-container{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;width:100%;max-width:550px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:modalSlideUp .3s cubic-bezier(.16,1,.3,1);overflow:hidden}.modal-container.large{max-width:800px;}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-header h3{font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:.5rem;}.modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;transition:var(--transition);}.modal-close:hover{background-color:var(--bg-active);color:var(--text-primary);}#feedForm{display:flex;flex-direction:column;flex:1;overflow:hidden;max-height:100%;}.modal-body{padding:1.5rem;overflow-y:auto;flex:1;}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:.75rem;background-color:rgba(9,9,11,.2);flex-shrink:0}.form-group{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.5rem;}.form-group label{font-size:.85rem;font-weight:500;color:var(--text-primary);}.form-group input,.form-group textarea{background-color:var(--bg-base);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);padding:.625rem .85rem;font-size:.875rem;width:100%;transition:var(--transition);}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--primary-light);}.form-input-helper-row{display:flex;gap:.5rem;align-items:stretch}.form-input-helper-row input{flex:1;}.form-input-helper-row .btn{flex-shrink:0;margin:0;align-self:auto;}.preview-header-meta{background-color:var(--bg-base);border:1px solid var(--border-color);padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.8rem;display:flex;flex-direction:column;gap:.5rem;}.preview-header-meta p{color:var(--text-secondary);}.preview-header-meta a{color:var(--primary-hover);text-decoration:none;word-break:break-all;}.preview-header-meta a:hover{text-decoration:underline;}.preview-articles{display:flex;flex-direction:column;gap:1rem;}.preview-article-item{border:1px solid var(--border-color);border-radius:8px;padding:1.25rem;background-color:rgba(9,9,11,.2);transition:var(--transition);}.preview-article-item:hover{border-color:var(--border-hover);}.preview-article-title{font-size:.95rem;font-weight:600;margin-bottom:.5rem;}.preview-article-title a{color:var(--text-primary);text-decoration:none;transition:var(--transition);display:inline-flex;align-items:center;gap:.25rem;}.preview-article-title a:hover{color:var(--primary-hover);}.preview-article-description{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}.preview-article-date{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono);display:inline-flex;align-items:center;gap:.35rem;}.validation-summary-card{background-color:var(--bg-base);border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin-bottom:1.5rem;text-align:center;}.validation-summary-title{font-size:.9rem;font-weight:600;margin-bottom:.5rem;}.validation-summary-stats{display:flex;justify-content:center;gap:1.5rem;font-family:var(--font-mono);font-size:.85rem;align-items:center;}.validation-summary-stats span{display:inline-flex;align-items:center;gap:.35rem;}.validation-list{display:flex;flex-direction:column;gap:.75rem;}.validation-list-item{display:flex;align-items:flex-start;gap:1rem;border:1px solid var(--border-color);padding:1rem;border-radius:8px;}.validation-list-icon{font-size:1.25rem;flex-shrink:0;display:flex;align-items:center;}.validation-list-details{flex:1;display:flex;flex-direction:column;gap:.25rem;}.validation-list-name{font-size:.875rem;font-weight:600;}.validation-list-url{font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary);word-break:break-all;}.validation-list-error{font-size:.75rem;color:var(--error);margin-top:.25rem;background-color:var(--error-bg);padding:.25rem .5rem;border-radius:4px;border:1px solid rgba(239,68,68,.1);}.app-footer{border-top:1px solid var(--border-color);padding:2rem;text-align:center;font-size:.8rem;color:var(--text-secondary);background-color:var(--bg-base);display:flex;flex-direction:column;gap:.5rem;}.app-footer a{color:var(--text-primary);text-decoration:underline;}.notifications-host{position:fixed;bottom:2rem;right:2rem;display:flex;flex-direction:column;gap:.75rem;z-index:2000;max-width:350px;width:100%;}.toast{background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);padding:1rem;border-radius:10px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.75rem;font-size:.85rem;animation:toastSlideIn .25s cubic-bezier(.16,1,.3,1);transition:var(--transition);}.toast.removing{opacity:0;transform:translateY(10px) scale(.95);}.toast-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;}.toast-message{flex:1;}.toast-success{border-left:3px solid var(--success);}.toast-error{border-left:3px solid var(--error);}.toast-info{border-left:3px solid var(--primary);}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes toastSlideIn{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalSlideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.spinner{width:1.5rem;height:1.5rem;border:2px solid var(--bg-active);border-top-color:var(--primary);border-radius:50%;animation:rotate .8s linear infinite;display:inline-block;}@keyframes rotate{to{transform:rotate(360deg)}}.copy-badge{cursor:pointer;display:inline-flex;align-items:center;}.copy-badge:hover{color:var(--primary-hover);}@media (max-width:1024px){.dashboard-layout{flex-direction:column}.sidebar{width:100%;height:auto;border-right:none;border-bottom:1px solid var(--border-color);position:static}}@media (max-width:640px){.app-header{flex-direction:column;align-items:flex-start;gap:1rem;padding:1rem}.main-pane{padding:1rem}.control-bar{flex-direction:column;align-items:stretch}.search-box{min-width:100%}.control-actions{width:100%}.control-actions .btn{flex:1}.stats-grid{grid-template-columns:1fr}}