*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5;color:#232f3e}.app{max-width:1400px;margin:0 auto;padding:20px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.header h1{font-size:24px;font-weight:600}.filters{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:12px;font-weight:500;color:#666}.filter-group input,.filter-group select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:#0073bb}.btn{padding:8px 16px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background .2s}.btn-primary{background:#0073bb;color:#fff}.btn-primary:hover{background:#005a8c}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.panels{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.panel-full{grid-column:1 / -1}.panel h2{font-size:16px;font-weight:600;margin-bottom:16px;color:#232f3e}.chart-container{height:300px}.events-list{max-height:300px;overflow-y:auto}.event-item{padding:12px;border-bottom:1px solid #eee}.event-item:last-child{border-bottom:none}.event-name{font-weight:500}.event-dates{font-size:12px;color:#666;margin-top:4px}.event-category{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;margin-top:4px}.event-category.deal{background:#fef3cd;color:#856404}.event-category.seasonal{background:#d4edda;color:#155724}.event-category.holiday{background:#cce5ff;color:#004085}.keywords-list{display:flex;flex-wrap:wrap;gap:8px}.keyword-chip{background:#e8f4fc;padding:6px 12px;border-radius:16px;font-size:13px}.keyword-score{color:#0073bb;font-weight:500;margin-left:4px}.loading{text-align:center;padding:40px;color:#666}.error{background:#fee;color:#c00;padding:12px;border-radius:4px;margin-bottom:16px}.terms-input{width:300px}
