*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f5f5;color:#222;font-size:14px}a{color:#06c;text-decoration:none}a:hover{text-decoration:underline}button{padding:6px 12px;border:1px solid #333;background:#fff;cursor:pointer;font-size:13px}button:hover{background:#eee}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#333;color:#fff}button.primary:hover{background:#555}input,textarea,select{padding:6px 8px;border:1px solid #ccc;font-size:13px;font-family:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:#666}textarea{resize:vertical;min-height:80px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:8px 10px;border:1px solid #ddd;text-align:left}th{background:#f0f0f0;font-weight:600}tr:hover{background:#fafafa}pre,code{font-family:Monaco,Consolas,monospace;font-size:12px}pre{background:#1e1e1e;color:#d4d4d4;padding:12px;overflow:auto;max-height:400px}.layout{display:flex;min-height:100vh}.sidebar{width:200px;background:#222;color:#fff;padding:20px 0;flex-shrink:0}.sidebar h1{font-size:14px;padding:0 16px 16px;border-bottom:1px solid #444;margin-bottom:8px}.sidebar a{display:block;padding:8px 16px;color:#ccc}.sidebar a:hover,.sidebar a.active{background:#333;color:#fff;text-decoration:none}.main{flex:1;padding:24px;overflow:auto}.page-title{font-size:18px;font-weight:600;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #ddd}.card{background:#fff;border:1px solid #ddd;padding:16px;margin-bottom:16px}.card h3{font-size:14px;margin-bottom:12px}.form-group{margin-bottom:12px}.form-group label{display:block;margin-bottom:4px;font-weight:500}.form-group input,.form-group textarea,.form-group select{width:100%}.form-row{display:flex;gap:12px}.form-row>*{flex:1}.btn-row{display:flex;gap:8px;margin-top:12px}.status{display:inline-block;padding:2px 8px;font-size:12px;font-weight:500}.status-completed,.status-success{background:#d4edda;color:#155724}.status-failed,.status-error{background:#f8d7da;color:#721c24}.status-stopped{background:#e2e3e5;color:#383d41}.status-running,.status-in_progress{background:#cce5ff;color:#004085}.status-pending,.status-started{background:#fff3cd;color:#856404}.status-concept,.status-story,.status-cover,.status-upload{background:#cce5ff;color:#004085}.stats{display:flex;gap:16px;margin-bottom:20px}.stat{background:#fff;border:1px solid #ddd;padding:16px;min-width:120px}.stat-value{font-size:24px;font-weight:600}.stat-label{font-size:12px;color:#666}.stat-status{display:flex;align-items:center;gap:8px}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-dot.idle{background:#28a745}.status-dot.running{background:#007bff;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.log-viewer{background:#1e1e1e;color:#d4d4d4;padding:12px;font-family:monospace;font-size:12px;max-height:300px;overflow:auto}.log-entry{margin-bottom:4px}.log-time{color:#888}.image-preview{max-width:300px;border:1px solid #ddd}.image-preview img{width:100%;display:block}.json-viewer{background:#f8f8f8;border:1px solid #ddd;padding:12px;overflow:auto;max-height:400px}.empty{color:#888;font-style:italic}.error-msg{color:#c00;margin-top:8px}.success-msg{color:#080;margin-top:8px}.loader{display:inline-block;width:16px;height:16px;border:2px solid #ddd;border-top-color:#333;border-radius:50%;animation:spin 1s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.progress-stages{display:flex;gap:4px;margin:12px 0}.progress-stage{flex:1;padding:8px;text-align:center;background:#eee;font-size:12px}.progress-stage.active{background:#cce5ff}.progress-stage.done{background:#d4edda}.progress-stage.error{background:#f8d7da}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.toggle-on{background:#28a745;color:#fff;border-color:#28a745;min-width:50px}.toggle-on:hover{background:#218838;border-color:#218838}.toggle-off{background:#dc3545;color:#fff;border-color:#dc3545;min-width:50px}.toggle-off:hover{background:#c82333;border-color:#c82333}.delete-btn{background:#dc3545;color:#fff;border-color:#dc3545}.delete-btn:hover{background:#c82333;border-color:#c82333}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;padding:24px;border-radius:4px;max-width:400px;width:90%}.modal h3{margin-bottom:16px}.modal p{margin-bottom:8px}.modal .btn-row{margin-top:16px;justify-content:flex-end}.warning-text{color:#856404;background:#fff3cd;padding:8px;margin-top:12px;font-size:13px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #ddd}.page-header .page-title{margin-bottom:0;padding-bottom:0;border-bottom:none}.btn-primary{background:#333;color:#fff;border-color:#333}.btn-primary:hover{background:#555;border-color:#555}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}@media (max-width: 900px){.analytics-grid{grid-template-columns:1fr}}.category-bars{display:flex;flex-direction:column;gap:12px}.category-bar-row{display:flex;align-items:center;gap:12px}.category-name{width:150px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-bar-container{flex:1;height:20px;background:#eee;border-radius:2px}.category-bar{height:100%;border-radius:2px;transition:width .3s}.category-bar.score-high{background:#28a745}.category-bar.score-medium{background:#ffc107}.category-bar.score-low{background:#dc3545}.category-stats{width:100px;font-size:12px;text-align:right}.category-score{font-weight:600}.category-count{color:#666;margin-left:4px}.price-list{display:flex;flex-direction:column;gap:8px}.price-row{display:flex;align-items:center;justify-content:space-between;padding:8px;background:#f8f8f8;border-radius:4px}.price-value{font-weight:600}.price-score{padding:2px 8px;border-radius:4px;font-weight:500}.price-score.score-high{background:#d4edda;color:#155724}.price-score.score-medium{background:#fff3cd;color:#856404}.price-score.score-low{background:#f8d7da;color:#721c24}.price-count{color:#666;font-size:12px}.performance-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.performance-table th.sortable:hover{background:#e0e0e0}.book-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-high{color:#155724;font-weight:600}.score-medium{color:#856404}.score-low{color:#721c24}.trend-cell{font-size:16px;text-align:center}.confidence-bar{height:8px;background:#eee;border-radius:4px;overflow:hidden}.confidence-bar.small{height:6px;width:60px}.confidence-fill{height:100%;background:#007bff;transition:width .3s}.insights-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}@media (max-width: 900px){.insights-grid{grid-template-columns:1fr}}.recommendations-list{display:flex;flex-direction:column;gap:12px}.recommendation{display:flex;gap:12px;padding:12px;background:#f8f8f8;border-radius:4px;border-left:4px solid #ccc}.recommendation.focus{border-left-color:#28a745}.recommendation.explore{border-left-color:#17a2b8}.recommendation.emulate{border-left-color:#007bff}.recommendation.avoid{border-left-color:#dc3545}.rec-icon{font-size:20px;width:30px;text-align:center}.rec-content{flex:1}.rec-action{font-weight:600;font-size:12px;text-transform:uppercase;color:#666}.rec-target{margin:4px 0;font-size:13px}.rec-reason{font-size:12px;color:#666}.ai-insights-list{display:flex;flex-direction:column;gap:12px}.ai-insight{padding:12px;background:#f0f7ff;border-radius:4px;border:1px solid #cce5ff}.insight-type{font-size:11px;text-transform:uppercase;color:#666;margin-bottom:4px}.insight-message{font-weight:500;margin-bottom:4px}.insight-action{font-size:12px;color:#06c}.concepts-list{display:flex;flex-direction:column;gap:12px}.concept-item{display:flex;gap:12px;padding:12px;background:#f8f8f8;border-radius:4px}.concept-item.top{border-left:4px solid #28a745}.concept-item.avoid{border-left:4px solid #dc3545}.concept-rank{font-size:18px;font-weight:600;color:#666;width:30px}.concept-content{flex:1}.concept-text{font-size:13px;line-height:1.4;margin-bottom:8px}.concept-stats{font-size:12px;color:#666}.concept-stats strong{color:#333}.rankings-table .experimental-row{background:#fff9e6}.status-badge{display:inline-block;padding:2px 8px;font-size:11px;border-radius:10px}.status-badge.active{background:#d4edda;color:#155724}.status-badge.experimental{background:#fff3cd;color:#856404}.status-badge.retired{background:#e9ecef;color:#6c757d}
